diff --git a/plugin/src/main/java/com/denizenscript/denizen/events/block/NoteBlockPlaysNoteScriptEvent.java b/plugin/src/main/java/com/denizenscript/denizen/events/block/NoteBlockPlaysNoteScriptEvent.java index 2bf704127a..1b8d2b0c15 100644 --- a/plugin/src/main/java/com/denizenscript/denizen/events/block/NoteBlockPlaysNoteScriptEvent.java +++ b/plugin/src/main/java/com/denizenscript/denizen/events/block/NoteBlockPlaysNoteScriptEvent.java @@ -4,6 +4,7 @@ import com.denizenscript.denizen.objects.LocationTag; import com.denizenscript.denizencore.objects.ObjectTag; import com.denizenscript.denizencore.objects.core.ElementTag; +import org.bukkit.Sound; import org.bukkit.event.EventHandler; import org.bukkit.event.Listener; import org.bukkit.event.block.NotePlayEvent; @@ -26,6 +27,7 @@ public class NoteBlockPlaysNoteScriptEvent extends BukkitScriptEvent implements // @Context // returns the LocationTag of the note block. // returns the name of the instrument played, see list at <@link url https://hub.spigotmc.org/javadocs/spigot/org/bukkit/Instrument.html>. + // returns the name of the sound (that fits into <@link command playsound>) represented by the instrument. // returns the the note tone played (A to G). // returns the octave the note is played at (as a number). // returns a boolean indicating whether the note is sharp. @@ -62,6 +64,44 @@ public String getName() { return "NoteBlockPlaysNote"; } + public Sound getSound() { + switch (event.getInstrument()) { + case PIANO: + return Sound.BLOCK_NOTE_BLOCK_HARP; + case BASS_DRUM: + return Sound.BLOCK_NOTE_BLOCK_BASEDRUM; + case SNARE_DRUM: + return Sound.BLOCK_NOTE_BLOCK_SNARE; + case STICKS: + return Sound.BLOCK_NOTE_BLOCK_HAT; + case BASS_GUITAR: + return Sound.BLOCK_NOTE_BLOCK_BASS; + case FLUTE: + return Sound.BLOCK_NOTE_BLOCK_FLUTE; + case BELL: + return Sound.BLOCK_NOTE_BLOCK_BELL; + case GUITAR: + return Sound.BLOCK_NOTE_BLOCK_GUITAR; + case CHIME: + return Sound.BLOCK_NOTE_BLOCK_CHIME; + case XYLOPHONE: + return Sound.BLOCK_NOTE_BLOCK_XYLOPHONE; + case IRON_XYLOPHONE: + return Sound.BLOCK_NOTE_BLOCK_IRON_XYLOPHONE; + case COW_BELL: + return Sound.BLOCK_NOTE_BLOCK_COW_BELL; + case DIDGERIDOO: + return Sound.BLOCK_NOTE_BLOCK_DIDGERIDOO; + case BIT: + return Sound.BLOCK_NOTE_BLOCK_BIT; + case BANJO: + return Sound.BLOCK_NOTE_BLOCK_BANJO; + case PLING: + return Sound.BLOCK_NOTE_BLOCK_PLING; + } + return null; + } + @Override public ObjectTag getContext(String name) { if (name.equals("location")) { @@ -70,6 +110,9 @@ public ObjectTag getContext(String name) { else if (name.equals("instrument")) { return new ElementTag(event.getInstrument().name()); } + else if (name.equals("sound")) { + return new ElementTag(getSound().name()); + } else if (name.equals("tone")) { return new ElementTag(event.getNote().getTone().name()); }