From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jake Potrebic Date: Fri, 9 Dec 2022 01:34:03 -0800 Subject: [PATCH] fix Instruments Add missing instrument enums fix some wrong javadocs diff --git a/src/main/java/org/bukkit/Instrument.java b/src/main/java/org/bukkit/Instrument.java index de976be7132d05506fde7a839cac3954b0dd8da4..642feb8b4578e6dbd2bf78d859283d20f877051f 100644 --- a/src/main/java/org/bukkit/Instrument.java +++ b/src/main/java/org/bukkit/Instrument.java @@ -7,7 +7,7 @@ import org.jetbrains.annotations.Nullable; public enum Instrument { /** - * Piano is the standard instrument for a note block. + * Piano (Harp) is the standard instrument for a note block. */ PIANO(0x0), /** @@ -21,7 +21,7 @@ public enum Instrument { */ SNARE_DRUM(0x2), /** - * Sticks are normally played when a note block is on top of a glass + * Sticks (Hat) are normally played when a note block is on top of a glass * block. */ STICKS(0x3), @@ -78,38 +78,36 @@ public enum Instrument { /** * Zombie is normally played when a Zombie Head is on top of the note block. */ - ZOMBIE, + ZOMBIE(0x10), // Paper /** * Skeleton is normally played when a Skeleton Head is on top of the note block. */ - SKELETON, + SKELETON(0x11), // Paper /** * Creeper is normally played when a Creeper Head is on top of the note block. */ - CREEPER, + CREEPER(0x12), // Paper /** * Dragon is normally played when a Dragon Head is on top of the note block. */ - DRAGON, + DRAGON(0x13), // Paper /** * Wither Skeleton is normally played when a Wither Skeleton Head is on top of the note block. */ - WITHER_SKELETON, + WITHER_SKELETON(0x14), // Paper /** * Piglin is normally played when a Piglin Head is on top of the note block. */ - PIGLIN, + PIGLIN(0x15), // Paper /** * Custom Sound is normally played when a Player Head with the required data is on top of the note block. */ - CUSTOM_HEAD; + CUSTOM_HEAD(0x16); // Paper private final byte type; private static final Map BY_DATA = Maps.newHashMap(); - private Instrument() { - this(-1); - } + // Paper - remove ctor (the server still uses the byte magic value) private Instrument(final int type) { this.type = (byte) type; @@ -117,9 +115,8 @@ public enum Instrument { /** * @return The type ID of this instrument. - * @deprecated Magic value */ - @Deprecated + @org.jetbrains.annotations.ApiStatus.Internal // Paper public byte getType() { return this.type; } @@ -129,9 +126,8 @@ public enum Instrument { * * @param type The type ID * @return The instrument - * @deprecated Magic value */ - @Deprecated + @org.jetbrains.annotations.ApiStatus.Internal // Paper @Nullable public static Instrument getByType(final byte type) { return BY_DATA.get(type); diff --git a/src/main/java/org/bukkit/entity/Player.java b/src/main/java/org/bukkit/entity/Player.java index 4d1d81ddc7638e958f9cd1b10fd26227efc1578d..fdb0b8b81e53c85c865c4a3a895719f5afbffd17 100644 --- a/src/main/java/org/bukkit/entity/Player.java +++ b/src/main/java/org/bukkit/entity/Player.java @@ -511,9 +511,7 @@ public interface Player extends HumanEntity, Conversable, OfflinePlayer, PluginM public void playNote(@NotNull Location loc, byte instrument, byte note); /** - * Play a note for a player at a location. This requires a note block - * at the particular location (as far as the client is concerned). This - * will not work without a note block. This will not work with cake. + * Play a note for a player at a location. * * @param loc The location of a note block * @param instrument The instrument diff --git a/src/test/java/org/bukkit/InstrumentTest.java b/src/test/java/org/bukkit/InstrumentTest.java index 8c1d88885de7d56c1b7c78d2e6e059b0648c982a..b177a47a5bda05bfe3598ec5e6771b92a73f0edf 100644 --- a/src/test/java/org/bukkit/InstrumentTest.java +++ b/src/test/java/org/bukkit/InstrumentTest.java @@ -8,9 +8,7 @@ public class InstrumentTest { @Test public void getByType() { for (Instrument instrument : Instrument.values()) { - if (instrument.getType() < 0) { - continue; - } + // Paper - byte magic values are still used assertThat(Instrument.getByType(instrument.getType()), is(instrument)); }