From b66ea090c2674f08bcef78aa1a6442344cb36aae Mon Sep 17 00:00:00 2001 From: HugoDaBosss Date: Tue, 1 Mar 2016 11:43:34 +0100 Subject: [PATCH] Added support for named sound effect packet. --- .../ViaVersion/metadata/SoundCategory.java | 36 +++ .../ViaVersion/metadata/SoundEffect.java | 293 ++++++++++++++++++ .../myles/ViaVersion/packets/PacketType.java | 4 + .../transformers/OutgoingTransformer.java | 19 +- 4 files changed, 350 insertions(+), 2 deletions(-) create mode 100644 src/main/java/us/myles/ViaVersion/metadata/SoundCategory.java create mode 100644 src/main/java/us/myles/ViaVersion/metadata/SoundEffect.java diff --git a/src/main/java/us/myles/ViaVersion/metadata/SoundCategory.java b/src/main/java/us/myles/ViaVersion/metadata/SoundCategory.java new file mode 100644 index 000000000..7fe0d601a --- /dev/null +++ b/src/main/java/us/myles/ViaVersion/metadata/SoundCategory.java @@ -0,0 +1,36 @@ +package us.myles.ViaVersion.metadata; + +public enum SoundCategory { + + + MASTER("master", 0), + MUSIC("music", 1), + RECORD("record", 2), + WEATHER("weather", 3), + BLOCK("block", 4), + HOSTILE("hostile", 5), + NEUTRAL("neutral", 6), + PLAYER("player", 7), + AMBIENT("ambient", 8), + VOICE("voice", 9); + + private String name; + private int id; + + SoundCategory(String name, int id) + { + this.name = name; + this.id = id; + } + + public String getName() + { + return name; + } + + public int getId() + { + return id; + } + +} diff --git a/src/main/java/us/myles/ViaVersion/metadata/SoundEffect.java b/src/main/java/us/myles/ViaVersion/metadata/SoundEffect.java new file mode 100644 index 000000000..4d28e8250 --- /dev/null +++ b/src/main/java/us/myles/ViaVersion/metadata/SoundEffect.java @@ -0,0 +1,293 @@ +package us.myles.ViaVersion.metadata; + +public enum SoundEffect { + + MOB_HORSE_ZOMBIE_IDLE("mob.horse.zombie.idle", "entity.zombie_horse.ambient", SoundCategory.NEUTRAL), + NOTE_SNARE("note.snare", "block.note.snare", SoundCategory.RECORD), + RANDOM_WOOD_CLICK("random.wood_click", "block.wood_button.click_on", SoundCategory.BLOCK), + DIG_GRAVEL("dig.gravel", "block.gravel.place", SoundCategory.BLOCK), + RANDOM_BOWHIT("random.bowhit", "block.tripwire.detach", SoundCategory.NEUTRAL), + DIG_GLASS("dig.glass", "block.glass.break", SoundCategory.BLOCK), + MOB_ZOMBIE_SAY("mob.zombie.say", "entity.zombie_villager.ambient", SoundCategory.HOSTILE), + MOB_PIG_DEATH("mob.pig.death", "entity.pig.death", SoundCategory.NEUTRAL), + MOB_HORSE_DONKEY_HIT("mob.horse.donkey.hit", "entity.donkey.hurt", SoundCategory.NEUTRAL), + GAME_NEUTRAL_SWIM("game.neutral.swim", "entity.player.swim", SoundCategory.NEUTRAL), + GAME_PLAYER_SWIM("game.player.swim", "entity.player.swim", SoundCategory.PLAYER), + MOB_ENDERMEN_IDLE("mob.endermen.idle", "entity.endermen.ambient", SoundCategory.HOSTILE), + PORTAL_PORTAL("portal.portal", "block.portal.ambient", SoundCategory.BLOCK), + RANDOM_FIZZ("random.fizz", "entity.generic.extinguish_fire", SoundCategory.BLOCK), + NOTE_HARP("note.harp", "block.note.harp", SoundCategory.RECORD), + STEP_SNOW("step.snow", "block.snow.step", SoundCategory.NEUTRAL), + RANDOM_SUCCESSFUL_HIT("random.successful_hit", "entity.arrow.hit_player", SoundCategory.PLAYER), + MOB_ZOMBIEPIG_ZPIGHURT("mob.zombiepig.zpighurt", "entity.zombie_pig.hurt", SoundCategory.HOSTILE), + MOB_WOLF_HOWL("mob.wolf.howl", "entity.wolf.howl", SoundCategory.NEUTRAL), + FIREWORKS_LAUNCH("fireworks.launch", "entity.firework.launch", SoundCategory.AMBIENT), + MOB_COW_HURT("mob.cow.hurt", "entity.cow.death", SoundCategory.NEUTRAL), + FIREWORKS_LARGEBLAST("fireworks.largeBlast", "entity.firework.large_blast", SoundCategory.AMBIENT), + MOB_BLAZE_HIT("mob.blaze.hit", "entity.blaze.hurt", SoundCategory.HOSTILE), + MOB_VILLAGER_DEATH("mob.villager.death", "entity.villager.death", SoundCategory.NEUTRAL), + MOB_BLAZE_DEATH("mob.blaze.death", "entity.blaze.death", SoundCategory.HOSTILE), + MOB_HORSE_ZOMBIE_DEATH("mob.horse.zombie.death", "entity.zombie_horse.death", SoundCategory.NEUTRAL), + MOB_SILVERFISH_KILL("mob.silverfish.kill", "entity.endermite.death", SoundCategory.HOSTILE), + MOB_WOLF_PANTING("mob.wolf.panting", "entity.wolf.pant", SoundCategory.NEUTRAL), + NOTE_BASS("note.bass", "null", SoundCategory.RECORD), + DIG_STONE("dig.stone", "block.glass.place", SoundCategory.BLOCK), + MOB_ENDERMEN_STARE("mob.endermen.stare", "entity.endermen.stare", SoundCategory.HOSTILE), + GAME_PLAYER_SWIM_SPLASH("game.player.swim.splash", "entity.generic.splash", SoundCategory.BLOCK), + MOB_SLIME_SMALL("mob.slime.small", "block.slime.hit", SoundCategory.HOSTILE), + MOB_GHAST_DEATH("mob.ghast.death", "entity.ghast.death", SoundCategory.HOSTILE), + MOB_GUARDIAN_ATTACK("mob.guardian.attack", "entity.guardian.attack", SoundCategory.HOSTILE), + RANDOM_CLICK("random.click", "block.wood_pressureplate.click_on", SoundCategory.BLOCK), + MOB_ZOMBIEPIG_ZPIG("mob.zombiepig.zpig", "entity.zombie_pig.ambient", SoundCategory.HOSTILE), + GAME_PLAYER_DIE("game.player.die", "entity.player.death", SoundCategory.PLAYER), + FIREWORKS_TWINKLE_FAR("fireworks.twinkle_far", "entity.firework.twinkle_far", SoundCategory.AMBIENT), + MOB_GUARDIAN_LAND_IDLE("mob.guardian.land.idle", "entity.guardian.ambient_land", SoundCategory.HOSTILE), + DIG_GRASS("dig.grass", "block.grass.place", SoundCategory.BLOCK), + MOB_SKELETON_STEP("mob.skeleton.step", "entity.skeleton.step", SoundCategory.HOSTILE), + MOB_WITHER_DEATH("mob.wither.death", "entity.wither.death", SoundCategory.HOSTILE), + MOB_WOLF_HURT("mob.wolf.hurt", "entity.wolf.hurt", SoundCategory.NEUTRAL), + MOB_HORSE_LEATHER("mob.horse.leather", "entity.horse.saddle", SoundCategory.NEUTRAL), + MOB_BAT_LOOP("mob.bat.loop", "entity.bat.loop", SoundCategory.NEUTRAL), + MOB_GHAST_SCREAM("mob.ghast.scream", "entity.ghast.hurt", SoundCategory.HOSTILE), + GAME_PLAYER_HURT("game.player.hurt", "entity.player.death", SoundCategory.PLAYER), + GAME_NEUTRAL_DIE("game.neutral.die", "entity.player.death", SoundCategory.NEUTRAL), + MOB_CREEPER_DEATH("mob.creeper.death", "entity.creeper.death", SoundCategory.HOSTILE), + MOB_HORSE_GALLOP("mob.horse.gallop", "entity.horse.gallop", SoundCategory.NEUTRAL), + MOB_WITHER_SPAWN("mob.wither.spawn", "entity.wither.spawn", SoundCategory.HOSTILE), + MOB_ENDERMEN_HIT("mob.endermen.hit", "entity.endermen.hurt", SoundCategory.HOSTILE), + MOB_CREEPER_SAY("mob.creeper.say", "entity.creeper.hurt", SoundCategory.HOSTILE), + MOB_HORSE_WOOD("mob.horse.wood", "entity.horse.step_wood", SoundCategory.NEUTRAL), + MOB_ZOMBIE_UNFECT("mob.zombie.unfect", "entity.zombie_villager.converted", SoundCategory.HOSTILE), + RANDOM_ANVIL_USE("random.anvil_use", "block.anvil.use", SoundCategory.BLOCK), + RANDOM_CHESTCLOSED("random.chestclosed", "block.enderchest.close", SoundCategory.BLOCK), + MOB_SHEEP_SHEAR("mob.sheep.shear", "entity.sheep.shear", SoundCategory.NEUTRAL), + RANDOM_POP("random.pop", "entity.item.pickup", SoundCategory.PLAYER), + MOB_BAT_DEATH("mob.bat.death", "entity.bat.death", SoundCategory.NEUTRAL), + DIG_WOOD("dig.wood", "block.ladder.break", SoundCategory.BLOCK), + MOB_HORSE_DONKEY_DEATH("mob.horse.donkey.death", "entity.donkey.death", SoundCategory.NEUTRAL), + FIREWORKS_BLAST("fireworks.blast", "entity.firework.blast", SoundCategory.AMBIENT), + MOB_ZOMBIEPIG_ZPIGANGRY("mob.zombiepig.zpigangry", "entity.zombie_pig.angry", SoundCategory.HOSTILE), + GAME_HOSTILE_SWIM("game.hostile.swim", "entity.player.swim", SoundCategory.HOSTILE), + MOB_GUARDIAN_FLOP("mob.guardian.flop", "entity.guardian.flop", SoundCategory.HOSTILE), + MOB_VILLAGER_YES("mob.villager.yes", "entity.villager.yes", SoundCategory.NEUTRAL), + MOB_GHAST_CHARGE("mob.ghast.charge", "entity.ghast.warn", SoundCategory.HOSTILE), + CREEPER_PRIMED("creeper.primed", "entity.creeper.primed", SoundCategory.HOSTILE), + DIG_SAND("dig.sand", "block.sand.break", SoundCategory.BLOCK), + MOB_CHICKEN_SAY("mob.chicken.say", "entity.chicken.ambient", SoundCategory.NEUTRAL), + RANDOM_DOOR_CLOSE("random.door_close", "null", SoundCategory.BLOCK), + MOB_GUARDIAN_ELDER_DEATH("mob.guardian.elder.death", "entity.elder_guardian.death", SoundCategory.HOSTILE), + FIREWORKS_TWINKLE("fireworks.twinkle", "entity.firework.twinkle", SoundCategory.AMBIENT), + MOB_HORSE_SKELETON_DEATH("mob.horse.skeleton.death", "entity.skeleton_horse.death", SoundCategory.NEUTRAL), + AMBIENT_WEATHER_RAIN("ambient.weather.rain", "weather.rain.above", SoundCategory.WEATHER), + PORTAL_TRIGGER("portal.trigger", "block.portal.trigger", SoundCategory.BLOCK), + RANDOM_CHESTOPEN("random.chestopen", "block.enderchest.open", SoundCategory.BLOCK), + MOB_HORSE_LAND("mob.horse.land", "entity.horse.land", SoundCategory.NEUTRAL), + MOB_SILVERFISH_STEP("mob.silverfish.step", "entity.silverfish.step", SoundCategory.HOSTILE), + MOB_BAT_TAKEOFF("mob.bat.takeoff", "entity.bat.takeoff", SoundCategory.NEUTRAL), + MOB_VILLAGER_NO("mob.villager.no", "entity.villager.no", SoundCategory.NEUTRAL), + GAME_HOSTILE_HURT_FALL_BIG("game.hostile.hurt.fall.big", "entity.hostile.big_fall", SoundCategory.HOSTILE), + MOB_IRONGOLEM_WALK("mob.irongolem.walk", "entity.irongolem.step", SoundCategory.NEUTRAL), + NOTE_HAT("note.hat", "block.note.hat", SoundCategory.RECORD), + MOB_ZOMBIE_METAL("mob.zombie.metal", "entity.zombie.attack_iron_door", SoundCategory.HOSTILE), + MOB_VILLAGER_HAGGLE("mob.villager.haggle", "entity.villager.trading", SoundCategory.NEUTRAL), + MOB_GHAST_FIREBALL("mob.ghast.fireball", "entity.blaze.shoot", SoundCategory.HOSTILE), + MOB_IRONGOLEM_DEATH("mob.irongolem.death", "entity.irongolem.death", SoundCategory.NEUTRAL), + RANDOM_BREAK("random.break", "item.shield.break", SoundCategory.PLAYER), + MOB_ZOMBIE_REMEDY("mob.zombie.remedy", "entity.zombie_villager.cure", SoundCategory.HOSTILE), + RANDOM_BOW("random.bow", "entity.splash_potion.throw", SoundCategory.NEUTRAL), + MOB_VILLAGER_IDLE("mob.villager.idle", "entity.villager.ambient", SoundCategory.NEUTRAL), + STEP_CLOTH("step.cloth", "block.cloth.fall", SoundCategory.NEUTRAL), + MOB_SILVERFISH_HIT("mob.silverfish.hit", "entity.endermite.hurt", SoundCategory.HOSTILE), + LIQUID_LAVA("liquid.lava", "block.lava.ambient", SoundCategory.BLOCK), + GAME_NEUTRAL_HURT_FALL_BIG("game.neutral.hurt.fall.big", "entity.hostile.big_fall", SoundCategory.NEUTRAL), + FIRE_FIRE("fire.fire", "block.fire.ambient", SoundCategory.BLOCK), + MOB_ZOMBIE_WOOD("mob.zombie.wood", "entity.zombie.attack_door_wood", SoundCategory.HOSTILE), + MOB_CHICKEN_STEP("mob.chicken.step", "entity.chicken.step", SoundCategory.NEUTRAL), + MOB_GUARDIAN_LAND_HIT("mob.guardian.land.hit", "entity.guardian.hurt_land", SoundCategory.HOSTILE), + MOB_CHICKEN_PLOP("mob.chicken.plop", "entity.donkey.chest", SoundCategory.NEUTRAL), + MOB_ENDERDRAGON_WINGS("mob.enderdragon.wings", "entity.enderdragon.flap", SoundCategory.HOSTILE), + STEP_GRASS("step.grass", "block.grass.hit", SoundCategory.NEUTRAL), + MOB_HORSE_BREATHE("mob.horse.breathe", "entity.horse.breathe", SoundCategory.NEUTRAL), + GAME_PLAYER_HURT_FALL_BIG("game.player.hurt.fall.big", "entity.hostile.big_fall", SoundCategory.PLAYER), + MOB_HORSE_DONKEY_IDLE("mob.horse.donkey.idle", "entity.donkey.ambient", SoundCategory.NEUTRAL), + MOB_SPIDER_STEP("mob.spider.step", "entity.spider.step", SoundCategory.HOSTILE), + GAME_NEUTRAL_HURT("game.neutral.hurt", "entity.player.death", SoundCategory.NEUTRAL), + MOB_COW_SAY("mob.cow.say", "entity.cow.ambient", SoundCategory.NEUTRAL), + MOB_HORSE_JUMP("mob.horse.jump", "entity.horse.jump", SoundCategory.NEUTRAL), + MOB_HORSE_SOFT("mob.horse.soft", "entity.horse.step", SoundCategory.NEUTRAL), + GAME_NEUTRAL_SWIM_SPLASH("game.neutral.swim.splash", "entity.generic.splash", SoundCategory.NEUTRAL), + MOB_GUARDIAN_HIT("mob.guardian.hit", "entity.guardian.hurt", SoundCategory.HOSTILE), + MOB_ENDERDRAGON_END("mob.enderdragon.end", "entity.enderdragon.death", SoundCategory.HOSTILE), + MOB_ZOMBIE_STEP("mob.zombie.step", "entity.zombie.step", SoundCategory.HOSTILE), + MOB_ENDERDRAGON_GROWL("mob.enderdragon.growl", "entity.enderdragon.growl", SoundCategory.HOSTILE), + MOB_WOLF_SHAKE("mob.wolf.shake", "entity.wolf.shake", SoundCategory.NEUTRAL), + MOB_ENDERMEN_DEATH("mob.endermen.death", "entity.endermen.death", SoundCategory.HOSTILE), + RANDOM_ANVIL_LAND("random.anvil_land", "block.anvil.land", SoundCategory.BLOCK), + GAME_HOSTILE_HURT("game.hostile.hurt", "entity.player.death", SoundCategory.HOSTILE), + MINECART_INSIDE("minecart.inside", "entity.minecart.inside", SoundCategory.PLAYER), + MOB_SLIME_BIG("mob.slime.big", "entity.slime.death", SoundCategory.HOSTILE), + LIQUID_WATER("liquid.water", "block.water.ambient", SoundCategory.BLOCK), + MOB_PIG_SAY("mob.pig.say", "entity.pig.ambient", SoundCategory.NEUTRAL), + MOB_WITHER_SHOOT("mob.wither.shoot", "entity.wither.shoot", SoundCategory.HOSTILE), + ITEM_FIRECHARGE_USE("item.fireCharge.use", "entity.blaze.shoot", SoundCategory.BLOCK), + STEP_SAND("step.sand", "block.sand.fall", SoundCategory.NEUTRAL), + MOB_IRONGOLEM_HIT("mob.irongolem.hit", "entity.irongolem.hurt", SoundCategory.NEUTRAL), + MOB_HORSE_DEATH("mob.horse.death", "entity.horse.death", SoundCategory.NEUTRAL), + MOB_BAT_HURT("mob.bat.hurt", "entity.bat.hurt", SoundCategory.NEUTRAL), + MOB_GHAST_AFFECTIONATE_SCREAM("mob.ghast.affectionate_scream", "entity.ghast.scream", SoundCategory.HOSTILE), + MOB_GUARDIAN_ELDER_IDLE("mob.guardian.elder.idle", "entity.elder_guardian.ambient", SoundCategory.HOSTILE), + MOB_ZOMBIEPIG_ZPIGDEATH("mob.zombiepig.zpigdeath", "entity.zombie_pig.death", SoundCategory.HOSTILE), + AMBIENT_WEATHER_THUNDER("ambient.weather.thunder", "entity.lightning.thunder", SoundCategory.WEATHER), + MINECART_BASE("minecart.base", "entity.minecart.riding", SoundCategory.NEUTRAL), + STEP_LADDER("step.ladder", "block.ladder.hit", SoundCategory.NEUTRAL), + MOB_HORSE_DONKEY_ANGRY("mob.horse.donkey.angry", "entity.donkey.angry", SoundCategory.NEUTRAL), + AMBIENT_CAVE_CAVE("ambient.cave.cave", "ambient.cave", SoundCategory.AMBIENT), + FIREWORKS_BLAST_FAR("fireworks.blast_far", "entity.firework.blast_far", SoundCategory.AMBIENT), + GAME_NEUTRAL_HURT_FALL_SMALL("game.neutral.hurt.fall.small", "entity.generic.small_fall", SoundCategory.NEUTRAL), + GAME_HOSTILE_SWIM_SPLASH("game.hostile.swim.splash", "entity.generic.splash", SoundCategory.HOSTILE), + RANDOM_DRINK("random.drink", "entity.generic.drink", SoundCategory.PLAYER), + GAME_HOSTILE_DIE("game.hostile.die", "entity.player.death", SoundCategory.HOSTILE), + MOB_CAT_HISS("mob.cat.hiss", "entity.cat.hiss", SoundCategory.NEUTRAL), + NOTE_BD("note.bd", "block.note.basedrum", SoundCategory.RECORD), + MOB_SPIDER_SAY("mob.spider.say", "entity.spider.hurt", SoundCategory.HOSTILE), + STEP_STONE("step.stone", "block.anvil.hit", SoundCategory.NEUTRAL), + RANDOM_LEVELUP("random.levelup", "entity.player.levelup", SoundCategory.PLAYER), + LIQUID_LAVAPOP("liquid.lavapop", "block.lava.pop", SoundCategory.BLOCK), + MOB_SHEEP_SAY("mob.sheep.say", "entity.sheep.ambient", SoundCategory.NEUTRAL), + MOB_SKELETON_SAY("mob.skeleton.say", "entity.skeleton.ambient", SoundCategory.HOSTILE), + MOB_BLAZE_BREATHE("mob.blaze.breathe", "entity.blaze.ambient", SoundCategory.HOSTILE), + MOB_BAT_IDLE("mob.bat.idle", "entity.bat.ambient", SoundCategory.NEUTRAL), + MOB_MAGMACUBE_BIG("mob.magmacube.big", "entity.magmacube.squish", SoundCategory.HOSTILE), + MOB_HORSE_IDLE("mob.horse.idle", "entity.horse.ambient", SoundCategory.NEUTRAL), + GAME_HOSTILE_HURT_FALL_SMALL("game.hostile.hurt.fall.small", "entity.generic.small_fall", SoundCategory.HOSTILE), + MOB_HORSE_ZOMBIE_HIT("mob.horse.zombie.hit", "entity.zombie_horse.hurt", SoundCategory.NEUTRAL), + MOB_IRONGOLEM_THROW("mob.irongolem.throw", "entity.irongolem.attack", SoundCategory.NEUTRAL), + DIG_CLOTH("dig.cloth", "block.cloth.place", SoundCategory.BLOCK), + STEP_GRAVEL("step.gravel", "block.gravel.hit", SoundCategory.NEUTRAL), + MOB_SILVERFISH_SAY("mob.silverfish.say", "entity.silverfish.ambient", SoundCategory.HOSTILE), + MOB_CAT_PURR("mob.cat.purr", "entity.cat.purr", SoundCategory.NEUTRAL), + MOB_ZOMBIE_INFECT("mob.zombie.infect", "entity.zombie.infect", SoundCategory.HOSTILE), + RANDOM_EAT("random.eat", "entity.generic.eat", SoundCategory.PLAYER), + MOB_WOLF_BARK("mob.wolf.bark", "entity.wolf.ambient", SoundCategory.NEUTRAL), + GAME_TNT_PRIMED("game.tnt.primed", "entity.creeper.primed", SoundCategory.BLOCK), + MOB_SHEEP_STEP("mob.sheep.step", "entity.sheep.step", SoundCategory.NEUTRAL), + MOB_ZOMBIE_DEATH("mob.zombie.death", "entity.zombie.death", SoundCategory.HOSTILE), + RANDOM_DOOR_OPEN("random.door_open", "null", SoundCategory.BLOCK), + MOB_ENDERMEN_PORTAL("mob.endermen.portal", "entity.endermen.teleport", SoundCategory.HOSTILE), + MOB_HORSE_ANGRY("mob.horse.angry", "entity.horse.angry", SoundCategory.NEUTRAL), + MOB_WOLF_GROWL("mob.wolf.growl", "entity.wolf.growl", SoundCategory.NEUTRAL), + DIG_SNOW("dig.snow", "block.snow.place", SoundCategory.BLOCK), + TILE_PISTON_OUT("tile.piston.out", "block.piston.extend", SoundCategory.BLOCK), + RANDOM_BURP("random.burp", "entity.player.burp", SoundCategory.PLAYER), + MOB_COW_STEP("mob.cow.step", "entity.cow.step", SoundCategory.NEUTRAL), + MOB_WITHER_HURT("mob.wither.hurt", "entity.wither.hurt", SoundCategory.HOSTILE), + MOB_GUARDIAN_LAND_DEATH("mob.guardian.land.death", "entity.elder_guardian.death_land", SoundCategory.HOSTILE), + MOB_CHICKEN_HURT("mob.chicken.hurt", "entity.chicken.death", SoundCategory.NEUTRAL), + MOB_WOLF_STEP("mob.wolf.step", "entity.wolf.step", SoundCategory.NEUTRAL), + MOB_WOLF_DEATH("mob.wolf.death", "entity.wolf.death", SoundCategory.NEUTRAL), + MOB_WOLF_WHINE("mob.wolf.whine", "entity.wolf.whine", SoundCategory.NEUTRAL), + NOTE_PLING("note.pling", "block.note.pling", SoundCategory.RECORD), + GAME_PLAYER_HURT_FALL_SMALL("game.player.hurt.fall.small", "entity.generic.small_fall", SoundCategory.PLAYER), + MOB_CAT_PURREOW("mob.cat.purreow", "entity.cat.purreow", SoundCategory.NEUTRAL), + FIREWORKS_LARGEBLAST_FAR("fireworks.largeBlast_far", "entity.firework.large_blast_far", SoundCategory.AMBIENT), + MOB_SKELETON_HURT("mob.skeleton.hurt", "entity.skeleton.hurt", SoundCategory.HOSTILE), + MOB_SPIDER_DEATH("mob.spider.death", "entity.spider.death", SoundCategory.HOSTILE), + RANDOM_ANVIL_BREAK("random.anvil_break", "block.anvil.destroy", SoundCategory.BLOCK), + MOB_WITHER_IDLE("mob.wither.idle", "entity.wither.ambient", SoundCategory.HOSTILE), + MOB_GUARDIAN_ELDER_HIT("mob.guardian.elder.hit", "entity.elder_guardian.hurt", SoundCategory.HOSTILE), + MOB_ENDERMEN_SCREAM("mob.endermen.scream", "entity.endermen.scream", SoundCategory.HOSTILE), + MOB_CAT_HITT("mob.cat.hitt", "entity.cat.hurt", SoundCategory.NEUTRAL), + MOB_MAGMACUBE_SMALL("mob.magmacube.small", "entity.small_magmacube.squish", SoundCategory.HOSTILE), + FIRE_IGNITE("fire.ignite", "item.flintandsteel.use", SoundCategory.BLOCK), + MOB_ENDERDRAGON_HIT("mob.enderdragon.hit", "entity.enderdragon.hurt", SoundCategory.HOSTILE), + MOB_ZOMBIE_HURT("mob.zombie.hurt", "entity.zombie_villager.hurt", SoundCategory.HOSTILE), + RANDOM_EXPLODE("random.explode", "block.end_gateway.spawn", SoundCategory.BLOCK), + MOB_SLIME_ATTACK("mob.slime.attack", "entity.slime.attack", SoundCategory.HOSTILE), + MOB_MAGMACUBE_JUMP("mob.magmacube.jump", "entity.magmacube.jump", SoundCategory.HOSTILE), + RANDOM_SPLASH("random.splash", "entity.bobber.splash", SoundCategory.PLAYER), + MOB_HORSE_SKELETON_HIT("mob.horse.skeleton.hit", "entity.skeleton_horse.hurt", SoundCategory.NEUTRAL), + MOB_GHAST_MOAN("mob.ghast.moan", "entity.ghast.ambient", SoundCategory.HOSTILE), + MOB_GUARDIAN_CURSE("mob.guardian.curse", "entity.elder_guardian.curse", SoundCategory.HOSTILE), + GAME_POTION_SMASH("game.potion.smash", "block.glass.break", SoundCategory.NEUTRAL), + NOTE_BASSATTACK("note.bassattack", "block.note.bass", SoundCategory.RECORD), + GUI_BUTTON_PRESS("gui.button.press", "block.wood_pressureplate.click_on", SoundCategory.MASTER), + RANDOM_ORB("random.orb", "entity.experience_orb.pickup", SoundCategory.PLAYER), + MOB_ZOMBIE_WOODBREAK("mob.zombie.woodbreak", "entity.zombie.break_door_wood", SoundCategory.HOSTILE), + MOB_HORSE_ARMOR("mob.horse.armor", "entity.horse.armor", SoundCategory.NEUTRAL), + TILE_PISTON_IN("tile.piston.in", "block.piston.contract", SoundCategory.BLOCK), + MOB_CAT_MEOW("mob.cat.meow", "entity.cat.ambient", SoundCategory.NEUTRAL), + MOB_PIG_STEP("mob.pig.step", "entity.pig.step", SoundCategory.NEUTRAL), + STEP_WOOD("step.wood", "block.wood.step", SoundCategory.NEUTRAL), + PORTAL_TRAVEL("portal.travel", "block.portal.travel", SoundCategory.PLAYER), + MOB_GUARDIAN_DEATH("mob.guardian.death", "entity.guardian.death", SoundCategory.HOSTILE), + MOB_SKELETON_DEATH("mob.skeleton.death", "entity.skeleton.death", SoundCategory.HOSTILE), + MOB_HORSE_HIT("mob.horse.hit", "entity.horse.hurt", SoundCategory.NEUTRAL), + MOB_VILLAGER_HIT("mob.villager.hit", "entity.villager.hurt", SoundCategory.NEUTRAL), + MOB_HORSE_SKELETON_IDLE("mob.horse.skeleton.idle", "entity.skeleton_horse.ambient", SoundCategory.NEUTRAL); + + //NOT ALL SOUNDS INCLUDED! + //Missing all new 1.9 sounds + //Missing (1.8 sound names): + //records.ward + //music.game.nether + //music.game.end.dragon + //mob.rabbit.death + //records.chirp + //records.13 + //records.11 + //music.game.end.credits + //records.mellohi + //music.game + //records.mall + //records.stal + //records.far + //records.blocks + //music.game.creative + //records.wait + //music.menu + //music.game.end + //mob.rabbit.hurt + //records.cat + //mob.guardian.idle + //mob.rabbit.hop + //mob.rabbit.idle + //records.strad + + private String name; + private String newname; + private SoundCategory cat; + + SoundEffect(String name, String newname, SoundCategory cat) + { + this.cat = cat; + this.newname = newname; + this.name = name; + } + + public static SoundEffect getByName(String name) + { + name = name.toLowerCase(); + for(SoundEffect e : SoundEffect.values()) + { + if(e.getName().equals(name)) + return e; + } + return null; + } + + public String getNewName() + { + return newname; + } + + public String getName() + { + return name; + } + + public SoundCategory getCategory() + { + return cat; + } + +} diff --git a/src/main/java/us/myles/ViaVersion/packets/PacketType.java b/src/main/java/us/myles/ViaVersion/packets/PacketType.java index c515b5a0e..052485fea 100644 --- a/src/main/java/us/myles/ViaVersion/packets/PacketType.java +++ b/src/main/java/us/myles/ViaVersion/packets/PacketType.java @@ -167,6 +167,8 @@ public enum PacketType { } public static PacketType findNewPacket(State state, Direction direction, int id) { + if(id == -1) + return null; for (PacketType pt : values()) { if (pt.getNewPacketID() == id && id != -1 && pt.getState() == state @@ -177,6 +179,8 @@ public enum PacketType { } public static PacketType findOldPacket(State state, Direction direction, int id) { + if(id == -1) + return null; for (PacketType pt : values()) { if (pt.getPacketID() == id && id != -1 && pt.getState() == state diff --git a/src/main/java/us/myles/ViaVersion/transformers/OutgoingTransformer.java b/src/main/java/us/myles/ViaVersion/transformers/OutgoingTransformer.java index f93d3b971..25a1244af 100644 --- a/src/main/java/us/myles/ViaVersion/transformers/OutgoingTransformer.java +++ b/src/main/java/us/myles/ViaVersion/transformers/OutgoingTransformer.java @@ -2,16 +2,20 @@ package us.myles.ViaVersion.transformers; import com.google.gson.Gson; import com.google.gson.JsonObject; + import io.netty.buffer.ByteBuf; import io.netty.channel.Channel; + import org.bukkit.Bukkit; import org.bukkit.entity.Entity; import org.spacehq.mc.protocol.data.game.chunk.Column; import org.spacehq.mc.protocol.util.NetUtil; + import us.myles.ViaVersion.*; import us.myles.ViaVersion.handlers.ViaVersionInitializer; import us.myles.ViaVersion.metadata.MetaIndex; import us.myles.ViaVersion.metadata.NewType; +import us.myles.ViaVersion.metadata.SoundEffect; import us.myles.ViaVersion.metadata.Type; import us.myles.ViaVersion.packets.PacketType; import us.myles.ViaVersion.packets.State; @@ -55,8 +59,19 @@ public class OutgoingTransformer { // By default no transform PacketUtil.writeVarInt(packetID, output); if (packet == PacketType.PLAY_NAMED_SOUND_EFFECT) { - // TODO: Port this over - throw new CancelException(); + String name = PacketUtil.readString(input); + SoundEffect effect = SoundEffect.getByName(name); + int catid = 0; + String newname = name; + if(effect != null) + { + catid = effect.getCategory().getId(); + newname = effect.getNewName(); + } + PacketUtil.writeString(newname, output); + PacketUtil.writeVarInt(catid, output); + output.writeBytes(input); + System.out.println(name + " : " + newname + " : " + catid + (effect != null ? effect.name() : "")); } if (packet == PacketType.PLAY_ATTACH_ENTITY) { int id = input.readInt();