From 442838fdaef290ad9ca9baad4714fe92cba07c97 Mon Sep 17 00:00:00 2001 From: Doc Date: Thu, 16 Jan 2025 19:46:54 +1100 Subject: [PATCH] #1053: Add MusicInstrument fields for description, range, duration and sound --- .../craftbukkit/CraftMusicInstrument.java | 22 +++++++++++++++++++ .../org/bukkit/craftbukkit/CraftSound.java | 4 ++++ 2 files changed, 26 insertions(+) diff --git a/src/main/java/org/bukkit/craftbukkit/CraftMusicInstrument.java b/src/main/java/org/bukkit/craftbukkit/CraftMusicInstrument.java index 7f8157e27..958d16afa 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftMusicInstrument.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftMusicInstrument.java @@ -13,6 +13,8 @@ import net.minecraft.world.item.Instrument; import org.bukkit.MusicInstrument; import org.bukkit.NamespacedKey; import org.bukkit.Registry; +import org.bukkit.Sound; +import org.bukkit.craftbukkit.util.CraftChatMessage; import org.bukkit.craftbukkit.util.CraftNamespacedKey; import org.bukkit.craftbukkit.util.HolderHandleable; import org.jetbrains.annotations.NotNull; @@ -90,6 +92,26 @@ public class CraftMusicInstrument extends MusicInstrument implements HolderHandl return handle; } + @Override + public String getDescription() { + return CraftChatMessage.fromComponent(this.getHandle().description()); + } + + @Override + public float getDuration() { + return this.getHandle().useDuration(); + } + + @Override + public float getRange() { + return this.getHandle().range(); + } + + @Override + public Sound getSoundEvent() { + return CraftSound.minecraftHolderToBukkit(this.getHandle().soundEvent()); + } + @NotNull @Override public NamespacedKey getKey() { diff --git a/src/main/java/org/bukkit/craftbukkit/CraftSound.java b/src/main/java/org/bukkit/craftbukkit/CraftSound.java index 80b501c10..d0f496f5e 100644 --- a/src/main/java/org/bukkit/craftbukkit/CraftSound.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftSound.java @@ -19,6 +19,10 @@ public class CraftSound extends CraftOldEnumRegistryItem imp return CraftRegistry.minecraftToBukkit(minecraft, Registries.SOUND_EVENT, Registry.SOUNDS); } + public static Sound minecraftHolderToBukkit(Holder minecraft) { + return minecraftToBukkit(minecraft.value()); + } + public static SoundEffect bukkitToMinecraft(Sound bukkit) { return CraftRegistry.bukkitToMinecraft(bukkit); }