mirror of
https://github.com/GeyserMC/Geyser.git
synced 2024-08-14 23:57:35 +00:00
Sounds
This commit is contained in:
parent
5f3476172e
commit
27a73cfcde
8 changed files with 766 additions and 74 deletions
|
@ -26,6 +26,7 @@
|
|||
package org.geysermc.connector.network.translators;
|
||||
|
||||
import com.github.steveice10.mc.protocol.data.game.world.effect.SoundEffect;
|
||||
import com.github.steveice10.mc.protocol.data.game.world.sound.BuiltinSound;
|
||||
import com.github.steveice10.mc.protocol.packet.ingame.server.*;
|
||||
import com.github.steveice10.mc.protocol.packet.ingame.server.entity.*;
|
||||
import com.github.steveice10.mc.protocol.packet.ingame.server.entity.player.ServerPlayerActionAckPacket;
|
||||
|
@ -49,6 +50,8 @@ import com.nukkitx.protocol.bedrock.packet.*;
|
|||
import lombok.Getter;
|
||||
import org.geysermc.connector.network.translators.bedrock.*;
|
||||
import org.geysermc.connector.network.translators.block.BlockTranslator;
|
||||
import org.geysermc.connector.network.translators.effect.Sound;
|
||||
import org.geysermc.connector.network.translators.effect.SoundTranslator;
|
||||
import org.geysermc.connector.network.translators.inventory.GenericInventoryTranslator;
|
||||
import org.geysermc.connector.network.translators.inventory.InventoryTranslator;
|
||||
import org.geysermc.connector.network.translators.item.ItemTranslator;
|
||||
|
@ -62,6 +65,7 @@ import org.geysermc.connector.network.translators.java.scoreboard.JavaScoreboard
|
|||
import org.geysermc.connector.network.translators.java.scoreboard.JavaTeamTranslator;
|
||||
import org.geysermc.connector.network.translators.java.scoreboard.JavaUpdateScoreTranslator;
|
||||
import org.geysermc.connector.network.translators.java.visual.JavaBlockBreakAnimationPacketTranslator;
|
||||
import org.geysermc.connector.network.translators.java.visual.JavaBuiltinSoundPacketTranslator;
|
||||
import org.geysermc.connector.network.translators.java.visual.JavaPlayEffectPacketTranslator;
|
||||
import org.geysermc.connector.network.translators.java.window.JavaOpenWindowTranslator;
|
||||
import org.geysermc.connector.network.translators.java.window.JavaSetSlotTranslator;
|
||||
|
@ -70,6 +74,7 @@ import org.geysermc.connector.network.translators.java.world.*;
|
|||
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
|
@ -87,7 +92,7 @@ public class TranslatorsInit {
|
|||
private static final CompoundTag EMPTY_TAG = CompoundTagBuilder.builder().buildRootTag();
|
||||
public static final byte[] EMPTY_LEVEL_CHUNK_DATA;
|
||||
|
||||
public static final Map<SoundEffect, LevelEventPacket.Event> SOUNDS = new HashMap<>();
|
||||
public static final Map<BuiltinSound, Sound> SOUNDS = new HashMap<>();
|
||||
|
||||
static {
|
||||
try (ByteArrayOutputStream outputStream = new ByteArrayOutputStream()) {
|
||||
|
@ -104,6 +109,7 @@ public class TranslatorsInit {
|
|||
}
|
||||
|
||||
public static void start() {
|
||||
//Packets
|
||||
Registry.registerJava(ServerJoinGamePacket.class, new JavaJoinGameTranslator());
|
||||
Registry.registerJava(ServerChatPacket.class, new JavaChatTranslator());
|
||||
Registry.registerJava(ServerTitlePacket.class, new JavaTitleTranslator());
|
||||
|
@ -153,6 +159,7 @@ public class TranslatorsInit {
|
|||
|
||||
Registry.registerJava(ServerPlayEffectPacket.class, new JavaPlayEffectPacketTranslator());
|
||||
Registry.registerJava(ServerBlockBreakAnimPacket.class, new JavaBlockBreakAnimationPacketTranslator());
|
||||
Registry.registerJava(ServerPlayBuiltinSoundPacket.class, new JavaBuiltinSoundPacketTranslator());
|
||||
|
||||
Registry.registerBedrock(AnimatePacket.class, new BedrockAnimateTranslator());
|
||||
Registry.registerBedrock(CommandRequestPacket.class, new BedrockCommandRequestTranslator());
|
||||
|
@ -168,7 +175,19 @@ public class TranslatorsInit {
|
|||
blockTranslator = new BlockTranslator();
|
||||
|
||||
registerInventoryTranslators();
|
||||
registerVisuals();
|
||||
|
||||
SoundTranslator.translate();
|
||||
|
||||
/*System.out.println(SOUNDS.toString());
|
||||
System.out.println(SOUNDS.size());
|
||||
System.out.println(Sound.values().length);
|
||||
System.out.println(BuiltinSound.values().length);
|
||||
|
||||
for(Sound sound : Sound.values()) {
|
||||
if(!SOUNDS.containsValue(sound)) {
|
||||
System.out.println(sound);
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
||||
private static void registerInventoryTranslators() {
|
||||
|
@ -179,19 +198,4 @@ public class TranslatorsInit {
|
|||
inventoryTranslators.put(WindowType.GENERIC_9X5, new GenericInventoryTranslator());
|
||||
inventoryTranslators.put(WindowType.GENERIC_9X6, new GenericInventoryTranslator());*/
|
||||
}
|
||||
|
||||
private static void registerVisuals() {
|
||||
//TODO: add more sounds
|
||||
SOUNDS.put(SoundEffect.BLOCK_ANVIL_DESTROY, LevelEventPacket.Event.SOUND_ANVIL_BREAK);
|
||||
SOUNDS.put(SoundEffect.BLOCK_ANVIL_LAND, LevelEventPacket.Event.SOUND_ANVIL_FALL);
|
||||
SOUNDS.put(SoundEffect.BLOCK_ANVIL_USE, LevelEventPacket.Event.SOUND_ANVIL_USE);
|
||||
SOUNDS.put(SoundEffect.BLOCK_DISPENSER_DISPENSE, LevelEventPacket.Event.SOUND_CLICK);
|
||||
SOUNDS.put(SoundEffect.BLOCK_DISPENSER_FAIL, LevelEventPacket.Event.SOUND_CLICK_FAIL);
|
||||
SOUNDS.put(SoundEffect.BLOCK_DISPENSER_LAUNCH, LevelEventPacket.Event.SOUND_SHOOT);
|
||||
SOUNDS.put(SoundEffect.ENTITY_GHAST_WARN, LevelEventPacket.Event.SOUND_GHAST);
|
||||
SOUNDS.put(SoundEffect.ENTITY_GHAST_SHOOT, LevelEventPacket.Event.SOUND_GHAST_SHOOT);
|
||||
SOUNDS.put(SoundEffect.BLOCK_BREWING_STAND_BREW, LevelEventPacket.Event.SOUND_FIZZ);
|
||||
|
||||
//TODO: not hard coded particles
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,569 @@
|
|||
package org.geysermc.connector.network.translators.effect;
|
||||
|
||||
/**
|
||||
* @author CreeperFace
|
||||
*/
|
||||
public enum Sound {
|
||||
AMBIENT_WEATHER_THUNDER("ambient.weather.thunder"),
|
||||
AMBIENT_WEATHER_LIGHTNING_IMPACT("ambient.weather.lightning.impact"),
|
||||
AMBIENT_WEATHER_RAIN("ambient.weather.rain"),
|
||||
BEACON_ACTIVATE("beacon.activate"),
|
||||
BEACON_AMBIENT("beacon.ambient"),
|
||||
BEACON_DEACTIVATE("beacon.deactivate"),
|
||||
BEACON_POWER("beacon.power"),
|
||||
BLOCK_LANTERN_BREAK("block.lantern.break"),
|
||||
BLOCK_LANTERN_FALL("block.lantern.fall"),
|
||||
BLOCK_LANTERN_HIT("block.lantern.hit"),
|
||||
BLOCK_LANTERN_PLACE("block.lantern.place"),
|
||||
BLOCK_LANTERN_STEP("block.lantern.step"),
|
||||
BLOCK_BAMBOO_BREAK("block.bamboo.break"),
|
||||
BLOCK_BAMBOO_FALL("block.bamboo.fall"),
|
||||
BLOCK_BAMBOO_HIT("block.bamboo.hit"),
|
||||
BLOCK_BAMBOO_PLACE("block.bamboo.place"),
|
||||
BLOCK_BAMBOO_STEP("block.bamboo.step"),
|
||||
BLOCK_BAMBOO_SAPLING_PLACE("block.bamboo_sapling.place"),
|
||||
BLOCK_BAMBOO_SAPLING_BREAK("block.bamboo_sapling.break"),
|
||||
BLOCK_CAMPFIRE_CRACKLE("block.campfire.crackle"),
|
||||
BLOCK_BARREL_CLOSE("block.barrel.close"),
|
||||
BLOCK_BARREL_OPEN("block.barrel.open"),
|
||||
BLOCK_FALSE_PERMISSIONS("block.false_permissions"),
|
||||
BLOCK_END_PORTAL_SPAWN("block.end_portal.spawn"),
|
||||
BLOCK_END_PORTAL_FRAME_FILL("block.end_portal_frame.fill"),
|
||||
BLOCK_ITEMFRAME_ADD_ITEM("block.itemframe.add_item"),
|
||||
BLOCK_ITEMFRAME_BREAK("block.itemframe.break"),
|
||||
BLOCK_ITEMFRAME_PLACE("block.itemframe.place"),
|
||||
BLOCK_ITEMFRAME_REMOVE_ITEM("block.itemframe.remove_item"),
|
||||
BLOCK_ITEMFRAME_ROTATE_ITEM("block.itemframe.rotate_item"),
|
||||
BLOCK_CHORUSFLOWER_DEATH("block.chorusflower.death"),
|
||||
BLOCK_CHORUSFLOWER_GROW("block.chorusflower.grow"),
|
||||
BLOCK_COMPOSTER_FILL("block.composter.fill"),
|
||||
BLOCK_COMPOSTER_FILL_SUCCESS("block.composter.fill_success"),
|
||||
BLOCK_COMPOSTER_EMPTY("block.composter.empty"),
|
||||
BLOCK_COMPOSTER_READY("block.composter.ready"),
|
||||
BLOCK_LOOM_USE("block.loom.use"),
|
||||
UI_LOOM_TAKE_RESULT("ui.loom.take_result"),
|
||||
UI_CARTOGRAPHY_TABLE_TAKE_RESULT("ui.cartography_table.take_result"),
|
||||
UI_LOOM_SELECT_PATTERN("ui.loom.select_pattern"),
|
||||
BLOCK_STONECUTTER_USE("block.stonecutter.use"),
|
||||
UI_STONECUTTER_TAKE_RESULT("ui.stonecutter.take_result"),
|
||||
BLOCK_CARTOGRAPHY_TABLE_USE("block.cartography_table.use"),
|
||||
BLOCK_GRINDSTONE_USE("block.grindstone.use"),
|
||||
BLOCK_TURTLE_EGG_DROP("block.turtle_egg.drop"),
|
||||
BLOCK_TURTLE_EGG_BREAK("block.turtle_egg.break"),
|
||||
BLOCK_TURTLE_EGG_CRACK("block.turtle_egg.crack"),
|
||||
BLOCK_SCAFFOLDING_BREAK("block.scaffolding.break"),
|
||||
BLOCK_SCAFFOLDING_FALL("block.scaffolding.fall"),
|
||||
BLOCK_SCAFFOLDING_HIT("block.scaffolding.hit"),
|
||||
BLOCK_SCAFFOLDING_PLACE("block.scaffolding.place"),
|
||||
BLOCK_SCAFFOLDING_STEP("block.scaffolding.step"),
|
||||
BLOCK_SCAFFOLDING_CLIMB("block.scaffolding.climb"),
|
||||
BLOCK_SWEET_BERRY_BUSH_BREAK("block.sweet_berry_bush.break"),
|
||||
BLOCK_SWEET_BERRY_BUSH_PLACE("block.sweet_berry_bush.place"),
|
||||
BLOCK_SWEET_BERRY_BUSH_HURT("block.sweet_berry_bush.hurt"),
|
||||
BLOCK_SWEET_BERRY_BUSH_PICK("block.sweet_berry_bush.pick"),
|
||||
BUCKET_EMPTY_LAVA("bucket.empty_lava"),
|
||||
BUCKET_EMPTY_WATER("bucket.empty_water"),
|
||||
BUCKET_FILL_LAVA("bucket.fill_lava"),
|
||||
BUCKET_FILL_WATER("bucket.fill_water"),
|
||||
BUCKET_FILL_FISH("bucket.fill_fish"),
|
||||
BUCKET_EMPTY_FISH("bucket.empty_fish"),
|
||||
BOTTLE_DRAGONBREATH("bottle.dragonbreath"),
|
||||
CAULDRON_EXPLODE("cauldron.explode"),
|
||||
CAULDRON_DYEARMOR("cauldron.dyearmor"),
|
||||
CAULDRON_CLEANARMOR("cauldron.cleanarmor"),
|
||||
CAULDRON_CLEANBANNER("cauldron.cleanbanner"),
|
||||
CAULDRON_FILLPOTION("cauldron.fillpotion"),
|
||||
CAULDRON_TAKEPOTION("cauldron.takepotion"),
|
||||
CAULDRON_FILLWATER("cauldron.fillwater"),
|
||||
CAULDRON_TAKEWATER("cauldron.takewater"),
|
||||
CAULDRON_ADDDYE("cauldron.adddye"),
|
||||
CONDUIT_ACTIVATE("conduit.activate"),
|
||||
CONDUIT_AMBIENT("conduit.ambient"),
|
||||
CONDUIT_ATTACK("conduit.attack"),
|
||||
CONDUIT_DEACTIVATE("conduit.deactivate"),
|
||||
CONDUIT_SHORT("conduit.short"),
|
||||
CROSSBOW_LOADING_START("crossbow.loading.start"),
|
||||
CROSSBOW_LOADING_MIDDLE("crossbow.loading.middle"),
|
||||
CROSSBOW_LOADING_END("crossbow.loading.end"),
|
||||
CROSSBOW_SHOOT("crossbow.shoot"),
|
||||
CROSSBOW_QUICK_CHARGE_START("crossbow.quick_charge.start"),
|
||||
CROSSBOW_QUICK_CHARGE_MIDDLE("crossbow.quick_charge.middle"),
|
||||
CROSSBOW_QUICK_CHARGE_END("crossbow.quick_charge.end"),
|
||||
DAMAGE_FALLBIG("damage.fallbig"),
|
||||
DAMAGE_FALLSMALL("damage.fallsmall"),
|
||||
ELYTRA_LOOP("elytra.loop"),
|
||||
GAME_PLAYER_ATTACK_NODAMAGE("game.player.attack.nodamage"),
|
||||
GAME_PLAYER_ATTACK_STRONG("game.player.attack.strong"),
|
||||
GAME_PLAYER_HURT("game.player.hurt"),
|
||||
GAME_PLAYER_DIE("game.player.die"),
|
||||
DIG_CLOTH("dig.cloth"),
|
||||
DIG_GRASS("dig.grass"),
|
||||
DIG_GRAVEL("dig.gravel"),
|
||||
DIG_SAND("dig.sand"),
|
||||
DIG_SNOW("dig.snow"),
|
||||
DIG_STONE("dig.stone"),
|
||||
DIG_WOOD("dig.wood"),
|
||||
TILE_PISTON_IN("tile.piston.in"),
|
||||
TILE_PISTON_OUT("tile.piston.out"),
|
||||
FIRE_FIRE("fire.fire"),
|
||||
FIRE_IGNITE("fire.ignite"),
|
||||
LEASHKNOT_BREAK("leashknot.break"),
|
||||
LEASHKNOT_PLACE("leashknot.place"),
|
||||
FIREWORK_BLAST("firework.blast"),
|
||||
FIREWORK_LARGE_BLAST("firework.large_blast"),
|
||||
FIREWORK_LAUNCH("firework.launch"),
|
||||
FIREWORK_SHOOT("firework.shoot"),
|
||||
FIREWORK_TWINKLE("firework.twinkle"),
|
||||
ARMOR_EQUIP_CHAIN("armor.equip_chain"),
|
||||
ARMOR_EQUIP_DIAMOND("armor.equip_diamond"),
|
||||
ARMOR_EQUIP_GENERIC("armor.equip_generic"),
|
||||
ARMOR_EQUIP_GOLD("armor.equip_gold"),
|
||||
ARMOR_EQUIP_IRON("armor.equip_iron"),
|
||||
ARMOR_EQUIP_LEATHER("armor.equip_leather"),
|
||||
LIQUID_LAVA("liquid.lava"),
|
||||
LIQUID_LAVAPOP("liquid.lavapop"),
|
||||
LIQUID_WATER("liquid.water"),
|
||||
BUBBLE_POP("bubble.pop"),
|
||||
BUBBLE_UP("bubble.up"),
|
||||
BUBBLE_UPINSIDE("bubble.upinside"),
|
||||
BUBBLE_DOWN("bubble.down"),
|
||||
BUBBLE_DOWNINSIDE("bubble.downinside"),
|
||||
MINECART_BASE("minecart.base"),
|
||||
MINECART_INSIDE("minecart.inside"),
|
||||
FURNACE_LIT("furnace.lit"),
|
||||
BLOCK_BLASTFURNACE_FIRE_CRACKLE("block.blastfurnace.fire_crackle"),
|
||||
BLOCK_SMOKER_SMOKE("block.smoker.smoke"),
|
||||
MOB_AGENT_SPAWN("mob.agent.spawn"),
|
||||
MOB_ARMOR_STAND_BREAK("mob.armor_stand.break"),
|
||||
MOB_ARMOR_STAND_HIT("mob.armor_stand.hit"),
|
||||
MOB_ARMOR_STAND_LAND("mob.armor_stand.land"),
|
||||
MOB_ARMOR_STAND_PLACE("mob.armor_stand.place"),
|
||||
MOB_BAT_DEATH("mob.bat.death"),
|
||||
MOB_BAT_HURT("mob.bat.hurt"),
|
||||
MOB_BAT_IDLE("mob.bat.idle"),
|
||||
MOB_BAT_TAKEOFF("mob.bat.takeoff"),
|
||||
MOB_BLAZE_BREATHE("mob.blaze.breathe"),
|
||||
MOB_BLAZE_DEATH("mob.blaze.death"),
|
||||
MOB_BLAZE_HIT("mob.blaze.hit"),
|
||||
MOB_BLAZE_SHOOT("mob.blaze.shoot"),
|
||||
MOB_CHICKEN_HURT("mob.chicken.hurt"),
|
||||
MOB_CHICKEN_PLOP("mob.chicken.plop"),
|
||||
MOB_CHICKEN_SAY("mob.chicken.say"),
|
||||
MOB_CHICKEN_STEP("mob.chicken.step"),
|
||||
MOB_COW_HURT("mob.cow.hurt"),
|
||||
MOB_COW_SAY("mob.cow.say"),
|
||||
MOB_COW_STEP("mob.cow.step"),
|
||||
MOB_COW_MILK("mob.cow.milk"),
|
||||
MOB_CREEPER_DEATH("mob.creeper.death"),
|
||||
MOB_CREEPER_SAY("mob.creeper.say"),
|
||||
MOB_DOLPHIN_IDLE_WATER("mob.dolphin.idle_water"),
|
||||
MOB_DOLPHIN_ATTACK("mob.dolphin.attack"),
|
||||
MOB_DOLPHIN_BLOWHOLE("mob.dolphin.blowhole"),
|
||||
MOB_DOLPHIN_DEATH("mob.dolphin.death"),
|
||||
MOB_DOLPHIN_EAT("mob.dolphin.eat"),
|
||||
MOB_DOLPHIN_HURT("mob.dolphin.hurt"),
|
||||
MOB_DOLPHIN_IDLE("mob.dolphin.idle"),
|
||||
MOB_DOLPHIN_JUMP("mob.dolphin.jump"),
|
||||
MOB_DOLPHIN_PLAY("mob.dolphin.play"),
|
||||
MOB_DOLPHIN_SPLASH("mob.dolphin.splash"),
|
||||
MOB_DOLPHIN_SWIM("mob.dolphin.swim"),
|
||||
MOB_DROWNED_SAY_WATER("mob.drowned.say_water"),
|
||||
MOB_DROWNED_DEATH_WATER("mob.drowned.death_water"),
|
||||
MOB_DROWNED_HURT_WATER("mob.drowned.hurt_water"),
|
||||
MOB_DROWNED_SAY("mob.drowned.say"),
|
||||
MOB_DROWNED_DEATH("mob.drowned.death"),
|
||||
MOB_DROWNED_HURT("mob.drowned.hurt"),
|
||||
MOB_DROWNED_SHOOT("mob.drowned.shoot"),
|
||||
MOB_DROWNED_STEP("mob.drowned.step"),
|
||||
MOB_DROWNED_SWIM("mob.drowned.swim"),
|
||||
ENTITY_ZOMBIE_CONVERTED_TO_DROWNED("entity.zombie.converted_to_drowned"),
|
||||
MOB_ENDERMEN_DEATH("mob.endermen.death"),
|
||||
MOB_ENDERMEN_HIT("mob.endermen.hit"),
|
||||
MOB_ENDERMEN_IDLE("mob.endermen.idle"),
|
||||
MOB_ENDERMEN_PORTAL("mob.endermen.portal"),
|
||||
MOB_ENDERMEN_SCREAM("mob.endermen.scream"),
|
||||
MOB_ENDERMEN_STARE("mob.endermen.stare"),
|
||||
MOB_ENDERDRAGON_DEATH("mob.enderdragon.death"),
|
||||
MOB_ENDERDRAGON_HIT("mob.enderdragon.hit"),
|
||||
MOB_ENDERDRAGON_FLAP("mob.enderdragon.flap"),
|
||||
MOB_ENDERDRAGON_GROWL("mob.enderdragon.growl"),
|
||||
MOB_GHAST_AFFECTIONATE_SCREAM("mob.ghast.affectionate_scream"),
|
||||
MOB_GHAST_CHARGE("mob.ghast.charge"),
|
||||
MOB_GHAST_DEATH("mob.ghast.death"),
|
||||
MOB_GHAST_FIREBALL("mob.ghast.fireball"),
|
||||
MOB_GHAST_MOAN("mob.ghast.moan"),
|
||||
MOB_GHAST_SCREAM("mob.ghast.scream"),
|
||||
MOB_GUARDIAN_AMBIENT("mob.guardian.ambient"),
|
||||
MOB_GUARDIAN_ATTACK_LOOP("mob.guardian.attack_loop"),
|
||||
MOB_ELDERGUARDIAN_CURSE("mob.elderguardian.curse"),
|
||||
MOB_ELDERGUARDIAN_DEATH("mob.elderguardian.death"),
|
||||
MOB_ELDERGUARDIAN_HIT("mob.elderguardian.hit"),
|
||||
MOB_ELDERGUARDIAN_IDLE("mob.elderguardian.idle"),
|
||||
MOB_GUARDIAN_FLOP("mob.guardian.flop"),
|
||||
MOB_GUARDIAN_DEATH("mob.guardian.death"),
|
||||
MOB_GUARDIAN_HIT("mob.guardian.hit"),
|
||||
MOB_GUARDIAN_LAND_DEATH("mob.guardian.land_death"),
|
||||
MOB_GUARDIAN_LAND_HIT("mob.guardian.land_hit"),
|
||||
MOB_GUARDIAN_LAND_IDLE("mob.guardian.land_idle"),
|
||||
MOB_FISH_FLOP("mob.fish.flop"),
|
||||
MOB_FISH_HURT("mob.fish.hurt"),
|
||||
MOB_FISH_STEP("mob.fish.step"),
|
||||
MOB_LLAMA_ANGRY("mob.llama.angry"),
|
||||
MOB_LLAMA_DEATH("mob.llama.death"),
|
||||
MOB_LLAMA_IDLE("mob.llama.idle"),
|
||||
MOB_LLAMA_SPIT("mob.llama.spit"),
|
||||
MOB_LLAMA_HURT("mob.llama.hurt"),
|
||||
MOB_LLAMA_EAT("mob.llama.eat"),
|
||||
MOB_LLAMA_STEP("mob.llama.step"),
|
||||
MOB_LLAMA_SWAG("mob.llama.swag"),
|
||||
MOB_HORSE_ANGRY("mob.horse.angry"),
|
||||
MOB_HORSE_ARMOR("mob.horse.armor"),
|
||||
MOB_HORSE_BREATHE("mob.horse.breathe"),
|
||||
MOB_HORSE_DEATH("mob.horse.death"),
|
||||
MOB_HORSE_DONKEY_ANGRY("mob.horse.donkey.angry"),
|
||||
MOB_HORSE_DONKEY_DEATH("mob.horse.donkey.death"),
|
||||
MOB_HORSE_DONKEY_HIT("mob.horse.donkey.hit"),
|
||||
MOB_HORSE_DONKEY_IDLE("mob.horse.donkey.idle"),
|
||||
MOB_HORSE_EAT("mob.horse.eat"),
|
||||
MOB_HORSE_GALLOP("mob.horse.gallop"),
|
||||
MOB_HORSE_HIT("mob.horse.hit"),
|
||||
MOB_HORSE_IDLE("mob.horse.idle"),
|
||||
MOB_HORSE_JUMP("mob.horse.jump"),
|
||||
MOB_HORSE_LAND("mob.horse.land"),
|
||||
MOB_HORSE_LEATHER("mob.horse.leather"),
|
||||
MOB_HORSE_SKELETON_DEATH("mob.horse.skeleton.death"),
|
||||
MOB_HORSE_SKELETON_HIT("mob.horse.skeleton.hit"),
|
||||
MOB_HORSE_SKELETON_IDLE("mob.horse.skeleton.idle"),
|
||||
MOB_HORSE_SOFT("mob.horse.soft"),
|
||||
MOB_HORSE_WOOD("mob.horse.wood"),
|
||||
MOB_HORSE_ZOMBIE_DEATH("mob.horse.zombie.death"),
|
||||
MOB_HORSE_ZOMBIE_HIT("mob.horse.zombie.hit"),
|
||||
MOB_HORSE_ZOMBIE_IDLE("mob.horse.zombie.idle"),
|
||||
MOB_HUSK_AMBIENT("mob.husk.ambient"),
|
||||
MOB_HUSK_DEATH("mob.husk.death"),
|
||||
MOB_HUSK_HURT("mob.husk.hurt"),
|
||||
MOB_HUSK_STEP("mob.husk.step"),
|
||||
MOB_RAVAGER_AMBIENT("mob.ravager.ambient"),
|
||||
MOB_RAVAGER_BITE("mob.ravager.bite"),
|
||||
MOB_RAVAGER_DEATH("mob.ravager.death"),
|
||||
MOB_RAVAGER_HURT("mob.ravager.hurt"),
|
||||
MOB_RAVAGER_ROAR("mob.ravager.roar"),
|
||||
MOB_RAVAGER_STEP("mob.ravager.step"),
|
||||
MOB_RAVAGER_STUN("mob.ravager.stun"),
|
||||
MOB_IRONGOLEM_THROW("mob.irongolem.throw"),
|
||||
MOB_IRONGOLEM_DEATH("mob.irongolem.death"),
|
||||
MOB_IRONGOLEM_HIT("mob.irongolem.hit"),
|
||||
MOB_IRONGOLEM_WALK("mob.irongolem.walk"),
|
||||
MOB_SHULKER_AMBIENT("mob.shulker.ambient"),
|
||||
MOB_SHULKER_CLOSE("mob.shulker.close"),
|
||||
MOB_SHULKER_DEATH("mob.shulker.death"),
|
||||
MOB_SHULKER_CLOSE_HURT("mob.shulker.close.hurt"),
|
||||
MOB_SHULKER_HURT("mob.shulker.hurt"),
|
||||
MOB_SHULKER_OPEN("mob.shulker.open"),
|
||||
MOB_SHULKER_SHOOT("mob.shulker.shoot"),
|
||||
MOB_SHULKER_TELEPORT("mob.shulker.teleport"),
|
||||
MOB_SHULKER_BULLET_HIT("mob.shulker.bullet.hit"),
|
||||
MOB_MAGMACUBE_BIG("mob.magmacube.big"),
|
||||
MOB_MAGMACUBE_JUMP("mob.magmacube.jump"),
|
||||
MOB_MAGMACUBE_SMALL("mob.magmacube.small"),
|
||||
MOB_PARROT_IDLE("mob.parrot.idle"),
|
||||
MOB_PARROT_HURT("mob.parrot.hurt"),
|
||||
MOB_PARROT_DEATH("mob.parrot.death"),
|
||||
MOB_PARROT_STEP("mob.parrot.step"),
|
||||
MOB_PARROT_EAT("mob.parrot.eat"),
|
||||
MOB_PARROT_FLY("mob.parrot.fly"),
|
||||
MOB_PHANTOM_BITE("mob.phantom.bite"),
|
||||
MOB_PHANTOM_DEATH("mob.phantom.death"),
|
||||
MOB_PHANTOM_HURT("mob.phantom.hurt"),
|
||||
MOB_PHANTOM_IDLE("mob.phantom.idle"),
|
||||
MOB_PHANTOM_SWOOP("mob.phantom.swoop"),
|
||||
MOB_PIG_DEATH("mob.pig.death"),
|
||||
MOB_PIG_BOOST("mob.pig.boost"),
|
||||
MOB_PIG_SAY("mob.pig.say"),
|
||||
MOB_PIG_STEP("mob.pig.step"),
|
||||
MOB_PILLAGER_DEATH("mob.pillager.death"),
|
||||
MOB_PILLAGER_HURT("mob.pillager.hurt"),
|
||||
MOB_PILLAGER_IDLE("mob.pillager.idle"),
|
||||
MOB_RABBIT_HURT("mob.rabbit.hurt"),
|
||||
MOB_RABBIT_IDLE("mob.rabbit.idle"),
|
||||
MOB_RABBIT_HOP("mob.rabbit.hop"),
|
||||
MOB_RABBIT_DEATH("mob.rabbit.death"),
|
||||
MOB_SHEEP_SAY("mob.sheep.say"),
|
||||
MOB_SHEEP_SHEAR("mob.sheep.shear"),
|
||||
MOB_SHEEP_STEP("mob.sheep.step"),
|
||||
MOB_SILVERFISH_HIT("mob.silverfish.hit"),
|
||||
MOB_SILVERFISH_KILL("mob.silverfish.kill"),
|
||||
MOB_SILVERFISH_SAY("mob.silverfish.say"),
|
||||
MOB_SILVERFISH_STEP("mob.silverfish.step"),
|
||||
MOB_ENDERMITE_HIT("mob.endermite.hit"),
|
||||
MOB_ENDERMITE_KILL("mob.endermite.kill"),
|
||||
MOB_ENDERMITE_SAY("mob.endermite.say"),
|
||||
MOB_ENDERMITE_STEP("mob.endermite.step"),
|
||||
MOB_SKELETON_DEATH("mob.skeleton.death"),
|
||||
MOB_SKELETON_HURT("mob.skeleton.hurt"),
|
||||
MOB_SKELETON_SAY("mob.skeleton.say"),
|
||||
MOB_SKELETON_STEP("mob.skeleton.step"),
|
||||
MOB_SLIME_BIG("mob.slime.big"),
|
||||
MOB_SLIME_SMALL("mob.slime.small"),
|
||||
MOB_SLIME_ATTACK("mob.slime.attack"),
|
||||
MOB_SLIME_DEATH("mob.slime.death"),
|
||||
MOB_SLIME_HURT("mob.slime.hurt"),
|
||||
MOB_SLIME_JUMP("mob.slime.jump"),
|
||||
MOB_SLIME_SQUISH("mob.slime.squish"),
|
||||
MOB_SNOWGOLEM_DEATH("mob.snowgolem.death"),
|
||||
MOB_SNOWGOLEM_HURT("mob.snowgolem.hurt"),
|
||||
MOB_SNOWGOLEM_SHOOT("mob.snowgolem.shoot"),
|
||||
MOB_SPIDER_DEATH("mob.spider.death"),
|
||||
MOB_SPIDER_SAY("mob.spider.say"),
|
||||
MOB_SPIDER_STEP("mob.spider.step"),
|
||||
MOB_SQUID_AMBIENT("mob.squid.ambient"),
|
||||
MOB_SQUID_DEATH("mob.squid.death"),
|
||||
MOB_SQUID_HURT("mob.squid.hurt"),
|
||||
MOB_TURTLE_AMBIENT("mob.turtle.ambient"),
|
||||
MOB_TURTLE_BABY_BORN("mob.turtle_baby.born"),
|
||||
MOB_TURTLE_DEATH("mob.turtle.death"),
|
||||
MOB_TURTLE_BABY_DEATH("mob.turtle_baby.death"),
|
||||
MOB_TURTLE_HURT("mob.turtle.hurt"),
|
||||
MOB_TURTLE_BABY_HURT("mob.turtle_baby.hurt"),
|
||||
MOB_TURTLE_STEP("mob.turtle.step"),
|
||||
MOB_TURTLE_BABY_STEP("mob.turtle_baby.step"),
|
||||
MOB_TURTLE_SWIM("mob.turtle.swim"),
|
||||
MOB_STRAY_AMBIENT("mob.stray.ambient"),
|
||||
MOB_STRAY_DEATH("mob.stray.death"),
|
||||
MOB_STRAY_HURT("mob.stray.hurt"),
|
||||
MOB_STRAY_STEP("mob.stray.step"),
|
||||
MOB_VILLAGER_DEATH("mob.villager.death"),
|
||||
MOB_VILLAGER_HAGGLE("mob.villager.haggle"),
|
||||
MOB_VILLAGER_HIT("mob.villager.hit"),
|
||||
MOB_VILLAGER_IDLE("mob.villager.idle"),
|
||||
MOB_VILLAGER_NO("mob.villager.no"),
|
||||
MOB_VILLAGER_YES("mob.villager.yes"),
|
||||
MOB_VINDICATOR_DEATH("mob.vindicator.death"),
|
||||
MOB_VINDICATOR_HURT("mob.vindicator.hurt"),
|
||||
MOB_VINDICATOR_IDLE("mob.vindicator.idle"),
|
||||
MOB_EVOCATION_FANGS_ATTACK("mob.evocation_fangs.attack"),
|
||||
MOB_EVOCATION_ILLAGER_AMBIENT("mob.evocation_illager.ambient"),
|
||||
MOB_EVOCATION_ILLAGER_CAST_SPELL("mob.evocation_illager.cast_spell"),
|
||||
MOB_EVOCATION_ILLAGER_DEATH("mob.evocation_illager.death"),
|
||||
MOB_EVOCATION_ILLAGER_HURT("mob.evocation_illager.hurt"),
|
||||
MOB_EVOCATION_ILLAGER_PREPARE_ATTACK("mob.evocation_illager.prepare_attack"),
|
||||
MOB_EVOCATION_ILLAGER_PREPARE_SUMMON("mob.evocation_illager.prepare_summon"),
|
||||
MOB_EVOCATION_ILLAGER_PREPARE_WOLOLO("mob.evocation_illager.prepare_wololo"),
|
||||
MOB_VEX_AMBIENT("mob.vex.ambient"),
|
||||
MOB_VEX_DEATH("mob.vex.death"),
|
||||
MOB_VEX_HURT("mob.vex.hurt"),
|
||||
MOB_VEX_CHARGE("mob.vex.charge"),
|
||||
ITEM_BOOK_PAGE_TURN("item.book.page_turn"),
|
||||
ITEM_BOOK_PUT("item.book.put"),
|
||||
BLOCK_BELL_HIT("block.bell.hit"),
|
||||
ITEM_TRIDENT_HIT_GROUND("item.trident.hit_ground"),
|
||||
ITEM_TRIDENT_HIT("item.trident.hit"),
|
||||
ITEM_TRIDENT_RETURN("item.trident.return"),
|
||||
ITEM_TRIDENT_RIPTIDE_1("item.trident.riptide_1"),
|
||||
ITEM_TRIDENT_RIPTIDE_2("item.trident.riptide_2"),
|
||||
ITEM_TRIDENT_RIPTIDE_3("item.trident.riptide_3"),
|
||||
ITEM_TRIDENT_THROW("item.trident.throw"),
|
||||
ITEM_TRIDENT_THUNDER("item.trident.thunder"),
|
||||
ITEM_SHIELD_BLOCK("item.shield.block"),
|
||||
MOB_WANDERINGTRADER_IDLE("mob.wanderingtrader.idle"),
|
||||
MOB_WANDERINGTRADER_DEATH("mob.wanderingtrader.death"),
|
||||
MOB_WANDERINGTRADER_DISAPPEARED("mob.wanderingtrader.disappeared"),
|
||||
MOB_WANDERINGTRADER_DRINK_MILK("mob.wanderingtrader.drink_milk"),
|
||||
MOB_WANDERINGTRADER_DRINK_POTION("mob.wanderingtrader.drink_potion"),
|
||||
MOB_WANDERINGTRADER_HAGGLE("mob.wanderingtrader.haggle"),
|
||||
MOB_WANDERINGTRADER_YES("mob.wanderingtrader.yes"),
|
||||
MOB_WANDERINGTRADER_NO("mob.wanderingtrader.no"),
|
||||
MOB_WANDERINGTRADER_HURT("mob.wanderingtrader.hurt"),
|
||||
MOB_WANDERINGTRADER_REAPPEARED("mob.wanderingtrader.reappeared"),
|
||||
MOB_WITCH_AMBIENT("mob.witch.ambient"),
|
||||
MOB_WITCH_DEATH("mob.witch.death"),
|
||||
MOB_WITCH_HURT("mob.witch.hurt"),
|
||||
MOB_WITCH_DRINK("mob.witch.drink"),
|
||||
MOB_WITCH_THROW("mob.witch.throw"),
|
||||
MOB_WITHER_AMBIENT("mob.wither.ambient"),
|
||||
MOB_WITHER_BREAK_BLOCK("mob.wither.break_block"),
|
||||
MOB_WITHER_DEATH("mob.wither.death"),
|
||||
MOB_WITHER_HURT("mob.wither.hurt"),
|
||||
MOB_WITHER_SHOOT("mob.wither.shoot"),
|
||||
MOB_WITHER_SPAWN("mob.wither.spawn"),
|
||||
MOB_WOLF_BARK("mob.wolf.bark"),
|
||||
MOB_WOLF_DEATH("mob.wolf.death"),
|
||||
MOB_WOLF_GROWL("mob.wolf.growl"),
|
||||
MOB_WOLF_HURT("mob.wolf.hurt"),
|
||||
MOB_WOLF_PANTING("mob.wolf.panting"),
|
||||
MOB_WOLF_SHAKE("mob.wolf.shake"),
|
||||
MOB_WOLF_STEP("mob.wolf.step"),
|
||||
MOB_WOLF_WHINE("mob.wolf.whine"),
|
||||
MOB_OCELOT_IDLE("mob.ocelot.idle"),
|
||||
MOB_OCELOT_DEATH("mob.ocelot.death"),
|
||||
MOB_CAT_EAT("mob.cat.eat"),
|
||||
MOB_CAT_HISS("mob.cat.hiss"),
|
||||
MOB_CAT_HIT("mob.cat.hit"),
|
||||
MOB_CAT_MEOW("mob.cat.meow"),
|
||||
MOB_CAT_BEG("mob.cat.beg"),
|
||||
MOB_CAT_STRAYMEOW("mob.cat.straymeow"),
|
||||
MOB_CAT_PURR("mob.cat.purr"),
|
||||
MOB_CAT_PURREOW("mob.cat.purreow"),
|
||||
MOB_POLARBEAR_BABY_IDLE("mob.polarbear_baby.idle"),
|
||||
MOB_POLARBEAR_IDLE("mob.polarbear.idle"),
|
||||
MOB_POLARBEAR_STEP("mob.polarbear.step"),
|
||||
MOB_POLARBEAR_WARNING("mob.polarbear.warning"),
|
||||
MOB_POLARBEAR_HURT("mob.polarbear.hurt"),
|
||||
MOB_POLARBEAR_DEATH("mob.polarbear.death"),
|
||||
MOB_PANDA_BABY_IDLE("mob.panda_baby.idle"),
|
||||
MOB_PANDA_IDLE("mob.panda.idle"),
|
||||
MOB_PANDA_IDLE_AGGRESSIVE("mob.panda.idle.aggressive"),
|
||||
MOB_PANDA_IDLE_WORRIED("mob.panda.idle.worried"),
|
||||
MOB_PANDA_STEP("mob.panda.step"),
|
||||
MOB_PANDA_PRESNEEZE("mob.panda.presneeze"),
|
||||
MOB_PANDA_SNEEZE("mob.panda.sneeze"),
|
||||
MOB_PANDA_HURT("mob.panda.hurt"),
|
||||
MOB_PANDA_DEATH("mob.panda.death"),
|
||||
MOB_PANDA_BITE("mob.panda.bite"),
|
||||
MOB_PANDA_EAT("mob.panda.eat"),
|
||||
MOB_PANDA_CANT_BREED("mob.panda.cant_breed"),
|
||||
MOB_ZOMBIE_DEATH("mob.zombie.death"),
|
||||
MOB_ZOMBIE_HURT("mob.zombie.hurt"),
|
||||
MOB_ZOMBIE_REMEDY("mob.zombie.remedy"),
|
||||
MOB_ZOMBIE_UNFECT("mob.zombie.unfect"),
|
||||
MOB_ZOMBIE_SAY("mob.zombie.say"),
|
||||
MOB_ZOMBIE_STEP("mob.zombie.step"),
|
||||
MOB_ZOMBIE_WOOD("mob.zombie.wood"),
|
||||
MOB_ZOMBIE_WOODBREAK("mob.zombie.woodbreak"),
|
||||
MOB_ZOMBIEPIG_ZPIG("mob.zombiepig.zpig"),
|
||||
MOB_ZOMBIEPIG_ZPIGANGRY("mob.zombiepig.zpigangry"),
|
||||
MOB_ZOMBIEPIG_ZPIGDEATH("mob.zombiepig.zpigdeath"),
|
||||
MOB_ZOMBIEPIG_ZPIGHURT("mob.zombiepig.zpighurt"),
|
||||
MOB_ZOMBIE_VILLAGER_SAY("mob.zombie_villager.say"),
|
||||
MOB_ZOMBIE_VILLAGER_DEATH("mob.zombie_villager.death"),
|
||||
MOB_ZOMBIE_VILLAGER_HURT("mob.zombie_villager.hurt"),
|
||||
NOTE_BASS("note.bass"),
|
||||
NOTE_BASSATTACK("note.bassattack"),
|
||||
NOTE_BD("note.bd"),
|
||||
NOTE_HARP("note.harp"),
|
||||
NOTE_HAT("note.hat"),
|
||||
NOTE_PLING("note.pling"),
|
||||
NOTE_SNARE("note.snare"),
|
||||
PORTAL_PORTAL("portal.portal"),
|
||||
PORTAL_TRAVEL("portal.travel"),
|
||||
PORTAL_TRIGGER("portal.trigger"),
|
||||
RANDOM_ANVIL_BREAK("random.anvil_break"),
|
||||
RANDOM_ANVIL_LAND("random.anvil_land"),
|
||||
RANDOM_ANVIL_USE("random.anvil_use"),
|
||||
RANDOM_BOW("random.bow"),
|
||||
RANDOM_BOWHIT("random.bowhit"),
|
||||
RANDOM_BREAK("random.break"),
|
||||
RANDOM_BURP("random.burp"),
|
||||
RANDOM_CHESTCLOSED("random.chestclosed"),
|
||||
RANDOM_CHESTOPEN("random.chestopen"),
|
||||
RANDOM_SHULKERBOXCLOSED("random.shulkerboxclosed"),
|
||||
RANDOM_SHULKERBOXOPEN("random.shulkerboxopen"),
|
||||
RANDOM_ENDERCHESTOPEN("random.enderchestopen"),
|
||||
RANDOM_ENDERCHESTCLOSED("random.enderchestclosed"),
|
||||
RANDOM_POTION_BREWED("random.potion.brewed"),
|
||||
RANDOM_CLICK("random.click"),
|
||||
RANDOM_DOOR_CLOSE("random.door_close"),
|
||||
RANDOM_DOOR_OPEN("random.door_open"),
|
||||
RANDOM_DRINK("random.drink"),
|
||||
RANDOM_EAT("random.eat"),
|
||||
RANDOM_EXPLODE("random.explode"),
|
||||
RANDOM_FIZZ("random.fizz"),
|
||||
RANDOM_FUSE("random.fuse"),
|
||||
RANDOM_GLASS("random.glass"),
|
||||
RANDOM_LEVELUP("random.levelup"),
|
||||
RANDOM_ORB("random.orb"),
|
||||
RANDOM_POP("random.pop"),
|
||||
RANDOM_POP2("random.pop2"),
|
||||
RANDOM_SCREENSHOT("random.screenshot"),
|
||||
RANDOM_SPLASH("random.splash"),
|
||||
RANDOM_SWIM("random.swim"),
|
||||
RANDOM_HURT("random.hurt"),
|
||||
RANDOM_TOAST("random.toast"),
|
||||
RANDOM_TOTEM("random.totem"),
|
||||
CAMERA_TAKE_PICTURE("camera.take_picture"),
|
||||
USE_LADDER("use.ladder"),
|
||||
HIT_LADDER("hit.ladder"),
|
||||
FALL_LADDER("fall.ladder"),
|
||||
STEP_LADDER("step.ladder"),
|
||||
USE_CLOTH("use.cloth"),
|
||||
HIT_CLOTH("hit.cloth"),
|
||||
FALL_CLOTH("fall.cloth"),
|
||||
STEP_CLOTH("step.cloth"),
|
||||
USE_GRASS("use.grass"),
|
||||
HIT_GRASS("hit.grass"),
|
||||
FALL_GRASS("fall.grass"),
|
||||
STEP_GRASS("step.grass"),
|
||||
USE_GRAVEL("use.gravel"),
|
||||
HIT_GRAVEL("hit.gravel"),
|
||||
FALL_GRAVEL("fall.gravel"),
|
||||
STEP_GRAVEL("step.gravel"),
|
||||
USE_SAND("use.sand"),
|
||||
HIT_SAND("hit.sand"),
|
||||
FALL_SAND("fall.sand"),
|
||||
STEP_SAND("step.sand"),
|
||||
USE_SLIME("use.slime"),
|
||||
HIT_SLIME("hit.slime"),
|
||||
FALL_SLIME("fall.slime"),
|
||||
STEP_SLIME("step.slime"),
|
||||
USE_SNOW("use.snow"),
|
||||
HIT_SNOW("hit.snow"),
|
||||
FALL_SNOW("fall.snow"),
|
||||
STEP_SNOW("step.snow"),
|
||||
USE_STONE("use.stone"),
|
||||
HIT_STONE("hit.stone"),
|
||||
FALL_STONE("fall.stone"),
|
||||
FALL_EGG("fall.egg"),
|
||||
STEP_STONE("step.stone"),
|
||||
USE_WOOD("use.wood"),
|
||||
HIT_WOOD("hit.wood"),
|
||||
FALL_WOOD("fall.wood"),
|
||||
STEP_WOOD("step.wood"),
|
||||
JUMP_CLOTH("jump.cloth"),
|
||||
JUMP_GRASS("jump.grass"),
|
||||
JUMP_GRAVEL("jump.gravel"),
|
||||
JUMP_SAND("jump.sand"),
|
||||
JUMP_SNOW("jump.snow"),
|
||||
JUMP_STONE("jump.stone"),
|
||||
JUMP_WOOD("jump.wood"),
|
||||
JUMP_SLIME("jump.slime"),
|
||||
LAND_CLOTH("land.cloth"),
|
||||
LAND_GRASS("land.grass"),
|
||||
LAND_GRAVEL("land.gravel"),
|
||||
LAND_SAND("land.sand"),
|
||||
LAND_SNOW("land.snow"),
|
||||
LAND_STONE("land.stone"),
|
||||
LAND_WOOD("land.wood"),
|
||||
LAND_SLIME("land.slime"),
|
||||
VR_STUTTERTURN("vr.stutterturn"),
|
||||
RECORD_13("record.13"),
|
||||
RECORD_CAT("record.cat"),
|
||||
RECORD_BLOCKS("record.blocks"),
|
||||
RECORD_CHIRP("record.chirp"),
|
||||
RECORD_FAR("record.far"),
|
||||
RECORD_MALL("record.mall"),
|
||||
RECORD_MELLOHI("record.mellohi"),
|
||||
RECORD_STAL("record.stal"),
|
||||
RECORD_STRAD("record.strad"),
|
||||
RECORD_WARD("record.ward"),
|
||||
RECORD_11("record.11"),
|
||||
RECORD_WAIT("record.wait"),
|
||||
RAID_HORN("raid.horn"),
|
||||
MUSIC_MENU("music.menu"),
|
||||
MUSIC_GAME("music.game"),
|
||||
MUSIC_GAME_CREATIVE("music.game.creative"),
|
||||
MUSIC_GAME_END("music.game.end"),
|
||||
MUSIC_GAME_ENDBOSS("music.game.endboss"),
|
||||
MUSIC_GAME_NETHER("music.game.nether"),
|
||||
MUSIC_GAME_CREDITS("music.game.credits");
|
||||
|
||||
private final String sound;
|
||||
|
||||
Sound(String sound) {
|
||||
this.sound = sound;
|
||||
}
|
||||
|
||||
public String getSound() {
|
||||
return this.sound;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,56 @@
|
|||
package org.geysermc.connector.network.translators.effect;
|
||||
|
||||
import com.github.steveice10.mc.protocol.data.game.world.sound.BuiltinSound;
|
||||
import org.geysermc.connector.network.translators.TranslatorsInit;
|
||||
|
||||
public class SoundTranslator {
|
||||
private static final String[] BLOCK_OPS = {"BREAK", "HIT", "USE", "STEP", "FALL"};
|
||||
|
||||
public static void translate() {
|
||||
for(BuiltinSound jSound : BuiltinSound.values()) {
|
||||
try {
|
||||
for(Sound bSound : Sound.values()) {
|
||||
if(converted(jSound.name(), true).equalsIgnoreCase(converted(bSound.name(), false))) {
|
||||
TranslatorsInit.SOUNDS.put(jSound, bSound);
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static String converted(String string, boolean java) {
|
||||
if(java && string.contains("BLOCK")) {
|
||||
for (String blockOp : BLOCK_OPS) {
|
||||
if (string.endsWith(blockOp)) {
|
||||
string = blockOp + string.replace(blockOp, "");
|
||||
System.out.println(string);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
string = string.replaceAll("_", "")
|
||||
.replaceAll("RANDOM", "")
|
||||
.replaceAll("MUSICDISC", "RECORD")
|
||||
.replaceAll("BLOCK", "")
|
||||
.replaceAll("ENTITY", "")
|
||||
.replaceAll("EVENT", "")
|
||||
.replaceAll("GAME", "")
|
||||
.replaceAll("EVOCATIONILLAGER", "EVOKER")
|
||||
.replaceAll("MOB", "")
|
||||
.replaceAll("BREAK", "DIG")
|
||||
.replaceAll("WOOL", "CLOTH")
|
||||
.replaceAll("FALL", "LAND")
|
||||
.replaceAll("IDLE", "AMBIENT")
|
||||
.replaceAll("HURT", "HIT")
|
||||
.replaceAll("ENDERMEN", "ENDERMAN")
|
||||
.replaceAll("KILL", "DEATH")
|
||||
.replaceAll("ITEM", "")
|
||||
.replaceAll("HORSEDONKEY", "DONKEY")
|
||||
.replaceAll("HORSESKELETON", "SKELETONHORSE")
|
||||
.replaceAll("HORSEZOMBIE", "ZOMBIEHORSE");
|
||||
|
||||
return string;
|
||||
}
|
||||
}
|
|
@ -51,6 +51,18 @@ import java.util.List;
|
|||
import java.util.Map;
|
||||
|
||||
public class ItemTranslator {
|
||||
public static final byte TAG_End = 0;
|
||||
public static final byte TAG_Byte = 1;
|
||||
public static final byte TAG_Short = 2;
|
||||
public static final byte TAG_Int = 3;
|
||||
public static final byte TAG_Long = 4;
|
||||
public static final byte TAG_Float = 5;
|
||||
public static final byte TAG_Double = 6;
|
||||
public static final byte TAG_Byte_Array = 7;
|
||||
public static final byte TAG_String = 8;
|
||||
public static final byte TAG_List = 9;
|
||||
public static final byte TAG_Compound = 10;
|
||||
public static final byte TAG_Int_Array = 11;
|
||||
|
||||
public ItemStack translateToJava(ItemData data) {
|
||||
ItemEntry javaItem = getItem(data);
|
||||
|
@ -89,7 +101,7 @@ public class ItemTranslator {
|
|||
return ItemEntry.AIR;
|
||||
}
|
||||
|
||||
private CompoundTag translateToJavaNBT(com.nukkitx.nbt.tag.CompoundTag tag) {
|
||||
public CompoundTag translateToJavaNBT(com.nukkitx.nbt.tag.CompoundTag tag) {
|
||||
CompoundTag javaTag = new CompoundTag(tag.getName());
|
||||
Map<String, Tag> javaValue = javaTag.getValue();
|
||||
if (tag.getValue() != null && !tag.getValue().isEmpty()) {
|
||||
|
@ -106,7 +118,7 @@ public class ItemTranslator {
|
|||
return javaTag;
|
||||
}
|
||||
|
||||
private Tag translateToJavaNBT(com.nukkitx.nbt.tag.Tag tag) {
|
||||
public Tag translateToJavaNBT(com.nukkitx.nbt.tag.Tag tag) {
|
||||
if (tag instanceof com.nukkitx.nbt.tag.ByteArrayTag) {
|
||||
com.nukkitx.nbt.tag.ByteArrayTag byteArrayTag = (com.nukkitx.nbt.tag.ByteArrayTag) tag;
|
||||
return new ByteArrayTag(byteArrayTag.getName(), byteArrayTag.getValue());
|
||||
|
@ -180,7 +192,7 @@ public class ItemTranslator {
|
|||
return null;
|
||||
}
|
||||
|
||||
private com.nukkitx.nbt.tag.CompoundTag translateToBedrockNBT(CompoundTag tag) {
|
||||
public com.nukkitx.nbt.tag.CompoundTag translateToBedrockNBT(CompoundTag tag) {
|
||||
Map<String, com.nukkitx.nbt.tag.Tag<?>> javaValue = new HashMap<String, com.nukkitx.nbt.tag.Tag<?>>();
|
||||
if (tag.getValue() != null && !tag.getValue().isEmpty()) {
|
||||
for (String str : tag.getValue().keySet()) {
|
||||
|
@ -197,7 +209,7 @@ public class ItemTranslator {
|
|||
return bedrockTag;
|
||||
}
|
||||
|
||||
private com.nukkitx.nbt.tag.Tag translateToBedrockNBT(Tag tag) {
|
||||
public com.nukkitx.nbt.tag.Tag translateToBedrockNBT(Tag tag) {
|
||||
if (tag instanceof ByteArrayTag) {
|
||||
ByteArrayTag byteArrayTag = (ByteArrayTag) tag;
|
||||
return new com.nukkitx.nbt.tag.ByteArrayTag(byteArrayTag.getName(), byteArrayTag.getValue());
|
||||
|
@ -270,4 +282,41 @@ public class ItemTranslator {
|
|||
|
||||
return null;
|
||||
}
|
||||
|
||||
public byte getType(com.nukkitx.nbt.tag.Tag tag) {
|
||||
if (tag instanceof com.nukkitx.nbt.tag.ByteArrayTag) {
|
||||
return TAG_Byte_Array;
|
||||
}
|
||||
if (tag instanceof com.nukkitx.nbt.tag.ByteTag) {
|
||||
return TAG_Byte;
|
||||
}
|
||||
if (tag instanceof com.nukkitx.nbt.tag.DoubleTag) {
|
||||
return TAG_Double;
|
||||
}
|
||||
if (tag instanceof com.nukkitx.nbt.tag.FloatTag) {
|
||||
return TAG_Float;
|
||||
}
|
||||
if (tag instanceof com.nukkitx.nbt.tag.IntArrayTag) {
|
||||
return TAG_Int_Array;
|
||||
}
|
||||
if (tag instanceof com.nukkitx.nbt.tag.IntTag) {
|
||||
return TAG_Int;
|
||||
}
|
||||
if (tag instanceof com.nukkitx.nbt.tag.LongTag) {
|
||||
return TAG_Long;
|
||||
}
|
||||
if (tag instanceof com.nukkitx.nbt.tag.ShortTag) {
|
||||
return TAG_Short;
|
||||
}
|
||||
if (tag instanceof com.nukkitx.nbt.tag.StringTag) {
|
||||
return TAG_String;
|
||||
}
|
||||
if (tag instanceof com.nukkitx.nbt.tag.ListTag) {
|
||||
return TAG_List;
|
||||
}
|
||||
if (tag instanceof com.nukkitx.nbt.tag.CompoundTag) {
|
||||
return TAG_Compound;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -17,12 +17,9 @@ public class JavaBlockBreakAnimationPacketTranslator extends PacketTranslator<Se
|
|||
|
||||
levelEventPacket.setPosition(Vector3f.from(position.getX(), position.getY(), position.getZ()));
|
||||
|
||||
System.out.println(packet.getStage());
|
||||
|
||||
switch (packet.getStage()) {
|
||||
case STAGE_1:
|
||||
levelEventPacket.setEvent(LevelEventPacket.Event.BLOCK_START_BREAK);
|
||||
|
||||
break;
|
||||
|
||||
case RESET:
|
||||
|
@ -33,12 +30,10 @@ public class JavaBlockBreakAnimationPacketTranslator extends PacketTranslator<Se
|
|||
levelEventPacket.setEvent(LevelEventPacket.Event.BLOCK_CONTINUE_BREAK);
|
||||
break;
|
||||
}
|
||||
|
||||
if(packet.getStage() != BlockBreakStage.RESET) {
|
||||
levelEventPacket.setData(packet.getStage().ordinal());
|
||||
}
|
||||
|
||||
|
||||
session.getUpstream().sendPacket(levelEventPacket);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,22 @@
|
|||
package org.geysermc.connector.network.translators.java.visual;
|
||||
|
||||
import com.github.steveice10.mc.protocol.packet.ingame.server.world.ServerPlayBuiltinSoundPacket;
|
||||
import com.nukkitx.math.vector.Vector3f;
|
||||
import com.nukkitx.protocol.bedrock.packet.PlaySoundPacket;
|
||||
import org.geysermc.connector.network.session.GeyserSession;
|
||||
import org.geysermc.connector.network.translators.PacketTranslator;
|
||||
import org.geysermc.connector.network.translators.TranslatorsInit;
|
||||
|
||||
public class JavaBuiltinSoundPacketTranslator extends PacketTranslator<ServerPlayBuiltinSoundPacket> {
|
||||
@Override
|
||||
public void translate(ServerPlayBuiltinSoundPacket packet, GeyserSession session) {
|
||||
PlaySoundPacket packet1 = new PlaySoundPacket();
|
||||
|
||||
packet1.setPitch(packet.getPitch());
|
||||
packet1.setVolume(packet.getVolume());
|
||||
packet1.setPosition(Vector3f.from(packet.getX(), packet.getY(), packet.getZ()));
|
||||
packet1.setSound(TranslatorsInit.SOUNDS.get(packet.getSound()).getSound());
|
||||
|
||||
session.getUpstream().sendPacketImmediately(packet1);
|
||||
}
|
||||
}
|
|
@ -16,48 +16,6 @@ public class JavaPlayEffectPacketTranslator extends PacketTranslator<ServerPlayE
|
|||
public void translate(ServerPlayEffectPacket packet, GeyserSession session) {
|
||||
LevelEventPacket levelEventPacket = new LevelEventPacket();
|
||||
|
||||
if(packet.getEffect() instanceof ParticleEffect) {
|
||||
ParticleEffect particleEffect = (ParticleEffect) packet.getEffect();
|
||||
|
||||
levelEventPacket.setEvent(LevelEventPacket.Event.PARTICLE_SPAWN);
|
||||
|
||||
Position pos = packet.getPosition();
|
||||
|
||||
levelEventPacket.setPosition(Vector3f.from(pos.getX(), pos.getY(), pos.getZ()));
|
||||
//System.out.println(particleEffect);
|
||||
|
||||
|
||||
//TODO: Not hard coded
|
||||
switch (particleEffect) {
|
||||
case SMOKE:
|
||||
levelEventPacket.setData(Particle.SMOKE);
|
||||
break;
|
||||
case EXPLOSION:
|
||||
levelEventPacket.setData(Particle.EXPLODE);
|
||||
break;
|
||||
case ENDERDRAGON_FIREBALL_EXPLODE:
|
||||
levelEventPacket.setData(Particle.DRAGONS_BREATH);
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if(packet.getEffect() instanceof SoundEffect) {
|
||||
SoundEffect soundEffect = (SoundEffect) packet.getEffect();
|
||||
|
||||
Position pos = packet.getPosition();
|
||||
|
||||
levelEventPacket.setPosition(Vector3f.from(pos.getX(), pos.getY(), pos.getZ()));
|
||||
|
||||
levelEventPacket.setEvent(TranslatorsInit.SOUNDS.get(soundEffect));
|
||||
|
||||
if(levelEventPacket.getEvent() == null) {
|
||||
levelEventPacket.setData(5);
|
||||
levelEventPacket.setEvent(LevelEventPacket.Event.BLOCK_START_BREAK);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
session.getUpstream().sendPacketImmediately(levelEventPacket);
|
||||
//session.getUpstream().sendPacketImmediately(levelEventPacket);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,11 +4,24 @@ import com.github.steveice10.mc.protocol.data.game.chunk.Chunk;
|
|||
import com.github.steveice10.mc.protocol.data.game.chunk.Column;
|
||||
import com.github.steveice10.mc.protocol.data.game.world.block.BlockState;
|
||||
import com.github.steveice10.opennbt.tag.builtin.CompoundTag;
|
||||
import com.nukkitx.nbt.NbtUtils;
|
||||
import com.nukkitx.nbt.stream.NBTOutputStream;
|
||||
import com.nukkitx.nbt.tag.Tag;
|
||||
import io.netty.buffer.ByteBuf;
|
||||
import io.netty.buffer.Unpooled;
|
||||
import it.unimi.dsi.fastutil.io.FastByteArrayInputStream;
|
||||
import org.geysermc.connector.network.translators.TranslatorsInit;
|
||||
import org.geysermc.connector.network.translators.block.BlockEntry;
|
||||
import org.geysermc.connector.network.translators.item.ItemEntry;
|
||||
import org.geysermc.connector.network.translators.item.ItemTranslator;
|
||||
import org.geysermc.connector.world.BiomePalette;
|
||||
import org.geysermc.connector.world.chunk.ChunkSection;
|
||||
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.DataOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.OutputStream;
|
||||
|
||||
public class ChunkUtils {
|
||||
|
||||
public static ChunkData translateToBedrock(Column column) {
|
||||
|
@ -23,6 +36,7 @@ public class ChunkUtils {
|
|||
int[] biomesConverted = new int[256];
|
||||
|
||||
try {
|
||||
System.out.println(column.getTileEntities()[0]);
|
||||
for (int biomeX = 0; biomeX < 16; biomeX++) {
|
||||
for (int biomeZ = 0; biomeZ < 16; biomeZ++) {
|
||||
biomesConverted[(biomeX << 4) | biomeZ] = column.getBiomeData()[(biomeZ * 4) | biomeX];
|
||||
|
@ -36,13 +50,24 @@ public class ChunkUtils {
|
|||
chunkData.biomes[(biomeX << 4) | biomeZ] = (byte) (palette.get(biomeX, biomeZ));
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {}
|
||||
|
||||
for(CompoundTag tag : column.getTileEntities()) {
|
||||
//TODO: Tiles
|
||||
//System.out.println(tag.toString());
|
||||
} catch (Exception e) {
|
||||
//Means there is no chunk data. Was creating the problem of empty chunks, so...
|
||||
}
|
||||
|
||||
/*ByteBuf buf = Unpooled.buffer();
|
||||
for(CompoundTag tag : column.getTileEntities()) {
|
||||
ItemTranslator translator = TranslatorsInit.getItemTranslator();
|
||||
|
||||
try {
|
||||
writeNamedTag(translator.translateToBedrockNBT(tag), buf);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
buf.release();*/
|
||||
|
||||
//chunkData.blockEntities = blockEntities;
|
||||
|
||||
for (int chunkY = 0; chunkY < chunkSectionCount; chunkY++) {
|
||||
chunkData.sections[chunkY] = new ChunkSection();
|
||||
Chunk chunk = chunks[chunkY];
|
||||
|
@ -72,6 +97,20 @@ public class ChunkUtils {
|
|||
return chunkData;
|
||||
}
|
||||
|
||||
private static ByteBuf writeNamedTag(Tag tag, ByteBuf buf) throws IOException {
|
||||
NBTOutputStream stream = NbtUtils.createNetworkWriter(new OutputStream() {
|
||||
@Override
|
||||
public void write(int b) {
|
||||
buf.writeByte(b);
|
||||
}
|
||||
});
|
||||
|
||||
stream.write(tag);
|
||||
stream.close();
|
||||
|
||||
return buf;
|
||||
}
|
||||
|
||||
public static final class ChunkData {
|
||||
public ChunkSection[] sections;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue