fix Instruments

Add missing instrument enums
fix some wrong javadocs
This commit is contained in:
Jake Potrebic 2022-12-09 01:34:03 -08:00
parent 896508a541
commit 345305859e
2 changed files with 12 additions and 35 deletions

View File

@ -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);

View File

@ -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));
}
}
}