SongodaCore/Compatibility/src/main/java/com/songoda/core/compatibility/CompatibleSound.java

1541 lines
77 KiB
Java

package com.songoda.core.compatibility;
import org.bukkit.Location;
import org.bukkit.Sound;
import org.bukkit.World;
import org.bukkit.entity.Player;
/**
* TODO: Probably recode to be similar to CompatibleMaterial
*
* Sounds that are compatible with server versions 1.7+ <br>
* TODO: This needs work.
* Finished 1.8, finished 1.9 blocks, resume with 1.9 entities<br>
* Between 1.8 and 1.9, all sounds were renamed, and between 1.12 and 1.13, some
* sounds were renamed. New sounds have been added by different versions, as
* well. The intent of this class is to provide either the correct sound or a
* near equivalent for the current server.
*/
public enum CompatibleSound {
// some of these values are missing an API value...
// would using the raw strings be better?
// 1.8 list:
// https://www.minecraftforum.net/forums/mapping-and-modding-java-edition/mapping-and-modding-tutorials/2213619-1-8-all-playsound-sound-arguments
/* 1.19 */
BLOCK_FROGLIGHT_BREAK(ServerVersion.V1_19, v(null, true)),
BLOCK_FROGLIGHT_FALL(ServerVersion.V1_19, v(null, true)),
BLOCK_FROGLIGHT_HIT(ServerVersion.V1_19, v(null, true)),
BLOCK_FROGLIGHT_PLACE(ServerVersion.V1_19, v(null, true)),
BLOCK_FROGLIGHT_STEP(ServerVersion.V1_19, v(null, true)),
BLOCK_FROGSPAWN_BREAK(ServerVersion.V1_19, v(null, true)),
BLOCK_FROGSPAWN_FALL(ServerVersion.V1_19, v(null, true)),
BLOCK_FROGSPAWN_HATCH(ServerVersion.V1_19, v(null, true)),
BLOCK_FROGSPAWN_HIT(ServerVersion.V1_19, v(null, true)),
BLOCK_FROGSPAWN_PLACE(ServerVersion.V1_19, v(null, true)),
BLOCK_FROGSPAWN_STEP(ServerVersion.V1_19, v(null, true)),
BLOCK_MANGROVE_ROOTS_BREAK(ServerVersion.V1_19, v(null, true)),
BLOCK_MANGROVE_ROOTS_FALL(ServerVersion.V1_19, v(null, true)),
BLOCK_MANGROVE_ROOTS_HIT(ServerVersion.V1_19, v(null, true)),
BLOCK_MANGROVE_ROOTS_PLACE(ServerVersion.V1_19, v(null, true)),
BLOCK_MANGROVE_ROOTS_STEP(ServerVersion.V1_19, v(null, true)),
BLOCK_MUDDY_MANGROVE_ROOTS_BREAK(ServerVersion.V1_19, v(null, true)),
BLOCK_MUDDY_MANGROVE_ROOTS_FALL(ServerVersion.V1_19, v(null, true)),
BLOCK_MUDDY_MANGROVE_ROOTS_HIT(ServerVersion.V1_19, v(null, true)),
BLOCK_MUDDY_MANGROVE_ROOTS_PLACE(ServerVersion.V1_19, v(null, true)),
BLOCK_MUDDY_MANGROVE_ROOTS_STEP(ServerVersion.V1_19, v(null, true)),
BLOCK_MUD_BREAK(ServerVersion.V1_19, v(null, true)),
BLOCK_MUD_BRICKS_BREAK(ServerVersion.V1_19, v(null, true)),
BLOCK_MUD_BRICKS_FALL(ServerVersion.V1_19, v(null, true)),
BLOCK_MUD_BRICKS_HIT(ServerVersion.V1_19, v(null, true)),
BLOCK_MUD_BRICKS_PLACE(ServerVersion.V1_19, v(null, true)),
BLOCK_MUD_BRICKS_STEP(ServerVersion.V1_19, v(null, true)),
BLOCK_MUD_FALL(ServerVersion.V1_19, v(null, true)),
BLOCK_MUD_HIT(ServerVersion.V1_19, v(null, true)),
BLOCK_MUD_PLACE(ServerVersion.V1_19, v(null, true)),
BLOCK_MUD_STEP(ServerVersion.V1_19, v(null, true)),
BLOCK_PACKED_MUD_BREAK(ServerVersion.V1_19, v(null, true)),
BLOCK_PACKED_MUD_FALL(ServerVersion.V1_19, v(null, true)),
BLOCK_PACKED_MUD_HIT(ServerVersion.V1_19, v(null, true)),
BLOCK_PACKED_MUD_PLACE(ServerVersion.V1_19, v(null, true)),
BLOCK_PACKED_MUD_STEP(ServerVersion.V1_19, v(null, true)),
BLOCK_SCULK_BREAK(ServerVersion.V1_19, v(null, true)),
BLOCK_SCULK_CATALYST_BLOOM(ServerVersion.V1_19, v(null, true)),
BLOCK_SCULK_CATALYST_BREAK(ServerVersion.V1_19, v(null, true)),
BLOCK_SCULK_CATALYST_FALL(ServerVersion.V1_19, v(null, true)),
BLOCK_SCULK_CATALYST_HIT(ServerVersion.V1_19, v(null, true)),
BLOCK_SCULK_CATALYST_PLACE(ServerVersion.V1_19, v(null, true)),
BLOCK_SCULK_CATALYST_STEP(ServerVersion.V1_19, v(null, true)),
BLOCK_SCULK_CHARGE(ServerVersion.V1_19, v(null, true)),
BLOCK_SCULK_FALL(ServerVersion.V1_19, v(null, true)),
BLOCK_SCULK_HIT(ServerVersion.V1_19, v(null, true)),
BLOCK_SCULK_PLACE(ServerVersion.V1_19, v(null, true)),
BLOCK_SCULK_SHRIEKER_BREAK(ServerVersion.V1_19, v(null, true)),
BLOCK_SCULK_SHRIEKER_FALL(ServerVersion.V1_19, v(null, true)),
BLOCK_SCULK_SHRIEKER_HIT(ServerVersion.V1_19, v(null, true)),
BLOCK_SCULK_SHRIEKER_PLACE(ServerVersion.V1_19, v(null, true)),
BLOCK_SCULK_SHRIEKER_SHRIEK(ServerVersion.V1_19, v(null, true)),
BLOCK_SCULK_SHRIEKER_STEP(ServerVersion.V1_19, v(null, true)),
BLOCK_SCULK_SPREAD(ServerVersion.V1_19, v(null, true)),
BLOCK_SCULK_STEP(ServerVersion.V1_19, v(null, true)),
BLOCK_SCULK_VEIN_BREAK(ServerVersion.V1_19, v(null, true)),
BLOCK_SCULK_VEIN_FALL(ServerVersion.V1_19, v(null, true)),
BLOCK_SCULK_VEIN_HIT(ServerVersion.V1_19, v(null, true)),
BLOCK_SCULK_VEIN_PLACE(ServerVersion.V1_19, v(null, true)),
BLOCK_SCULK_VEIN_STEP(ServerVersion.V1_19, v(null, true)),
ENTITY_ALLAY_AMBIENT_WITHOUT_ITEM(ServerVersion.V1_19, v(null, true)),
ENTITY_ALLAY_AMBIENT_WITH_ITEM(ServerVersion.V1_19, v(null, true)),
ENTITY_ALLAY_DEATH(ServerVersion.V1_19, v(null, true)),
ENTITY_ALLAY_HURT(ServerVersion.V1_19, v(null, true)),
ENTITY_ALLAY_ITEM_GIVEN(ServerVersion.V1_19, v(null, true)),
ENTITY_ALLAY_ITEM_TAKEN(ServerVersion.V1_19, v(null, true)),
ENTITY_ALLAY_ITEM_THROWN(ServerVersion.V1_19, v(null, true)),
ENTITY_FROG_AMBIENT(ServerVersion.V1_19, v(null, true)),
ENTITY_FROG_DEATH(ServerVersion.V1_19, v(null, true)),
ENTITY_FROG_EAT(ServerVersion.V1_19, v(null, true)),
ENTITY_FROG_HURT(ServerVersion.V1_19, v(null, true)),
ENTITY_FROG_LAY_SPAWN(ServerVersion.V1_19, v(null, true)),
ENTITY_FROG_LONG_JUMP(ServerVersion.V1_19, v(null, true)),
ENTITY_FROG_STEP(ServerVersion.V1_19, v(null, true)),
ENTITY_FROG_TONGUE(ServerVersion.V1_19, v(null, true)),
ENTITY_GOAT_HORN_BREAK(ServerVersion.V1_19, v(null, true)),
ENTITY_GOAT_SCREAMING_HORN_BREAK(ServerVersion.V1_19, v(null, true)),
ENTITY_PARROT_IMITATE_WARDEN(ServerVersion.V1_19, v(null, true)),
ENTITY_TADPOLE_DEATH(ServerVersion.V1_19, v(null, true)),
ENTITY_TADPOLE_FLOP(ServerVersion.V1_19, v(null, true)),
ENTITY_TADPOLE_GROW_UP(ServerVersion.V1_19, v(null, true)),
ENTITY_TADPOLE_HURT(ServerVersion.V1_19, v(null, true)),
ENTITY_WARDEN_AGITATED(ServerVersion.V1_19, v(null, true)),
ENTITY_WARDEN_AMBIENT(ServerVersion.V1_19, v(null, true)),
ENTITY_WARDEN_ANGRY(ServerVersion.V1_19, v(null, true)),
ENTITY_WARDEN_ATTACK_IMPACT(ServerVersion.V1_19, v(null, true)),
ENTITY_WARDEN_DEATH(ServerVersion.V1_19, v(null, true)),
ENTITY_WARDEN_DIG(ServerVersion.V1_19, v(null, true)),
ENTITY_WARDEN_EMERGE(ServerVersion.V1_19, v(null, true)),
ENTITY_WARDEN_HEARTBEAT(ServerVersion.V1_19, v(null, true)),
ENTITY_WARDEN_HURT(ServerVersion.V1_19, v(null, true)),
ENTITY_WARDEN_LISTENING(ServerVersion.V1_19, v(null, true)),
ENTITY_WARDEN_LISTENING_ANGRY(ServerVersion.V1_19, v(null, true)),
ENTITY_WARDEN_NEARBY_CLOSE(ServerVersion.V1_19, v(null, true)),
ENTITY_WARDEN_NEARBY_CLOSER(ServerVersion.V1_19, v(null, true)),
ENTITY_WARDEN_NEARBY_CLOSEST(ServerVersion.V1_19, v(null, true)),
ENTITY_WARDEN_ROAR(ServerVersion.V1_19, v(null, true)),
ENTITY_WARDEN_SNIFF(ServerVersion.V1_19, v(null, true)),
ENTITY_WARDEN_SONIC_BOOM(ServerVersion.V1_19, v(null, true)),
ENTITY_WARDEN_SONIC_CHARGE(ServerVersion.V1_19, v(null, true)),
ENTITY_WARDEN_STEP(ServerVersion.V1_19, v(null, true)),
ENTITY_WARDEN_TENDRIL_CLICKS(ServerVersion.V1_19, v(null, true)),
ITEM_BUCKET_EMPTY_TADPOLE(ServerVersion.V1_19, v(null, true)),
ITEM_BUCKET_FILL_TADPOLE(ServerVersion.V1_19, v(null, true)),
ITEM_GOAT_HORN_PLAY(ServerVersion.V1_19, v(null, true)),
ITEM_GOAT_HORN_SOUND_0(ServerVersion.V1_19, v(null, true)),
ITEM_GOAT_HORN_SOUND_1(ServerVersion.V1_19, v(null, true)),
ITEM_GOAT_HORN_SOUND_2(ServerVersion.V1_19, v(null, true)),
ITEM_GOAT_HORN_SOUND_3(ServerVersion.V1_19, v(null, true)),
ITEM_GOAT_HORN_SOUND_4(ServerVersion.V1_19, v(null, true)),
ITEM_GOAT_HORN_SOUND_5(ServerVersion.V1_19, v(null, true)),
ITEM_GOAT_HORN_SOUND_6(ServerVersion.V1_19, v(null, true)),
ITEM_GOAT_HORN_SOUND_7(ServerVersion.V1_19, v(null, true)),
MUSIC_DISC_5(ServerVersion.V1_19, v(null, true)),
MUSIC_OVERWORLD_DEEP_DARK(ServerVersion.V1_19, v(null, true)),
MUSIC_OVERWORLD_JUNGLE_AND_FOREST(ServerVersion.V1_19, v(null, true)),
MUSIC_OVERWORLD_OLD_GROWTH_TAIGA(ServerVersion.V1_19, v(null, true)),
MUSIC_OVERWORLD_SWAMP(ServerVersion.V1_19, v(null, true)),
/* 1.17 */
// TODO: add similar sounds for older versions
BLOCK_AMETHYST_BLOCK_BREAK(ServerVersion.V1_17, v(null, true)),
BLOCK_AMETHYST_BLOCK_CHIME(ServerVersion.V1_17, v(null, true)),
BLOCK_AMETHYST_BLOCK_FALL(ServerVersion.V1_17, v(null, true)),
BLOCK_AMETHYST_BLOCK_HIT(ServerVersion.V1_17, v(null, true)),
BLOCK_AMETHYST_BLOCK_PLACE(ServerVersion.V1_17, v(null, true)),
BLOCK_AMETHYST_BLOCK_STEP(ServerVersion.V1_17, v(null, true)),
BLOCK_AMETHYST_CLUSTER_BREAK(ServerVersion.V1_17, v(null, true)),
BLOCK_AMETHYST_CLUSTER_FALL(ServerVersion.V1_17, v(null, true)),
BLOCK_AMETHYST_CLUSTER_HIT(ServerVersion.V1_17, v(null, true)),
BLOCK_AMETHYST_CLUSTER_PLACE(ServerVersion.V1_17, v(null, true)),
BLOCK_AMETHYST_CLUSTER_STEP(ServerVersion.V1_17, v(null, true)),
BLOCK_AZALEA_BREAK(ServerVersion.V1_17, v(null, true)),
BLOCK_AZALEA_FALL(ServerVersion.V1_17, v(null, true)),
BLOCK_AZALEA_HIT(ServerVersion.V1_17, v(null, true)),
BLOCK_AZALEA_LEAVES_BREAK(ServerVersion.V1_17, v(null, true)),
BLOCK_AZALEA_LEAVES_FALL(ServerVersion.V1_17, v(null, true)),
BLOCK_AZALEA_LEAVES_HIT(ServerVersion.V1_17, v(null, true)),
BLOCK_AZALEA_LEAVES_PLACE(ServerVersion.V1_17, v(null, true)),
BLOCK_AZALEA_LEAVES_STEP(ServerVersion.V1_17, v(null, true)),
BLOCK_AZALEA_PLACE(ServerVersion.V1_17, v(null, true)),
BLOCK_AZALEA_STEP(ServerVersion.V1_17, v(null, true)),
BLOCK_BIG_DRIPLEAF_BREAK(ServerVersion.V1_17, v(null, true)),
BLOCK_BIG_DRIPLEAF_FALL(ServerVersion.V1_17, v(null, true)),
BLOCK_BIG_DRIPLEAF_HIT(ServerVersion.V1_17, v(null, true)),
BLOCK_BIG_DRIPLEAF_PLACE(ServerVersion.V1_17, v(null, true)),
BLOCK_BIG_DRIPLEAF_STEP(ServerVersion.V1_17, v(null, true)),
BLOCK_BIG_DRIPLEAF_TILT_DOWN(ServerVersion.V1_17, v(null, true)),
BLOCK_BIG_DRIPLEAF_TILT_UP(ServerVersion.V1_17, v(null, true)),
BLOCK_CAKE_ADD_CANDLE(ServerVersion.V1_17, v(null, true)),
BLOCK_CALCITE_BREAK(ServerVersion.V1_17, v(null, true)),
BLOCK_CALCITE_FALL(ServerVersion.V1_17, v(null, true)),
BLOCK_CALCITE_HIT(ServerVersion.V1_17, v(null, true)),
BLOCK_CALCITE_PLACE(ServerVersion.V1_17, v(null, true)),
BLOCK_CALCITE_STEP(ServerVersion.V1_17, v(null, true)),
BLOCK_CANDLE_AMBIENT(ServerVersion.V1_17, v(null, true)),
BLOCK_CANDLE_BREAK(ServerVersion.V1_17, v(null, true)),
BLOCK_CANDLE_EXTINGUISH(ServerVersion.V1_17, v(null, true)),
BLOCK_CANDLE_FALL(ServerVersion.V1_17, v(null, true)),
BLOCK_CANDLE_HIT(ServerVersion.V1_17, v(null, true)),
BLOCK_CANDLE_PLACE(ServerVersion.V1_17, v(null, true)),
BLOCK_CANDLE_STEP(ServerVersion.V1_17, v(null, true)),
BLOCK_CAVE_VINES_BREAK(ServerVersion.V1_17, v(null, true)),
BLOCK_CAVE_VINES_FALL(ServerVersion.V1_17, v(null, true)),
BLOCK_CAVE_VINES_HIT(ServerVersion.V1_17, v(null, true)),
BLOCK_CAVE_VINES_PICK_BERRIES(ServerVersion.V1_17, v(null, true)),
BLOCK_CAVE_VINES_PLACE(ServerVersion.V1_17, v(null, true)),
BLOCK_CAVE_VINES_STEP(ServerVersion.V1_17, v(null, true)),
BLOCK_COPPER_BREAK(ServerVersion.V1_17, v(null, true)),
BLOCK_COPPER_FALL(ServerVersion.V1_17, v(null, true)),
BLOCK_COPPER_HIT(ServerVersion.V1_17, v(null, true)),
BLOCK_COPPER_PLACE(ServerVersion.V1_17, v(null, true)),
BLOCK_COPPER_STEP(ServerVersion.V1_17, v(null, true)),
BLOCK_DEEPSLATE_BREAK(ServerVersion.V1_17, v(null, true)),
BLOCK_DEEPSLATE_BRICKS_BREAK(ServerVersion.V1_17, v(null, true)),
BLOCK_DEEPSLATE_BRICKS_FALL(ServerVersion.V1_17, v(null, true)),
BLOCK_DEEPSLATE_BRICKS_HIT(ServerVersion.V1_17, v(null, true)),
BLOCK_DEEPSLATE_BRICKS_PLACE(ServerVersion.V1_17, v(null, true)),
BLOCK_DEEPSLATE_BRICKS_STEP(ServerVersion.V1_17, v(null, true)),
BLOCK_DEEPSLATE_FALL(ServerVersion.V1_17, v(null, true)),
BLOCK_DEEPSLATE_HIT(ServerVersion.V1_17, v(null, true)),
BLOCK_DEEPSLATE_PLACE(ServerVersion.V1_17, v(null, true)),
BLOCK_DEEPSLATE_STEP(ServerVersion.V1_17, v(null, true)),
BLOCK_DEEPSLATE_TILES_BREAK(ServerVersion.V1_17, v(null, true)),
BLOCK_DEEPSLATE_TILES_FALL(ServerVersion.V1_17, v(null, true)),
BLOCK_DEEPSLATE_TILES_HIT(ServerVersion.V1_17, v(null, true)),
BLOCK_DEEPSLATE_TILES_PLACE(ServerVersion.V1_17, v(null, true)),
BLOCK_DEEPSLATE_TILES_STEP(ServerVersion.V1_17, v(null, true)),
BLOCK_DRIPSTONE_BLOCK_BREAK(ServerVersion.V1_17, v(null, true)),
BLOCK_DRIPSTONE_BLOCK_FALL(ServerVersion.V1_17, v(null, true)),
BLOCK_DRIPSTONE_BLOCK_HIT(ServerVersion.V1_17, v(null, true)),
BLOCK_DRIPSTONE_BLOCK_PLACE(ServerVersion.V1_17, v(null, true)),
BLOCK_DRIPSTONE_BLOCK_STEP(ServerVersion.V1_17, v(null, true)),
BLOCK_FLOWERING_AZALEA_BREAK(ServerVersion.V1_17, v(null, true)),
BLOCK_FLOWERING_AZALEA_FALL(ServerVersion.V1_17, v(null, true)),
BLOCK_FLOWERING_AZALEA_HIT(ServerVersion.V1_17, v(null, true)),
BLOCK_FLOWERING_AZALEA_PLACE(ServerVersion.V1_17, v(null, true)),
BLOCK_FLOWERING_AZALEA_STEP(ServerVersion.V1_17, v(null, true)),
BLOCK_HANGING_ROOTS_BREAK(ServerVersion.V1_17, v(null, true)),
BLOCK_HANGING_ROOTS_FALL(ServerVersion.V1_17, v(null, true)),
BLOCK_HANGING_ROOTS_HIT(ServerVersion.V1_17, v(null, true)),
BLOCK_HANGING_ROOTS_PLACE(ServerVersion.V1_17, v(null, true)),
BLOCK_HANGING_ROOTS_STEP(ServerVersion.V1_17, v(null, true)),
BLOCK_LARGE_AMETHYST_BUD_BREAK(ServerVersion.V1_17, v(null, true)),
BLOCK_LARGE_AMETHYST_BUD_PLACE(ServerVersion.V1_17, v(null, true)),
BLOCK_MEDIUM_AMETHYST_BUD_BREAK(ServerVersion.V1_17, v(null, true)),
BLOCK_MEDIUM_AMETHYST_BUD_PLACE(ServerVersion.V1_17, v(null, true)),
BLOCK_MOSS_BREAK(ServerVersion.V1_17, v(null, true)),
BLOCK_MOSS_CARPET_BREAK(ServerVersion.V1_17, v(null, true)),
BLOCK_MOSS_CARPET_FALL(ServerVersion.V1_17, v(null, true)),
BLOCK_MOSS_CARPET_HIT(ServerVersion.V1_17, v(null, true)),
BLOCK_MOSS_CARPET_PLACE(ServerVersion.V1_17, v(null, true)),
BLOCK_MOSS_CARPET_STEP(ServerVersion.V1_17, v(null, true)),
BLOCK_MOSS_FALL(ServerVersion.V1_17, v(null, true)),
BLOCK_MOSS_HIT(ServerVersion.V1_17, v(null, true)),
BLOCK_MOSS_PLACE(ServerVersion.V1_17, v(null, true)),
BLOCK_MOSS_STEP(ServerVersion.V1_17, v(null, true)),
BLOCK_POINTED_DRIPSTONE_BREAK(ServerVersion.V1_17, v(null, true)),
BLOCK_POINTED_DRIPSTONE_DRIP_LAVA(ServerVersion.V1_17, v(null, true)),
BLOCK_POINTED_DRIPSTONE_DRIP_LAVA_INTO_CAULDRON(ServerVersion.V1_17, v(null, true)),
BLOCK_POINTED_DRIPSTONE_DRIP_WATER(ServerVersion.V1_17, v(null, true)),
BLOCK_POINTED_DRIPSTONE_DRIP_WATER_INTO_CAULDRON(ServerVersion.V1_17, v(null, true)),
BLOCK_POINTED_DRIPSTONE_FALL(ServerVersion.V1_17, v(null, true)),
BLOCK_POINTED_DRIPSTONE_HIT(ServerVersion.V1_17, v(null, true)),
BLOCK_POINTED_DRIPSTONE_LAND(ServerVersion.V1_17, v(null, true)),
BLOCK_POINTED_DRIPSTONE_PLACE(ServerVersion.V1_17, v(null, true)),
BLOCK_POINTED_DRIPSTONE_STEP(ServerVersion.V1_17, v(null, true)),
BLOCK_POLISHED_DEEPSLATE_BREAK(ServerVersion.V1_17, v(null, true)),
BLOCK_POLISHED_DEEPSLATE_FALL(ServerVersion.V1_17, v(null, true)),
BLOCK_POLISHED_DEEPSLATE_HIT(ServerVersion.V1_17, v(null, true)),
BLOCK_POLISHED_DEEPSLATE_PLACE(ServerVersion.V1_17, v(null, true)),
BLOCK_POLISHED_DEEPSLATE_STEP(ServerVersion.V1_17, v(null, true)),
BLOCK_POWDER_SNOW_BREAK(ServerVersion.V1_17, v(null, true)),
BLOCK_POWDER_SNOW_FALL(ServerVersion.V1_17, v(null, true)),
BLOCK_POWDER_SNOW_HIT(ServerVersion.V1_17, v(null, true)),
BLOCK_POWDER_SNOW_PLACE(ServerVersion.V1_17, v(null, true)),
BLOCK_POWDER_SNOW_STEP(ServerVersion.V1_17, v(null, true)),
BLOCK_ROOTED_DIRT_BREAK(ServerVersion.V1_17, v(null, true)),
BLOCK_ROOTED_DIRT_FALL(ServerVersion.V1_17, v(null, true)),
BLOCK_ROOTED_DIRT_HIT(ServerVersion.V1_17, v(null, true)),
BLOCK_ROOTED_DIRT_PLACE(ServerVersion.V1_17, v(null, true)),
BLOCK_ROOTED_DIRT_STEP(ServerVersion.V1_17, v(null, true)),
BLOCK_SCULK_SENSOR_BREAK(ServerVersion.V1_17, v(null, true)),
BLOCK_SCULK_SENSOR_CLICKING(ServerVersion.V1_17, v(null, true)),
BLOCK_SCULK_SENSOR_CLICKING_STOP(ServerVersion.V1_17, v(null, true)),
BLOCK_SCULK_SENSOR_FALL(ServerVersion.V1_17, v(null, true)),
BLOCK_SCULK_SENSOR_HIT(ServerVersion.V1_17, v(null, true)),
BLOCK_SCULK_SENSOR_PLACE(ServerVersion.V1_17, v(null, true)),
BLOCK_SCULK_SENSOR_STEP(ServerVersion.V1_17, v(null, true)),
BLOCK_SMALL_AMETHYST_BUD_BREAK(ServerVersion.V1_17, v(null, true)),
BLOCK_SMALL_AMETHYST_BUD_PLACE(ServerVersion.V1_17, v(null, true)),
BLOCK_SMALL_DRIPLEAF_BREAK(ServerVersion.V1_17, v(null, true)),
BLOCK_SMALL_DRIPLEAF_FALL(ServerVersion.V1_17, v(null, true)),
BLOCK_SMALL_DRIPLEAF_HIT(ServerVersion.V1_17, v(null, true)),
BLOCK_SMALL_DRIPLEAF_PLACE(ServerVersion.V1_17, v(null, true)),
BLOCK_SMALL_DRIPLEAF_STEP(ServerVersion.V1_17, v(null, true)),
BLOCK_SPORE_BLOSSOM_BREAK(ServerVersion.V1_17, v(null, true)),
BLOCK_SPORE_BLOSSOM_FALL(ServerVersion.V1_17, v(null, true)),
BLOCK_SPORE_BLOSSOM_HIT(ServerVersion.V1_17, v(null, true)),
BLOCK_SPORE_BLOSSOM_PLACE(ServerVersion.V1_17, v(null, true)),
BLOCK_SPORE_BLOSSOM_STEP(ServerVersion.V1_17, v(null, true)),
BLOCK_SWEET_BERRY_BUSH_PICK_BERRIES(ServerVersion.V1_17, v(null, true)), // "ITEM_SWEET_BERRIES_PICK_FROM_BUSH"
BLOCK_TUFF_BREAK(ServerVersion.V1_17, v(null, true)),
BLOCK_TUFF_FALL(ServerVersion.V1_17, v(null, true)),
BLOCK_TUFF_HIT(ServerVersion.V1_17, v(null, true)),
BLOCK_TUFF_PLACE(ServerVersion.V1_17, v(null, true)),
BLOCK_TUFF_STEP(ServerVersion.V1_17, v(null, true)),
BLOCK_VINE_BREAK(ServerVersion.V1_17, v(null, true)),
BLOCK_VINE_FALL(ServerVersion.V1_17, v(null, true)),
BLOCK_VINE_HIT(ServerVersion.V1_17, v(null, true)),
BLOCK_VINE_PLACE(ServerVersion.V1_17, v(null, true)),
ENTITY_AXOLOTL_ATTACK(ServerVersion.V1_17, v(null, true)),
ENTITY_AXOLOTL_DEATH(ServerVersion.V1_17, v(null, true)),
ENTITY_AXOLOTL_HURT(ServerVersion.V1_17, v(null, true)),
ENTITY_AXOLOTL_IDLE_AIR(ServerVersion.V1_17, v(null, true)),
ENTITY_AXOLOTL_IDLE_WATER(ServerVersion.V1_17, v(null, true)),
ENTITY_AXOLOTL_SPLASH(ServerVersion.V1_17, v(null, true)),
ENTITY_AXOLOTL_SWIM(ServerVersion.V1_17, v(null, true)),
ENTITY_GLOW_ITEM_FRAME_ADD_ITEM(ServerVersion.V1_17, v(null, true)),
ENTITY_GLOW_ITEM_FRAME_BREAK(ServerVersion.V1_17, v(null, true)),
ENTITY_GLOW_ITEM_FRAME_PLACE(ServerVersion.V1_17, v(null, true)),
ENTITY_GLOW_ITEM_FRAME_REMOVE_ITEM(ServerVersion.V1_17, v(null, true)),
ENTITY_GLOW_ITEM_FRAME_ROTATE_ITEM(ServerVersion.V1_17, v(null, true)),
ENTITY_GLOW_SQUID_AMBIENT(ServerVersion.V1_17, v(null, true)),
ENTITY_GLOW_SQUID_DEATH(ServerVersion.V1_17, v(null, true)),
ENTITY_GLOW_SQUID_HURT(ServerVersion.V1_17, v(null, true)),
ENTITY_GLOW_SQUID_SQUIRT(ServerVersion.V1_17, v(null, true)),
ENTITY_GOAT_AMBIENT(ServerVersion.V1_17, v(null, true)),
ENTITY_GOAT_DEATH(ServerVersion.V1_17, v(null, true)),
ENTITY_GOAT_EAT(ServerVersion.V1_17, v(null, true)),
ENTITY_GOAT_HURT(ServerVersion.V1_17, v(null, true)),
ENTITY_GOAT_LONG_JUMP(ServerVersion.V1_17, v(null, true)),
ENTITY_GOAT_MILK(ServerVersion.V1_17, v(null, true)),
ENTITY_GOAT_PREPARE_RAM(ServerVersion.V1_17, v(null, true)),
ENTITY_GOAT_RAM_IMPACT(ServerVersion.V1_17, v(null, true)),
ENTITY_GOAT_SCREAMING_AMBIENT(ServerVersion.V1_17, v(null, true)),
ENTITY_GOAT_SCREAMING_DEATH(ServerVersion.V1_17, v(null, true)),
ENTITY_GOAT_SCREAMING_EAT(ServerVersion.V1_17, v(null, true)),
ENTITY_GOAT_SCREAMING_HURT(ServerVersion.V1_17, v(null, true)),
ENTITY_GOAT_SCREAMING_LONG_JUMP(ServerVersion.V1_17, v(null, true)),
ENTITY_GOAT_SCREAMING_MILK(ServerVersion.V1_17, v(null, true)),
ENTITY_GOAT_SCREAMING_PREPARE_RAM(ServerVersion.V1_17, v(null, true)),
ENTITY_GOAT_SCREAMING_RAM_IMPACT(ServerVersion.V1_17, v(null, true)),
ENTITY_GOAT_STEP(ServerVersion.V1_17, v(null, true)),
ENTITY_MINECART_INSIDE_UNDERWATER(ServerVersion.V1_17, v(null, true)),
ENTITY_PARROT_IMITATE_PIGLIN_BRUTE(ServerVersion.V1_17, v(null, true)),
ENTITY_PIGLIN_BRUTE_AMBIENT(ServerVersion.V1_17, v(null, true)),
ENTITY_PIGLIN_BRUTE_ANGRY(ServerVersion.V1_17, v(null, true)),
ENTITY_PIGLIN_BRUTE_CONVERTED_TO_ZOMBIFIED(ServerVersion.V1_17, v(null, true)),
ENTITY_PIGLIN_BRUTE_DEATH(ServerVersion.V1_17, v(null, true)),
ENTITY_PIGLIN_BRUTE_HURT(ServerVersion.V1_17, v(null, true)),
ENTITY_PIGLIN_BRUTE_STEP(ServerVersion.V1_17, v(null, true)),
ENTITY_PLAYER_HURT_FREEZE(ServerVersion.V1_17, v(null, true)),
ENTITY_SKELETON_CONVERTED_TO_STRAY(ServerVersion.V1_17, v(null, true)),
ITEM_AXE_SCRAPE(ServerVersion.V1_17, v(null, true)),
ITEM_AXE_WAX_OFF(ServerVersion.V1_17, v(null, true)),
ITEM_BONE_MEAL_USE(ServerVersion.V1_17, v(null, true)),
ITEM_BUCKET_EMPTY_AXOLOTL(ServerVersion.V1_17, v(null, true)),
ITEM_BUCKET_EMPTY_POWDER_SNOW(ServerVersion.V1_17, v(null, true)),
ITEM_BUCKET_FILL_AXOLOTL(ServerVersion.V1_17, v(null, true)),
ITEM_BUCKET_FILL_POWDER_SNOW(ServerVersion.V1_17, v(null, true)),
ITEM_GLOW_INK_SAC_USE(ServerVersion.V1_17, v(null, true)),
ITEM_HONEYCOMB_WAX_ON(ServerVersion.V1_17, v(null, true)),
ITEM_INK_SAC_USE(ServerVersion.V1_17, v(null, true)),
ITEM_SPYGLASS_STOP_USING(ServerVersion.V1_17, v(null, true)),
ITEM_SPYGLASS_USE(ServerVersion.V1_17, v(null, true)),
ITEM_DYE_USE(ServerVersion.V1_17, v(null, true)),
/* 1.16 */
// TODO: add similar sounds for older versions
AMBIENT_BASALT_DELTAS_ADDITIONS(ServerVersion.V1_16, v(null, true)),
AMBIENT_BASALT_DELTAS_LOOP(ServerVersion.V1_16, v(null, true)),
AMBIENT_BASALT_DELTAS_MOOD(ServerVersion.V1_16, v(null, true)),
AMBIENT_CRIMSON_FOREST_ADDITIONS(ServerVersion.V1_16, v(null, true)),
AMBIENT_CRIMSON_FOREST_LOOP(ServerVersion.V1_16, v(null, true)),
AMBIENT_CRIMSON_FOREST_MOOD(ServerVersion.V1_16, v(null, true)),
AMBIENT_NETHER_WASTES_ADDITIONS(ServerVersion.V1_16, v(null, true)),
AMBIENT_NETHER_WASTES_LOOP(ServerVersion.V1_16, v(null, true)),
AMBIENT_NETHER_WASTES_MOOD(ServerVersion.V1_16, v(null, true)),
AMBIENT_SOUL_SAND_VALLEY_ADDITIONS(ServerVersion.V1_16, v(null, true)),
AMBIENT_SOUL_SAND_VALLEY_LOOP(ServerVersion.V1_16, v(null, true)),
AMBIENT_SOUL_SAND_VALLEY_MOOD(ServerVersion.V1_16, v(null, true)),
AMBIENT_WARPED_FOREST_ADDITIONS(ServerVersion.V1_16, v(null, true)),
AMBIENT_WARPED_FOREST_LOOP(ServerVersion.V1_16, v(null, true)),
AMBIENT_WARPED_FOREST_MOOD(ServerVersion.V1_16, v(null, true)),
BLOCK_ANCIENT_DEBRIS_BREAK(ServerVersion.V1_16, v(null, true)),
BLOCK_ANCIENT_DEBRIS_FALL(ServerVersion.V1_16, v(null, true)),
BLOCK_ANCIENT_DEBRIS_HIT(ServerVersion.V1_16, v(null, true)),
BLOCK_ANCIENT_DEBRIS_PLACE(ServerVersion.V1_16, v(null, true)),
BLOCK_ANCIENT_DEBRIS_STEP(ServerVersion.V1_16, v(null, true)),
BLOCK_BASALT_BREAK(ServerVersion.V1_16, v(null, true)),
BLOCK_BASALT_FALL(ServerVersion.V1_16, v(null, true)),
BLOCK_BASALT_HIT(ServerVersion.V1_16, v(null, true)),
BLOCK_BASALT_PLACE(ServerVersion.V1_16, v(null, true)),
BLOCK_BASALT_STEP(ServerVersion.V1_16, v(null, true)),
BLOCK_BONE_BLOCK_BREAK(ServerVersion.V1_16, v(null, true)),
BLOCK_BONE_BLOCK_FALL(ServerVersion.V1_16, v(null, true)),
BLOCK_BONE_BLOCK_HIT(ServerVersion.V1_16, v(null, true)),
BLOCK_BONE_BLOCK_PLACE(ServerVersion.V1_16, v(null, true)),
BLOCK_BONE_BLOCK_STEP(ServerVersion.V1_16, v(null, true)),
BLOCK_CHAIN_BREAK(ServerVersion.V1_16, v(null, true)),
BLOCK_CHAIN_FALL(ServerVersion.V1_16, v(null, true)),
BLOCK_CHAIN_HIT(ServerVersion.V1_16, v(null, true)),
BLOCK_CHAIN_PLACE(ServerVersion.V1_16, v(null, true)),
BLOCK_CHAIN_STEP(ServerVersion.V1_16, v(null, true)),
BLOCK_FUNGUS_BREAK(ServerVersion.V1_16, v(null, true)),
BLOCK_FUNGUS_FALL(ServerVersion.V1_16, v(null, true)),
BLOCK_FUNGUS_HIT(ServerVersion.V1_16, v(null, true)),
BLOCK_FUNGUS_PLACE(ServerVersion.V1_16, v(null, true)),
BLOCK_FUNGUS_STEP(ServerVersion.V1_16, v(null, true)),
BLOCK_GILDED_BLACKSTONE_BREAK(ServerVersion.V1_16, v(null, true)),
BLOCK_GILDED_BLACKSTONE_FALL(ServerVersion.V1_16, v(null, true)),
BLOCK_GILDED_BLACKSTONE_HIT(ServerVersion.V1_16, v(null, true)),
BLOCK_GILDED_BLACKSTONE_PLACE(ServerVersion.V1_16, v(null, true)),
BLOCK_GILDED_BLACKSTONE_STEP(ServerVersion.V1_16, v(null, true)),
BLOCK_LODESTONE_BREAK(ServerVersion.V1_16, v(null, true)),
BLOCK_LODESTONE_FALL(ServerVersion.V1_16, v(null, true)),
BLOCK_LODESTONE_HIT(ServerVersion.V1_16, v(null, true)),
BLOCK_LODESTONE_PLACE(ServerVersion.V1_16, v(null, true)),
BLOCK_LODESTONE_STEP(ServerVersion.V1_16, v(null, true)),
BLOCK_NETHERITE_BLOCK_BREAK(ServerVersion.V1_16, v(null, true)),
BLOCK_NETHERITE_BLOCK_FALL(ServerVersion.V1_16, v(null, true)),
BLOCK_NETHERITE_BLOCK_HIT(ServerVersion.V1_16, v(null, true)),
BLOCK_NETHERITE_BLOCK_PLACE(ServerVersion.V1_16, v(null, true)),
BLOCK_NETHERITE_BLOCK_STEP(ServerVersion.V1_16, v(null, true)),
BLOCK_NETHERRACK_BREAK(ServerVersion.V1_16, v(null, true)),
BLOCK_NETHERRACK_FALL(ServerVersion.V1_16, v(null, true)),
BLOCK_NETHERRACK_HIT(ServerVersion.V1_16, v(null, true)),
BLOCK_NETHERRACK_PLACE(ServerVersion.V1_16, v(null, true)),
BLOCK_NETHERRACK_STEP(ServerVersion.V1_16, v(null, true)),
BLOCK_NETHER_BRICKS_BREAK(ServerVersion.V1_16, v(null, true)),
BLOCK_NETHER_BRICKS_FALL(ServerVersion.V1_16, v(null, true)),
BLOCK_NETHER_BRICKS_HIT(ServerVersion.V1_16, v(null, true)),
BLOCK_NETHER_BRICKS_PLACE(ServerVersion.V1_16, v(null, true)),
BLOCK_NETHER_BRICKS_STEP(ServerVersion.V1_16, v(null, true)),
BLOCK_NETHER_GOLD_ORE_BREAK(ServerVersion.V1_16, v(null, true)),
BLOCK_NETHER_GOLD_ORE_FALL(ServerVersion.V1_16, v(null, true)),
BLOCK_NETHER_GOLD_ORE_HIT(ServerVersion.V1_16, v(null, true)),
BLOCK_NETHER_GOLD_ORE_PLACE(ServerVersion.V1_16, v(null, true)),
BLOCK_NETHER_GOLD_ORE_STEP(ServerVersion.V1_16, v(null, true)),
BLOCK_NETHER_ORE_BREAK(ServerVersion.V1_16, v(null, true)),
BLOCK_NETHER_ORE_FALL(ServerVersion.V1_16, v(null, true)),
BLOCK_NETHER_ORE_HIT(ServerVersion.V1_16, v(null, true)),
BLOCK_NETHER_ORE_PLACE(ServerVersion.V1_16, v(null, true)),
BLOCK_NETHER_ORE_STEP(ServerVersion.V1_16, v(null, true)),
BLOCK_NETHER_SPROUTS_BREAK(ServerVersion.V1_16, v(null, true)),
BLOCK_NETHER_SPROUTS_FALL(ServerVersion.V1_16, v(null, true)),
BLOCK_NETHER_SPROUTS_HIT(ServerVersion.V1_16, v(null, true)),
BLOCK_NETHER_SPROUTS_PLACE(ServerVersion.V1_16, v(null, true)),
BLOCK_NETHER_SPROUTS_STEP(ServerVersion.V1_16, v(null, true)),
BLOCK_NYLIUM_BREAK(ServerVersion.V1_16, v(null, true)),
BLOCK_NYLIUM_FALL(ServerVersion.V1_16, v(null, true)),
BLOCK_NYLIUM_HIT(ServerVersion.V1_16, v(null, true)),
BLOCK_NYLIUM_PLACE(ServerVersion.V1_16, v(null, true)),
BLOCK_NYLIUM_STEP(ServerVersion.V1_16, v(null, true)),
BLOCK_RESPAWN_ANCHOR_AMBIENT(ServerVersion.V1_16, v(null, true)),
BLOCK_RESPAWN_ANCHOR_CHARGE(ServerVersion.V1_16, v(null, true)),
BLOCK_RESPAWN_ANCHOR_DEPLETE(ServerVersion.V1_16, v(null, true)),
BLOCK_RESPAWN_ANCHOR_SET_SPAWN(ServerVersion.V1_16, v(null, true)),
BLOCK_ROOTS_BREAK(ServerVersion.V1_16, v(null, true)),
BLOCK_ROOTS_FALL(ServerVersion.V1_16, v(null, true)),
BLOCK_ROOTS_HIT(ServerVersion.V1_16, v(null, true)),
BLOCK_ROOTS_PLACE(ServerVersion.V1_16, v(null, true)),
BLOCK_ROOTS_STEP(ServerVersion.V1_16, v(null, true)),
BLOCK_SHROOMLIGHT_BREAK(ServerVersion.V1_16, v(null, true)),
BLOCK_SHROOMLIGHT_FALL(ServerVersion.V1_16, v(null, true)),
BLOCK_SHROOMLIGHT_HIT(ServerVersion.V1_16, v(null, true)),
BLOCK_SHROOMLIGHT_PLACE(ServerVersion.V1_16, v(null, true)),
BLOCK_SHROOMLIGHT_STEP(ServerVersion.V1_16, v(null, true)),
BLOCK_SMITHING_TABLE_USE(ServerVersion.V1_16, v(null, true)),
BLOCK_SOUL_SAND_BREAK(ServerVersion.V1_16, v(null, true)),
BLOCK_SOUL_SAND_FALL(ServerVersion.V1_16, v(null, true)),
BLOCK_SOUL_SAND_HIT(ServerVersion.V1_16, v(null, true)),
BLOCK_SOUL_SAND_PLACE(ServerVersion.V1_16, v(null, true)),
BLOCK_SOUL_SAND_STEP(ServerVersion.V1_16, v(null, true)),
BLOCK_SOUL_SOIL_BREAK(ServerVersion.V1_16, v(null, true)),
BLOCK_SOUL_SOIL_FALL(ServerVersion.V1_16, v(null, true)),
BLOCK_SOUL_SOIL_HIT(ServerVersion.V1_16, v(null, true)),
BLOCK_SOUL_SOIL_PLACE(ServerVersion.V1_16, v(null, true)),
BLOCK_SOUL_SOIL_STEP(ServerVersion.V1_16, v(null, true)),
BLOCK_STEM_BREAK(ServerVersion.V1_16, v(null, true)),
BLOCK_STEM_FALL(ServerVersion.V1_16, v(null, true)),
BLOCK_STEM_HIT(ServerVersion.V1_16, v(null, true)),
BLOCK_STEM_PLACE(ServerVersion.V1_16, v(null, true)),
BLOCK_STEM_STEP(ServerVersion.V1_16, v(null, true)),
BLOCK_VINE_STEP(ServerVersion.V1_16, v(null, true)),
BLOCK_WART_BLOCK_BREAK(ServerVersion.V1_16, v(null, true)),
BLOCK_WART_BLOCK_FALL(ServerVersion.V1_16, v(null, true)),
BLOCK_WART_BLOCK_HIT(ServerVersion.V1_16, v(null, true)),
BLOCK_WART_BLOCK_PLACE(ServerVersion.V1_16, v(null, true)),
BLOCK_WART_BLOCK_STEP(ServerVersion.V1_16, v(null, true)),
BLOCK_WEEPING_VINES_BREAK(ServerVersion.V1_16, v(null, true)),
BLOCK_WEEPING_VINES_FALL(ServerVersion.V1_16, v(null, true)),
BLOCK_WEEPING_VINES_HIT(ServerVersion.V1_16, v(null, true)),
BLOCK_WEEPING_VINES_PLACE(ServerVersion.V1_16, v(null, true)),
BLOCK_WEEPING_VINES_STEP(ServerVersion.V1_16, v(null, true)),
ENTITY_DONKEY_EAT(ServerVersion.V1_16, v(null, true)),
ENTITY_FOX_TELEPORT(ServerVersion.V1_16, v(null, true)),
ENTITY_MULE_ANGRY(ServerVersion.V1_16, v(null, true)),
ENTITY_MULE_EAT(ServerVersion.V1_16, v(null, true)),
ENTITY_PARROT_IMITATE_HOGLIN(ServerVersion.V1_16, v(null, true)),
ENTITY_PARROT_IMITATE_PIGLIN(ServerVersion.V1_16, v(null, true)),
ENTITY_PARROT_IMITATE_ZOGLIN(ServerVersion.V1_16, v(null, true)),
ENTITY_PIGLIN_ADMIRING_ITEM(ServerVersion.V1_16, v(null, true)),
ENTITY_PIGLIN_AMBIENT(ServerVersion.V1_16, v(null, true)),
ENTITY_PIGLIN_ANGRY(ServerVersion.V1_16, v(null, true)),
ENTITY_PIGLIN_CELEBRATE(ServerVersion.V1_16, v(null, true)),
ENTITY_PIGLIN_CONVERTED_TO_ZOMBIFIED(ServerVersion.V1_16, v(null, true)),
ENTITY_PIGLIN_DEATH(ServerVersion.V1_16, v(null, true)),
ENTITY_PIGLIN_HURT(ServerVersion.V1_16, v(null, true)),
ENTITY_PIGLIN_JEALOUS(ServerVersion.V1_16, v(null, true)),
ENTITY_PIGLIN_RETREAT(ServerVersion.V1_16, v(null, true)),
ENTITY_PIGLIN_STEP(ServerVersion.V1_16, v(null, true)),
ENTITY_SNOW_GOLEM_SHEAR(ServerVersion.V1_16, v(null, true)),
ENTITY_STRIDER_AMBIENT(ServerVersion.V1_16, v(null, true)),
ENTITY_STRIDER_DEATH(ServerVersion.V1_16, v(null, true)),
ENTITY_STRIDER_EAT(ServerVersion.V1_16, v(null, true)),
ENTITY_STRIDER_HAPPY(ServerVersion.V1_16, v(null, true)),
ENTITY_STRIDER_HURT(ServerVersion.V1_16, v(null, true)),
ENTITY_STRIDER_RETREAT(ServerVersion.V1_16, v(null, true)),
ENTITY_STRIDER_SADDLE(ServerVersion.V1_16, v(null, true)),
ENTITY_STRIDER_STEP(ServerVersion.V1_16, v(null, true)),
ENTITY_STRIDER_STEP_LAVA(ServerVersion.V1_16, v(null, true)),
ENTITY_ZOGLIN_AMBIENT(ServerVersion.V1_16, v(null, true)),
ENTITY_ZOGLIN_ANGRY(ServerVersion.V1_16, v(null, true)),
ENTITY_ZOGLIN_ATTACK(ServerVersion.V1_16, v(null, true)),
ENTITY_ZOGLIN_DEATH(ServerVersion.V1_16, v(null, true)),
ENTITY_ZOGLIN_HURT(ServerVersion.V1_16, v(null, true)),
ENTITY_ZOGLIN_STEP(ServerVersion.V1_16, v(null, true)),
ENTITY_ZOMBIFIED_PIGLIN_AMBIENT(ServerVersion.V1_16, v(null, true)),
ENTITY_ZOMBIFIED_PIGLIN_ANGRY(ServerVersion.V1_16, v(null, true)),
ENTITY_ZOMBIFIED_PIGLIN_DEATH(ServerVersion.V1_16, v(null, true)),
ENTITY_ZOMBIFIED_PIGLIN_HURT(ServerVersion.V1_16, v(null, true)),
ITEM_ARMOR_EQUIP_NETHERITE(ServerVersion.V1_16, v(null, true)),
ITEM_LODESTONE_COMPASS_LOCK(ServerVersion.V1_16, v(null, true)),
MUSIC_DISC_PIGSTEP(ServerVersion.V1_16, v(null, true)),
MUSIC_NETHER_BASALT_DELTAS(ServerVersion.V1_16, v(null, true)),
MUSIC_NETHER_CRIMSON_FOREST(ServerVersion.V1_16, v(null, true)),
MUSIC_NETHER_NETHER_WASTES(ServerVersion.V1_16, v(null, true)),
MUSIC_NETHER_SOUL_SAND_VALLEY(ServerVersion.V1_16, v(null, true)),
MUSIC_NETHER_WARPED_FOREST(ServerVersion.V1_16, v(null, true)),
PARTICLE_SOUL_ESCAPE(ServerVersion.V1_16, v(null, true)),
/* 1.15 */
// TODO: add similar sounds for older versions
BLOCK_BEEHIVE_DRIP(ServerVersion.V1_15, v(null, true)),
BLOCK_BEEHIVE_ENTER(ServerVersion.V1_15, v(null, true)),
BLOCK_BEEHIVE_EXIT(ServerVersion.V1_15, v(null, true)),
BLOCK_BEEHIVE_SHEAR(ServerVersion.V1_15, v(null, true)),
BLOCK_BEEHIVE_WORK(ServerVersion.V1_15, v(null, true)),
BLOCK_HONEY_BLOCK_BREAK(ServerVersion.V1_15, v(null, true)),
BLOCK_HONEY_BLOCK_FALL(ServerVersion.V1_15, v(null, true)),
BLOCK_HONEY_BLOCK_HIT(ServerVersion.V1_15, v(null, true)),
BLOCK_HONEY_BLOCK_PLACE(ServerVersion.V1_15, v(null, true)),
BLOCK_HONEY_BLOCK_SLIDE(ServerVersion.V1_15, v(null, true)),
BLOCK_HONEY_BLOCK_STEP(ServerVersion.V1_15, v(null, true)),
ENTITY_BEE_DEATH(ServerVersion.V1_15, v(null, true)),
ENTITY_BEE_HURT(ServerVersion.V1_15, v(null, true)),
ENTITY_BEE_LOOP(ServerVersion.V1_15, v(null, true)),
ENTITY_BEE_LOOP_AGGRESSIVE(ServerVersion.V1_15, v(null, true)),
ENTITY_BEE_POLLINATE(ServerVersion.V1_15, v(null, true)),
ENTITY_BEE_STING(ServerVersion.V1_15, v(null, true)),
ENTITY_IRON_GOLEM_DAMAGE(ServerVersion.V1_15, v(null, true)),
ENTITY_IRON_GOLEM_REPAIR(ServerVersion.V1_15, v(null, true)),
ITEM_HONEY_BOTTLE_DRINK(ServerVersion.V1_15, v(null, true)),
AMBIENT_CAVE(ServerVersion.V1_9, v("AMBIENCE_CAVE")),
AMBIENT_UNDERWATER_ENTER,
AMBIENT_UNDERWATER_EXIT,
AMBIENT_UNDERWATER_LOOP,
AMBIENT_UNDERWATER_LOOP_ADDITIONS,
AMBIENT_UNDERWATER_LOOP_ADDITIONS_RARE,
AMBIENT_UNDERWATER_LOOP_ADDITIONS_ULTRA_RARE,
BLOCK_ANVIL_BREAK(ServerVersion.V1_9, v("ANVIL_BREAK")),
BLOCK_ANVIL_DESTROY(ServerVersion.V1_9, v("ANVIL_BREAK", true)),
BLOCK_ANVIL_FALL(ServerVersion.V1_9, v("ANVIL_LAND", true)),
BLOCK_ANVIL_HIT(ServerVersion.V1_9, v("ANVIL_LAND", true)),
BLOCK_ANVIL_LAND(ServerVersion.V1_9, v("ANVIL_LAND")),
BLOCK_ANVIL_PLACE(ServerVersion.V1_9, v("ANVIL_LAND", true)),
BLOCK_ANVIL_STEP(ServerVersion.V1_9, v("ANVIL_LAND", true)),
BLOCK_ANVIL_USE("ANVIL_USE"),
BLOCK_BAMBOO_BREAK(ServerVersion.V1_14, v(ServerVersion.V1_9, "BLOCK_WOOD_BREAK"), v(ServerVersion.V1_8, "DIG_WOOD")),
BLOCK_BAMBOO_FALL,
BLOCK_BAMBOO_HIT,
BLOCK_BAMBOO_PLACE,
BLOCK_BAMBOO_SAPLING_BREAK,
BLOCK_BAMBOO_SAPLING_HIT,
BLOCK_BAMBOO_SAPLING_PLACE,
BLOCK_BAMBOO_STEP,
BLOCK_BARREL_CLOSE,
BLOCK_BARREL_OPEN,
BLOCK_BEACON_ACTIVATE,
BLOCK_BEACON_AMBIENT,
BLOCK_BEACON_DEACTIVATE,
BLOCK_BEACON_POWER_SELECT,
BLOCK_BELL_RESONATE,
BLOCK_BELL_USE,
BLOCK_BLASTFURNACE_FIRE_CRACKLE,
BLOCK_BREWING_STAND_BREW(ServerVersion.V1_9, v("LAVA_POP", true)),
BLOCK_BUBBLE_COLUMN_BUBBLE_POP,
BLOCK_BUBBLE_COLUMN_UPWARDS_AMBIENT,
BLOCK_BUBBLE_COLUMN_UPWARDS_INSIDE,
BLOCK_BUBBLE_COLUMN_WHIRLPOOL_AMBIENT,
BLOCK_BUBBLE_COLUMN_WHIRLPOOL_INSIDE,
BLOCK_CAMPFIRE_CRACKLE,
BLOCK_CHEST_CLOSE(ServerVersion.V1_9, v("CHEST_CLOSE")),
BLOCK_CHEST_LOCKED(ServerVersion.V1_9, v("CHEST_CLOSE", true)),
BLOCK_CHEST_OPEN(ServerVersion.V1_9, v("CHEST_OPEN")),
BLOCK_CHORUS_FLOWER_DEATH(ServerVersion.V1_9, v(null, true)), // I have no idea...
BLOCK_CHORUS_FLOWER_GROW(ServerVersion.V1_9, v(null, true)), // I have no idea...
BLOCK_COMPARATOR_CLICK(ServerVersion.V1_9, v("WOOD_CLICK", true)),
BLOCK_COMPOSTER_EMPTY,
BLOCK_COMPOSTER_FILL,
BLOCK_COMPOSTER_FILL_SUCCESS,
BLOCK_COMPOSTER_READY,
BLOCK_CONDUIT_ACTIVATE,
BLOCK_CONDUIT_AMBIENT,
BLOCK_CONDUIT_AMBIENT_SHORT,
BLOCK_CONDUIT_ATTACK_TARGET,
BLOCK_CONDUIT_DEACTIVATE,
BLOCK_CORAL_BLOCK_BREAK,
BLOCK_CORAL_BLOCK_FALL,
BLOCK_CORAL_BLOCK_HIT,
BLOCK_CORAL_BLOCK_PLACE,
BLOCK_CORAL_BLOCK_STEP,
BLOCK_CROP_BREAK,
BLOCK_DISPENSER_DISPENSE(ServerVersion.V1_9, v("SHOOT_ARROW", true)),
BLOCK_DISPENSER_FAIL(ServerVersion.V1_9, v("WOOD_CLICK", true)),
BLOCK_DISPENSER_LAUNCH(ServerVersion.V1_9, v("GHAST_FIREBALL", true)),
BLOCK_ENCHANTMENT_TABLE_USE,
BLOCK_ENDER_CHEST_CLOSE(ServerVersion.V1_13, v(ServerVersion.V1_9, "BLOCK_ENDERCHEST_CLOSE"), v("CHEST_CLOSE", true)),
BLOCK_ENDER_CHEST_OPEN(ServerVersion.V1_13, v(ServerVersion.V1_9, "BLOCK_ENDERCHEST_OPEN"), v("CHEST_OPEN", true)),
BLOCK_END_GATEWAY_SPAWN(ServerVersion.V1_9, v("PORTAL_TRIGGER", true)),
BLOCK_END_PORTAL_FRAME_FILL,
BLOCK_END_PORTAL_SPAWN,
BLOCK_FENCE_GATE_CLOSE("DOOR_CLOSE"),
BLOCK_FENCE_GATE_OPEN("DOOR_OPEN"),
BLOCK_FIRE_AMBIENT("FIRE"),
BLOCK_FIRE_EXTINGUISH("FIZZ"),
BLOCK_FURNACE_FIRE_CRACKLE(ServerVersion.V1_9, v("FIRE", true)),
BLOCK_GLASS_BREAK("GLASS"),
BLOCK_GLASS_FALL(ServerVersion.V1_9, v("STEP_GRASS", true)),
BLOCK_GLASS_HIT(ServerVersion.V1_9, v("STEP_GRASS", true)),
BLOCK_GLASS_PLACE(ServerVersion.V1_9, v("STEP_GRASS", true)),
BLOCK_GLASS_STEP(ServerVersion.V1_9, v("STEP_STONE", true)),
BLOCK_GRASS_BREAK("DIG_GRASS"),
BLOCK_GRASS_FALL(ServerVersion.V1_9, v("STEP_GRASS", true)),
BLOCK_GRASS_HIT(ServerVersion.V1_9, v("STEP_GRASS", true)),
BLOCK_GRASS_PLACE(ServerVersion.V1_9, v("STEP_GRASS", true)),
BLOCK_GRASS_STEP("STEP_GRASS"),
BLOCK_GRAVEL_BREAK("DIG_GRAVEL"),
BLOCK_GRAVEL_FALL(ServerVersion.V1_9, v("STEP_GRAVEL", true)),
BLOCK_GRAVEL_HIT(ServerVersion.V1_9, v("STEP_GRAVEL", true)),
BLOCK_GRAVEL_PLACE(ServerVersion.V1_9, v("STEP_GRAVEL", true)),
BLOCK_GRAVEL_STEP("STEP_GRAVEL"),
BLOCK_GRINDSTONE_USE,
BLOCK_IRON_DOOR_CLOSE("DOOR_CLOSE"),
BLOCK_IRON_DOOR_OPEN("DOOR_OPEN"),
BLOCK_IRON_TRAPDOOR_CLOSE("DOOR_CLOSE"),
BLOCK_IRON_TRAPDOOR_OPEN("DOOR_OPEN"),
BLOCK_LADDER_BREAK(ServerVersion.V1_9, v(null, true)),
BLOCK_LADDER_FALL(ServerVersion.V1_9, v("STEP_LADDER", true)),
BLOCK_LADDER_HIT(ServerVersion.V1_9, v(null, true)),
BLOCK_LADDER_PLACE(ServerVersion.V1_9, v(null, true)),
BLOCK_LADDER_STEP("STEP_LADDER"),
BLOCK_LANTERN_BREAK,
BLOCK_LANTERN_FALL,
BLOCK_LANTERN_HIT,
BLOCK_LANTERN_PLACE,
BLOCK_LANTERN_STEP,
BLOCK_LAVA_AMBIENT("LAVA"),
BLOCK_LAVA_EXTINGUISH("FIZZ"),
BLOCK_LAVA_POP("LAVA_POP"),
BLOCK_LEVER_CLICK("WOOD_CLICK"),
BLOCK_LILY_PAD_PLACE(ServerVersion.V1_13, v(ServerVersion.V1_9, "BLOCK_WATERLILY_PLACE"), v(null, true)),
BLOCK_METAL_BREAK(ServerVersion.V1_9, v(null, true)),
BLOCK_METAL_FALL(ServerVersion.V1_9, v(null, true)),
BLOCK_METAL_HIT(ServerVersion.V1_9, v(null, true)),
BLOCK_METAL_PLACE(ServerVersion.V1_9, v(null, true)),
BLOCK_METAL_PRESSURE_PLATE_CLICK_OFF(ServerVersion.V1_13, v(ServerVersion.V1_9, "BLOCK_METAL_PRESSUREPLATE_CLICK_OFF"), v("WOOD_CLICK", true)),
BLOCK_METAL_PRESSURE_PLATE_CLICK_ON(ServerVersion.V1_13, v(ServerVersion.V1_9, "BLOCK_METAL_PRESSUREPLATE_CLICK_ON"), v("WOOD_CLICK", true)),
BLOCK_METAL_STEP(ServerVersion.V1_9, v("STEP_STONE", true)),
BLOCK_NETHER_WART_BREAK,
BLOCK_NOTE_BLOCK_BANJO(ServerVersion.V1_14, v(ServerVersion.V1_13, "BLOCK_NOTE_BLOCK_GUITAR", true), v(ServerVersion.V1_12, "BLOCK_NOTE_GUITAR", true), v(ServerVersion.V1_9, "BLOCK_NOTE_BASS"), v("NOTE_BASS_GUITAR", true)),
BLOCK_NOTE_BLOCK_BASEDRUM(ServerVersion.V1_13, v(ServerVersion.V1_9, "BLOCK_NOTE_BASEDRUM"), v("NOTE_BASS_DRUM")),
BLOCK_NOTE_BLOCK_BASS(ServerVersion.V1_13, v(ServerVersion.V1_9, "BLOCK_NOTE_BASS"), v("NOTE_BASS")),
BLOCK_NOTE_BLOCK_BELL(ServerVersion.V1_13, v(ServerVersion.V1_12, "BLOCK_NOTE_BELL"), v(ServerVersion.V1_9, "BLOCK_NOTE_HARP", true), v("NOTE_PLING", true)),
BLOCK_NOTE_BLOCK_BIT(ServerVersion.V1_14, v(ServerVersion.V1_13, "BLOCK_NOTE_BLOCK_BELL", true), v(ServerVersion.V1_12, "BLOCK_NOTE_BELL", true), v(ServerVersion.V1_9, "BLOCK_NOTE_HARP", true), v("NOTE_PLING", true)),
BLOCK_NOTE_BLOCK_CHIME(ServerVersion.V1_13, v(ServerVersion.V1_12, "BLOCK_NOTE_CHIME"), v(ServerVersion.V1_9, "BLOCK_NOTE_PLING", true), v("NOTE_PLING", true)),
BLOCK_NOTE_BLOCK_COW_BELL(ServerVersion.V1_14, v(ServerVersion.V1_13, "BLOCK_NOTE_BLOCK_BELL", true), v(ServerVersion.V1_12, "BLOCK_NOTE_BELL"), v(ServerVersion.V1_9, "BLOCK_NOTE_HARP", true), v("NOTE_PLING", true)),
BLOCK_NOTE_BLOCK_DIDGERIDOO(ServerVersion.V1_14, v(ServerVersion.V1_13, "BLOCK_NOTE_BLOCK_FLUTE", true), v(ServerVersion.V1_12, "BLOCK_NOTE_FLUTE", true), v(ServerVersion.V1_9, "BLOCK_NOTE_HARP", true), v("NOTE_BASS_GUITAR", true)),
BLOCK_NOTE_BLOCK_FLUTE(ServerVersion.V1_13, v(ServerVersion.V1_12, "BLOCK_NOTE_FLUTE"), v(ServerVersion.V1_9, "BLOCK_NOTE_HARP", true), v("NOTE_BASS_GUITAR", true)),
BLOCK_NOTE_BLOCK_GUITAR(ServerVersion.V1_13, v(ServerVersion.V1_12, "BLOCK_NOTE_GUITAR"), v(ServerVersion.V1_9, "BLOCK_NOTE_HARP", true), v("NOTE_BASS_GUITAR")), // This value disappeared from the API from 1.9-1.11 (returned in 12)
BLOCK_NOTE_BLOCK_HARP(ServerVersion.V1_13, v(ServerVersion.V1_9, "BLOCK_NOTE_HARP"), v("NOTE_PIANO")),
BLOCK_NOTE_BLOCK_HAT(ServerVersion.V1_13, v(ServerVersion.V1_9, "BLOCK_NOTE_HAT"), v("NOTE_STICKS")),
BLOCK_NOTE_BLOCK_IRON_XYLOPHONE(ServerVersion.V1_14, v(ServerVersion.V1_13, "BLOCK_NOTE_BLOCK_XYLOPHONE", true), v(ServerVersion.V1_12, "BLOCK_NOTE_XYLOPHONE"), v(ServerVersion.V1_9, "BLOCK_NOTE_PLING", true), v("NOTE_PLING", true)),
BLOCK_NOTE_BLOCK_PLING(ServerVersion.V1_13, v(ServerVersion.V1_9, "BLOCK_NOTE_PLING"), v("NOTE_PLING")),
BLOCK_NOTE_BLOCK_SNARE(ServerVersion.V1_13, v(ServerVersion.V1_9, "BLOCK_NOTE_SNARE"), v("NOTE_SNARE_DRUM")),
BLOCK_NOTE_BLOCK_XYLOPHONE(ServerVersion.V1_13, v(ServerVersion.V1_12, "BLOCK_NOTE_XYLOPHONE"), v(ServerVersion.V1_9, "BLOCK_NOTE_PLING", true), v("NOTE_PLING", true)),
BLOCK_PISTON_CONTRACT("PISTON_RETRACT"),
BLOCK_PISTON_EXTEND("PISTON_EXTEND"),
BLOCK_PORTAL_AMBIENT("PORTAL"),
BLOCK_PORTAL_TRAVEL("PORTAL_TRAVEL"),
BLOCK_PORTAL_TRIGGER("PORTAL_TRIGGER"),
BLOCK_PUMPKIN_CARVE,
BLOCK_REDSTONE_TORCH_BURNOUT("FIZZ"),
BLOCK_SAND_BREAK("DIG_SAND"),
BLOCK_SAND_FALL(ServerVersion.V1_9, v("STEP_SAND", true)),
BLOCK_SAND_HIT(ServerVersion.V1_9, v("STEP_SAND", true)),
BLOCK_SAND_PLACE(ServerVersion.V1_9, v("STEP_SAND", true)),
BLOCK_SAND_STEP("STEP_SAND"),
BLOCK_SCAFFOLDING_BREAK,
BLOCK_SCAFFOLDING_FALL,
BLOCK_SCAFFOLDING_HIT,
BLOCK_SCAFFOLDING_PLACE,
BLOCK_SCAFFOLDING_STEP,
BLOCK_SHULKER_BOX_CLOSE(ServerVersion.V1_11, v(ServerVersion.V1_9, "BLOCK_ENDERCHEST_CLOSE", true), v("CHEST_CLOSE", true)),
BLOCK_SHULKER_BOX_OPEN(ServerVersion.V1_11, v(ServerVersion.V1_9, "BLOCK_ENDERCHEST_OPEN", true), v("CHEST_OPEN", true)),
BLOCK_SLIME_BLOCK_BREAK(ServerVersion.V1_13, v(ServerVersion.V1_9, "BLOCK_SLIME_BREAK"), v(null, true)),
BLOCK_SLIME_BLOCK_FALL(ServerVersion.V1_13, v(ServerVersion.V1_9, "BLOCK_SLIME_FALL"), v(null, true)),
BLOCK_SLIME_BLOCK_HIT(ServerVersion.V1_13, v(ServerVersion.V1_9, "BLOCK_SLIME_HIT"), v(null, true)),
BLOCK_SLIME_BLOCK_PLACE(ServerVersion.V1_13, v(ServerVersion.V1_9, "BLOCK_SLIME_PLACE"), v(null, true)),
BLOCK_SLIME_BLOCK_STEP(ServerVersion.V1_13, v(ServerVersion.V1_9, "BLOCK_SLIME_STEP"), v(null, true)),
BLOCK_SMOKER_SMOKE,
BLOCK_SNOW_BREAK("DIG_SNOW"),
BLOCK_SNOW_FALL(ServerVersion.V1_9, v("STEP_SNOW", true)),
BLOCK_SNOW_HIT(ServerVersion.V1_9, v("STEP_SNOW", true)),
BLOCK_SNOW_PLACE(ServerVersion.V1_9, v("STEP_SNOW", true)),
BLOCK_SNOW_STEP("STEP_SNOW"),
BLOCK_STONE_BREAK("DIG_STONE"),
BLOCK_STONE_BUTTON_CLICK_OFF(ServerVersion.V1_9, v("WOOD_CLICK", true)),
BLOCK_STONE_BUTTON_CLICK_ON(ServerVersion.V1_9, v("WOOD_CLICK", true)),
BLOCK_STONE_FALL,
BLOCK_STONE_HIT,
BLOCK_STONE_PLACE,
BLOCK_STONE_PRESSURE_PLATE_CLICK_OFF,
BLOCK_STONE_PRESSURE_PLATE_CLICK_ON,
BLOCK_STONE_STEP("STEP_STONE"),
BLOCK_SWEET_BERRY_BUSH_BREAK,
BLOCK_SWEET_BERRY_BUSH_PLACE,
BLOCK_TRIPWIRE_ATTACH(ServerVersion.V1_9, v("WOOD_CLICK", true)),
BLOCK_TRIPWIRE_CLICK_OFF(ServerVersion.V1_9, v("WOOD_CLICK", true)),
BLOCK_TRIPWIRE_CLICK_ON(ServerVersion.V1_9, v("WOOD_CLICK", true)),
BLOCK_TRIPWIRE_DETACH(ServerVersion.V1_9, v("WOOD_CLICK", true)),
BLOCK_WATER_AMBIENT("WATER"),
BLOCK_WET_GRASS_BREAK,
BLOCK_WET_GRASS_FALL,
BLOCK_WET_GRASS_HIT,
BLOCK_WET_GRASS_PLACE,
BLOCK_WET_GRASS_STEP,
BLOCK_WOODEN_BUTTON_CLICK_OFF(ServerVersion.V1_13, v(ServerVersion.V1_9, "BLOCK_WOOD_BUTTON_CLICK_ON"), v("WOOD_CLICK")),
BLOCK_WOODEN_BUTTON_CLICK_ON(ServerVersion.V1_13, v(ServerVersion.V1_9, "BLOCK_WOOD_BUTTON_CLICK_ON"), v("WOOD_CLICK")),
BLOCK_WOODEN_DOOR_CLOSE("DOOR_CLOSE"),
BLOCK_WOODEN_DOOR_OPEN("DOOR_OPEN"),
BLOCK_WOODEN_PRESSURE_PLATE_CLICK_OFF(ServerVersion.V1_13, v(ServerVersion.V1_9, "BLOCK_WOOD_PRESSUREPLATE_CLICK_OFF"), v("WOOD_CLICK", true)),
BLOCK_WOODEN_PRESSURE_PLATE_CLICK_ON(ServerVersion.V1_13, v(ServerVersion.V1_9, "BLOCK_WOOD_PRESSUREPLATE_CLICK_ON"), v("WOOD_CLICK", true)),
BLOCK_WOODEN_TRAPDOOR_CLOSE("DOOR_OPEN"),
BLOCK_WOODEN_TRAPDOOR_OPEN("DOOR_OPEN"),
BLOCK_WOOD_BREAK("DIG_WOOD"),
BLOCK_WOOD_FALL(ServerVersion.V1_9, v("STEP_WOOD", true)),
BLOCK_WOOD_HIT(ServerVersion.V1_9, v("STEP_WOOD", true)),
BLOCK_WOOD_PLACE(ServerVersion.V1_9, v("STEP_WOOD", true)),
BLOCK_WOOD_STEP("STEP_WOOD"),
BLOCK_WOOL_BREAK(ServerVersion.V1_13, v(ServerVersion.V1_9, "BLOCK_CLOTH_BREAK"), v("DIG_WOOL")),
BLOCK_WOOL_FALL(ServerVersion.V1_13, v(ServerVersion.V1_9, "BLOCK_CLOTH_STEP", true), v("STEP_WOOL", true)),
BLOCK_WOOL_HIT(ServerVersion.V1_13, v(ServerVersion.V1_9, "BLOCK_CLOTH_STEP", true), v("STEP_WOOL", true)),
BLOCK_WOOL_PLACE(ServerVersion.V1_13, v(ServerVersion.V1_9, "BLOCK_CLOTH_STEP", true), v("STEP_WOOL", true)),
BLOCK_WOOL_STEP(ServerVersion.V1_13, v(ServerVersion.V1_9, "BLOCK_CLOTH_STEP"), v("STEP_WOOL")),
ENCHANT_THORNS_HIT,
ENTITY_ARMOR_STAND_BREAK,
ENTITY_ARMOR_STAND_FALL,
ENTITY_ARMOR_STAND_HIT,
ENTITY_ARMOR_STAND_PLACE,
ENTITY_ARROW_HIT("SUCCESSFUL_HIT"), // these may be reversed...
ENTITY_ARROW_HIT_PLAYER("ARROW_HIT"),
ENTITY_ARROW_SHOOT("SHOOT_ARROW"),
ENTITY_BAT_AMBIENT("BAT_IDLE"),
ENTITY_BAT_DEATH("BAT_DEATH"),
ENTITY_BAT_HURT("BAT_HURT"),
ENTITY_BAT_LOOP("BAT_LOOP"),
ENTITY_BAT_TAKEOFF("BAT_TAKEOFF"),
ENTITY_BLAZE_AMBIENT("BLAZE_BREATH"),
ENTITY_BLAZE_BURN("BLAZE_HIT"),
ENTITY_BLAZE_DEATH("BLAZE_DEATH"),
ENTITY_BLAZE_HURT("BLAZE_HIT"),
ENTITY_BLAZE_SHOOT,
ENTITY_BOAT_PADDLE_LAND,
ENTITY_BOAT_PADDLE_WATER,
ENTITY_CAT_AMBIENT(ServerVersion.V1_9, v("CAT_MEOW")),
ENTITY_CAT_BEG_FOR_FOOD(ServerVersion.V1_14, v(ServerVersion.V1_9, "ENTITY_CAT_AMBIENT", true), v("CAT_MEOW", true)),
ENTITY_CAT_DEATH,
ENTITY_CAT_EAT(ServerVersion.V1_14, v(ServerVersion.V1_9, "ENTITY_GENERIC_EAT"), v("EAT")),
ENTITY_CAT_HISS("CAT_HISS"),
ENTITY_CAT_HURT("CAT_HIT"),
ENTITY_CAT_PURR("CAT_PURR"),
ENTITY_CAT_PURREOW("CAT_PURREOW"),
ENTITY_CAT_STRAY_AMBIENT,
ENTITY_CHICKEN_AMBIENT("CHICKEN_IDLE"),
ENTITY_CHICKEN_DEATH,
ENTITY_CHICKEN_EGG("CHICKEN_EGG_POP"),
ENTITY_CHICKEN_HURT("CHICKEN_HURT"),
ENTITY_CHICKEN_STEP("CHICKEN_WALK"),
ENTITY_COD_AMBIENT,
ENTITY_COD_DEATH,
ENTITY_COD_FLOP,
ENTITY_COD_HURT,
ENTITY_COW_AMBIENT("COW_IDLE"),
ENTITY_COW_DEATH("COW_HURT"),
ENTITY_COW_HURT("COW_HURT"),
ENTITY_COW_MILK,
ENTITY_COW_STEP("COW_WALK"),
ENTITY_CREEPER_DEATH("CREEPER_DEATH"),
ENTITY_CREEPER_HURT,
ENTITY_CREEPER_PRIMED("CREEPER_HISS"),
ENTITY_DOLPHIN_AMBIENT,
ENTITY_DOLPHIN_AMBIENT_WATER,
ENTITY_DOLPHIN_ATTACK,
ENTITY_DOLPHIN_DEATH,
ENTITY_DOLPHIN_EAT(ServerVersion.V1_13, v(ServerVersion.V1_9, "ENTITY_GENERIC_EAT", true), v("EAT", true)),
ENTITY_DOLPHIN_HURT,
ENTITY_DOLPHIN_JUMP,
ENTITY_DOLPHIN_PLAY,
ENTITY_DOLPHIN_SPLASH(ServerVersion.V1_13, v(ServerVersion.V1_9, "ENTITY_GENERIC_SPLASH", true), v("SPLASH", true)),
ENTITY_DOLPHIN_SWIM,
ENTITY_DONKEY_AMBIENT("DONKEY_IDLE"),
ENTITY_DONKEY_ANGRY("DONKEY_ANGRY"),
ENTITY_DONKEY_CHEST,
ENTITY_DONKEY_DEATH("DONKEY_DEATH"),
ENTITY_DONKEY_HURT("DONKEY_HIT"),
ENTITY_DRAGON_FIREBALL_EXPLODE,
ENTITY_DROWNED_AMBIENT,
ENTITY_DROWNED_AMBIENT_WATER,
ENTITY_DROWNED_DEATH,
ENTITY_DROWNED_DEATH_WATER,
ENTITY_DROWNED_HURT,
ENTITY_DROWNED_HURT_WATER,
ENTITY_DROWNED_SHOOT,
ENTITY_DROWNED_STEP,
ENTITY_DROWNED_SWIM,
ENTITY_EGG_THROW(ServerVersion.V1_9, v("SHOOT_ARROW", true)),
ENTITY_ELDER_GUARDIAN_AMBIENT,
ENTITY_ELDER_GUARDIAN_AMBIENT_LAND,
ENTITY_ELDER_GUARDIAN_CURSE,
ENTITY_ELDER_GUARDIAN_DEATH,
ENTITY_ELDER_GUARDIAN_DEATH_LAND,
ENTITY_ELDER_GUARDIAN_FLOP,
ENTITY_ELDER_GUARDIAN_HURT,
ENTITY_ELDER_GUARDIAN_HURT_LAND,
ENTITY_ENDERMAN_AMBIENT(ServerVersion.V1_13, v(ServerVersion.V1_9, "ENTITY_ENDERMEN_AMBIENT"), v("ENDERMAN_IDLE")),
ENTITY_ENDERMAN_DEATH(ServerVersion.V1_13, v(ServerVersion.V1_9, "ENTITY_ENDERMEN_DEATH"), v("ENDERMAN_DEATH")),
ENTITY_ENDERMAN_HURT(ServerVersion.V1_13, v(ServerVersion.V1_9, "ENTITY_ENDERMEN_HURT"), v("ENDERMAN_HIT")),
ENTITY_ENDERMAN_SCREAM(ServerVersion.V1_13, v(ServerVersion.V1_9, "ENTITY_ENDERMEN_SCREAM"), v("ENDERMAN_SCREAM")),
ENTITY_ENDERMAN_STARE(ServerVersion.V1_13, v(ServerVersion.V1_9, "ENTITY_ENDERMEN_STARE"), v("ENDERMAN_STARE")),
ENTITY_ENDERMAN_TELEPORT(ServerVersion.V1_13, v(ServerVersion.V1_9, "ENTITY_ENDERMEN_TELEPORT"), v("ENDERMAN_TELEPORT")),
ENTITY_ENDERMITE_AMBIENT,
ENTITY_ENDERMITE_DEATH,
ENTITY_ENDERMITE_HURT,
ENTITY_ENDERMITE_STEP,
ENTITY_ENDER_DRAGON_AMBIENT(ServerVersion.V1_13, v(ServerVersion.V1_9, "ENTITY_ENDERDRAGON_AMBIENT"), v("ENDERDRAGON_GROWL", true)),
ENTITY_ENDER_DRAGON_DEATH(ServerVersion.V1_13, v(ServerVersion.V1_9, "ENTITY_ENDERDRAGON_DEATH"), v("ENDERDRAGON_DEATH")),
ENTITY_ENDER_DRAGON_FLAP(ServerVersion.V1_13, v(ServerVersion.V1_9, "ENTITY_ENDERDRAGON_FLAP"), v("ENDERDRAGON_WINGS")),
ENTITY_ENDER_DRAGON_GROWL(ServerVersion.V1_13, v(ServerVersion.V1_9, "ENTITY_ENDERDRAGON_GROWL"), v("ENDERDRAGON_GROWL")),
ENTITY_ENDER_DRAGON_HURT(ServerVersion.V1_13, v(ServerVersion.V1_9, "ENTITY_ENDERDRAGON_HURT"), v("ENDERDRAGON_HIT")),
ENTITY_ENDER_DRAGON_SHOOT(ServerVersion.V1_13, v(ServerVersion.V1_9, "ENTITY_ENDERDRAGON_SHOOT"), v("GHAST_FIREBALL", true)),
ENTITY_ENDER_EYE_DEATH(ServerVersion.V1_13, v(ServerVersion.V1_12, "ENTITY_ENDEREYE_DEATH"), v(ServerVersion.V1_9, "BLOCK_GLASS_BREAK", true), v("GLASS", true)),
ENTITY_ENDER_EYE_LAUNCH(ServerVersion.V1_13, v(ServerVersion.V1_9, "ENTITY_ENDEREYE_LAUNCH"), v(ServerVersion.V1_9, "BLOCK_PORTAL_TRIGGER", true), v("PORTAL_TRIGGER", true)),
ENTITY_ENDER_PEARL_THROW,
ENTITY_EVOKER_AMBIENT,
ENTITY_EVOKER_CAST_SPELL,
ENTITY_EVOKER_CELEBRATE,
ENTITY_EVOKER_DEATH,
ENTITY_EVOKER_FANGS_ATTACK,
ENTITY_EVOKER_HURT,
ENTITY_EVOKER_PREPARE_ATTACK,
ENTITY_EVOKER_PREPARE_SUMMON,
ENTITY_EVOKER_PREPARE_WOLOLO,
ENTITY_EXPERIENCE_BOTTLE_THROW,
ENTITY_EXPERIENCE_ORB_PICKUP("ORB_PICKUP"),
ENTITY_FIREWORK_ROCKET_BLAST(ServerVersion.V1_13, v(ServerVersion.V1_9, "ENTITY_FIREWORK_BLAST"), v("FIREWORK_BLAST")),
ENTITY_FIREWORK_ROCKET_BLAST_FAR(ServerVersion.V1_13, v(ServerVersion.V1_9, "ENTITY_FIREWORK_BLAST_FAR"), v("FIREWORK_BLAST2")),
ENTITY_FIREWORK_ROCKET_LARGE_BLAST(ServerVersion.V1_13, v(ServerVersion.V1_9, "ENTITY_FIREWORK_LARGE_BLAST"), v("FIREWORK_LARGE_BLAST")),
ENTITY_FIREWORK_ROCKET_LARGE_BLAST_FAR(ServerVersion.V1_13, v(ServerVersion.V1_9, "ENTITY_FIREWORK_LARGE_BLAST_FAR"), v("FIREWORK_LARGE_BLAST2")),
ENTITY_FIREWORK_ROCKET_LAUNCH(ServerVersion.V1_13, v(ServerVersion.V1_9, "ENTITY_FIREWORK_LAUNCH"), v("FIREWORK_LAUNCH")),
ENTITY_FIREWORK_ROCKET_SHOOT(ServerVersion.V1_13, v(ServerVersion.V1_9, "ENTITY_FIREWORK_SHOOT"), v("FIREWORK_LAUNCH", true)),
ENTITY_FIREWORK_ROCKET_TWINKLE(ServerVersion.V1_13, v(ServerVersion.V1_9, "ENTITY_FIREWORK_TWINKLE"), v("FIREWORK_TWINKLE")),
ENTITY_FIREWORK_ROCKET_TWINKLE_FAR(ServerVersion.V1_13, v(ServerVersion.V1_9, "ENTITY_FIREWORK_TWINKLE_FAR"), v("FIREWORK_TWINKLE2")),
ENTITY_FISHING_BOBBER_RETRIEVE,
ENTITY_FISHING_BOBBER_SPLASH,
ENTITY_FISHING_BOBBER_THROW,
ENTITY_FISH_SWIM,
ENTITY_FOX_AGGRO,
ENTITY_FOX_AMBIENT,
ENTITY_FOX_BITE,
ENTITY_FOX_DEATH,
ENTITY_FOX_EAT(ServerVersion.V1_14, v(ServerVersion.V1_9, "ENTITY_GENERIC_EAT", true), v("EAT", true)),
ENTITY_FOX_HURT,
ENTITY_FOX_SCREECH,
ENTITY_FOX_SLEEP,
ENTITY_FOX_SNIFF,
ENTITY_FOX_SPIT,
ENTITY_GENERIC_BIG_FALL("FALL_BIG"),
ENTITY_GENERIC_BURN,
ENTITY_GENERIC_DEATH,
ENTITY_GENERIC_DRINK("DRINK"),
ENTITY_GENERIC_EAT("EAT"),
ENTITY_GENERIC_EXPLODE("EXPLODE"),
ENTITY_GENERIC_EXTINGUISH_FIRE("FIZZ"),
ENTITY_GENERIC_HURT("HURT_FLESH"),
ENTITY_GENERIC_SMALL_FALL("FALL_SMALL"),
ENTITY_GENERIC_SPLASH(ServerVersion.V1_9, v("SPLASH", true)),
ENTITY_GENERIC_SWIM,
ENTITY_GHAST_AMBIENT("GHAST_MOAN"),
ENTITY_GHAST_DEATH("GHAST_DEATH"),
ENTITY_GHAST_HURT("GHAST_SCREAM2"),
ENTITY_GHAST_SCREAM("GHAST_SCREAM"),
ENTITY_GHAST_SHOOT("GHAST_FIREBALL"),
ENTITY_GHAST_WARN("GHAST_CHARGE"),
ENTITY_GUARDIAN_AMBIENT,
ENTITY_GUARDIAN_AMBIENT_LAND,
ENTITY_GUARDIAN_ATTACK,
ENTITY_GUARDIAN_DEATH,
ENTITY_GUARDIAN_DEATH_LAND,
ENTITY_GUARDIAN_FLOP,
ENTITY_GUARDIAN_HURT,
ENTITY_GUARDIAN_HURT_LAND,
ENTITY_HORSE_AMBIENT("HORSE_IDLE"),
ENTITY_HORSE_ANGRY("HORSE_ANGRY"),
ENTITY_HORSE_ARMOR("HORSE_ARMOR"),
ENTITY_HORSE_BREATHE("HORSE_BREATHE"),
ENTITY_HORSE_DEATH("HORSE_DEATH"),
ENTITY_HORSE_EAT("EAT"),
ENTITY_HORSE_GALLOP("HORSE_GALLOP"),
ENTITY_HORSE_HURT("HORSE_HIT"),
ENTITY_HORSE_JUMP("HORSE_JUMP"),
ENTITY_HORSE_LAND("HORSE_LAND"),
ENTITY_HORSE_SADDLE("HORSE_SADDLE"),
ENTITY_HORSE_STEP("HORSE_SOFT"),
ENTITY_HORSE_STEP_WOOD("HORSE_WOOD"),
ENTITY_HOSTILE_BIG_FALL,
ENTITY_HOSTILE_DEATH,
ENTITY_HOSTILE_HURT,
ENTITY_HOSTILE_SMALL_FALL,
ENTITY_HOSTILE_SPLASH(ServerVersion.V1_9, v("SPLASH", true)),
ENTITY_HOSTILE_SWIM,
ENTITY_HUSK_AMBIENT,
ENTITY_HUSK_CONVERTED_TO_ZOMBIE,
ENTITY_HUSK_DEATH,
ENTITY_HUSK_HURT,
ENTITY_HUSK_STEP,
ENTITY_ILLUSIONER_AMBIENT,
ENTITY_ILLUSIONER_CAST_SPELL,
ENTITY_ILLUSIONER_DEATH,
ENTITY_ILLUSIONER_HURT,
ENTITY_ILLUSIONER_MIRROR_MOVE,
ENTITY_ILLUSIONER_PREPARE_BLINDNESS,
ENTITY_ILLUSIONER_PREPARE_MIRROR,
ENTITY_IRON_GOLEM_ATTACK(ServerVersion.V1_13, v(ServerVersion.V1_9, "ENTITY_IRONGOLEM_ATTACK"), v("IRONGOLEM_THROW")),
ENTITY_IRON_GOLEM_DEATH(ServerVersion.V1_13, v(ServerVersion.V1_9, "ENTITY_IRONGOLEM_DEATH"), v("IRONGOLEM_DEATH")),
ENTITY_IRON_GOLEM_HURT(ServerVersion.V1_13, v(ServerVersion.V1_9, "ENTITY_IRONGOLEM_HURT"), v("IRONGOLEM_HIT")),
ENTITY_IRON_GOLEM_STEP(ServerVersion.V1_13, v(ServerVersion.V1_9, "ENTITY_IRONGOLEM_STEP"), v("IRONGOLEM_WALK")),
ENTITY_ITEM_BREAK("ITEM_BREAK"),
ENTITY_ITEM_FRAME_ADD_ITEM,
ENTITY_ITEM_FRAME_BREAK,
ENTITY_ITEM_FRAME_PLACE,
ENTITY_ITEM_FRAME_REMOVE_ITEM,
ENTITY_ITEM_FRAME_ROTATE_ITEM,
ENTITY_ITEM_PICKUP("ITEM_PICKUP"),
ENTITY_LEASH_KNOT_BREAK,
ENTITY_LEASH_KNOT_PLACE,
ENTITY_LIGHTNING_BOLT_IMPACT(ServerVersion.V1_13, v(ServerVersion.V1_9, "ENTITY_LIGHTNING_IMPACT"), v("AMBIENCE_THUNDER", true)),
ENTITY_LIGHTNING_BOLT_THUNDER(ServerVersion.V1_13, v(ServerVersion.V1_9, "ENTITY_LIGHTNING_THUNDER"), v("AMBIENCE_THUNDER")),
ENTITY_LINGERING_POTION_THROW,
ENTITY_LLAMA_AMBIENT,
ENTITY_LLAMA_ANGRY(v(ServerVersion.V1_11, "ENTITY_HORSE_ANGRY"), v("HORSE_ANGRY")),
ENTITY_LLAMA_CHEST,
ENTITY_LLAMA_DEATH(v(ServerVersion.V1_11, "ENTITY_HORSE_DEATH"), v("HORSE_DEATH")),
ENTITY_LLAMA_EAT(v(ServerVersion.V1_11, "ENTITY_HORSE_EAT"), v("EAT")),
ENTITY_LLAMA_HURT(v(ServerVersion.V1_11, "ENTITY_HORSE_HURT"), v("HORSE_HIT")),
ENTITY_LLAMA_SPIT,
ENTITY_LLAMA_STEP,
ENTITY_LLAMA_SWAG,
ENTITY_MAGMA_CUBE_DEATH, // ENTITY_MAGMACUBE_DEATH
ENTITY_MAGMA_CUBE_DEATH_SMALL,
ENTITY_MAGMA_CUBE_HURT, // ENTITY_MAGMACUBE_HURT
ENTITY_MAGMA_CUBE_HURT_SMALL,
ENTITY_MAGMA_CUBE_JUMP(ServerVersion.V1_13, v(ServerVersion.V1_9, "ENTITY_MAGMACUBE_JUMP"), v("MAGMACUBE_JUMP")),
ENTITY_MAGMA_CUBE_SQUISH(ServerVersion.V1_13, v(ServerVersion.V1_9, "ENTITY_MAGMACUBE_SQUISH"), v("MAGMACUBE_WALK")),
ENTITY_MAGMA_CUBE_SQUISH_SMALL(ServerVersion.V1_13, v(ServerVersion.V1_9, "ENTITY_MAGMACUBE_SQUISH", true), v("MAGMACUBE_WALK2")),
ENTITY_MINECART_INSIDE("MINECART_INSIDE"),
ENTITY_MINECART_RIDING("MINECART_BASE"),
ENTITY_MOOSHROOM_CONVERT,
ENTITY_MOOSHROOM_EAT(ServerVersion.V1_14, v(ServerVersion.V1_9, "ENTITY_GENERIC_EAT", true), v("EAT", true)),
ENTITY_MOOSHROOM_MILK,
ENTITY_MOOSHROOM_SHEAR,
ENTITY_MOOSHROOM_SUSPICIOUS_MILK,
ENTITY_MULE_AMBIENT,
ENTITY_MULE_CHEST,
ENTITY_MULE_DEATH,
ENTITY_MULE_HURT,
ENTITY_OCELOT_AMBIENT,
ENTITY_OCELOT_DEATH,
ENTITY_OCELOT_HURT,
ENTITY_PAINTING_BREAK,
ENTITY_PAINTING_PLACE,
ENTITY_PANDA_AGGRESSIVE_AMBIENT,
ENTITY_PANDA_AMBIENT,
ENTITY_PANDA_BITE,
ENTITY_PANDA_CANT_BREED,
ENTITY_PANDA_DEATH,
ENTITY_PANDA_EAT(ServerVersion.V1_14, v(ServerVersion.V1_9, "ENTITY_GENERIC_EAT", true), v("EAT", true)),
ENTITY_PANDA_HURT,
ENTITY_PANDA_PRE_SNEEZE,
ENTITY_PANDA_SNEEZE,
ENTITY_PANDA_STEP,
ENTITY_PANDA_WORRIED_AMBIENT,
ENTITY_PARROT_AMBIENT,
ENTITY_PARROT_DEATH,
ENTITY_PARROT_EAT(ServerVersion.V1_12, v(ServerVersion.V1_9, "ENTITY_GENERIC_EAT", true), v("EAT", true)),
ENTITY_PARROT_FLY,
ENTITY_PARROT_HURT,
ENTITY_PARROT_IMITATE_BLAZE,
ENTITY_PARROT_IMITATE_CREEPER,
ENTITY_PARROT_IMITATE_DROWNED,
ENTITY_PARROT_IMITATE_ELDER_GUARDIAN,
ENTITY_PARROT_IMITATE_ENDERMAN,
ENTITY_PARROT_IMITATE_ENDERMITE,
ENTITY_PARROT_IMITATE_ENDER_DRAGON,
ENTITY_PARROT_IMITATE_EVOKER,
ENTITY_PARROT_IMITATE_GHAST,
ENTITY_PARROT_IMITATE_GUARDIAN,
ENTITY_PARROT_IMITATE_HUSK,
ENTITY_PARROT_IMITATE_ILLUSIONER,
ENTITY_PARROT_IMITATE_MAGMA_CUBE,
ENTITY_PARROT_IMITATE_PANDA,
ENTITY_PARROT_IMITATE_PHANTOM,
ENTITY_PARROT_IMITATE_PILLAGER,
ENTITY_PARROT_IMITATE_POLAR_BEAR,
ENTITY_PARROT_IMITATE_RAVAGER,
ENTITY_PARROT_IMITATE_SHULKER,
ENTITY_PARROT_IMITATE_SILVERFISH,
ENTITY_PARROT_IMITATE_SKELETON,
ENTITY_PARROT_IMITATE_SLIME,
ENTITY_PARROT_IMITATE_SPIDER,
ENTITY_PARROT_IMITATE_STRAY,
ENTITY_PARROT_IMITATE_VEX,
ENTITY_PARROT_IMITATE_VINDICATOR,
ENTITY_PARROT_IMITATE_WITCH,
ENTITY_PARROT_IMITATE_WITHER,
ENTITY_PARROT_IMITATE_WITHER_SKELETON,
ENTITY_PARROT_IMITATE_WOLF,
ENTITY_PARROT_IMITATE_ZOMBIE,
ENTITY_PARROT_IMITATE_ZOMBIE_PIGMAN,
ENTITY_PARROT_IMITATE_ZOMBIE_VILLAGER,
ENTITY_PARROT_STEP,
ENTITY_PHANTOM_AMBIENT,
ENTITY_PHANTOM_BITE,
ENTITY_PHANTOM_DEATH,
ENTITY_PHANTOM_FLAP,
ENTITY_PHANTOM_HURT,
ENTITY_PHANTOM_SWOOP,
ENTITY_PIG_AMBIENT("PIG_IDLE"),
ENTITY_PIG_DEATH("PIG_DEATH"),
ENTITY_PIG_HURT,
ENTITY_PIG_SADDLE,
ENTITY_PIG_STEP("PIG_WALK"),
ENTITY_PILLAGER_AMBIENT,
ENTITY_PILLAGER_CELEBRATE,
ENTITY_PILLAGER_DEATH,
ENTITY_PILLAGER_HURT,
ENTITY_PLAYER_ATTACK_CRIT,
ENTITY_PLAYER_ATTACK_KNOCKBACK,
ENTITY_PLAYER_ATTACK_NODAMAGE,
ENTITY_PLAYER_ATTACK_STRONG,
ENTITY_PLAYER_ATTACK_SWEEP,
ENTITY_PLAYER_ATTACK_WEAK,
ENTITY_PLAYER_BIG_FALL,
ENTITY_PLAYER_BREATH,
ENTITY_PLAYER_BURP("BURP"),
ENTITY_PLAYER_DEATH,
ENTITY_PLAYER_HURT,
ENTITY_PLAYER_HURT_DROWN,
ENTITY_PLAYER_HURT_ON_FIRE,
ENTITY_PLAYER_HURT_SWEET_BERRY_BUSH,
ENTITY_PLAYER_LEVELUP("LEVEL_UP"),
ENTITY_PLAYER_SMALL_FALL,
ENTITY_PLAYER_SPLASH("SPLASH"),
ENTITY_PLAYER_SPLASH_HIGH_SPEED(ServerVersion.V1_13, v(ServerVersion.V1_9, "ENTITY_GENERIC_SPLASH"), v("SPLASH2", true)),
ENTITY_PLAYER_SWIM("SWIM"),
ENTITY_POLAR_BEAR_AMBIENT,
ENTITY_POLAR_BEAR_AMBIENT_BABY,
ENTITY_POLAR_BEAR_DEATH,
ENTITY_POLAR_BEAR_HURT,
ENTITY_POLAR_BEAR_STEP,
ENTITY_POLAR_BEAR_WARNING,
ENTITY_PUFFER_FISH_AMBIENT,
ENTITY_PUFFER_FISH_BLOW_OUT,
ENTITY_PUFFER_FISH_BLOW_UP,
ENTITY_PUFFER_FISH_DEATH,
ENTITY_PUFFER_FISH_FLOP,
ENTITY_PUFFER_FISH_HURT,
ENTITY_PUFFER_FISH_STING,
ENTITY_RABBIT_AMBIENT,
ENTITY_RABBIT_ATTACK,
ENTITY_RABBIT_DEATH,
ENTITY_RABBIT_HURT,
ENTITY_RABBIT_JUMP,
ENTITY_RAVAGER_AMBIENT,
ENTITY_RAVAGER_ATTACK,
ENTITY_RAVAGER_CELEBRATE,
ENTITY_RAVAGER_DEATH,
ENTITY_RAVAGER_HURT,
ENTITY_RAVAGER_ROAR,
ENTITY_RAVAGER_STEP,
ENTITY_RAVAGER_STUNNED,
ENTITY_SALMON_AMBIENT,
ENTITY_SALMON_DEATH,
ENTITY_SALMON_FLOP,
ENTITY_SALMON_HURT,
ENTITY_SHEEP_AMBIENT("SHEEP_IDLE"),
ENTITY_SHEEP_DEATH,
ENTITY_SHEEP_HURT,
ENTITY_SHEEP_SHEAR("SHEEP_SHEAR"),
ENTITY_SHEEP_STEP("SHEEP_WALK"),
ENTITY_SHULKER_AMBIENT,
ENTITY_SHULKER_BULLET_HIT,
ENTITY_SHULKER_BULLET_HURT,
ENTITY_SHULKER_CLOSE,
ENTITY_SHULKER_DEATH,
ENTITY_SHULKER_HURT,
ENTITY_SHULKER_HURT_CLOSED,
ENTITY_SHULKER_OPEN,
ENTITY_SHULKER_SHOOT,
ENTITY_SHULKER_TELEPORT,
ENTITY_SILVERFISH_AMBIENT("SILVERFISH_IDLE"),
ENTITY_SILVERFISH_DEATH("SILVERFISH_KILL"),
ENTITY_SILVERFISH_HURT("SILVERFISH_HIT"),
ENTITY_SILVERFISH_STEP("SILVERFISH_WALK"),
ENTITY_SKELETON_AMBIENT("SKELETON_IDLE"),
ENTITY_SKELETON_DEATH("SKELETON_DEATH"),
ENTITY_SKELETON_HORSE_AMBIENT("HORSE_SKELETON_IDLE"),
ENTITY_SKELETON_HORSE_AMBIENT_WATER,
ENTITY_SKELETON_HORSE_DEATH("HORSE_SKELETON_DEATH"),
ENTITY_SKELETON_HORSE_GALLOP_WATER,
ENTITY_SKELETON_HORSE_HURT("HORSE_SKELETON_HIT"),
ENTITY_SKELETON_HORSE_JUMP_WATER,
ENTITY_SKELETON_HORSE_STEP_WATER,
ENTITY_SKELETON_HORSE_SWIM,
ENTITY_SKELETON_HURT("SKELETON_HURT"),
ENTITY_SKELETON_SHOOT(ServerVersion.V1_9, v("SHOOT_ARROW", true)),
ENTITY_SKELETON_STEP("SKELETON_WALK"),
ENTITY_SLIME_ATTACK("SLIME_ATTACK"),
ENTITY_SLIME_DEATH,
ENTITY_SLIME_DEATH_SMALL,
ENTITY_SLIME_HURT,
ENTITY_SLIME_HURT_SMALL,
ENTITY_SLIME_JUMP("SLIME_WALK"), // Not sure which is 1 or 2
ENTITY_SLIME_JUMP_SMALL(ServerVersion.V1_13, v(ServerVersion.V1_9, "ENTITY_SLIME_JUMP", true), v("SLIME_WALK", true)),
ENTITY_SLIME_SQUISH("SLIME_WALK2"),
ENTITY_SLIME_SQUISH_SMALL(ServerVersion.V1_13, v(ServerVersion.V1_9, "ENTITY_SLIME_JUMP", true), v("SLIME_WALK2", true)),
ENTITY_SNOWBALL_THROW,
ENTITY_SNOW_GOLEM_AMBIENT,
ENTITY_SNOW_GOLEM_DEATH,
ENTITY_SNOW_GOLEM_HURT,
ENTITY_SNOW_GOLEM_SHOOT(ServerVersion.V1_13, v(ServerVersion.V1_9, "ENTITY_SNOWMAN_SHOOT"), v("SHOOT_ARROW", true)), // this is missing from 1.8 API for some reason
ENTITY_SPIDER_AMBIENT("SPIDER_IDLE"),
ENTITY_SPIDER_DEATH("SPIDER_DEATH"),
ENTITY_SPIDER_HURT,
ENTITY_SPIDER_STEP("SPIDER_WALK"),
ENTITY_SPLASH_POTION_BREAK,
ENTITY_SPLASH_POTION_THROW,
ENTITY_SQUID_AMBIENT,
ENTITY_SQUID_DEATH,
ENTITY_SQUID_HURT,
ENTITY_SQUID_SQUIRT,
ENTITY_STRAY_AMBIENT,
ENTITY_STRAY_DEATH,
ENTITY_STRAY_HURT,
ENTITY_STRAY_STEP,
ENTITY_TNT_PRIMED("FUSE"),
ENTITY_TROPICAL_FISH_AMBIENT,
ENTITY_TROPICAL_FISH_DEATH,
ENTITY_TROPICAL_FISH_FLOP,
ENTITY_TROPICAL_FISH_HURT,
ENTITY_TURTLE_AMBIENT_LAND,
ENTITY_TURTLE_DEATH,
ENTITY_TURTLE_DEATH_BABY,
ENTITY_TURTLE_EGG_BREAK,
ENTITY_TURTLE_EGG_CRACK,
ENTITY_TURTLE_EGG_HATCH,
ENTITY_TURTLE_HURT,
ENTITY_TURTLE_HURT_BABY,
ENTITY_TURTLE_LAY_EGG,
ENTITY_TURTLE_SHAMBLE,
ENTITY_TURTLE_SHAMBLE_BABY,
ENTITY_TURTLE_SWIM,
ENTITY_VEX_AMBIENT,
ENTITY_VEX_CHARGE,
ENTITY_VEX_DEATH,
ENTITY_VEX_HURT,
ENTITY_VILLAGER_AMBIENT("VILLAGER_IDLE"),
ENTITY_VILLAGER_CELEBRATE,
ENTITY_VILLAGER_DEATH("VILLAGER_DEATH"),
ENTITY_VILLAGER_HURT("VILLAGER_HIT"),
ENTITY_VILLAGER_NO("VILLAGER_NO"),
ENTITY_VILLAGER_TRADE(ServerVersion.V1_13, v(ServerVersion.V1_9, "ENTITY_VILLAGER_TRADING"), v("VILLAGER_HAGGLE")),
ENTITY_VILLAGER_WORK_ARMORER,
ENTITY_VILLAGER_WORK_BUTCHER,
ENTITY_VILLAGER_WORK_CARTOGRAPHER,
ENTITY_VILLAGER_WORK_CLERIC,
ENTITY_VILLAGER_WORK_FARMER,
ENTITY_VILLAGER_WORK_FISHERMAN,
ENTITY_VILLAGER_WORK_FLETCHER,
ENTITY_VILLAGER_WORK_LEATHERWORKER,
ENTITY_VILLAGER_WORK_LIBRARIAN,
ENTITY_VILLAGER_WORK_MASON,
ENTITY_VILLAGER_WORK_SHEPHERD,
ENTITY_VILLAGER_WORK_TOOLSMITH,
ENTITY_VILLAGER_WORK_WEAPONSMITH,
ENTITY_VILLAGER_YES("VILLAGER_YES"),
ENTITY_VINDICATOR_AMBIENT,
ENTITY_VINDICATOR_CELEBRATE,
ENTITY_VINDICATOR_DEATH,
ENTITY_VINDICATOR_HURT,
ENTITY_WANDERING_TRADER_AMBIENT,
ENTITY_WANDERING_TRADER_DEATH,
ENTITY_WANDERING_TRADER_DISAPPEARED,
ENTITY_WANDERING_TRADER_DRINK_MILK(ServerVersion.V1_14, v(ServerVersion.V1_9, "ENTITY_GENERIC_DRINK", true), v("DRINK", true)),
ENTITY_WANDERING_TRADER_DRINK_POTION(ServerVersion.V1_14, v(ServerVersion.V1_9, "ENTITY_GENERIC_DRINK", true), v("DRINK", true)),
ENTITY_WANDERING_TRADER_HURT,
ENTITY_WANDERING_TRADER_NO,
ENTITY_WANDERING_TRADER_REAPPEARED,
ENTITY_WANDERING_TRADER_TRADE,
ENTITY_WANDERING_TRADER_YES,
ENTITY_WITCH_AMBIENT,
ENTITY_WITCH_CELEBRATE,
ENTITY_WITCH_DEATH,
ENTITY_WITCH_DRINK("DRINK"),
ENTITY_WITCH_HURT,
ENTITY_WITCH_THROW,
ENTITY_WITHER_AMBIENT("WITHER_IDLE"),
ENTITY_WITHER_BREAK_BLOCK("WITHER_SPAWN"),
ENTITY_WITHER_DEATH("WITHER_DEATH"),
ENTITY_WITHER_HURT("WITHER_HURT"),
ENTITY_WITHER_SHOOT("WITHER_SHOOT"),
ENTITY_WITHER_SKELETON_AMBIENT,
ENTITY_WITHER_SKELETON_DEATH,
ENTITY_WITHER_SKELETON_HURT,
ENTITY_WITHER_SKELETON_STEP,
ENTITY_WITHER_SPAWN,
ENTITY_WOLF_AMBIENT("WOLF_BARK"),
ENTITY_WOLF_DEATH("WOLF_DEATH"),
ENTITY_WOLF_GROWL("WOLF_GROWL"),
ENTITY_WOLF_HOWL("WOLF_HOWL"),
ENTITY_WOLF_HURT("WOLF_HURT"),
ENTITY_WOLF_PANT("WOLF_PANT"),
ENTITY_WOLF_SHAKE("WOLF_SHAKE"),
ENTITY_WOLF_STEP("WOLF_WALK"),
ENTITY_WOLF_WHINE("WOLF_WHINE"),
ENTITY_ZOMBIE_AMBIENT("ZOMBIE_IDLE"),
ENTITY_ZOMBIE_ATTACK_IRON_DOOR(ServerVersion.V1_13, v(ServerVersion.V1_9, "ENTITY_ZOMBIE_ATTACK_IRON_DOOR", true), v("ZOMBIE_METAL")),
ENTITY_ZOMBIE_ATTACK_WOODEN_DOOR(ServerVersion.V1_13, v(ServerVersion.V1_9, "ENTITY_ZOMBIE_ATTACK_DOOR_WOOD", true), v("ZOMBIE_WOOD")),
ENTITY_ZOMBIE_BREAK_WOODEN_DOOR(ServerVersion.V1_13, v(ServerVersion.V1_9, "ENTITY_ZOMBIE_BREAK_DOOR_WOOD", true), v("ZOMBIE_WOODBREAK")),
ENTITY_ZOMBIE_CONVERTED_TO_DROWNED,
ENTITY_ZOMBIE_DEATH("ZOMBIE_DEATH"),
ENTITY_ZOMBIE_DESTROY_EGG,
ENTITY_ZOMBIE_HORSE_AMBIENT("HORSE_ZOMBIE_IDLE"),
ENTITY_ZOMBIE_HORSE_DEATH("HORSE_ZOMBIE_DEATH"),
ENTITY_ZOMBIE_HORSE_HURT("HORSE_ZOMBIE_HIT"),
ENTITY_ZOMBIE_HURT("ZOMBIE_HURT"),
ENTITY_ZOMBIE_INFECT("ZOMBIE_INFECT"),
ENTITY_ZOMBIE_STEP("ZOMBIE_WALK"),
ENTITY_ZOMBIE_VILLAGER_AMBIENT,
ENTITY_ZOMBIE_VILLAGER_CONVERTED("ZOMBIE_REMEDY"),
ENTITY_ZOMBIE_VILLAGER_CURE("ZOMBIE_UNFECT"),
ENTITY_ZOMBIE_VILLAGER_DEATH,
ENTITY_ZOMBIE_VILLAGER_HURT,
ENTITY_ZOMBIE_VILLAGER_STEP,
EVENT_RAID_HORN,
ITEM_ARMOR_EQUIP_CHAIN(ServerVersion.V1_9, v("SUCCESSFUL_HIT", true)),
ITEM_ARMOR_EQUIP_DIAMOND(ServerVersion.V1_9, v("SUCCESSFUL_HIT", true)),
ITEM_ARMOR_EQUIP_ELYTRA(ServerVersion.V1_11, v(ServerVersion.V1_9, "ITEM_ARMOR_EQUIP_GENERIC", true), v("SUCCESSFUL_HIT", true)),
ITEM_ARMOR_EQUIP_GENERIC(ServerVersion.V1_9, v("SUCCESSFUL_HIT", true)),
ITEM_ARMOR_EQUIP_GOLD(ServerVersion.V1_9, v("SUCCESSFUL_HIT", true)),
ITEM_ARMOR_EQUIP_IRON(ServerVersion.V1_9, v("SUCCESSFUL_HIT", true)),
ITEM_ARMOR_EQUIP_LEATHER(ServerVersion.V1_9, v("SUCCESSFUL_HIT", true)),
ITEM_ARMOR_EQUIP_TURTLE(ServerVersion.V1_13, v(ServerVersion.V1_9, "ITEM_ARMOR_EQUIP_GENERIC", true), v("SUCCESSFUL_HIT", true)),
ITEM_AXE_STRIP,
ITEM_BOOK_PAGE_TURN,
ITEM_BOOK_PUT,
ITEM_BOTTLE_EMPTY,
ITEM_BOTTLE_FILL,
ITEM_BOTTLE_FILL_DRAGONBREATH,
ITEM_BUCKET_EMPTY,
ITEM_BUCKET_EMPTY_FISH,
ITEM_BUCKET_EMPTY_LAVA,
ITEM_BUCKET_FILL,
ITEM_BUCKET_FILL_FISH,
ITEM_BUCKET_FILL_LAVA,
ITEM_CHORUS_FRUIT_TELEPORT,
ITEM_CROP_PLANT,
ITEM_CROSSBOW_HIT,
ITEM_CROSSBOW_LOADING_END,
ITEM_CROSSBOW_LOADING_MIDDLE,
ITEM_CROSSBOW_LOADING_START,
ITEM_CROSSBOW_QUICK_CHARGE_1,
ITEM_CROSSBOW_QUICK_CHARGE_2,
ITEM_CROSSBOW_QUICK_CHARGE_3,
ITEM_CROSSBOW_SHOOT,
ITEM_ELYTRA_FLYING,
ITEM_FIRECHARGE_USE(ServerVersion.V1_9, v("GHAST_FIREBALL", true)),
ITEM_FLINTANDSTEEL_USE("FIRE_IGNITE"),
ITEM_HOE_TILL,
ITEM_NETHER_WART_PLANT,
ITEM_SHIELD_BLOCK,
ITEM_SHIELD_BREAK,
ITEM_SHOVEL_FLATTEN,
ITEM_TOTEM_USE,
ITEM_TRIDENT_HIT,
ITEM_TRIDENT_HIT_GROUND,
ITEM_TRIDENT_RETURN,
ITEM_TRIDENT_RIPTIDE_1,
ITEM_TRIDENT_RIPTIDE_2,
ITEM_TRIDENT_RIPTIDE_3,
ITEM_TRIDENT_THROW,
ITEM_TRIDENT_THUNDER,
MUSIC_CREATIVE,
MUSIC_CREDITS,
MUSIC_DISC_11(ServerVersion.V1_13, v(ServerVersion.V1_9, "RECORD_11"), v("WOOD_CLICK", true)),
MUSIC_DISC_13(ServerVersion.V1_13, v(ServerVersion.V1_9, "RECORD_13"), v("WOOD_CLICK", true)),
MUSIC_DISC_BLOCKS(ServerVersion.V1_13, v(ServerVersion.V1_9, "RECORD_BLOCKS"), v("WOOD_CLICK", true)),
MUSIC_DISC_CAT(ServerVersion.V1_13, v(ServerVersion.V1_9, "RECORD_CAT"), v("WOOD_CLICK", true)),
MUSIC_DISC_CHIRP(ServerVersion.V1_13, v(ServerVersion.V1_9, "RECORD_CHIRP"), v("WOOD_CLICK", true)),
MUSIC_DISC_FAR(ServerVersion.V1_13, v(ServerVersion.V1_9, "RECORD_FAR"), v("WOOD_CLICK", true)),
MUSIC_DISC_MALL(ServerVersion.V1_13, v(ServerVersion.V1_9, "RECORD_MALL"), v("WOOD_CLICK", true)),
MUSIC_DISC_MELLOHI(ServerVersion.V1_13, v(ServerVersion.V1_9, "RECORD_MELLOHI"), v("WOOD_CLICK", true)),
MUSIC_DISC_STAL(ServerVersion.V1_13, v(ServerVersion.V1_9, "RECORD_STAL"), v("WOOD_CLICK", true)),
MUSIC_DISC_STRAD(ServerVersion.V1_13, v(ServerVersion.V1_9, "RECORD_STRAD"), v("WOOD_CLICK", true)),
MUSIC_DISC_WAIT(ServerVersion.V1_13, v(ServerVersion.V1_9, "RECORD_WAIT"), v("WOOD_CLICK", true)),
MUSIC_DISC_WARD(ServerVersion.V1_13, v(ServerVersion.V1_9, "RECORD_WARD"), v("WOOD_CLICK", true)), // records are missing from 1.8 API
MUSIC_DRAGON,
MUSIC_END,
MUSIC_GAME,
MUSIC_MENU,
MUSIC_NETHER,
MUSIC_UNDER_WATER,
UI_BUTTON_CLICK("CLICK"),
UI_CARTOGRAPHY_TABLE_TAKE_RESULT,
UI_LOOM_SELECT_PATTERN,
UI_LOOM_TAKE_RESULT,
UI_STONECUTTER_SELECT_RECIPE,
UI_STONECUTTER_TAKE_RESULT,
UI_TOAST_CHALLENGE_COMPLETE,
UI_TOAST_IN,
UI_TOAST_OUT,
WEATHER_RAIN("AMBIENCE_RAIN"),
WEATHER_RAIN_ABOVE;
private /* final */ Sound sound;
private /* final */ boolean compatibilityMode;
private static final boolean DEBUG = false;
CompatibleSound() {
// This could get risky, since we haven't finished this
//sound = Sound.valueOf(name());
Sound find = null;
for (Sound s : Sound.values()) {
if (s.name().equals(name())) {
find = s;
break;
}
}
if (DEBUG && find == null) {
System.err.println("Sound for " + name() + " not found!");
}
sound = find;
compatibilityMode = find == null;
}
// if the sound only ever changed from 1.8 -> 1.9
CompatibleSound(String compatibility_18) {
try {
compatibilityMode = false;
if (ServerVersion.isServerVersionBelow(ServerVersion.V1_9)) {
sound = Sound.valueOf(compatibility_18);
} else {
sound = Sound.valueOf(name());
}
} catch (Exception ex) {
System.err.println("ERROR loading " + name());
ex.printStackTrace();
}
}
CompatibleSound(Version... versions) {
try {
for (Version v : versions) {
if (v.sound != null && ServerVersion.isServerVersionAtLeast(v.version)) {
sound = Sound.valueOf(v.sound);
compatibilityMode = v.compatibilityMode;
return;
}
}
} catch (Exception ex) {
System.err.println("ERROR loading " + name());
for (Version v : versions) {
System.err.println(v.version + " - " + v.sound);
}
ex.printStackTrace();
}
Sound find = null;
for (Sound s : Sound.values()) {
if (s.name().equals(name())) {
find = s;
break;
}
}
sound = find;
compatibilityMode = find == null;
}
CompatibleSound(ServerVersion minVersion, Version... versions) {
try {
if (ServerVersion.isServerVersionAtLeast(minVersion)) {
// should be good to use this sound
sound = Sound.valueOf(name());
} else {
for (Version v : versions) {
if (v.sound != null && ServerVersion.isServerVersionAtLeast(v.version)) {
sound = Sound.valueOf(v.sound);
compatibilityMode = v.compatibilityMode;
return;
}
}
sound = null;
}
compatibilityMode = false;
} catch (Exception ex) {
System.err.println("ERROR loading " + name() + " (" + minVersion + ")");
for (Version v : versions) {
System.err.println(v.version + " - " + v.sound);
}
ex.printStackTrace();
}
}
/**
* Returns the appropriate Bukkit API sound or tries to find a sane alternative,
* if the server does not support that sound
*
* @return Either the matching sound or a similar sound
*/
public Sound getSound() {
return sound != null ? sound : UI_BUTTON_CLICK.sound;
}
/**
* Sends a sound to a specific player
*
* @param player The player to play the sound for
*/
public void play(Player player) {
player.playSound(player.getLocation(), getSound(), 1F, 1F);
}
/**
* Sends a sound to a specific player
*
* @param player player to send the sound to
* @param volume The volume of the sound (1 is 100%)
* @param pitch The pitch of the sound (for notchian clients: between 0.5 and 2.0)
*/
public void play(Player player, float volume, float pitch) {
player.playSound(player.getLocation(), getSound(), volume, pitch);
}
/**
* Send a sound to a specific player
*
* @param player The player to play the sound for
* @param location Where the sound should come from
* @param volume The volume of the sound (1 is 100%)
* * @param pitch The pitch of the sound (for notchian clients: between 0.5 and 2.0)
*/
public void play(Player player, Location location, float volume, float pitch) {
player.playSound(location, getSound(), volume, pitch);
}
/**
* Plays a sound in a given world
*
* @param world The world to play the sound in
* @param location Where the sound should come from
* @param volume The volume of the sound (1 is 100%)
* @param pitch The pitch of the sound (for notchian clients: between 0.5 and 2.0)
*/
public void play(World world, Location location, float volume, float pitch) {
world.playSound(location, getSound(), volume, pitch);
}
/**
* Stop a currently active sound from playing for a player (Only supporter on 1.10 servers or newer)
*
* @param player The player to stop the sound for
*/
public void stop(Player player) {
if (ServerVersion.isServerVersionAtLeast(ServerVersion.V1_10)) {
player.stopSound(getSound());
}
}
/**
* Check to see if this sound is available on this server.
*
* @return Returns false if we are using a different sound.
*/
public boolean usesCompatibility() {
return !compatibilityMode;
}
private static Version v(String sound) {
return new Version(ServerVersion.UNKNOWN, sound, false);
}
private static Version v(ServerVersion version, String sound) {
return new Version(version, sound, false);
}
private static Version v(ServerVersion version, String sound, boolean compatibility) {
return new Version(version, sound, compatibility);
}
private static Version v(String sound, boolean compatibility) {
return new Version(ServerVersion.UNKNOWN, sound, compatibility);
}
private static class Version {
final ServerVersion version;
final String sound;
final boolean compatibilityMode;
public Version(ServerVersion version, String sound, boolean compatibility) {
this.version = version;
this.sound = sound;
this.compatibilityMode = compatibility;
}
}
}