aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/api/0398-fix-Instruments.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patches/api/0398-fix-Instruments.patch')
-rw-r--r--patches/api/0398-fix-Instruments.patch129
1 files changed, 129 insertions, 0 deletions
diff --git a/patches/api/0398-fix-Instruments.patch b/patches/api/0398-fix-Instruments.patch
new file mode 100644
index 0000000000..38cd1521f2
--- /dev/null
+++ b/patches/api/0398-fix-Instruments.patch
@@ -0,0 +1,129 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Jake Potrebic <[email protected]>
+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<Byte, Instrument> 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 60206aaf1dfec3cf1f8911d7dce41a36a8675375..a0801ab1e7c91dfc6451338cfab414145c72a441 100644
+--- a/src/main/java/org/bukkit/entity/Player.java
++++ b/src/main/java/org/bukkit/entity/Player.java
+@@ -445,9 +445,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 14ad060eba6b78c6b7c7deeecc455ea385b92f36..e3d718d75474c5b31c95bd64cb58247ab72364e4 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));
+ }