From 61edfa299a37967e56b415a169243cb2be81b823 Mon Sep 17 00:00:00 2001 From: Navoei Date: Sun, 21 Jul 2024 22:45:41 -0500 Subject: [PATCH] 1.21 Update --- gradle.properties | 4 ++-- .../me/Navoei/customdiscsplugin/HopperManager.java | 11 ++++++++++- .../command/SubCommands/CreateCommand.java | 5 ++++- .../me/Navoei/customdiscsplugin/event/JukeBox.java | 13 ++++++++++++- .../me/Navoei/customdiscsplugin/language/Lang.java | 3 ++- src/main/resources/lang.yml | 1 + 6 files changed, 31 insertions(+), 6 deletions(-) diff --git a/gradle.properties b/gradle.properties index 3c2fd2c..a0ac45f 100644 --- a/gradle.properties +++ b/gradle.properties @@ -5,12 +5,12 @@ java_version=21 mp3spi_version=1.9.5.4 bukkit_api_version=1.20 -bukkit_version=1.20.6-R0.1-SNAPSHOT +bukkit_version=1.21-R0.1-SNAPSHOT mod_id=customdiscsplugin # Target an older API to make it compatible with older versions of Simple Voice Chat voicechat_api_version=2.5.0 -plugin_version=2.7 +plugin_version=3.0 maven_group=me.Navoei.customdiscsplugin archives_base_name=custom-discs \ No newline at end of file diff --git a/src/main/java/me/Navoei/customdiscsplugin/HopperManager.java b/src/main/java/me/Navoei/customdiscsplugin/HopperManager.java index f20a984..94ca933 100644 --- a/src/main/java/me/Navoei/customdiscsplugin/HopperManager.java +++ b/src/main/java/me/Navoei/customdiscsplugin/HopperManager.java @@ -17,6 +17,8 @@ import org.bukkit.event.inventory.InventoryMoveItemEvent; import org.bukkit.event.inventory.InventoryType; import org.bukkit.event.world.ChunkLoadEvent; import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.ItemMeta; +import org.bukkit.inventory.meta.components.JukeboxPlayableComponent; import org.bukkit.persistence.PersistentDataType; import java.nio.file.Path; @@ -39,7 +41,14 @@ public class HopperManager implements Listener { String songName = PlainTextComponentSerializer.plainText().serialize(songNameComponent); Component customActionBarSongPlaying = LegacyComponentSerializer.legacyAmpersand().deserialize(Lang.NOW_PLAYING.toString().replace("%song_name%", songName)); - String soundFileName = event.getItem().getItemMeta().getPersistentDataContainer().get(new NamespacedKey(customDiscs, "customdisc"), PersistentDataType.STRING); + ItemMeta discMeta = event.getItem().getItemMeta(); + String soundFileName = discMeta.getPersistentDataContainer().get(new NamespacedKey(customDiscs, "customdisc"), PersistentDataType.STRING); + if (discMeta.getJukeboxPlayable().isShowInTooltip()) { + JukeboxPlayableComponent jpc = discMeta.getJukeboxPlayable(); + jpc.setShowInTooltip(false); + discMeta.setJukeboxPlayable(jpc); + event.getItem().setItemMeta(discMeta); + } Path soundFilePath = Path.of(customDiscs.getDataFolder().getPath(), "musicdata", soundFileName); assert VoicePlugin.voicechatServerApi != null; diff --git a/src/main/java/me/Navoei/customdiscsplugin/command/SubCommands/CreateCommand.java b/src/main/java/me/Navoei/customdiscsplugin/command/SubCommands/CreateCommand.java index 51fb5c3..69c3d2b 100644 --- a/src/main/java/me/Navoei/customdiscsplugin/command/SubCommands/CreateCommand.java +++ b/src/main/java/me/Navoei/customdiscsplugin/command/SubCommands/CreateCommand.java @@ -15,6 +15,7 @@ import org.bukkit.entity.Player; import org.bukkit.inventory.ItemFlag; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.ItemMeta; +import org.bukkit.inventory.meta.components.JukeboxPlayableComponent; import org.bukkit.persistence.PersistentDataContainer; import org.bukkit.persistence.PersistentDataType; import org.jetbrains.annotations.Nullable; @@ -94,8 +95,10 @@ public class CreateCommand extends SubCommand { .color(NamedTextColor.GRAY) .build(); itemLore.add(customLoreSong); - meta.addItemFlags(ItemFlag.values()); meta.lore(itemLore); + JukeboxPlayableComponent jpc = meta.getJukeboxPlayable(); + jpc.setShowInTooltip(false); + meta.setJukeboxPlayable(jpc); PersistentDataContainer data = meta.getPersistentDataContainer(); data.set(new NamespacedKey(CustomDiscs.getInstance(), "customdisc"), PersistentDataType.STRING, filename); diff --git a/src/main/java/me/Navoei/customdiscsplugin/event/JukeBox.java b/src/main/java/me/Navoei/customdiscsplugin/event/JukeBox.java index de49e8f..bf32000 100644 --- a/src/main/java/me/Navoei/customdiscsplugin/event/JukeBox.java +++ b/src/main/java/me/Navoei/customdiscsplugin/event/JukeBox.java @@ -24,6 +24,8 @@ import org.bukkit.event.block.BlockBreakEvent; import org.bukkit.event.entity.EntityExplodeEvent; import org.bukkit.event.player.PlayerInteractEvent; import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.meta.ItemMeta; +import org.bukkit.inventory.meta.components.JukeboxPlayableComponent; import org.bukkit.persistence.PersistentDataType; import java.io.FileNotFoundException; @@ -47,7 +49,16 @@ public class JukeBox implements Listener{ if (isCustomMusicDisc(event) && !jukeboxContainsDisc(block)) { - String soundFileName = event.getItem().getItemMeta().getPersistentDataContainer().get(new NamespacedKey(customDiscs, "customdisc"), PersistentDataType.STRING); + ItemMeta discMeta = event.getItem().getItemMeta(); + String soundFileName = discMeta.getPersistentDataContainer().get(new NamespacedKey(customDiscs, "customdisc"), PersistentDataType.STRING); + if (discMeta.getJukeboxPlayable().isShowInTooltip()) { + JukeboxPlayableComponent jpc = discMeta.getJukeboxPlayable(); + jpc.setShowInTooltip(false); + discMeta.setJukeboxPlayable(jpc); + event.getItem().setItemMeta(discMeta); + Component textComponent = LegacyComponentSerializer.legacyAmpersand().deserialize(Lang.PREFIX + Lang.DISC_CONVERTED.toString()); + player.sendMessage(textComponent); + } Path soundFilePath = Path.of(customDiscs.getDataFolder().getPath(), "musicdata", soundFileName); diff --git a/src/main/java/me/Navoei/customdiscsplugin/language/Lang.java b/src/main/java/me/Navoei/customdiscsplugin/language/Lang.java index 69512d1..1b4ce4c 100644 --- a/src/main/java/me/Navoei/customdiscsplugin/language/Lang.java +++ b/src/main/java/me/Navoei/customdiscsplugin/language/Lang.java @@ -19,7 +19,8 @@ public enum Lang { SUCCESSFUL_DOWNLOAD("successful-download", "&aFile successfully downloaded to &7%file_path%&a."), CREATE_DISC("create-disc", "&aCreate a disc by doing &7/cd create filename.extension \"Custom Lore\"&a."), DOWNLOAD_ERROR("download-error", "&rAn error has occurred while downloading."), - NOW_PLAYING("now-playing","&6Now playing: %song_name%"); + NOW_PLAYING("now-playing","&6Now playing: %song_name%"), + DISC_CONVERTED("disc-converted", "&aConverted disc to new format! &fThis is due to changes in newer Minecraft versions which introduced &7JukeboxPlayableComponent&f."); private final String path; private final String def; diff --git a/src/main/resources/lang.yml b/src/main/resources/lang.yml index e71e1a7..c16a00f 100644 --- a/src/main/resources/lang.yml +++ b/src/main/resources/lang.yml @@ -14,3 +14,4 @@ successful-download: "&aFile successfully downloaded to &7%file_path%&a." create-disc: "&aCreate a disc by doing &7/cd create %filename% \"Custom Lore\"&a." download-error: "&cAn error has occurred while downloading." now-playing: "&6Now playing: %song_name%" +disc-converted: "&aConverted disc to new format! &fThis is due to changes in newer Minecraft versions which introduced &7JukeboxPlayableComponent&f."