From cabc0105822cbc538d6c567b5f7b3712fcee0e59 Mon Sep 17 00:00:00 2001 From: creeper123123321 Date: Wed, 4 Jul 2018 10:33:37 -0300 Subject: [PATCH 1/4] Update mappings --- .../assets/viaversion/data/mapping-1.12.json | 22 ++-- .../assets/viaversion/data/mapping-1.13.json | 116 +++++++++--------- 2 files changed, 69 insertions(+), 69 deletions(-) diff --git a/common/src/main/resources/assets/viaversion/data/mapping-1.12.json b/common/src/main/resources/assets/viaversion/data/mapping-1.12.json index 8fa34e10e..661db1315 100644 --- a/common/src/main/resources/assets/viaversion/data/mapping-1.12.json +++ b/common/src/main/resources/assets/viaversion/data/mapping-1.12.json @@ -114,10 +114,10 @@ "281": "minecraft:spruce_log[axis=z]", "282": "minecraft:birch_log[axis=z]", "283": "minecraft:jungle_log[axis=z]", - "284": "minecraft:oak_bark[axis=y]", - "285": "minecraft:spruce_bark[axis=y]", - "286": "minecraft:birch_bark[axis=y]", - "287": "minecraft:jungle_bark[axis=y]", + "284": "minecraft:oak_wood[axis=y]", + "285": "minecraft:spruce_wood[axis=y]", + "286": "minecraft:birch_wood[axis=y]", + "287": "minecraft:jungle_wood[axis=y]", "288": "minecraft:oak_leaves[distance=1,persistent=false]", "289": "minecraft:spruce_leaves[distance=1,persistent=false]", "290": "minecraft:birch_leaves[distance=1,persistent=false]", @@ -333,7 +333,7 @@ "829": "minecraft:fire[age=13,east=false,north=false,south=false,up=false,west=false]", "830": "minecraft:fire[age=14,east=false,north=false,south=false,up=false,west=false]", "831": "minecraft:fire[age=15,east=false,north=false,south=false,up=false,west=false]", - "832": "minecraft:mob_spawner", + "832": "minecraft:spawner", "848": "minecraft:oak_stairs[facing=east,half=bottom,shape=straight,waterlogged=false]", "849": "minecraft:oak_stairs[facing=west,half=bottom,shape=straight,waterlogged=false]", "850": "minecraft:oak_stairs[facing=south,half=bottom,shape=straight,waterlogged=false]", @@ -552,8 +552,8 @@ "1392": "minecraft:netherrack", "1408": "minecraft:soul_sand", "1424": "minecraft:glowstone", - "1441": "minecraft:portal[axis=x]", - "1442": "minecraft:portal[axis=z]", + "1441": "minecraft:nether_portal[axis=x]", + "1442": "minecraft:nether_portal[axis=z]", "1456": "minecraft:jack_o_lantern[facing=south]", "1457": "minecraft:jack_o_lantern[facing=west]", "1458": "minecraft:jack_o_lantern[facing=north]", @@ -2167,7 +2167,7 @@ "5568": "minecraft:glowstone_dust", "5584": "minecraft:cod", "5585": "minecraft:salmon", - "5586": "minecraft:clownfish", + "5586": "minecraft:tropical_fish", "5587": "minecraft:pufferfish", "5600": "minecraft:cooked_cod", "5601": "minecraft:cooked_salmon", @@ -2302,7 +2302,7 @@ "6880": "minecraft:acacia_door", "6896": "minecraft:dark_oak_door", "6912": "minecraft:chorus_fruit", - "6928": "minecraft:chorus_fruit_popped", + "6928": "minecraft:popped_chorus_fruit", "6944": "minecraft:beetroot", "6960": "minecraft:beetroot_seeds", "6976": "minecraft:beetroot_soup", @@ -2344,7 +2344,7 @@ "25100295": "minecraft:elder_guardian_spawn_egg", "25100296": "minecraft:enderman_spawn_egg", "25100297": "minecraft:endermite_spawn_egg", - "25100298": "minecraft:evocation_illager_spawn_egg", + "25100298": "minecraft:evoker_illager_spawn_egg", "25100299": "minecraft:ghast_spawn_egg", "25100300": "minecraft:guardian_spawn_egg", "25100301": "minecraft:horse_spawn_egg", @@ -2369,7 +2369,7 @@ "25100320": "minecraft:stray_spawn_egg", "25100321": "minecraft:vex_spawn_egg", "25100322": "minecraft:villager_spawn_egg", - "25100323": "minecraft:vindication_illager_spawn_egg", + "25100323": "minecraft:vindicator_illager_spawn_egg", "25100324": "minecraft:witch_spawn_egg", "25100325": "minecraft:wither_skeleton_spawn_egg", "25100326": "minecraft:wolf_spawn_egg", diff --git a/common/src/main/resources/assets/viaversion/data/mapping-1.13.json b/common/src/main/resources/assets/viaversion/data/mapping-1.13.json index a8b6d8583..c905e609d 100644 --- a/common/src/main/resources/assets/viaversion/data/mapping-1.13.json +++ b/common/src/main/resources/assets/viaversion/data/mapping-1.13.json @@ -108,42 +108,42 @@ "105": "minecraft:stripped_oak_log[axis=x]", "106": "minecraft:stripped_oak_log[axis=y]", "107": "minecraft:stripped_oak_log[axis=z]", - "108": "minecraft:oak_bark[axis=x]", - "109": "minecraft:oak_bark[axis=y]", - "110": "minecraft:oak_bark[axis=z]", - "111": "minecraft:spruce_bark[axis=x]", - "112": "minecraft:spruce_bark[axis=y]", - "113": "minecraft:spruce_bark[axis=z]", - "114": "minecraft:birch_bark[axis=x]", - "115": "minecraft:birch_bark[axis=y]", - "116": "minecraft:birch_bark[axis=z]", - "117": "minecraft:jungle_bark[axis=x]", - "118": "minecraft:jungle_bark[axis=y]", - "119": "minecraft:jungle_bark[axis=z]", - "120": "minecraft:acacia_bark[axis=x]", - "121": "minecraft:acacia_bark[axis=y]", - "122": "minecraft:acacia_bark[axis=z]", - "123": "minecraft:dark_oak_bark[axis=x]", - "124": "minecraft:dark_oak_bark[axis=y]", - "125": "minecraft:dark_oak_bark[axis=z]", - "126": "minecraft:stripped_oak_bark[axis=x]", - "127": "minecraft:stripped_oak_bark[axis=y]", - "128": "minecraft:stripped_oak_bark[axis=z]", - "129": "minecraft:stripped_spruce_bark[axis=x]", - "130": "minecraft:stripped_spruce_bark[axis=y]", - "131": "minecraft:stripped_spruce_bark[axis=z]", - "132": "minecraft:stripped_birch_bark[axis=x]", - "133": "minecraft:stripped_birch_bark[axis=y]", - "134": "minecraft:stripped_birch_bark[axis=z]", - "135": "minecraft:stripped_jungle_bark[axis=x]", - "136": "minecraft:stripped_jungle_bark[axis=y]", - "137": "minecraft:stripped_jungle_bark[axis=z]", - "138": "minecraft:stripped_acacia_bark[axis=x]", - "139": "minecraft:stripped_acacia_bark[axis=y]", - "140": "minecraft:stripped_acacia_bark[axis=z]", - "141": "minecraft:stripped_dark_oak_bark[axis=x]", - "142": "minecraft:stripped_dark_oak_bark[axis=y]", - "143": "minecraft:stripped_dark_oak_bark[axis=z]", + "108": "minecraft:oak_wood[axis=x]", + "109": "minecraft:oak_wood[axis=y]", + "110": "minecraft:oak_wood[axis=z]", + "111": "minecraft:spruce_wood[axis=x]", + "112": "minecraft:spruce_wood[axis=y]", + "113": "minecraft:spruce_wood[axis=z]", + "114": "minecraft:birch_wood[axis=x]", + "115": "minecraft:birch_wood[axis=y]", + "116": "minecraft:birch_wood[axis=z]", + "117": "minecraft:jungle_wood[axis=x]", + "118": "minecraft:jungle_wood[axis=y]", + "119": "minecraft:jungle_wood[axis=z]", + "120": "minecraft:acacia_wood[axis=x]", + "121": "minecraft:acacia_wood[axis=y]", + "122": "minecraft:acacia_wood[axis=z]", + "123": "minecraft:dark_oak_wood[axis=x]", + "124": "minecraft:dark_oak_wood[axis=y]", + "125": "minecraft:dark_oak_wood[axis=z]", + "126": "minecraft:stripped_oak_wood[axis=x]", + "127": "minecraft:stripped_oak_wood[axis=y]", + "128": "minecraft:stripped_oak_wood[axis=z]", + "129": "minecraft:stripped_spruce_wood[axis=x]", + "130": "minecraft:stripped_spruce_wood[axis=y]", + "131": "minecraft:stripped_spruce_wood[axis=z]", + "132": "minecraft:stripped_birch_wood[axis=x]", + "133": "minecraft:stripped_birch_wood[axis=y]", + "134": "minecraft:stripped_birch_wood[axis=z]", + "135": "minecraft:stripped_jungle_wood[axis=x]", + "136": "minecraft:stripped_jungle_wood[axis=y]", + "137": "minecraft:stripped_jungle_wood[axis=z]", + "138": "minecraft:stripped_acacia_wood[axis=x]", + "139": "minecraft:stripped_acacia_wood[axis=y]", + "140": "minecraft:stripped_acacia_wood[axis=z]", + "141": "minecraft:stripped_dark_oak_wood[axis=x]", + "142": "minecraft:stripped_dark_oak_wood[axis=y]", + "143": "minecraft:stripped_dark_oak_wood[axis=z]", "144": "minecraft:oak_leaves[distance=1,persistent=true]", "145": "minecraft:oak_leaves[distance=1,persistent=false]", "146": "minecraft:oak_leaves[distance=2,persistent=true]", @@ -1647,7 +1647,7 @@ "1644": "minecraft:fire[age=15,east=false,north=false,south=false,up=true,west=false]", "1645": "minecraft:fire[age=15,east=false,north=false,south=false,up=false,west=true]", "1646": "minecraft:fire[age=15,east=false,north=false,south=false,up=false,west=false]", - "1647": "minecraft:mob_spawner", + "1647": "minecraft:spawner", "1648": "minecraft:oak_stairs[facing=north,half=top,shape=straight,waterlogged=true]", "1649": "minecraft:oak_stairs[facing=north,half=top,shape=straight,waterlogged=false]", "1650": "minecraft:oak_stairs[facing=north,half=top,shape=inner_left,waterlogged=true]", @@ -3496,8 +3496,8 @@ "3493": "minecraft:netherrack", "3494": "minecraft:soul_sand", "3495": "minecraft:glowstone", - "3496": "minecraft:portal[axis=x]", - "3497": "minecraft:portal[axis=z]", + "3496": "minecraft:nether_portal[axis=x]", + "3497": "minecraft:nether_portal[axis=z]", "3498": "minecraft:carved_pumpkin[facing=north]", "3499": "minecraft:carved_pumpkin[facing=south]", "3500": "minecraft:carved_pumpkin[facing=west]", @@ -8548,18 +8548,18 @@ "41": "minecraft:stripped_jungle_log", "42": "minecraft:stripped_acacia_log", "43": "minecraft:stripped_dark_oak_log", - "44": "minecraft:stripped_oak_bark", - "45": "minecraft:stripped_spruce_bark", - "46": "minecraft:stripped_birch_bark", - "47": "minecraft:stripped_jungle_bark", - "48": "minecraft:stripped_acacia_bark", - "49": "minecraft:stripped_dark_oak_bark", - "50": "minecraft:oak_bark", - "51": "minecraft:spruce_bark", - "52": "minecraft:birch_bark", - "53": "minecraft:jungle_bark", - "54": "minecraft:acacia_bark", - "55": "minecraft:dark_oak_bark", + "44": "minecraft:stripped_oak_wood", + "45": "minecraft:stripped_spruce_wood", + "46": "minecraft:stripped_birch_wood", + "47": "minecraft:stripped_jungle_wood", + "48": "minecraft:stripped_acacia_wood", + "49": "minecraft:stripped_dark_oak_wood", + "50": "minecraft:oak_wood", + "51": "minecraft:spruce_wood", + "52": "minecraft:birch_wood", + "53": "minecraft:jungle_wood", + "54": "minecraft:acacia_wood", + "55": "minecraft:dark_oak_wood", "56": "minecraft:oak_leaves", "57": "minecraft:spruce_leaves", "58": "minecraft:birch_leaves", @@ -8651,7 +8651,7 @@ "144": "minecraft:purpur_block", "145": "minecraft:purpur_pillar", "146": "minecraft:purpur_stairs", - "147": "minecraft:mob_spawner", + "147": "minecraft:spawner", "148": "minecraft:oak_stairs", "149": "minecraft:chest", "150": "minecraft:diamond_ore", @@ -9049,7 +9049,7 @@ "542": "minecraft:pufferfish_bucket", "543": "minecraft:salmon_bucket", "544": "minecraft:cod_bucket", - "545": "minecraft:clownfish_bucket", + "545": "minecraft:tropical_fish_bucket", "546": "minecraft:brick", "547": "minecraft:clay_ball", "548": "minecraft:sugar_cane", @@ -9067,7 +9067,7 @@ "560": "minecraft:glowstone_dust", "561": "minecraft:cod", "562": "minecraft:salmon", - "563": "minecraft:clownfish", + "563": "minecraft:tropical_fish", "564": "minecraft:pufferfish", "565": "minecraft:cooked_cod", "566": "minecraft:cooked_salmon", @@ -9146,7 +9146,7 @@ "639": "minecraft:elder_guardian_spawn_egg", "640": "minecraft:enderman_spawn_egg", "641": "minecraft:endermite_spawn_egg", - "642": "minecraft:evocation_illager_spawn_egg", + "642": "minecraft:evoker_spawn_egg", "643": "minecraft:ghast_spawn_egg", "644": "minecraft:guardian_spawn_egg", "645": "minecraft:horse_spawn_egg", @@ -9176,7 +9176,7 @@ "669": "minecraft:turtle_spawn_egg", "670": "minecraft:vex_spawn_egg", "671": "minecraft:villager_spawn_egg", - "672": "minecraft:vindication_illager_spawn_egg", + "672": "minecraft:vindicator_spawn_egg", "673": "minecraft:witch_spawn_egg", "674": "minecraft:wither_skeleton_spawn_egg", "675": "minecraft:wolf_spawn_egg", @@ -9247,7 +9247,7 @@ "740": "minecraft:black_banner", "741": "minecraft:end_crystal", "742": "minecraft:chorus_fruit", - "743": "minecraft:chorus_fruit_popped", + "743": "minecraft:popped_chorus_fruit", "744": "minecraft:beetroot", "745": "minecraft:beetroot_seeds", "746": "minecraft:beetroot_soup", @@ -9992,4 +9992,4 @@ 3 ] } -} \ No newline at end of file +} From 006fb177e6eb014989d8ef527e173e1038e0a33d Mon Sep 17 00:00:00 2001 From: creeper123123321 Date: Wed, 4 Jul 2018 10:50:01 -0300 Subject: [PATCH 2/4] 1.13-pre6 --- bukkit/pom.xml | 2 +- bungee/pom.xml | 2 +- common/pom.xml | 2 +- .../java/us/myles/ViaVersion/api/protocol/ProtocolVersion.java | 2 +- .../protocolsnapshotto1_12_2/ProtocolSnapshotTo1_12_2.java | 2 +- .../src/main/resources/assets/viaversion/data/mapping-1.13.json | 2 +- jar/pom.xml | 2 +- pom.xml | 2 +- sponge-legacy/pom.xml | 2 +- sponge/pom.xml | 2 +- 10 files changed, 10 insertions(+), 10 deletions(-) diff --git a/bukkit/pom.xml b/bukkit/pom.xml index 7e69afee1..8ccc6c7fa 100644 --- a/bukkit/pom.xml +++ b/bukkit/pom.xml @@ -5,7 +5,7 @@ viaversion-parent us.myles - 1.4.0-1.13-pre5 + 1.4.0-1.13-pre6 4.0.0 diff --git a/bungee/pom.xml b/bungee/pom.xml index a688fc319..00e47ff82 100644 --- a/bungee/pom.xml +++ b/bungee/pom.xml @@ -5,7 +5,7 @@ viaversion-parent us.myles - 1.4.0-1.13-pre5 + 1.4.0-1.13-pre6 4.0.0 diff --git a/common/pom.xml b/common/pom.xml index e49621fde..0d2d4e4a3 100644 --- a/common/pom.xml +++ b/common/pom.xml @@ -5,7 +5,7 @@ viaversion-parent us.myles - 1.4.0-1.13-pre5 + 1.4.0-1.13-pre6 4.0.0 diff --git a/common/src/main/java/us/myles/ViaVersion/api/protocol/ProtocolVersion.java b/common/src/main/java/us/myles/ViaVersion/api/protocol/ProtocolVersion.java index 04d089dd5..f9de8064f 100644 --- a/common/src/main/java/us/myles/ViaVersion/api/protocol/ProtocolVersion.java +++ b/common/src/main/java/us/myles/ViaVersion/api/protocol/ProtocolVersion.java @@ -62,7 +62,7 @@ public class ProtocolVersion { register(v1_12 = new ProtocolVersion(335, "1.12")); register(v1_12_1 = new ProtocolVersion(338, "1.12.1")); register(v1_12_2 = new ProtocolVersion(340, "1.12.2")); - register(v1_13 = new ProtocolVersion(387, "1.13-pre5")); + register(v1_13 = new ProtocolVersion(388, "1.13-pre6")); register(unknown = new ProtocolVersion(-1, "UNKNOWN")); } diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocolsnapshotto1_12_2/ProtocolSnapshotTo1_12_2.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocolsnapshotto1_12_2/ProtocolSnapshotTo1_12_2.java index 5c3620ef5..33e064bf4 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocolsnapshotto1_12_2/ProtocolSnapshotTo1_12_2.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocolsnapshotto1_12_2/ProtocolSnapshotTo1_12_2.java @@ -737,7 +737,7 @@ public class ProtocolSnapshotTo1_12_2 extends Protocol { providers.register(PaintingProvider.class, new PaintingProvider()); } - // Generated with PAaaS + // TODO Generate this for 1.13-pre6 private int getNewSoundID(final int oldID) { int newId = oldID; if (oldID >= 1) diff --git a/common/src/main/resources/assets/viaversion/data/mapping-1.13.json b/common/src/main/resources/assets/viaversion/data/mapping-1.13.json index c905e609d..7a9410978 100644 --- a/common/src/main/resources/assets/viaversion/data/mapping-1.13.json +++ b/common/src/main/resources/assets/viaversion/data/mapping-1.13.json @@ -9992,4 +9992,4 @@ 3 ] } -} +} \ No newline at end of file diff --git a/jar/pom.xml b/jar/pom.xml index d045c8a25..ea84df408 100644 --- a/jar/pom.xml +++ b/jar/pom.xml @@ -5,7 +5,7 @@ viaversion-parent us.myles - 1.4.0-1.13-pre5 + 1.4.0-1.13-pre6 4.0.0 viaversion-jar diff --git a/pom.xml b/pom.xml index 619c0c28b..17238251b 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ us.myles viaversion-parent - 1.4.0-1.13-pre5 + 1.4.0-1.13-pre6 pom viaversion-parent diff --git a/sponge-legacy/pom.xml b/sponge-legacy/pom.xml index e5bef46cd..989b63163 100644 --- a/sponge-legacy/pom.xml +++ b/sponge-legacy/pom.xml @@ -5,7 +5,7 @@ viaversion-parent us.myles - 1.4.0-1.13-pre5 + 1.4.0-1.13-pre6 4.0.0 diff --git a/sponge/pom.xml b/sponge/pom.xml index 8ee6b3006..ec7e4e423 100644 --- a/sponge/pom.xml +++ b/sponge/pom.xml @@ -5,7 +5,7 @@ viaversion-parent us.myles - 1.4.0-1.13-pre5 + 1.4.0-1.13-pre6 4.0.0 From 2153377c0e996a271178d6b8eb644b67d8caf1e0 Mon Sep 17 00:00:00 2001 From: creeper123123321 Date: Wed, 4 Jul 2018 17:10:30 -0300 Subject: [PATCH 3/4] client to server plugin message rewriting --- .../packets/InventoryPackets.java | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocolsnapshotto1_12_2/packets/InventoryPackets.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocolsnapshotto1_12_2/packets/InventoryPackets.java index 7942820c4..33073a2cc 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocolsnapshotto1_12_2/packets/InventoryPackets.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocolsnapshotto1_12_2/packets/InventoryPackets.java @@ -200,6 +200,39 @@ public class InventoryPackets { } ); + // Plugin message + protocol.registerIncoming(State.PLAY, 0x09, 0x09, new PacketRemapper() { + @Override + public void registerMap() { + map(Type.STRING); // Channel + handler(new PacketHandler() { + @Override + public void handle(PacketWrapper wrapper) throws Exception { + String channel = wrapper.get(Type.STRING, 0); + String originalChannel = channel; + channel = getOldPluginChannelId(channel).orNull(); + if (channel == null) { + System.out.println("Plugin message cancelled " + originalChannel); // TODO remove this debug + wrapper.cancel(); + return; + } else if (channel.equals("REGISTER") || channel.equals("UNREGISTER")) { + String[] channels = new String(wrapper.read(Type.REMAINING_BYTES), StandardCharsets.UTF_8).split("\0"); + List rewrittenChannels = new ArrayList<>(); + for (int i = 0; i < channels.length; i++) { + String rewritten = getOldPluginChannelId(channels[i]).orNull(); + if (rewritten != null) + rewrittenChannels.add(rewritten); + else + System.out.println("Ignoring plugin channel in REGISTER: " + channels[i]); + } + wrapper.write(Type.REMAINING_BYTES, Joiner.on('\0').join(rewrittenChannels).getBytes(StandardCharsets.UTF_8)); + } + wrapper.set(Type.STRING, 0, channel); + } + }); + } + }); + // Creative Inventory Action protocol.registerIncoming(State.PLAY, 0x1B, 0x22, new PacketRemapper() { @Override @@ -461,4 +494,17 @@ public class InventoryPackets { return Optional.of("minecraft:unregister"); return Optional.absent(); } + + public static Optional getOldPluginChannelId(String newId) { + switch (newId) { + case "minecraft:register": + return Optional.of("REGISTER"); + case "minecraft:unregister": + return Optional.of("UNREGISTER"); + case "minecraft:brand": + return Optional.of("MC|Brand"); + default: + return Optional.absent(); + } + } } From aacce4f77b55d312503f15ba13530b9f989e611b Mon Sep 17 00:00:00 2001 From: creeper123123321 Date: Thu, 5 Jul 2018 07:34:09 -0300 Subject: [PATCH 4/4] Sound rewriting with JSON --- .../ProtocolSnapshotTo1_12_2.java | 56 +- .../data/MappingData.java | 25 + .../assets/viaversion/data/mapping-1.12.json | 553 ++++++++++++++- .../assets/viaversion/data/mapping-1.13.json | 666 +++++++++++++++++- 4 files changed, 1243 insertions(+), 57 deletions(-) diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocolsnapshotto1_12_2/ProtocolSnapshotTo1_12_2.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocolsnapshotto1_12_2/ProtocolSnapshotTo1_12_2.java index 33e064bf4..289436816 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocolsnapshotto1_12_2/ProtocolSnapshotTo1_12_2.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocolsnapshotto1_12_2/ProtocolSnapshotTo1_12_2.java @@ -737,61 +737,7 @@ public class ProtocolSnapshotTo1_12_2 extends Protocol { providers.register(PaintingProvider.class, new PaintingProvider()); } - // TODO Generate this for 1.13-pre6 private int getNewSoundID(final int oldID) { - int newId = oldID; - if (oldID >= 1) - newId += 6; - if (oldID >= 9) - newId += 4; - if (oldID >= 10) - newId += 5; - if (oldID >= 21) - newId += 5; - if (oldID >= 86) - newId += 1; - if (oldID >= 166) - newId += 4; - if (oldID >= 174) - newId += 10; - if (oldID >= 179) - newId += 9; - if (oldID >= 226) - newId += 1; - if (oldID >= 271) - newId += 1; - if (oldID >= 326) - newId += 1; - if (oldID >= 335) - newId += 1; - if (oldID >= 352) - newId += 6; - if (oldID >= 373) - newId += 1; - if (oldID >= 380) - newId += 7; - if (oldID >= 385) - newId += 4; - if (oldID >= 412) - newId += 5; - if (oldID >= 438) - newId += 1; - if (oldID >= 443) - newId += 16; - if (oldID >= 484) - newId += 1; - if (oldID >= 485) - newId += 1; - if (oldID >= 508) - newId += 2; - if (oldID >= 513) - newId += 1; - if (oldID >= 515) - newId += 1; - if (oldID >= 524) - newId += 8; - if (oldID >= 531) - newId += 1; - return newId; + return MappingData.oldToNewSounds.get(oldID); } } diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocolsnapshotto1_12_2/data/MappingData.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocolsnapshotto1_12_2/data/MappingData.java index 350e1ceb5..1ac3a132a 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocolsnapshotto1_12_2/data/MappingData.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocolsnapshotto1_12_2/data/MappingData.java @@ -21,6 +21,7 @@ public class MappingData { public static Map itemTags = new HashMap<>(); public static Map fluidTags = new HashMap<>(); public static BiMap oldEnchantmentsIds = HashBiMap.create(); + public static Map oldToNewSounds = new HashMap<>(); public static void init() { JsonObject mapping1_12 = loadData("mapping-1.12.json"); @@ -39,6 +40,8 @@ public class MappingData { loadTags(fluidTags, mapping1_13.getAsJsonObject("fluid_tags")); System.out.println("Loading enchantments..."); loadEnchantments(oldEnchantmentsIds, mapping1_12.getAsJsonObject("enchantments")); + System.out.println("Loading sound mapping..."); + mapIdentifiers(oldToNewSounds, mapping1_12.getAsJsonArray("sounds"), mapping1_13.getAsJsonArray("sounds")); } private static void mapIdentifiers(Map output, JsonObject oldIdentifiers, JsonObject newIdentifiers) { @@ -62,6 +65,28 @@ public class MappingData { return null; } + private static void mapIdentifiers(Map output, JsonArray oldIdentifiers, JsonArray newIdentifiers) { + for (int i = 0; i < oldIdentifiers.size(); i++) { + JsonElement v = oldIdentifiers.get(i); + Integer index = findIndex(newIdentifiers, v.getAsString()); + if (index == null) { + System.out.println("No key for " + v + " :( "); + continue; + } + output.put(i, index); + } + } + + private static Integer findIndex(JsonArray array, String value) { + for (int i = 0; i < array.size(); i++) { + JsonElement v = array.get(i); + if (v.getAsString().equals(value)) { + return i; + } + } + return null; + } + private static void loadTags(Map output, JsonObject newTags) { for (Map.Entry entry : newTags.entrySet()) { JsonArray ids = entry.getValue().getAsJsonArray(); diff --git a/common/src/main/resources/assets/viaversion/data/mapping-1.12.json b/common/src/main/resources/assets/viaversion/data/mapping-1.12.json index 661db1315..a3d8ffb07 100644 --- a/common/src/main/resources/assets/viaversion/data/mapping-1.12.json +++ b/common/src/main/resources/assets/viaversion/data/mapping-1.12.json @@ -2409,5 +2409,556 @@ "62": "minecraft:lure", "70": "minecraft:mending", "71": "minecraft:vanishing_curse" - } + }, + "sounds": [ + "ambient.cave", + "block.anvil.break", + "block.anvil.destroy", + "block.anvil.fall", + "block.anvil.hit", + "block.anvil.land", + "block.anvil.place", + "block.anvil.step", + "block.anvil.use", + "block.brewing_stand.brew", + "block.chest.close", + "block.chest.locked", + "block.chest.open", + "block.chorus_flower.death", + "block.chorus_flower.grow", + "block.wool.break", // cloth -> wool + "block.wool.fall", + "block.wool.hit", + "block.wool.place", + "block.wool.step", + "block.comparator.click", + "block.dispenser.dispense", + "block.dispenser.fail", + "block.dispenser.launch", + "block.enchantment_table.use", + "block.end_gateway.spawn", + "block.end_portal.spawn", + "block.end_portal_frame.fill", + "block.ender_chest.close", // enderchest -> ender_chest + "block.ender_chest.open", + "block.fence_gate.close", + "block.fence_gate.open", + "block.fire.ambient", + "block.fire.extinguish", + "block.furnace.fire_crackle", + "block.glass.break", + "block.glass.fall", + "block.glass.hit", + "block.glass.place", + "block.glass.step", + "block.grass.break", + "block.grass.fall", + "block.grass.hit", + "block.grass.place", + "block.grass.step", + "block.gravel.break", + "block.gravel.fall", + "block.gravel.hit", + "block.gravel.place", + "block.gravel.step", + "block.iron_door.close", + "block.iron_door.open", + "block.iron_trapdoor.close", + "block.iron_trapdoor.open", + "block.ladder.break", + "block.ladder.fall", + "block.ladder.hit", + "block.ladder.place", + "block.ladder.step", + "block.lava.ambient", + "block.lava.extinguish", + "block.lava.pop", + "block.lever.click", + "block.metal.break", + "block.metal.fall", + "block.metal.hit", + "block.metal.place", + "block.metal.step", + "block.metal_pressure_plate.click_off", // metal_pressureplate -> metal_pressure_plate + "block.metal_pressure_plate.click_on", + "block.note_block.basedrum", // note -> note_block + "block.note_block.bass", + "block.note_block.bell", + "block.note_block.chime", + "block.note_block.flute", + "block.note_block.guitar", + "block.note_block.harp", + "block.note_block.hat", + "block.note_block.pling", + "block.note_block.snare", + "block.note_block.xylophone", + "block.piston.contract", + "block.piston.extend", + "block.portal.ambient", + "block.portal.travel", + "block.portal.trigger", + "block.redstone_torch.burnout", + "block.sand.break", + "block.sand.fall", + "block.sand.hit", + "block.sand.place", + "block.sand.step", + "block.shulker_box.close", + "block.shulker_box.open", + "block.slime_block.break", // slime -> slime_block + "block.slime_block.fall", + "block.slime_block.hit", + "block.slime_block.place", + "block.slime_block.step", + "block.snow.break", + "block.snow.fall", + "block.snow.hit", + "block.snow.place", + "block.snow.step", + "block.stone.break", + "block.stone.fall", + "block.stone.hit", + "block.stone.place", + "block.stone.step", + "block.stone_button.click_off", + "block.stone_button.click_on", + "block.stone_pressure_plate.click_off", // stone_pressureplate -> stone_pressure_plate + "block.stone_pressure_plate.click_on", + "block.tripwire.attach", + "block.tripwire.click_off", + "block.tripwire.click_on", + "block.tripwire.detach", + "block.water.ambient", + "block.lily_pad.place", // waterlily -> lily_pad + "block.wood.break", + "block.wood.fall", + "block.wood.hit", + "block.wood.place", + "block.wood.step", + "block.wooden_button.click_off", // wood_button -> wooden_button + "block.wooden_button.click_on", + "block.wooden_pressure_plate.click_off", // wood_pressureplate -> wooden_pressure_plate + "block.wooden_pressure_plate.click_on", + "block.wooden_door.close", + "block.wooden_door.open", + "block.wooden_trapdoor.close", + "block.wooden_trapdoor.open", + "enchant.thorns.hit", + "entity.armor_stand.break", // armorstand -> armor_stand + "entity.armor_stand.fall", + "entity.armor_stand.hit", + "entity.armor_stand.place", + "entity.arrow.hit", + "entity.arrow.hit_player", + "entity.arrow.shoot", + "entity.bat.ambient", + "entity.bat.death", + "entity.bat.hurt", + "entity.bat.loop", + "entity.bat.takeoff", + "entity.blaze.ambient", + "entity.blaze.burn", + "entity.blaze.death", + "entity.blaze.hurt", + "entity.blaze.shoot", + "entity.boat.paddle_land", + "entity.boat.paddle_water", + "entity.fishing_bobber.retrieve", // bobber -> fishing_bobber + "entity.fishing_bobber.splash", + "entity.fishing_bobber.throw", + "entity.cat.ambient", + "entity.cat.death", + "entity.cat.hiss", + "entity.cat.hurt", + "entity.cat.purr", + "entity.cat.purreow", + "entity.chicken.ambient", + "entity.chicken.death", + "entity.chicken.egg", + "entity.chicken.hurt", + "entity.chicken.step", + "entity.cow.ambient", + "entity.cow.death", + "entity.cow.hurt", + "entity.cow.milk", + "entity.cow.step", + "entity.creeper.death", + "entity.creeper.hurt", + "entity.creeper.primed", + "entity.donkey.ambient", + "entity.donkey.angry", + "entity.donkey.chest", + "entity.donkey.death", + "entity.donkey.hurt", + "entity.egg.throw", + "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.ender_dragon.ambient", // enderdragon -> ender_dragon + "entity.ender_dragon.death", + "entity.ender_dragon.flap", + "entity.ender_dragon.growl", + "entity.ender_dragon.hurt", + "entity.ender_dragon.shoot", + "entity.dragon_fireball.explode", // enderdragon_fireball -> dragon_fireball + "entity.ender_eye.death", // endereye -> ender_eye + "entity.ender_eye.launch", + "entity.enderman.ambient", // endermen -> enderman + "entity.enderman.death", + "entity.enderman.hurt", + "entity.enderman.scream", + "entity.enderman.stare", + "entity.enderman.teleport", + "entity.endermite.ambient", + "entity.endermite.death", + "entity.endermite.hurt", + "entity.endermite.step", + "entity.ender_pearl.throw", // enderpearl -> ender_pearl + "entity.evoker_fangs.attack", // evocation -> evoker + "entity.evoker.ambient", // evocation_illager -> evoker + "entity.evoker.cast_spell", + "entity.evoker.death", + "entity.evoker.hurt", + "entity.evoker.prepare_attack", + "entity.evoker.prepare_summon", + "entity.evoker.prepare_wololo", + "entity.experience_bottle.throw", + "entity.experience_orb.pickup", + "entity.firework_rocket.blast", // firework -> firework_rocket + "entity.firework_rocket.blast_far", + "entity.firework_rocket.large_blast", + "entity.firework_rocket.large_blast_far", + "entity.firework_rocket.launch", + "entity.firework_rocket.shoot", + "entity.firework_rocket.twinkle", + "entity.firework_rocket.twinkle_far", + "entity.generic.big_fall", + "entity.generic.burn", + "entity.generic.death", + "entity.generic.drink", + "entity.generic.eat", + "entity.generic.explode", + "entity.generic.extinguish_fire", + "entity.generic.hurt", + "entity.generic.small_fall", + "entity.generic.splash", + "entity.generic.swim", + "entity.ghast.ambient", + "entity.ghast.death", + "entity.ghast.hurt", + "entity.ghast.scream", + "entity.ghast.shoot", + "entity.ghast.warn", + "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", + "entity.horse.angry", + "entity.horse.armor", + "entity.horse.breathe", + "entity.horse.death", + "entity.horse.eat", + "entity.horse.gallop", + "entity.horse.hurt", + "entity.horse.jump", + "entity.horse.land", + "entity.horse.saddle", + "entity.horse.step", + "entity.horse.step_wood", + "entity.hostile.big_fall", + "entity.hostile.death", + "entity.hostile.hurt", + "entity.hostile.small_fall", + "entity.hostile.splash", + "entity.hostile.swim", + "entity.husk.ambient", + "entity.husk.death", + "entity.husk.hurt", + "entity.husk.step", + "entity.illusioner.ambient", // illusion_illager -> illusioner + "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", // irongolem -> iron_golem + "entity.iron_golem.death", + "entity.iron_golem.hurt", + "entity.iron_golem.step", + "entity.item.break", + "entity.item.pickup", + "entity.item_frame.add_item", // itemframe -> item_frame + "entity.item_frame.break", + "entity.item_frame.place", + "entity.item_frame.remove_item", + "entity.item_frame.rotate_item", + "entity.leash_knot.break", // leashknot -> leash_knot + "entity.leash_knot.place", + "entity.lightning_bolt.impact", // lightning -> lightning_bolt + "entity.lightning_bolt.thunder", + "entity.lingering_potion.throw", // lingeringpotion -> lingering_potion + "entity.llama.ambient", + "entity.llama.angry", + "entity.llama.chest", + "entity.llama.death", + "entity.llama.eat", + "entity.llama.hurt", + "entity.llama.spit", + "entity.llama.step", + "entity.llama.swag", + "entity.magma_cube.death", // magmacube -> magma_cube + "entity.magma_cube.hurt", + "entity.magma_cube.jump", + "entity.magma_cube.squish", + "entity.minecart.inside", + "entity.minecart.riding", + "entity.mooshroom.shear", + "entity.mule.ambient", + "entity.mule.chest", + "entity.mule.death", + "entity.mule.hurt", + "entity.painting.break", + "entity.painting.place", + "entity.parrot.ambient", + "entity.parrot.death", + "entity.parrot.eat", + "entity.parrot.fly", + "entity.parrot.hurt", + "entity.parrot.imitate.blaze", + "entity.parrot.imitate.creeper", + "entity.parrot.imitate.elder_guardian", + "entity.parrot.imitate.ender_dragon", // enderdragon -> ender_dragon + "entity.parrot.imitate.enderman", + "entity.parrot.imitate.endermite", + "entity.parrot.imitate.evoker", // evocation_illager -> evoker + "entity.parrot.imitate.ghast", + "entity.parrot.imitate.husk", + "entity.parrot.imitate.illusioner", // illusion_illager -> illusioner + "entity.parrot.imitate.magma_cube", // magmacube -> magma_cube + "entity.parrot.imitate.polar_bear", + "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", // vindication_illager + "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.pig.ambient", + "entity.pig.death", + "entity.pig.hurt", + "entity.pig.saddle", + "entity.pig.step", + "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", + "entity.player.death", + "entity.player.hurt", + "entity.player.hurt_drown", + "entity.player.hurt_on_fire", + "entity.player.levelup", + "entity.player.small_fall", + "entity.player.splash", + "entity.player.swim", + "entity.polar_bear.ambient", + "entity.polar_bear.ambient_baby", // baby_ambient -> ambient_baby + "entity.polar_bear.death", + "entity.polar_bear.hurt", + "entity.polar_bear.step", + "entity.polar_bear.warning", + "entity.rabbit.ambient", + "entity.rabbit.attack", + "entity.rabbit.death", + "entity.rabbit.hurt", + "entity.rabbit.jump", + "entity.sheep.ambient", + "entity.sheep.death", + "entity.sheep.hurt", + "entity.sheep.shear", + "entity.sheep.step", + "entity.shulker.ambient", + "entity.shulker.close", + "entity.shulker.death", + "entity.shulker.hurt", + "entity.shulker.hurt_closed", + "entity.shulker.open", + "entity.shulker.shoot", + "entity.shulker.teleport", + "entity.shulker_bullet.hit", + "entity.shulker_bullet.hurt", + "entity.silverfish.ambient", + "entity.silverfish.death", + "entity.silverfish.hurt", + "entity.silverfish.step", + "entity.skeleton.ambient", + "entity.skeleton.death", + "entity.skeleton.hurt", + "entity.skeleton.shoot", + "entity.skeleton.step", + "entity.skeleton_horse.ambient", + "entity.skeleton_horse.death", + "entity.skeleton_horse.hurt", + "entity.slime.attack", + "entity.slime.death", + "entity.slime.hurt", + "entity.slime.jump", + "entity.slime.squish", + "entity.magma_cube.death_small", // moved small to end, magmacube -> magma_cube + "entity.magma_cube.hurt_small", + "entity.magma_cube.squish_small", + "entity.slime.death_small", + "entity.slime.hurt_small", + "entity.slime.jump_small", + "entity.slime.squish_small", + "entity.snowball.throw", + "entity.snow_golem.ambient", // snowman -> snow_golem + "entity.snow_golem.death", + "entity.snow_golem.hurt", + "entity.snow_golem.shoot", + "entity.spider.ambient", + "entity.spider.death", + "entity.spider.hurt", + "entity.spider.step", + "entity.splash_potion.break", + "entity.splash_potion.throw", + "entity.squid.ambient", + "entity.squid.death", + "entity.squid.hurt", + "entity.stray.ambient", + "entity.stray.death", + "entity.stray.hurt", + "entity.stray.step", + "entity.tnt.primed", + "entity.vex.ambient", + "entity.vex.charge", + "entity.vex.death", + "entity.vex.hurt", + "entity.villager.ambient", + "entity.villager.death", + "entity.villager.hurt", + "entity.villager.no", + "entity.villager.trade", // trading -> trade + "entity.villager.yes", + "entity.vindicator.ambient", // vindication_illager -> vindicator + "entity.vindicator.death", + "entity.vindicator.hurt", + "entity.witch.ambient", + "entity.witch.death", + "entity.witch.drink", + "entity.witch.hurt", + "entity.witch.throw", + "entity.wither.ambient", + "entity.wither.break_block", + "entity.wither.death", + "entity.wither.hurt", + "entity.wither.shoot", + "entity.wither.spawn", + "entity.wither_skeleton.ambient", + "entity.wither_skeleton.death", + "entity.wither_skeleton.hurt", + "entity.wither_skeleton.step", + "entity.wolf.ambient", + "entity.wolf.death", + "entity.wolf.growl", + "entity.wolf.howl", + "entity.wolf.hurt", + "entity.wolf.pant", + "entity.wolf.shake", + "entity.wolf.step", + "entity.wolf.whine", + "entity.zombie.ambient", + "entity.zombie.attack_wooden_door", // door_wood -> wooden_door + "entity.zombie.attack_iron_door", + "entity.zombie.break_wooden_door", // door_wood -> wooden_door + "entity.zombie.death", + "entity.zombie.hurt", + "entity.zombie.infect", + "entity.zombie.step", + "entity.zombie_horse.ambient", + "entity.zombie_horse.death", + "entity.zombie_horse.hurt", + "entity.zombie_pigman.ambient", // pig -> pigman + "entity.zombie_pigman.angry", + "entity.zombie_pigman.death", + "entity.zombie_pigman.hurt", + "entity.zombie_villager.ambient", + "entity.zombie_villager.converted", + "entity.zombie_villager.cure", + "entity.zombie_villager.death", + "entity.zombie_villager.hurt", + "entity.zombie_villager.step", + "item.armor.equip_chain", + "item.armor.equip_diamond", + "item.armor.equip_elytra", + "item.armor.equip_generic", + "item.armor.equip_gold", + "item.armor.equip_iron", + "item.armor.equip_leather", + "item.bottle.empty", + "item.bottle.fill", + "item.bottle.fill_dragonbreath", + "item.bucket.empty", + "item.bucket.empty_lava", + "item.bucket.fill", + "item.bucket.fill_lava", + "item.chorus_fruit.teleport", + "item.elytra.flying", + "item.firecharge.use", + "item.flintandsteel.use", + "item.hoe.till", + "item.shield.block", + "item.shield.break", + "item.shovel.flatten", + "item.totem.use", + "music.creative", + "music.credits", + "music.dragon", + "music.end", + "music.game", + "music.menu", + "music.nether", + "music_disc.11", // record -> music_disc + "music_disc.13", + "music_disc.blocks", + "music_disc.cat", + "music_disc.chirp", + "music_disc.far", + "music_disc.mall", + "music_disc.mellohi", + "music_disc.stal", + "music_disc.strad", + "music_disc.wait", + "music_disc.ward", + "ui.button.click", + "ui.toast.in", + "ui.toast.out", + "ui.toast.challenge_complete", + "weather.rain", + "weather.rain.above" + ] } \ No newline at end of file diff --git a/common/src/main/resources/assets/viaversion/data/mapping-1.13.json b/common/src/main/resources/assets/viaversion/data/mapping-1.13.json index 7a9410978..a62b5e307 100644 --- a/common/src/main/resources/assets/viaversion/data/mapping-1.13.json +++ b/common/src/main/resources/assets/viaversion/data/mapping-1.13.json @@ -9991,5 +9991,669 @@ 4, 3 ] - } + }, + "sounds": [ + "ambient.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", + "block.anvil.destroy", + "block.anvil.fall", + "block.anvil.hit", + "block.anvil.land", + "block.anvil.place", + "block.anvil.step", + "block.anvil.use", + "block.beacon.activate", + "block.beacon.ambient", + "block.beacon.deactivate", + "block.beacon.power_select", + "block.brewing_stand.brew", + "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.chest.close", + "block.chest.locked", + "block.chest.open", + "block.chorus_flower.death", + "block.chorus_flower.grow", + "block.wool.break", + "block.wool.fall", + "block.wool.hit", + "block.wool.place", + "block.wool.step", + "block.comparator.click", + "block.conduit.activate", + "block.conduit.ambient", + "block.conduit.ambient.short", + "block.conduit.attack.target", + "block.conduit.deactivate", + "block.dispenser.dispense", + "block.dispenser.fail", + "block.dispenser.launch", + "block.enchantment_table.use", + "block.end_gateway.spawn", + "block.end_portal.spawn", + "block.end_portal_frame.fill", + "block.ender_chest.close", + "block.ender_chest.open", + "block.fence_gate.close", + "block.fence_gate.open", + "block.fire.ambient", + "block.fire.extinguish", + "block.furnace.fire_crackle", + "block.glass.break", + "block.glass.fall", + "block.glass.hit", + "block.glass.place", + "block.glass.step", + "block.grass.break", + "block.grass.fall", + "block.grass.hit", + "block.grass.place", + "block.grass.step", + "block.wet_grass.break", + "block.wet_grass.fall", + "block.wet_grass.hit", + "block.wet_grass.place", + "block.wet_grass.step", + "block.coral_block.break", + "block.coral_block.fall", + "block.coral_block.hit", + "block.coral_block.place", + "block.coral_block.step", + "block.gravel.break", + "block.gravel.fall", + "block.gravel.hit", + "block.gravel.place", + "block.gravel.step", + "block.iron_door.close", + "block.iron_door.open", + "block.iron_trapdoor.close", + "block.iron_trapdoor.open", + "block.ladder.break", + "block.ladder.fall", + "block.ladder.hit", + "block.ladder.place", + "block.ladder.step", + "block.lava.ambient", + "block.lava.extinguish", + "block.lava.pop", + "block.lever.click", + "block.metal.break", + "block.metal.fall", + "block.metal.hit", + "block.metal.place", + "block.metal.step", + "block.metal_pressure_plate.click_off", + "block.metal_pressure_plate.click_on", + "block.note_block.basedrum", + "block.note_block.bass", + "block.note_block.bell", + "block.note_block.chime", + "block.note_block.flute", + "block.note_block.guitar", + "block.note_block.harp", + "block.note_block.hat", + "block.note_block.pling", + "block.note_block.snare", + "block.note_block.xylophone", + "block.piston.contract", + "block.piston.extend", + "block.portal.ambient", + "block.portal.travel", + "block.portal.trigger", + "block.pumpkin.carve", + "block.redstone_torch.burnout", + "block.sand.break", + "block.sand.fall", + "block.sand.hit", + "block.sand.place", + "block.sand.step", + "block.shulker_box.close", + "block.shulker_box.open", + "block.slime_block.break", + "block.slime_block.fall", + "block.slime_block.hit", + "block.slime_block.place", + "block.slime_block.step", + "block.snow.break", + "block.snow.fall", + "block.snow.hit", + "block.snow.place", + "block.snow.step", + "block.stone.break", + "block.stone.fall", + "block.stone.hit", + "block.stone.place", + "block.stone.step", + "block.stone_button.click_off", + "block.stone_button.click_on", + "block.stone_pressure_plate.click_off", + "block.stone_pressure_plate.click_on", + "block.tripwire.attach", + "block.tripwire.click_off", + "block.tripwire.click_on", + "block.tripwire.detach", + "block.water.ambient", + "block.lily_pad.place", + "block.wood.break", + "block.wood.fall", + "block.wood.hit", + "block.wood.place", + "block.wood.step", + "block.wooden_button.click_off", + "block.wooden_button.click_on", + "block.wooden_pressure_plate.click_off", + "block.wooden_pressure_plate.click_on", + "block.wooden_door.close", + "block.wooden_door.open", + "block.wooden_trapdoor.close", + "block.wooden_trapdoor.open", + "enchant.thorns.hit", + "entity.armor_stand.break", + "entity.armor_stand.fall", + "entity.armor_stand.hit", + "entity.armor_stand.place", + "entity.arrow.hit", + "entity.arrow.hit_player", + "entity.arrow.shoot", + "entity.bat.ambient", + "entity.bat.death", + "entity.bat.hurt", + "entity.bat.loop", + "entity.bat.takeoff", + "entity.blaze.ambient", + "entity.blaze.burn", + "entity.blaze.death", + "entity.blaze.hurt", + "entity.blaze.shoot", + "entity.boat.paddle_land", + "entity.boat.paddle_water", + "entity.fishing_bobber.retrieve", + "entity.fishing_bobber.splash", + "entity.fishing_bobber.throw", + "entity.cat.ambient", + "entity.cat.death", + "entity.cat.hiss", + "entity.cat.hurt", + "entity.cat.purr", + "entity.cat.purreow", + "entity.chicken.ambient", + "entity.chicken.death", + "entity.chicken.egg", + "entity.chicken.hurt", + "entity.chicken.step", + "entity.cod.ambient", + "entity.cod.death", + "entity.cod.flop", + "entity.cod.hurt", + "entity.cow.ambient", + "entity.cow.death", + "entity.cow.hurt", + "entity.cow.milk", + "entity.cow.step", + "entity.creeper.death", + "entity.creeper.hurt", + "entity.creeper.primed", + "entity.dolphin.ambient", + "entity.dolphin.ambient_water", + "entity.dolphin.attack", + "entity.dolphin.death", + "entity.dolphin.eat", + "entity.dolphin.hurt", + "entity.dolphin.jump", + "entity.dolphin.play", + "entity.dolphin.splash", + "entity.dolphin.swim", + "entity.donkey.ambient", + "entity.donkey.angry", + "entity.donkey.chest", + "entity.donkey.death", + "entity.donkey.hurt", + "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", + "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.ender_dragon.ambient", + "entity.ender_dragon.death", + "entity.ender_dragon.flap", + "entity.ender_dragon.growl", + "entity.ender_dragon.hurt", + "entity.ender_dragon.shoot", + "entity.dragon_fireball.explode", + "entity.ender_eye.death", + "entity.ender_eye.launch", + "entity.enderman.ambient", + "entity.enderman.death", + "entity.enderman.hurt", + "entity.enderman.scream", + "entity.enderman.stare", + "entity.enderman.teleport", + "entity.endermite.ambient", + "entity.endermite.death", + "entity.endermite.hurt", + "entity.endermite.step", + "entity.ender_pearl.throw", + "entity.evoker.ambient", + "entity.evoker.cast_spell", + "entity.evoker.death", + "entity.evoker.hurt", + "entity.evoker.prepare_attack", + "entity.evoker.prepare_summon", + "entity.evoker.prepare_wololo", + "entity.evoker_fangs.attack", + "entity.experience_bottle.throw", + "entity.experience_orb.pickup", + "entity.firework_rocket.blast", + "entity.firework_rocket.blast_far", + "entity.firework_rocket.large_blast", + "entity.firework_rocket.large_blast_far", + "entity.firework_rocket.launch", + "entity.firework_rocket.shoot", + "entity.firework_rocket.twinkle", + "entity.firework_rocket.twinkle_far", + "entity.fish.swim", + "entity.generic.big_fall", + "entity.generic.burn", + "entity.generic.death", + "entity.generic.drink", + "entity.generic.eat", + "entity.generic.explode", + "entity.generic.extinguish_fire", + "entity.generic.hurt", + "entity.generic.small_fall", + "entity.generic.splash", + "entity.generic.swim", + "entity.ghast.ambient", + "entity.ghast.death", + "entity.ghast.hurt", + "entity.ghast.scream", + "entity.ghast.shoot", + "entity.ghast.warn", + "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", + "entity.horse.angry", + "entity.horse.armor", + "entity.horse.breathe", + "entity.horse.death", + "entity.horse.eat", + "entity.horse.gallop", + "entity.horse.hurt", + "entity.horse.jump", + "entity.horse.land", + "entity.horse.saddle", + "entity.horse.step", + "entity.horse.step_wood", + "entity.hostile.big_fall", + "entity.hostile.death", + "entity.hostile.hurt", + "entity.hostile.small_fall", + "entity.hostile.splash", + "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", + "entity.iron_golem.death", + "entity.iron_golem.hurt", + "entity.iron_golem.step", + "entity.item.break", + "entity.item.pickup", + "entity.item_frame.add_item", + "entity.item_frame.break", + "entity.item_frame.place", + "entity.item_frame.remove_item", + "entity.item_frame.rotate_item", + "entity.leash_knot.break", + "entity.leash_knot.place", + "entity.lightning_bolt.impact", + "entity.lightning_bolt.thunder", + "entity.lingering_potion.throw", + "entity.llama.ambient", + "entity.llama.angry", + "entity.llama.chest", + "entity.llama.death", + "entity.llama.eat", + "entity.llama.hurt", + "entity.llama.spit", + "entity.llama.step", + "entity.llama.swag", + "entity.magma_cube.death", + "entity.magma_cube.hurt", + "entity.magma_cube.jump", + "entity.magma_cube.squish", + "entity.minecart.inside", + "entity.minecart.riding", + "entity.mooshroom.shear", + "entity.mule.ambient", + "entity.mule.chest", + "entity.mule.death", + "entity.mule.hurt", + "entity.painting.break", + "entity.painting.place", + "entity.parrot.ambient", + "entity.parrot.death", + "entity.parrot.eat", + "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.ender_dragon", + "entity.parrot.imitate.enderman", + "entity.parrot.imitate.endermite", + "entity.parrot.imitate.evoker", + "entity.parrot.imitate.ghast", + "entity.parrot.imitate.husk", + "entity.parrot.imitate.illusioner", + "entity.parrot.imitate.magma_cube", + "entity.parrot.imitate.phantom", + "entity.parrot.imitate.polar_bear", + "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", + "entity.pig.death", + "entity.pig.hurt", + "entity.pig.saddle", + "entity.pig.step", + "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", + "entity.player.death", + "entity.player.hurt", + "entity.player.hurt_drown", + "entity.player.hurt_on_fire", + "entity.player.levelup", + "entity.player.small_fall", + "entity.player.splash", + "entity.player.splash.high_speed", + "entity.player.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.salmon.ambient", + "entity.salmon.death", + "entity.salmon.flop", + "entity.salmon.hurt", + "entity.sheep.ambient", + "entity.sheep.death", + "entity.sheep.hurt", + "entity.sheep.shear", + "entity.sheep.step", + "entity.shulker.ambient", + "entity.shulker.close", + "entity.shulker.death", + "entity.shulker.hurt", + "entity.shulker.hurt_closed", + "entity.shulker.open", + "entity.shulker.shoot", + "entity.shulker.teleport", + "entity.shulker_bullet.hit", + "entity.shulker_bullet.hurt", + "entity.silverfish.ambient", + "entity.silverfish.death", + "entity.silverfish.hurt", + "entity.silverfish.step", + "entity.skeleton.ambient", + "entity.skeleton.death", + "entity.skeleton.hurt", + "entity.skeleton.shoot", + "entity.skeleton.step", + "entity.skeleton_horse.ambient", + "entity.skeleton_horse.death", + "entity.skeleton_horse.hurt", + "entity.skeleton_horse.swim", + "entity.skeleton_horse.ambient_water", + "entity.skeleton_horse.gallop_water", + "entity.skeleton_horse.jump_water", + "entity.skeleton_horse.step_water", + "entity.slime.attack", + "entity.slime.death", + "entity.slime.hurt", + "entity.slime.jump", + "entity.slime.squish", + "entity.magma_cube.death_small", + "entity.magma_cube.hurt_small", + "entity.magma_cube.squish_small", + "entity.slime.death_small", + "entity.slime.hurt_small", + "entity.slime.jump_small", + "entity.slime.squish_small", + "entity.snow_golem.ambient", + "entity.snow_golem.death", + "entity.snow_golem.hurt", + "entity.snow_golem.shoot", + "entity.snowball.throw", + "entity.spider.ambient", + "entity.spider.death", + "entity.spider.hurt", + "entity.spider.step", + "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", + "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", + "entity.villager.death", + "entity.villager.hurt", + "entity.villager.no", + "entity.villager.trade", + "entity.villager.yes", + "entity.vindicator.ambient", + "entity.vindicator.death", + "entity.vindicator.hurt", + "entity.witch.ambient", + "entity.witch.death", + "entity.witch.drink", + "entity.witch.hurt", + "entity.witch.throw", + "entity.wither.ambient", + "entity.wither.break_block", + "entity.wither.death", + "entity.wither.hurt", + "entity.wither.shoot", + "entity.wither.spawn", + "entity.wither_skeleton.ambient", + "entity.wither_skeleton.death", + "entity.wither_skeleton.hurt", + "entity.wither_skeleton.step", + "entity.wolf.ambient", + "entity.wolf.death", + "entity.wolf.growl", + "entity.wolf.howl", + "entity.wolf.hurt", + "entity.wolf.pant", + "entity.wolf.shake", + "entity.wolf.step", + "entity.wolf.whine", + "entity.zombie.ambient", + "entity.zombie.attack_wooden_door", + "entity.zombie.attack_iron_door", + "entity.zombie.break_wooden_door", + "entity.zombie.converted_to_drowned", + "entity.zombie.death", + "entity.zombie.destroy_egg", + "entity.zombie.hurt", + "entity.zombie.infect", + "entity.zombie.step", + "entity.zombie_horse.ambient", + "entity.zombie_horse.death", + "entity.zombie_horse.hurt", + "entity.zombie_pigman.ambient", + "entity.zombie_pigman.angry", + "entity.zombie_pigman.death", + "entity.zombie_pigman.hurt", + "entity.zombie_villager.ambient", + "entity.zombie_villager.converted", + "entity.zombie_villager.cure", + "entity.zombie_villager.death", + "entity.zombie_villager.hurt", + "entity.zombie_villager.step", + "item.armor.equip_chain", + "item.armor.equip_diamond", + "item.armor.equip_elytra", + "item.armor.equip_generic", + "item.armor.equip_gold", + "item.armor.equip_iron", + "item.armor.equip_leather", + "item.armor.equip_turtle", + "item.axe.strip", + "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.elytra.flying", + "item.firecharge.use", + "item.flintandsteel.use", + "item.hoe.till", + "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.dragon", + "music.end", + "music.game", + "music.menu", + "music.nether", + "music.under_water", + "music_disc.11", + "music_disc.13", + "music_disc.blocks", + "music_disc.cat", + "music_disc.chirp", + "music_disc.far", + "music_disc.mall", + "music_disc.mellohi", + "music_disc.stal", + "music_disc.strad", + "music_disc.wait", + "music_disc.ward", + "ui.button.click", + "ui.toast.challenge_complete", + "ui.toast.in", + "ui.toast.out", + "weather.rain", + "weather.rain.above" + ] } \ No newline at end of file