From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Jake Potrebic <jake.m.potrebic@gmail.com>
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 90bf1521e5b8b6c6d47489145e116f2a43fd3250..8df26e0d7bea77bb257cddbc2ab9e969fa160681 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, Sound.BLOCK_NOTE_BLOCK_HARP),
     /**
@@ -21,7 +21,7 @@ public enum Instrument {
      */
     SNARE_DRUM(0x2, Sound.BLOCK_NOTE_BLOCK_SNARE),
     /**
-     * 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, Sound.BLOCK_NOTE_BLOCK_HAT),
@@ -78,39 +78,37 @@ public enum Instrument {
     /**
      * Zombie is normally played when a Zombie Head is on top of the note block.
      */
-    ZOMBIE(Sound.BLOCK_NOTE_BLOCK_IMITATE_ZOMBIE),
+    ZOMBIE(0x10, Sound.BLOCK_NOTE_BLOCK_IMITATE_ZOMBIE), // Paper
     /**
      * Skeleton is normally played when a Skeleton Head is on top of the note block.
      */
-    SKELETON(Sound.BLOCK_NOTE_BLOCK_IMITATE_SKELETON),
+    SKELETON(0x11, Sound.BLOCK_NOTE_BLOCK_IMITATE_SKELETON), // Paper
     /**
      * Creeper is normally played when a Creeper Head is on top of the note block.
      */
-    CREEPER(Sound.BLOCK_NOTE_BLOCK_IMITATE_CREEPER),
+    CREEPER(0x12, Sound.BLOCK_NOTE_BLOCK_IMITATE_CREEPER), // Paper
     /**
      * Dragon is normally played when a Dragon Head is on top of the note block.
      */
-    DRAGON(Sound.BLOCK_NOTE_BLOCK_IMITATE_ENDER_DRAGON),
+    DRAGON(0x13, Sound.BLOCK_NOTE_BLOCK_IMITATE_ENDER_DRAGON), // Paper
     /**
      * Wither Skeleton is normally played when a Wither Skeleton Head is on top of the note block.
      */
-    WITHER_SKELETON(Sound.BLOCK_NOTE_BLOCK_IMITATE_WITHER_SKELETON),
+    WITHER_SKELETON(0x14, Sound.BLOCK_NOTE_BLOCK_IMITATE_WITHER_SKELETON), // Paper
     /**
      * Piglin is normally played when a Piglin Head is on top of the note block.
      */
-    PIGLIN(Sound.BLOCK_NOTE_BLOCK_IMITATE_PIGLIN),
+    PIGLIN(0x15, Sound.BLOCK_NOTE_BLOCK_IMITATE_PIGLIN), // Paper
     /**
      * Custom Sound is normally played when a Player Head with the required data is on top of the note block.
      */
-    CUSTOM_HEAD(null);
+    CUSTOM_HEAD(0x16, null); // Paper
 
     private final byte type;
     private final Sound sound;
     private static final Map<Byte, Instrument> BY_DATA = Maps.newHashMap();
 
-    private Instrument(final Sound sound) {
-        this(-1, sound);
-    }
+    // Paper - remove ctor (the server still uses the byte magic value)
 
     private Instrument(final int type, final Sound sound) {
         this.type = (byte) type;
@@ -130,9 +128,8 @@ public enum Instrument {
 
     /**
      * @return The type ID of this instrument.
-     * @deprecated Magic value
      */
-    @Deprecated(since = "1.6.2")
+    @org.jetbrains.annotations.ApiStatus.Internal // Paper
     public byte getType() {
         return this.type;
     }
@@ -142,9 +139,8 @@ public enum Instrument {
      *
      * @param type The type ID
      * @return The instrument
-     * @deprecated Magic value
      */
-    @Deprecated(since = "1.6.2")
+    @org.jetbrains.annotations.ApiStatus.Internal // Paper
     @Nullable
     public static Instrument getByType(final byte type) {
         return BY_DATA.get(type);
diff --git a/src/test/java/org/bukkit/InstrumentTest.java b/src/test/java/org/bukkit/InstrumentTest.java
deleted file mode 100644
index 6f27b260d9dbe76da733459c8341282e23440b8a..0000000000000000000000000000000000000000
--- a/src/test/java/org/bukkit/InstrumentTest.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package org.bukkit;
-
-import static org.bukkit.support.MatcherAssert.*;
-import static org.hamcrest.CoreMatchers.*;
-import org.bukkit.support.AbstractTestingBase;
-import org.junit.jupiter.api.Test;
-
-public class InstrumentTest extends AbstractTestingBase {
-    @Test
-    public void getByType() {
-        for (Instrument instrument : Instrument.values()) {
-            if (instrument.getType() < 0) {
-                continue;
-            }
-
-            assertThat(Instrument.getByType(instrument.getType()), is(instrument));
-        }
-    }
-}