From f35eb3054c86e3aef5d7097d1ecf3fbfab482d71 Mon Sep 17 00:00:00 2001 From: KennyTV <28825609+KennyTV@users.noreply.github.com> Date: Thu, 29 Aug 2019 19:56:30 +0200 Subject: [PATCH] Finish 19w35a --- .../data/MappingData.java | 10 +- .../packets/EntityPackets.java | 1 - .../Protocol1_15To1_14_4.java | 155 +- .../data/MappingData.java | 84 +- .../packets/InventoryPackets.java | 210 +- .../packets/WorldPackets.java | 78 + .../assets/viaversion/data/mapping-1.15.json | 2210 ++++++++++++++--- 7 files changed, 2331 insertions(+), 417 deletions(-) create mode 100644 common/src/main/java/us/myles/ViaVersion/protocols/protocol1_15to1_14_4/packets/WorldPackets.java diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/data/MappingData.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/data/MappingData.java index f85760213..dd72d6e68 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/data/MappingData.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/data/MappingData.java @@ -73,7 +73,7 @@ public class MappingData { } } - private static void mapIdentifiers(Map output, JsonObject oldIdentifiers, JsonObject newIdentifiers) { + public static void mapIdentifiers(Map output, JsonObject oldIdentifiers, JsonObject newIdentifiers) { for (Map.Entry entry : oldIdentifiers.entrySet()) { Map.Entry value = findValue(newIdentifiers, entry.getValue().getAsString()); if (value == null) { @@ -137,10 +137,10 @@ public class MappingData { int getNewSound(int old); } - private static class SoundMappingShortArray implements SoundMappings { + public static class SoundMappingShortArray implements SoundMappings { private short[] oldToNew; - private SoundMappingShortArray(JsonArray mapping1_13_2, JsonArray mapping1_14) { + public SoundMappingShortArray(JsonArray mapping1_13_2, JsonArray mapping1_14) { oldToNew = new short[mapping1_13_2.size()]; Arrays.fill(oldToNew, (short) -1); mapIdentifiers(oldToNew, mapping1_13_2, mapping1_14); @@ -156,10 +156,10 @@ public class MappingData { int getNewBlock(int old); } - private static class BlockMappingsShortArray implements BlockMappings { + public static class BlockMappingsShortArray implements BlockMappings { private short[] oldToNew; - private BlockMappingsShortArray(JsonObject mapping1_13_2, JsonObject mapping1_14) { + public BlockMappingsShortArray(JsonObject mapping1_13_2, JsonObject mapping1_14) { oldToNew = new short[mapping1_13_2.entrySet().size()]; Arrays.fill(oldToNew, (short) -1); mapIdentifiers(oldToNew, mapping1_13_2, mapping1_14); diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/packets/EntityPackets.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/packets/EntityPackets.java index 537455bdb..0ceafd31c 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/packets/EntityPackets.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_14to1_13_2/packets/EntityPackets.java @@ -26,7 +26,6 @@ import java.util.UUID; public class EntityPackets { public static void register(Protocol protocol) { - // Spawn entity protocol.registerOutgoing(State.PLAY, 0x00, 0x00, new PacketRemapper() { @Override diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_15to1_14_4/Protocol1_15To1_14_4.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_15to1_14_4/Protocol1_15To1_14_4.java index 59f190dc9..cba1740f4 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_15to1_14_4/Protocol1_15To1_14_4.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_15to1_14_4/Protocol1_15To1_14_4.java @@ -1,6 +1,7 @@ package us.myles.ViaVersion.protocols.protocol1_15to1_14_4; import us.myles.ViaVersion.api.PacketWrapper; +import us.myles.ViaVersion.api.Via; import us.myles.ViaVersion.api.data.UserConnection; import us.myles.ViaVersion.api.entities.Entity1_15Types; import us.myles.ViaVersion.api.protocol.Protocol; @@ -10,17 +11,18 @@ import us.myles.ViaVersion.api.type.Type; import us.myles.ViaVersion.packets.State; import us.myles.ViaVersion.protocols.protocol1_15to1_14_4.data.MappingData; import us.myles.ViaVersion.protocols.protocol1_15to1_14_4.packets.EntityPackets; +import us.myles.ViaVersion.protocols.protocol1_15to1_14_4.packets.InventoryPackets; +import us.myles.ViaVersion.protocols.protocol1_15to1_14_4.packets.WorldPackets; import us.myles.ViaVersion.protocols.protocol1_15to1_14_4.storage.EntityTracker; public class Protocol1_15To1_14_4 extends Protocol { @Override protected void registerPackets() { - //TODO do the new tags have to be sent? - //TODO sound, item, possibly block remaps (and blockstates should be the same with the new ones just being appended?) - MappingData.init(); EntityPackets.register(this); + WorldPackets.register(this); + InventoryPackets.register(this); // Join Game registerOutgoing(State.PLAY, 0x25, 0x26, new PacketRemapper() { @@ -38,6 +40,20 @@ public class Protocol1_15To1_14_4 extends Protocol { } }); + // Entity Sound Effect (added somewhere in 1.14) + registerOutgoing(State.PLAY, 0x50, 0x51, new PacketRemapper() { + @Override + public void registerMap() { + map(Type.VAR_INT); // Sound Id + handler(new PacketHandler() { + @Override + public void handle(PacketWrapper wrapper) throws Exception { + wrapper.set(Type.VAR_INT, 0, MappingData.soundMappings.getNewSound(wrapper.get(Type.VAR_INT, 0))); + } + }); + } + }); + // Sound Effect registerOutgoing(State.PLAY, 0x51, 0x52, new PacketRemapper() { @Override @@ -52,11 +68,111 @@ public class Protocol1_15To1_14_4 extends Protocol { } }); + // Edit Book + registerIncoming(State.PLAY, 0x0C, 0x0D, new PacketRemapper() { + @Override + public void registerMap() { + handler(new PacketHandler() { + @Override + public void handle(PacketWrapper wrapper) throws Exception { + InventoryPackets.toServer(wrapper.passthrough(Type.FLAT_VAR_INT_ITEM)); + } + }); + } + }); + + // Advancements + registerOutgoing(State.PLAY, 0x57, 0x58, new PacketRemapper() { + @Override + public void registerMap() { + handler(new PacketHandler() { + @Override + public void handle(PacketWrapper wrapper) throws Exception { + wrapper.passthrough(Type.BOOLEAN); // Reset/clear + int size = wrapper.passthrough(Type.VAR_INT); // Mapping size + + for (int i = 0; i < size; i++) { + wrapper.passthrough(Type.STRING); // Identifier + + // Parent + if (wrapper.passthrough(Type.BOOLEAN)) + wrapper.passthrough(Type.STRING); + + // Display data + if (wrapper.passthrough(Type.BOOLEAN)) { + wrapper.passthrough(Type.STRING); // Title + wrapper.passthrough(Type.STRING); // Description + InventoryPackets.toClient(wrapper.passthrough(Type.FLAT_VAR_INT_ITEM)); // Icon + wrapper.passthrough(Type.VAR_INT); // Frame type + int flags = wrapper.passthrough(Type.INT); // Flags + if ((flags & 1) != 0) + wrapper.passthrough(Type.STRING); // Background texture + wrapper.passthrough(Type.FLOAT); // X + wrapper.passthrough(Type.FLOAT); // Y + } + + wrapper.passthrough(Type.STRING_ARRAY); // Criteria + + int arrayLength = wrapper.passthrough(Type.VAR_INT); + for (int array = 0; array < arrayLength; array++) { + wrapper.passthrough(Type.STRING_ARRAY); // String array + } + } + } + }); + } + }); + + // Tags + registerOutgoing(State.PLAY, 0x5B, 0x5C, new PacketRemapper() { + @Override + public void registerMap() { + handler(new PacketHandler() { + @Override + public void handle(PacketWrapper wrapper) throws Exception { + //TODO do the new (flower) tags have to be sent? + int blockTagsSize = wrapper.passthrough(Type.VAR_INT); + for (int i = 0; i < blockTagsSize; i++) { + wrapper.passthrough(Type.STRING); + Integer[] blockIds = wrapper.passthrough(Type.VAR_INT_ARRAY); + for (int j = 0; j < blockIds.length; j++) { + blockIds[j] = getNewBlockId(blockIds[j]); + } + } + + int itemTagsSize = wrapper.passthrough(Type.VAR_INT); + for (int i = 0; i < itemTagsSize; i++) { + wrapper.passthrough(Type.STRING); + Integer[] itemIds = wrapper.passthrough(Type.VAR_INT_ARRAY); + for (int j = 0; j < itemIds.length; j++) { + itemIds[j] = InventoryPackets.getNewItemId(itemIds[j]); + } + } + + int fluidTagsSize = wrapper.passthrough(Type.VAR_INT); // fluid tags + for (int i = 0; i < fluidTagsSize; i++) { + wrapper.passthrough(Type.STRING); + wrapper.passthrough(Type.VAR_INT_ARRAY); + } + + int entityTagsSize = wrapper.passthrough(Type.VAR_INT); // entity tags + for (int i = 0; i < entityTagsSize; i++) { + wrapper.passthrough(Type.STRING); + Integer[] entitIds = wrapper.passthrough(Type.VAR_INT_ARRAY); + for (int j = 0; j < entitIds.length; j++) { + entitIds[j] = EntityPackets.getNewEntityId(entitIds[j]); + } + } + } + }); + } + }); + + registerOutgoing(State.PLAY, 0x08, 0x09); registerOutgoing(State.PLAY, 0x09, 0x0A); - registerOutgoing(State.PLAY, 0x0A, 0x0B); registerOutgoing(State.PLAY, 0x0B, 0x0C); - registerOutgoing(State.PLAY, 0x0C, 0x0D); + registerOutgoing(State.PLAY, 0x0D, 0x0E); registerOutgoing(State.PLAY, 0x0E, 0x0F); registerOutgoing(State.PLAY, 0x0F, 0x10); @@ -64,9 +180,9 @@ public class Protocol1_15To1_14_4 extends Protocol { registerOutgoing(State.PLAY, 0x11, 0x12); registerOutgoing(State.PLAY, 0x12, 0x13); registerOutgoing(State.PLAY, 0x13, 0x14); - registerOutgoing(State.PLAY, 0x14, 0x15); + registerOutgoing(State.PLAY, 0x15, 0x16); - registerOutgoing(State.PLAY, 0x16, 0x17); + registerOutgoing(State.PLAY, 0x17, 0x18); registerOutgoing(State.PLAY, 0x18, 0x19); registerOutgoing(State.PLAY, 0x19, 0x1A); @@ -78,12 +194,12 @@ public class Protocol1_15To1_14_4 extends Protocol { registerOutgoing(State.PLAY, 0x1F, 0x20); registerOutgoing(State.PLAY, 0x20, 0x21); registerOutgoing(State.PLAY, 0x21, 0x22); - registerOutgoing(State.PLAY, 0x22, 0x23); - registerOutgoing(State.PLAY, 0x23, 0x24); + + registerOutgoing(State.PLAY, 0x24, 0x25); registerOutgoing(State.PLAY, 0x26, 0x27); - registerOutgoing(State.PLAY, 0x27, 0x28); + registerOutgoing(State.PLAY, 0x28, 0x29); registerOutgoing(State.PLAY, 0x29, 0x2A); registerOutgoing(State.PLAY, 0x2A, 0x2B); @@ -114,7 +230,7 @@ public class Protocol1_15To1_14_4 extends Protocol { registerOutgoing(State.PLAY, 0x44, 0x45); registerOutgoing(State.PLAY, 0x45, 0x46); - registerOutgoing(State.PLAY, 0x46, 0x47); + registerOutgoing(State.PLAY, 0x47, 0x48); registerOutgoing(State.PLAY, 0x48, 0x49); registerOutgoing(State.PLAY, 0x49, 0x4A); @@ -124,21 +240,30 @@ public class Protocol1_15To1_14_4 extends Protocol { registerOutgoing(State.PLAY, 0x4D, 0x4E); registerOutgoing(State.PLAY, 0x4E, 0x4F); registerOutgoing(State.PLAY, 0x4F, 0x50); - registerOutgoing(State.PLAY, 0x50, 0x51); + registerOutgoing(State.PLAY, 0x52, 0x53); registerOutgoing(State.PLAY, 0x53, 0x54); registerOutgoing(State.PLAY, 0x54, 0x55); registerOutgoing(State.PLAY, 0x55, 0x56); registerOutgoing(State.PLAY, 0x56, 0x57); - registerOutgoing(State.PLAY, 0x57, 0x58); + registerOutgoing(State.PLAY, 0x58, 0x59); registerOutgoing(State.PLAY, 0x59, 0x5A); - registerOutgoing(State.PLAY, 0x5A, 0x5B); - registerOutgoing(State.PLAY, 0x5B, 0x5C); + + registerOutgoing(State.PLAY, 0x5C, 0x08); } + public static int getNewBlockId(int id) { + int newId = MappingData.blockMappings.getNewBlock(id); + if (newId == -1) { + Via.getPlatform().getLogger().warning("Missing 1.15 block for 1.14 block " + id); + return 0; + } + return newId; + } + @Override public void init(UserConnection userConnection) { userConnection.put(new EntityTracker(userConnection)); diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_15to1_14_4/data/MappingData.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_15to1_14_4/data/MappingData.java index 061ce3a0b..25dbe1e5f 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_15to1_14_4/data/MappingData.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_15to1_14_4/data/MappingData.java @@ -1,82 +1,26 @@ package us.myles.ViaVersion.protocols.protocol1_15to1_14_4.data; -import com.google.gson.JsonArray; -import com.google.gson.JsonElement; +import com.google.common.collect.BiMap; +import com.google.common.collect.HashBiMap; import com.google.gson.JsonObject; import us.myles.ViaVersion.api.Via; -import us.myles.ViaVersion.util.GsonUtil; - -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.util.Arrays; public class MappingData { - - public static SoundMappings soundMappings; + public static BiMap oldToNewItems = HashBiMap.create(); + public static us.myles.ViaVersion.protocols.protocol1_14to1_13_2.data.MappingData.BlockMappings blockMappings; + public static us.myles.ViaVersion.protocols.protocol1_14to1_13_2.data.MappingData.SoundMappings soundMappings; public static void init() { - JsonObject mapping1_14 = loadData("mapping-1.14.json"); - JsonObject mapping1_15 = loadData("mapping-1.15.json"); + JsonObject mapping1_14 = us.myles.ViaVersion.protocols.protocol1_14to1_13_2.data.MappingData.loadData("mapping-1.14.json"); + JsonObject mapping1_15 = us.myles.ViaVersion.protocols.protocol1_14to1_13_2.data.MappingData.loadData("mapping-1.15.json"); + // New blockstates have just been appended to the old, so mappings are not (yet) necessary. + + Via.getPlatform().getLogger().info("Loading 1.14 -> 1.15 block mapping..."); + blockMappings = new us.myles.ViaVersion.protocols.protocol1_14to1_13_2.data.MappingData.BlockMappingsShortArray(mapping1_14.getAsJsonObject("blocks"), mapping1_15.getAsJsonObject("blocks")); + Via.getPlatform().getLogger().info("Loading 1.14 -> 1.15 item mapping..."); + us.myles.ViaVersion.protocols.protocol1_14to1_13_2.data.MappingData.mapIdentifiers(oldToNewItems, mapping1_14.getAsJsonObject("items"), mapping1_15.getAsJsonObject("items")); Via.getPlatform().getLogger().info("Loading 1.14 -> 1.15 sound mapping..."); - soundMappings = new SoundMappingShortArray(mapping1_14.getAsJsonArray("sounds"), mapping1_15.getAsJsonArray("sounds")); - } - - private static JsonObject loadData(String name) { - InputStream stream = MappingData.class.getClassLoader().getResourceAsStream("assets/viaversion/data/" + name); - InputStreamReader reader = new InputStreamReader(stream); - try { - return GsonUtil.getGson().fromJson(reader, JsonObject.class); - } finally { - try { - reader.close(); - } catch (IOException ignored) { - // Ignored - } - } - } - - private static void mapIdentifiers(short[] 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) { - if (Via.getManager().isDebug()) { - Via.getPlatform().getLogger().warning("No key for " + v + " :( "); - } - continue; - } - output[i] = index.shortValue(); - } - } - - 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; - } - - public interface SoundMappings { - int getNewSound(int old); - } - - private static class SoundMappingShortArray implements SoundMappings { - private short[] oldToNew; - - private SoundMappingShortArray(JsonArray mapping1_14, JsonArray mapping1_15) { - oldToNew = new short[mapping1_14.size()]; - Arrays.fill(oldToNew, (short) -1); - mapIdentifiers(oldToNew, mapping1_14, mapping1_15); - } - - @Override - public int getNewSound(int old) { - return old >= 0 && old < oldToNew.length ? oldToNew[old] : -1; - } + soundMappings = new us.myles.ViaVersion.protocols.protocol1_14to1_13_2.data.MappingData.SoundMappingShortArray(mapping1_14.getAsJsonArray("sounds"), mapping1_15.getAsJsonArray("sounds")); } } diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_15to1_14_4/packets/InventoryPackets.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_15to1_14_4/packets/InventoryPackets.java index d93c5415b..efa714838 100644 --- a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_15to1_14_4/packets/InventoryPackets.java +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_15to1_14_4/packets/InventoryPackets.java @@ -1,12 +1,210 @@ package us.myles.ViaVersion.protocols.protocol1_15to1_14_4.packets; +import us.myles.ViaVersion.api.PacketWrapper; +import us.myles.ViaVersion.api.Via; import us.myles.ViaVersion.api.minecraft.item.Item; import us.myles.ViaVersion.api.protocol.Protocol; +import us.myles.ViaVersion.api.remapper.PacketHandler; +import us.myles.ViaVersion.api.remapper.PacketRemapper; +import us.myles.ViaVersion.api.type.Type; +import us.myles.ViaVersion.packets.State; +import us.myles.ViaVersion.protocols.protocol1_15to1_14_4.data.MappingData; public class InventoryPackets { public static void register(Protocol protocol) { - //TODO eeeeverything + // Window items packet + protocol.registerOutgoing(State.PLAY, 0x14, 0x15, new PacketRemapper() { + @Override + public void registerMap() { + map(Type.UNSIGNED_BYTE); // 0 - Window ID + map(Type.FLAT_VAR_INT_ITEM_ARRAY); // 1 - Window Values + + handler(new PacketHandler() { + @Override + public void handle(PacketWrapper wrapper) throws Exception { + Item[] stacks = wrapper.get(Type.FLAT_VAR_INT_ITEM_ARRAY, 0); + for (Item stack : stacks) toClient(stack); + } + }); + } + }); + + // Trade list packet + protocol.registerOutgoing(State.PLAY, 0x27, 0x28, new PacketRemapper() { + @Override + public void registerMap() { + handler(new PacketHandler() { + @Override + public void handle(PacketWrapper wrapper) throws Exception { + wrapper.passthrough(Type.VAR_INT); + int size = wrapper.passthrough(Type.UNSIGNED_BYTE); + for (int i = 0; i < size; i++) { + Item input = wrapper.passthrough(Type.FLAT_VAR_INT_ITEM); + toClient(input); + + Item output = wrapper.passthrough(Type.FLAT_VAR_INT_ITEM); + toClient(output); + + if (wrapper.passthrough(Type.BOOLEAN)) { // Has second item + // Second Item + Item second = wrapper.passthrough(Type.FLAT_VAR_INT_ITEM); + toClient(second); + } + + wrapper.passthrough(Type.BOOLEAN); // Trade disabled + wrapper.passthrough(Type.INT); // Number of tools uses + wrapper.passthrough(Type.INT); // Maximum number of trade uses + + wrapper.passthrough(Type.INT); + wrapper.passthrough(Type.INT); + wrapper.passthrough(Type.FLOAT); + } + + wrapper.passthrough(Type.VAR_INT); + wrapper.passthrough(Type.VAR_INT); + wrapper.passthrough(Type.BOOLEAN); + } + }); + } + }); + + // Set slot packet + protocol.registerOutgoing(State.PLAY, 0x16, 0x17, new PacketRemapper() { + @Override + public void registerMap() { + map(Type.BYTE); // 0 - Window ID + map(Type.SHORT); // 1 - Slot ID + map(Type.FLAT_VAR_INT_ITEM); // 2 - Slot Value + + handler(new PacketHandler() { + @Override + public void handle(PacketWrapper wrapper) throws Exception { + toClient(wrapper.get(Type.FLAT_VAR_INT_ITEM, 0)); + } + }); + } + }); + + // Entity Equipment Packet + protocol.registerOutgoing(State.PLAY, 0x46, 0x47, new PacketRemapper() { + @Override + public void registerMap() { + map(Type.VAR_INT); // 0 - Entity ID + map(Type.VAR_INT); // 1 - Slot ID + map(Type.FLAT_VAR_INT_ITEM); // 2 - Item + + handler(new PacketHandler() { + @Override + public void handle(PacketWrapper wrapper) throws Exception { + toClient(wrapper.get(Type.FLAT_VAR_INT_ITEM, 0)); + } + }); + } + }); + + // Declare Recipes + protocol.registerOutgoing(State.PLAY, 0x5A, 0x5B, new PacketRemapper() { + @Override + public void registerMap() { + handler(new PacketHandler() { + @Override + public void handle(PacketWrapper wrapper) throws Exception { + int size = wrapper.passthrough(Type.VAR_INT); + for (int i = 0; i < size; i++) { + String type = wrapper.passthrough(Type.STRING).replace("minecraft:", ""); + String id = wrapper.passthrough(Type.STRING); + + switch (type) { + case "crafting_shapeless": { + wrapper.passthrough(Type.STRING); // Group + + int ingredientsNo = wrapper.passthrough(Type.VAR_INT); + for (int j = 0; j < ingredientsNo; j++) { + Item[] items = wrapper.passthrough(Type.FLAT_VAR_INT_ITEM_ARRAY_VAR_INT); // Ingredients + for (Item item : items) toClient(item); + } + toClient(wrapper.passthrough(Type.FLAT_VAR_INT_ITEM)); // Result + + break; + } + case "crafting_shaped": { + int ingredientsNo = wrapper.passthrough(Type.VAR_INT) * wrapper.passthrough(Type.VAR_INT); + wrapper.passthrough(Type.STRING); // Group + + for (int j = 0; j < ingredientsNo; j++) { + Item[] items = wrapper.passthrough(Type.FLAT_VAR_INT_ITEM_ARRAY_VAR_INT); // Ingredients + for (Item item : items) toClient(item); + } + toClient(wrapper.passthrough(Type.FLAT_VAR_INT_ITEM)); // Result + + break; + } + case "blasting": + case "smoking": + case "campfire_cooking": + case "smelting": { + wrapper.passthrough(Type.STRING); // Group + + Item[] items = wrapper.passthrough(Type.FLAT_VAR_INT_ITEM_ARRAY_VAR_INT); // Ingredients + + for (Item item : items) toClient(item); + toClient(wrapper.passthrough(Type.FLAT_VAR_INT_ITEM)); + wrapper.passthrough(Type.FLOAT); // EXP + + wrapper.passthrough(Type.VAR_INT); // Cooking time + + break; + } + case "stonecutting": { + wrapper.passthrough(Type.STRING); + Item[] items = wrapper.passthrough(Type.FLAT_VAR_INT_ITEM_ARRAY_VAR_INT); // Ingredients + for (Item item : items) toClient(item); + toClient(wrapper.passthrough(Type.FLAT_VAR_INT_ITEM)); + break; + } + } + } + } + }); + } + }); + + // Click window packet + protocol.registerIncoming(State.PLAY, 0x09, 0x09, new PacketRemapper() { + @Override + public void registerMap() { + map(Type.UNSIGNED_BYTE); // 0 - Window ID + map(Type.SHORT); // 1 - Slot + map(Type.BYTE); // 2 - Button + map(Type.SHORT); // 3 - Action number + map(Type.VAR_INT); // 4 - Mode + map(Type.FLAT_VAR_INT_ITEM); // 5 - Clicked Item + + handler(new PacketHandler() { + @Override + public void handle(PacketWrapper wrapper) throws Exception { + toServer(wrapper.get(Type.FLAT_VAR_INT_ITEM, 0)); + } + }); + } + }); + + // Creative Inventory Action + protocol.registerIncoming(State.PLAY, 0x26, 0x26, new PacketRemapper() { + @Override + public void registerMap() { + map(Type.SHORT); // 0 - Slot + map(Type.FLAT_VAR_INT_ITEM); // 1 - Clicked Item + + handler(new PacketHandler() { + @Override + public void handle(PacketWrapper wrapper) throws Exception { + toServer(wrapper.get(Type.FLAT_VAR_INT_ITEM, 0)); + } + }); + } + }); } public static void toClient(Item item) { @@ -20,10 +218,16 @@ public class InventoryPackets { } public static int getNewItemId(int id) { - return id; + Integer newId = MappingData.oldToNewItems.get(id); + if (newId == null) { + Via.getPlatform().getLogger().warning("Missing 1.15 item for 1.14 item " + id); + return 1; + } + return newId; } public static int getOldItemId(int id) { - return id; + Integer oldId = MappingData.oldToNewItems.inverse().get(id); + return oldId != null ? oldId : 1; } } diff --git a/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_15to1_14_4/packets/WorldPackets.java b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_15to1_14_4/packets/WorldPackets.java new file mode 100644 index 000000000..eb65b4d7e --- /dev/null +++ b/common/src/main/java/us/myles/ViaVersion/protocols/protocol1_15to1_14_4/packets/WorldPackets.java @@ -0,0 +1,78 @@ +package us.myles.ViaVersion.protocols.protocol1_15to1_14_4.packets; + +import us.myles.ViaVersion.api.PacketWrapper; +import us.myles.ViaVersion.api.protocol.Protocol; +import us.myles.ViaVersion.api.remapper.PacketHandler; +import us.myles.ViaVersion.api.remapper.PacketRemapper; +import us.myles.ViaVersion.api.type.Type; +import us.myles.ViaVersion.packets.State; +import us.myles.ViaVersion.protocols.protocol1_14to1_13_2.packets.InventoryPackets; +import us.myles.ViaVersion.protocols.protocol1_15to1_14_4.Protocol1_15To1_14_4; + +public class WorldPackets { + + public static void register(Protocol protocol) { + // Block Action + protocol.registerOutgoing(State.PLAY, 0x0A, 0x0B, new PacketRemapper() { + @Override + public void registerMap() { + map(Type.POSITION1_14); // Location + map(Type.UNSIGNED_BYTE); // Action id + map(Type.UNSIGNED_BYTE); // Action param + map(Type.VAR_INT); // Block id - /!\ NOT BLOCK STATE + handler(new PacketHandler() { + @Override + public void handle(PacketWrapper wrapper) throws Exception { + wrapper.set(Type.VAR_INT, 0, Protocol1_15To1_14_4.getNewBlockId(wrapper.get(Type.VAR_INT, 0))); + } + }); + } + }); + + // Effect + protocol.registerOutgoing(State.PLAY, 0x22, 0x23, new PacketRemapper() { + @Override + public void registerMap() { + map(Type.INT); // Effect Id + map(Type.POSITION1_14); // Location + map(Type.INT); // Data + handler(new PacketHandler() { + @Override + public void handle(PacketWrapper wrapper) throws Exception { + int id = wrapper.get(Type.INT, 0); + if (id == 1010) { // Play record + int data = wrapper.get(Type.INT, 1); + wrapper.set(Type.INT, 1, InventoryPackets.getNewItemId(data)); + } + } + }); + } + }); + + // Spawn Particle + protocol.registerOutgoing(State.PLAY, 0x23, 0x24, new PacketRemapper() { + @Override + public void registerMap() { + map(Type.INT); // 0 - Particle ID + map(Type.BOOLEAN); // 1 - Long Distance + map(Type.FLOAT); // 2 - X + map(Type.FLOAT); // 3 - Y + map(Type.FLOAT); // 4 - Z + map(Type.FLOAT); // 5 - Offset X + map(Type.FLOAT); // 6 - Offset Y + map(Type.FLOAT); // 7 - Offset Z + map(Type.FLOAT); // 8 - Particle Data + map(Type.INT); // 9 - Particle Count + handler(new PacketHandler() { + @Override + public void handle(PacketWrapper wrapper) throws Exception { + int id = wrapper.get(Type.INT, 0); + if (id == 27) { + InventoryPackets.toClient(wrapper.passthrough(Type.FLAT_VAR_INT_ITEM)); + } + } + }); + } + }); + } +} diff --git a/common/src/main/resources/assets/viaversion/data/mapping-1.15.json b/common/src/main/resources/assets/viaversion/data/mapping-1.15.json index 79871f2f2..15a6448df 100644 --- a/common/src/main/resources/assets/viaversion/data/mapping-1.15.json +++ b/common/src/main/resources/assets/viaversion/data/mapping-1.15.json @@ -1,4 +1,1568 @@ { + "blocks": { + "0": "air", + "1": "stone", + "2": "granite", + "3": "polished_granite", + "4": "diorite", + "5": "polished_diorite", + "6": "andesite", + "7": "polished_andesite", + "8": "grass_block", + "9": "dirt", + "10": "coarse_dirt", + "11": "podzol", + "12": "cobblestone", + "13": "oak_planks", + "14": "spruce_planks", + "15": "birch_planks", + "16": "jungle_planks", + "17": "acacia_planks", + "18": "dark_oak_planks", + "19": "oak_sapling", + "20": "spruce_sapling", + "21": "birch_sapling", + "22": "jungle_sapling", + "23": "acacia_sapling", + "24": "dark_oak_sapling", + "25": "bedrock", + "26": "water", + "27": "lava", + "28": "sand", + "29": "red_sand", + "30": "gravel", + "31": "gold_ore", + "32": "iron_ore", + "33": "coal_ore", + "34": "oak_log", + "35": "spruce_log", + "36": "birch_log", + "37": "jungle_log", + "38": "acacia_log", + "39": "dark_oak_log", + "40": "stripped_spruce_log", + "41": "stripped_birch_log", + "42": "stripped_jungle_log", + "43": "stripped_acacia_log", + "44": "stripped_dark_oak_log", + "45": "stripped_oak_log", + "46": "oak_wood", + "47": "spruce_wood", + "48": "birch_wood", + "49": "jungle_wood", + "50": "acacia_wood", + "51": "dark_oak_wood", + "52": "stripped_oak_wood", + "53": "stripped_spruce_wood", + "54": "stripped_birch_wood", + "55": "stripped_jungle_wood", + "56": "stripped_acacia_wood", + "57": "stripped_dark_oak_wood", + "58": "oak_leaves", + "59": "spruce_leaves", + "60": "birch_leaves", + "61": "jungle_leaves", + "62": "acacia_leaves", + "63": "dark_oak_leaves", + "64": "sponge", + "65": "wet_sponge", + "66": "glass", + "67": "lapis_ore", + "68": "lapis_block", + "69": "dispenser", + "70": "sandstone", + "71": "chiseled_sandstone", + "72": "cut_sandstone", + "73": "note_block", + "74": "white_bed", + "75": "orange_bed", + "76": "magenta_bed", + "77": "light_blue_bed", + "78": "yellow_bed", + "79": "lime_bed", + "80": "pink_bed", + "81": "gray_bed", + "82": "light_gray_bed", + "83": "cyan_bed", + "84": "purple_bed", + "85": "blue_bed", + "86": "brown_bed", + "87": "green_bed", + "88": "red_bed", + "89": "black_bed", + "90": "powered_rail", + "91": "detector_rail", + "92": "sticky_piston", + "93": "cobweb", + "94": "grass", + "95": "fern", + "96": "dead_bush", + "97": "seagrass", + "98": "tall_seagrass", + "99": "piston", + "100": "piston_head", + "101": "white_wool", + "102": "orange_wool", + "103": "magenta_wool", + "104": "light_blue_wool", + "105": "yellow_wool", + "106": "lime_wool", + "107": "pink_wool", + "108": "gray_wool", + "109": "light_gray_wool", + "110": "cyan_wool", + "111": "purple_wool", + "112": "blue_wool", + "113": "brown_wool", + "114": "green_wool", + "115": "red_wool", + "116": "black_wool", + "117": "moving_piston", + "118": "dandelion", + "119": "poppy", + "120": "blue_orchid", + "121": "allium", + "122": "azure_bluet", + "123": "red_tulip", + "124": "orange_tulip", + "125": "white_tulip", + "126": "pink_tulip", + "127": "oxeye_daisy", + "128": "cornflower", + "129": "wither_rose", + "130": "lily_of_the_valley", + "131": "brown_mushroom", + "132": "red_mushroom", + "133": "gold_block", + "134": "iron_block", + "135": "bricks", + "136": "tnt", + "137": "bookshelf", + "138": "mossy_cobblestone", + "139": "obsidian", + "140": "torch", + "141": "wall_torch", + "142": "fire", + "143": "spawner", + "144": "oak_stairs", + "145": "chest", + "146": "redstone_wire", + "147": "diamond_ore", + "148": "diamond_block", + "149": "crafting_table", + "150": "wheat", + "151": "farmland", + "152": "furnace", + "153": "oak_sign", + "154": "spruce_sign", + "155": "birch_sign", + "156": "acacia_sign", + "157": "jungle_sign", + "158": "dark_oak_sign", + "159": "oak_door", + "160": "ladder", + "161": "rail", + "162": "cobblestone_stairs", + "163": "oak_wall_sign", + "164": "spruce_wall_sign", + "165": "birch_wall_sign", + "166": "acacia_wall_sign", + "167": "jungle_wall_sign", + "168": "dark_oak_wall_sign", + "169": "lever", + "170": "stone_pressure_plate", + "171": "iron_door", + "172": "oak_pressure_plate", + "173": "spruce_pressure_plate", + "174": "birch_pressure_plate", + "175": "jungle_pressure_plate", + "176": "acacia_pressure_plate", + "177": "dark_oak_pressure_plate", + "178": "redstone_ore", + "179": "redstone_torch", + "180": "redstone_wall_torch", + "181": "stone_button", + "182": "snow", + "183": "ice", + "184": "snow_block", + "185": "cactus", + "186": "clay", + "187": "sugar_cane", + "188": "jukebox", + "189": "oak_fence", + "190": "pumpkin", + "191": "netherrack", + "192": "soul_sand", + "193": "glowstone", + "194": "nether_portal", + "195": "carved_pumpkin", + "196": "jack_o_lantern", + "197": "cake", + "198": "repeater", + "199": "white_stained_glass", + "200": "orange_stained_glass", + "201": "magenta_stained_glass", + "202": "light_blue_stained_glass", + "203": "yellow_stained_glass", + "204": "lime_stained_glass", + "205": "pink_stained_glass", + "206": "gray_stained_glass", + "207": "light_gray_stained_glass", + "208": "cyan_stained_glass", + "209": "purple_stained_glass", + "210": "blue_stained_glass", + "211": "brown_stained_glass", + "212": "green_stained_glass", + "213": "red_stained_glass", + "214": "black_stained_glass", + "215": "oak_trapdoor", + "216": "spruce_trapdoor", + "217": "birch_trapdoor", + "218": "jungle_trapdoor", + "219": "acacia_trapdoor", + "220": "dark_oak_trapdoor", + "221": "stone_bricks", + "222": "mossy_stone_bricks", + "223": "cracked_stone_bricks", + "224": "chiseled_stone_bricks", + "225": "infested_stone", + "226": "infested_cobblestone", + "227": "infested_stone_bricks", + "228": "infested_mossy_stone_bricks", + "229": "infested_cracked_stone_bricks", + "230": "infested_chiseled_stone_bricks", + "231": "brown_mushroom_block", + "232": "red_mushroom_block", + "233": "mushroom_stem", + "234": "iron_bars", + "235": "glass_pane", + "236": "melon", + "237": "attached_pumpkin_stem", + "238": "attached_melon_stem", + "239": "pumpkin_stem", + "240": "melon_stem", + "241": "vine", + "242": "oak_fence_gate", + "243": "brick_stairs", + "244": "stone_brick_stairs", + "245": "mycelium", + "246": "lily_pad", + "247": "nether_bricks", + "248": "nether_brick_fence", + "249": "nether_brick_stairs", + "250": "nether_wart", + "251": "enchanting_table", + "252": "brewing_stand", + "253": "cauldron", + "254": "end_portal", + "255": "end_portal_frame", + "256": "end_stone", + "257": "dragon_egg", + "258": "redstone_lamp", + "259": "cocoa", + "260": "sandstone_stairs", + "261": "emerald_ore", + "262": "ender_chest", + "263": "tripwire_hook", + "264": "tripwire", + "265": "emerald_block", + "266": "spruce_stairs", + "267": "birch_stairs", + "268": "jungle_stairs", + "269": "command_block", + "270": "beacon", + "271": "cobblestone_wall", + "272": "mossy_cobblestone_wall", + "273": "flower_pot", + "274": "potted_oak_sapling", + "275": "potted_spruce_sapling", + "276": "potted_birch_sapling", + "277": "potted_jungle_sapling", + "278": "potted_acacia_sapling", + "279": "potted_dark_oak_sapling", + "280": "potted_fern", + "281": "potted_dandelion", + "282": "potted_poppy", + "283": "potted_blue_orchid", + "284": "potted_allium", + "285": "potted_azure_bluet", + "286": "potted_red_tulip", + "287": "potted_orange_tulip", + "288": "potted_white_tulip", + "289": "potted_pink_tulip", + "290": "potted_oxeye_daisy", + "291": "potted_cornflower", + "292": "potted_lily_of_the_valley", + "293": "potted_wither_rose", + "294": "potted_red_mushroom", + "295": "potted_brown_mushroom", + "296": "potted_dead_bush", + "297": "potted_cactus", + "298": "carrots", + "299": "potatoes", + "300": "oak_button", + "301": "spruce_button", + "302": "birch_button", + "303": "jungle_button", + "304": "acacia_button", + "305": "dark_oak_button", + "306": "skeleton_skull", + "307": "skeleton_wall_skull", + "308": "wither_skeleton_skull", + "309": "wither_skeleton_wall_skull", + "310": "zombie_head", + "311": "zombie_wall_head", + "312": "player_head", + "313": "player_wall_head", + "314": "creeper_head", + "315": "creeper_wall_head", + "316": "dragon_head", + "317": "dragon_wall_head", + "318": "anvil", + "319": "chipped_anvil", + "320": "damaged_anvil", + "321": "trapped_chest", + "322": "light_weighted_pressure_plate", + "323": "heavy_weighted_pressure_plate", + "324": "comparator", + "325": "daylight_detector", + "326": "redstone_block", + "327": "nether_quartz_ore", + "328": "hopper", + "329": "quartz_block", + "330": "chiseled_quartz_block", + "331": "quartz_pillar", + "332": "quartz_stairs", + "333": "activator_rail", + "334": "dropper", + "335": "white_terracotta", + "336": "orange_terracotta", + "337": "magenta_terracotta", + "338": "light_blue_terracotta", + "339": "yellow_terracotta", + "340": "lime_terracotta", + "341": "pink_terracotta", + "342": "gray_terracotta", + "343": "light_gray_terracotta", + "344": "cyan_terracotta", + "345": "purple_terracotta", + "346": "blue_terracotta", + "347": "brown_terracotta", + "348": "green_terracotta", + "349": "red_terracotta", + "350": "black_terracotta", + "351": "white_stained_glass_pane", + "352": "orange_stained_glass_pane", + "353": "magenta_stained_glass_pane", + "354": "light_blue_stained_glass_pane", + "355": "yellow_stained_glass_pane", + "356": "lime_stained_glass_pane", + "357": "pink_stained_glass_pane", + "358": "gray_stained_glass_pane", + "359": "light_gray_stained_glass_pane", + "360": "cyan_stained_glass_pane", + "361": "purple_stained_glass_pane", + "362": "blue_stained_glass_pane", + "363": "brown_stained_glass_pane", + "364": "green_stained_glass_pane", + "365": "red_stained_glass_pane", + "366": "black_stained_glass_pane", + "367": "acacia_stairs", + "368": "dark_oak_stairs", + "369": "slime_block", + "370": "barrier", + "371": "iron_trapdoor", + "372": "prismarine", + "373": "prismarine_bricks", + "374": "dark_prismarine", + "375": "prismarine_stairs", + "376": "prismarine_brick_stairs", + "377": "dark_prismarine_stairs", + "378": "prismarine_slab", + "379": "prismarine_brick_slab", + "380": "dark_prismarine_slab", + "381": "sea_lantern", + "382": "hay_block", + "383": "white_carpet", + "384": "orange_carpet", + "385": "magenta_carpet", + "386": "light_blue_carpet", + "387": "yellow_carpet", + "388": "lime_carpet", + "389": "pink_carpet", + "390": "gray_carpet", + "391": "light_gray_carpet", + "392": "cyan_carpet", + "393": "purple_carpet", + "394": "blue_carpet", + "395": "brown_carpet", + "396": "green_carpet", + "397": "red_carpet", + "398": "black_carpet", + "399": "terracotta", + "400": "coal_block", + "401": "packed_ice", + "402": "sunflower", + "403": "lilac", + "404": "rose_bush", + "405": "peony", + "406": "tall_grass", + "407": "large_fern", + "408": "white_banner", + "409": "orange_banner", + "410": "magenta_banner", + "411": "light_blue_banner", + "412": "yellow_banner", + "413": "lime_banner", + "414": "pink_banner", + "415": "gray_banner", + "416": "light_gray_banner", + "417": "cyan_banner", + "418": "purple_banner", + "419": "blue_banner", + "420": "brown_banner", + "421": "green_banner", + "422": "red_banner", + "423": "black_banner", + "424": "white_wall_banner", + "425": "orange_wall_banner", + "426": "magenta_wall_banner", + "427": "light_blue_wall_banner", + "428": "yellow_wall_banner", + "429": "lime_wall_banner", + "430": "pink_wall_banner", + "431": "gray_wall_banner", + "432": "light_gray_wall_banner", + "433": "cyan_wall_banner", + "434": "purple_wall_banner", + "435": "blue_wall_banner", + "436": "brown_wall_banner", + "437": "green_wall_banner", + "438": "red_wall_banner", + "439": "black_wall_banner", + "440": "red_sandstone", + "441": "chiseled_red_sandstone", + "442": "cut_red_sandstone", + "443": "red_sandstone_stairs", + "444": "oak_slab", + "445": "spruce_slab", + "446": "birch_slab", + "447": "jungle_slab", + "448": "acacia_slab", + "449": "dark_oak_slab", + "450": "stone_slab", + "451": "smooth_stone_slab", + "452": "sandstone_slab", + "453": "cut_sandstone_slab", + "454": "petrified_oak_slab", + "455": "cobblestone_slab", + "456": "brick_slab", + "457": "stone_brick_slab", + "458": "nether_brick_slab", + "459": "quartz_slab", + "460": "red_sandstone_slab", + "461": "cut_red_sandstone_slab", + "462": "purpur_slab", + "463": "smooth_stone", + "464": "smooth_sandstone", + "465": "smooth_quartz", + "466": "smooth_red_sandstone", + "467": "spruce_fence_gate", + "468": "birch_fence_gate", + "469": "jungle_fence_gate", + "470": "acacia_fence_gate", + "471": "dark_oak_fence_gate", + "472": "spruce_fence", + "473": "birch_fence", + "474": "jungle_fence", + "475": "acacia_fence", + "476": "dark_oak_fence", + "477": "spruce_door", + "478": "birch_door", + "479": "jungle_door", + "480": "acacia_door", + "481": "dark_oak_door", + "482": "end_rod", + "483": "chorus_plant", + "484": "chorus_flower", + "485": "purpur_block", + "486": "purpur_pillar", + "487": "purpur_stairs", + "488": "end_stone_bricks", + "489": "beetroots", + "490": "grass_path", + "491": "end_gateway", + "492": "repeating_command_block", + "493": "chain_command_block", + "494": "frosted_ice", + "495": "magma_block", + "496": "nether_wart_block", + "497": "red_nether_bricks", + "498": "bone_block", + "499": "structure_void", + "500": "observer", + "501": "shulker_box", + "502": "white_shulker_box", + "503": "orange_shulker_box", + "504": "magenta_shulker_box", + "505": "light_blue_shulker_box", + "506": "yellow_shulker_box", + "507": "lime_shulker_box", + "508": "pink_shulker_box", + "509": "gray_shulker_box", + "510": "light_gray_shulker_box", + "511": "cyan_shulker_box", + "512": "purple_shulker_box", + "513": "blue_shulker_box", + "514": "brown_shulker_box", + "515": "green_shulker_box", + "516": "red_shulker_box", + "517": "black_shulker_box", + "518": "white_glazed_terracotta", + "519": "orange_glazed_terracotta", + "520": "magenta_glazed_terracotta", + "521": "light_blue_glazed_terracotta", + "522": "yellow_glazed_terracotta", + "523": "lime_glazed_terracotta", + "524": "pink_glazed_terracotta", + "525": "gray_glazed_terracotta", + "526": "light_gray_glazed_terracotta", + "527": "cyan_glazed_terracotta", + "528": "purple_glazed_terracotta", + "529": "blue_glazed_terracotta", + "530": "brown_glazed_terracotta", + "531": "green_glazed_terracotta", + "532": "red_glazed_terracotta", + "533": "black_glazed_terracotta", + "534": "white_concrete", + "535": "orange_concrete", + "536": "magenta_concrete", + "537": "light_blue_concrete", + "538": "yellow_concrete", + "539": "lime_concrete", + "540": "pink_concrete", + "541": "gray_concrete", + "542": "light_gray_concrete", + "543": "cyan_concrete", + "544": "purple_concrete", + "545": "blue_concrete", + "546": "brown_concrete", + "547": "green_concrete", + "548": "red_concrete", + "549": "black_concrete", + "550": "white_concrete_powder", + "551": "orange_concrete_powder", + "552": "magenta_concrete_powder", + "553": "light_blue_concrete_powder", + "554": "yellow_concrete_powder", + "555": "lime_concrete_powder", + "556": "pink_concrete_powder", + "557": "gray_concrete_powder", + "558": "light_gray_concrete_powder", + "559": "cyan_concrete_powder", + "560": "purple_concrete_powder", + "561": "blue_concrete_powder", + "562": "brown_concrete_powder", + "563": "green_concrete_powder", + "564": "red_concrete_powder", + "565": "black_concrete_powder", + "566": "kelp", + "567": "kelp_plant", + "568": "dried_kelp_block", + "569": "turtle_egg", + "570": "dead_tube_coral_block", + "571": "dead_brain_coral_block", + "572": "dead_bubble_coral_block", + "573": "dead_fire_coral_block", + "574": "dead_horn_coral_block", + "575": "tube_coral_block", + "576": "brain_coral_block", + "577": "bubble_coral_block", + "578": "fire_coral_block", + "579": "horn_coral_block", + "580": "dead_tube_coral", + "581": "dead_brain_coral", + "582": "dead_bubble_coral", + "583": "dead_fire_coral", + "584": "dead_horn_coral", + "585": "tube_coral", + "586": "brain_coral", + "587": "bubble_coral", + "588": "fire_coral", + "589": "horn_coral", + "590": "dead_tube_coral_fan", + "591": "dead_brain_coral_fan", + "592": "dead_bubble_coral_fan", + "593": "dead_fire_coral_fan", + "594": "dead_horn_coral_fan", + "595": "tube_coral_fan", + "596": "brain_coral_fan", + "597": "bubble_coral_fan", + "598": "fire_coral_fan", + "599": "horn_coral_fan", + "600": "dead_tube_coral_wall_fan", + "601": "dead_brain_coral_wall_fan", + "602": "dead_bubble_coral_wall_fan", + "603": "dead_fire_coral_wall_fan", + "604": "dead_horn_coral_wall_fan", + "605": "tube_coral_wall_fan", + "606": "brain_coral_wall_fan", + "607": "bubble_coral_wall_fan", + "608": "fire_coral_wall_fan", + "609": "horn_coral_wall_fan", + "610": "sea_pickle", + "611": "blue_ice", + "612": "conduit", + "613": "bamboo_sapling", + "614": "bamboo", + "615": "potted_bamboo", + "616": "void_air", + "617": "cave_air", + "618": "bubble_column", + "619": "polished_granite_stairs", + "620": "smooth_red_sandstone_stairs", + "621": "mossy_stone_brick_stairs", + "622": "polished_diorite_stairs", + "623": "mossy_cobblestone_stairs", + "624": "end_stone_brick_stairs", + "625": "stone_stairs", + "626": "smooth_sandstone_stairs", + "627": "smooth_quartz_stairs", + "628": "granite_stairs", + "629": "andesite_stairs", + "630": "red_nether_brick_stairs", + "631": "polished_andesite_stairs", + "632": "diorite_stairs", + "633": "polished_granite_slab", + "634": "smooth_red_sandstone_slab", + "635": "mossy_stone_brick_slab", + "636": "polished_diorite_slab", + "637": "mossy_cobblestone_slab", + "638": "end_stone_brick_slab", + "639": "smooth_sandstone_slab", + "640": "smooth_quartz_slab", + "641": "granite_slab", + "642": "andesite_slab", + "643": "red_nether_brick_slab", + "644": "polished_andesite_slab", + "645": "diorite_slab", + "646": "brick_wall", + "647": "prismarine_wall", + "648": "red_sandstone_wall", + "649": "mossy_stone_brick_wall", + "650": "granite_wall", + "651": "stone_brick_wall", + "652": "nether_brick_wall", + "653": "andesite_wall", + "654": "red_nether_brick_wall", + "655": "sandstone_wall", + "656": "end_stone_brick_wall", + "657": "diorite_wall", + "658": "scaffolding", + "659": "loom", + "660": "barrel", + "661": "smoker", + "662": "blast_furnace", + "663": "cartography_table", + "664": "fletching_table", + "665": "grindstone", + "666": "lectern", + "667": "smithing_table", + "668": "stonecutter", + "669": "bell", + "670": "lantern", + "671": "campfire", + "672": "sweet_berry_bush", + "673": "structure_block", + "674": "jigsaw", + "675": "composter", + "676": "bee_nest", + "677": "bee_hive" + }, + "items": { + "0": "minecraft:air", + "1": "minecraft:stone", + "2": "minecraft:granite", + "3": "minecraft:polished_granite", + "4": "minecraft:diorite", + "5": "minecraft:polished_diorite", + "6": "minecraft:andesite", + "7": "minecraft:polished_andesite", + "8": "minecraft:grass_block", + "9": "minecraft:dirt", + "10": "minecraft:coarse_dirt", + "11": "minecraft:podzol", + "12": "minecraft:cobblestone", + "13": "minecraft:oak_planks", + "14": "minecraft:spruce_planks", + "15": "minecraft:birch_planks", + "16": "minecraft:jungle_planks", + "17": "minecraft:acacia_planks", + "18": "minecraft:dark_oak_planks", + "19": "minecraft:oak_sapling", + "20": "minecraft:spruce_sapling", + "21": "minecraft:birch_sapling", + "22": "minecraft:jungle_sapling", + "23": "minecraft:acacia_sapling", + "24": "minecraft:dark_oak_sapling", + "25": "minecraft:bedrock", + "26": "minecraft:sand", + "27": "minecraft:red_sand", + "28": "minecraft:gravel", + "29": "minecraft:gold_ore", + "30": "minecraft:iron_ore", + "31": "minecraft:coal_ore", + "32": "minecraft:oak_log", + "33": "minecraft:spruce_log", + "34": "minecraft:birch_log", + "35": "minecraft:jungle_log", + "36": "minecraft:acacia_log", + "37": "minecraft:dark_oak_log", + "38": "minecraft:stripped_oak_log", + "39": "minecraft:stripped_spruce_log", + "40": "minecraft:stripped_birch_log", + "41": "minecraft:stripped_jungle_log", + "42": "minecraft:stripped_acacia_log", + "43": "minecraft:stripped_dark_oak_log", + "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", + "59": "minecraft:jungle_leaves", + "60": "minecraft:acacia_leaves", + "61": "minecraft:dark_oak_leaves", + "62": "minecraft:sponge", + "63": "minecraft:wet_sponge", + "64": "minecraft:glass", + "65": "minecraft:lapis_ore", + "66": "minecraft:lapis_block", + "67": "minecraft:dispenser", + "68": "minecraft:sandstone", + "69": "minecraft:chiseled_sandstone", + "70": "minecraft:cut_sandstone", + "71": "minecraft:note_block", + "72": "minecraft:powered_rail", + "73": "minecraft:detector_rail", + "74": "minecraft:sticky_piston", + "75": "minecraft:cobweb", + "76": "minecraft:grass", + "77": "minecraft:fern", + "78": "minecraft:dead_bush", + "79": "minecraft:seagrass", + "80": "minecraft:sea_pickle", + "81": "minecraft:piston", + "82": "minecraft:white_wool", + "83": "minecraft:orange_wool", + "84": "minecraft:magenta_wool", + "85": "minecraft:light_blue_wool", + "86": "minecraft:yellow_wool", + "87": "minecraft:lime_wool", + "88": "minecraft:pink_wool", + "89": "minecraft:gray_wool", + "90": "minecraft:light_gray_wool", + "91": "minecraft:cyan_wool", + "92": "minecraft:purple_wool", + "93": "minecraft:blue_wool", + "94": "minecraft:brown_wool", + "95": "minecraft:green_wool", + "96": "minecraft:red_wool", + "97": "minecraft:black_wool", + "98": "minecraft:dandelion", + "99": "minecraft:poppy", + "100": "minecraft:blue_orchid", + "101": "minecraft:allium", + "102": "minecraft:azure_bluet", + "103": "minecraft:red_tulip", + "104": "minecraft:orange_tulip", + "105": "minecraft:white_tulip", + "106": "minecraft:pink_tulip", + "107": "minecraft:oxeye_daisy", + "108": "minecraft:cornflower", + "109": "minecraft:lily_of_the_valley", + "110": "minecraft:wither_rose", + "111": "minecraft:brown_mushroom", + "112": "minecraft:red_mushroom", + "113": "minecraft:gold_block", + "114": "minecraft:iron_block", + "115": "minecraft:oak_slab", + "116": "minecraft:spruce_slab", + "117": "minecraft:birch_slab", + "118": "minecraft:jungle_slab", + "119": "minecraft:acacia_slab", + "120": "minecraft:dark_oak_slab", + "121": "minecraft:stone_slab", + "122": "minecraft:smooth_stone_slab", + "123": "minecraft:sandstone_slab", + "124": "minecraft:cut_sandstone_slab", + "125": "minecraft:petrified_oak_slab", + "126": "minecraft:cobblestone_slab", + "127": "minecraft:brick_slab", + "128": "minecraft:stone_brick_slab", + "129": "minecraft:nether_brick_slab", + "130": "minecraft:quartz_slab", + "131": "minecraft:red_sandstone_slab", + "132": "minecraft:cut_red_sandstone_slab", + "133": "minecraft:purpur_slab", + "134": "minecraft:prismarine_slab", + "135": "minecraft:prismarine_brick_slab", + "136": "minecraft:dark_prismarine_slab", + "137": "minecraft:smooth_quartz", + "138": "minecraft:smooth_red_sandstone", + "139": "minecraft:smooth_sandstone", + "140": "minecraft:smooth_stone", + "141": "minecraft:bricks", + "142": "minecraft:tnt", + "143": "minecraft:bookshelf", + "144": "minecraft:mossy_cobblestone", + "145": "minecraft:obsidian", + "146": "minecraft:torch", + "147": "minecraft:end_rod", + "148": "minecraft:chorus_plant", + "149": "minecraft:chorus_flower", + "150": "minecraft:purpur_block", + "151": "minecraft:purpur_pillar", + "152": "minecraft:purpur_stairs", + "153": "minecraft:spawner", + "154": "minecraft:oak_stairs", + "155": "minecraft:chest", + "156": "minecraft:diamond_ore", + "157": "minecraft:diamond_block", + "158": "minecraft:crafting_table", + "159": "minecraft:farmland", + "160": "minecraft:furnace", + "161": "minecraft:ladder", + "162": "minecraft:rail", + "163": "minecraft:cobblestone_stairs", + "164": "minecraft:lever", + "165": "minecraft:stone_pressure_plate", + "166": "minecraft:oak_pressure_plate", + "167": "minecraft:spruce_pressure_plate", + "168": "minecraft:birch_pressure_plate", + "169": "minecraft:jungle_pressure_plate", + "170": "minecraft:acacia_pressure_plate", + "171": "minecraft:dark_oak_pressure_plate", + "172": "minecraft:redstone_ore", + "173": "minecraft:redstone_torch", + "174": "minecraft:stone_button", + "175": "minecraft:snow", + "176": "minecraft:ice", + "177": "minecraft:snow_block", + "178": "minecraft:cactus", + "179": "minecraft:clay", + "180": "minecraft:jukebox", + "181": "minecraft:oak_fence", + "182": "minecraft:spruce_fence", + "183": "minecraft:birch_fence", + "184": "minecraft:jungle_fence", + "185": "minecraft:acacia_fence", + "186": "minecraft:dark_oak_fence", + "187": "minecraft:pumpkin", + "188": "minecraft:carved_pumpkin", + "189": "minecraft:netherrack", + "190": "minecraft:soul_sand", + "191": "minecraft:glowstone", + "192": "minecraft:jack_o_lantern", + "193": "minecraft:oak_trapdoor", + "194": "minecraft:spruce_trapdoor", + "195": "minecraft:birch_trapdoor", + "196": "minecraft:jungle_trapdoor", + "197": "minecraft:acacia_trapdoor", + "198": "minecraft:dark_oak_trapdoor", + "199": "minecraft:infested_stone", + "200": "minecraft:infested_cobblestone", + "201": "minecraft:infested_stone_bricks", + "202": "minecraft:infested_mossy_stone_bricks", + "203": "minecraft:infested_cracked_stone_bricks", + "204": "minecraft:infested_chiseled_stone_bricks", + "205": "minecraft:stone_bricks", + "206": "minecraft:mossy_stone_bricks", + "207": "minecraft:cracked_stone_bricks", + "208": "minecraft:chiseled_stone_bricks", + "209": "minecraft:brown_mushroom_block", + "210": "minecraft:red_mushroom_block", + "211": "minecraft:mushroom_stem", + "212": "minecraft:iron_bars", + "213": "minecraft:glass_pane", + "214": "minecraft:melon", + "215": "minecraft:vine", + "216": "minecraft:oak_fence_gate", + "217": "minecraft:spruce_fence_gate", + "218": "minecraft:birch_fence_gate", + "219": "minecraft:jungle_fence_gate", + "220": "minecraft:acacia_fence_gate", + "221": "minecraft:dark_oak_fence_gate", + "222": "minecraft:brick_stairs", + "223": "minecraft:stone_brick_stairs", + "224": "minecraft:mycelium", + "225": "minecraft:lily_pad", + "226": "minecraft:nether_bricks", + "227": "minecraft:nether_brick_fence", + "228": "minecraft:nether_brick_stairs", + "229": "minecraft:enchanting_table", + "230": "minecraft:end_portal_frame", + "231": "minecraft:end_stone", + "232": "minecraft:end_stone_bricks", + "233": "minecraft:dragon_egg", + "234": "minecraft:redstone_lamp", + "235": "minecraft:sandstone_stairs", + "236": "minecraft:emerald_ore", + "237": "minecraft:ender_chest", + "238": "minecraft:tripwire_hook", + "239": "minecraft:emerald_block", + "240": "minecraft:spruce_stairs", + "241": "minecraft:birch_stairs", + "242": "minecraft:jungle_stairs", + "243": "minecraft:command_block", + "244": "minecraft:beacon", + "245": "minecraft:cobblestone_wall", + "246": "minecraft:mossy_cobblestone_wall", + "247": "minecraft:brick_wall", + "248": "minecraft:prismarine_wall", + "249": "minecraft:red_sandstone_wall", + "250": "minecraft:mossy_stone_brick_wall", + "251": "minecraft:granite_wall", + "252": "minecraft:stone_brick_wall", + "253": "minecraft:nether_brick_wall", + "254": "minecraft:andesite_wall", + "255": "minecraft:red_nether_brick_wall", + "256": "minecraft:sandstone_wall", + "257": "minecraft:end_stone_brick_wall", + "258": "minecraft:diorite_wall", + "259": "minecraft:oak_button", + "260": "minecraft:spruce_button", + "261": "minecraft:birch_button", + "262": "minecraft:jungle_button", + "263": "minecraft:acacia_button", + "264": "minecraft:dark_oak_button", + "265": "minecraft:anvil", + "266": "minecraft:chipped_anvil", + "267": "minecraft:damaged_anvil", + "268": "minecraft:trapped_chest", + "269": "minecraft:light_weighted_pressure_plate", + "270": "minecraft:heavy_weighted_pressure_plate", + "271": "minecraft:daylight_detector", + "272": "minecraft:redstone_block", + "273": "minecraft:nether_quartz_ore", + "274": "minecraft:hopper", + "275": "minecraft:chiseled_quartz_block", + "276": "minecraft:quartz_block", + "277": "minecraft:quartz_pillar", + "278": "minecraft:quartz_stairs", + "279": "minecraft:activator_rail", + "280": "minecraft:dropper", + "281": "minecraft:white_terracotta", + "282": "minecraft:orange_terracotta", + "283": "minecraft:magenta_terracotta", + "284": "minecraft:light_blue_terracotta", + "285": "minecraft:yellow_terracotta", + "286": "minecraft:lime_terracotta", + "287": "minecraft:pink_terracotta", + "288": "minecraft:gray_terracotta", + "289": "minecraft:light_gray_terracotta", + "290": "minecraft:cyan_terracotta", + "291": "minecraft:purple_terracotta", + "292": "minecraft:blue_terracotta", + "293": "minecraft:brown_terracotta", + "294": "minecraft:green_terracotta", + "295": "minecraft:red_terracotta", + "296": "minecraft:black_terracotta", + "297": "minecraft:barrier", + "298": "minecraft:iron_trapdoor", + "299": "minecraft:hay_block", + "300": "minecraft:white_carpet", + "301": "minecraft:orange_carpet", + "302": "minecraft:magenta_carpet", + "303": "minecraft:light_blue_carpet", + "304": "minecraft:yellow_carpet", + "305": "minecraft:lime_carpet", + "306": "minecraft:pink_carpet", + "307": "minecraft:gray_carpet", + "308": "minecraft:light_gray_carpet", + "309": "minecraft:cyan_carpet", + "310": "minecraft:purple_carpet", + "311": "minecraft:blue_carpet", + "312": "minecraft:brown_carpet", + "313": "minecraft:green_carpet", + "314": "minecraft:red_carpet", + "315": "minecraft:black_carpet", + "316": "minecraft:terracotta", + "317": "minecraft:coal_block", + "318": "minecraft:packed_ice", + "319": "minecraft:acacia_stairs", + "320": "minecraft:dark_oak_stairs", + "321": "minecraft:slime_block", + "322": "minecraft:grass_path", + "323": "minecraft:sunflower", + "324": "minecraft:lilac", + "325": "minecraft:rose_bush", + "326": "minecraft:peony", + "327": "minecraft:tall_grass", + "328": "minecraft:large_fern", + "329": "minecraft:white_stained_glass", + "330": "minecraft:orange_stained_glass", + "331": "minecraft:magenta_stained_glass", + "332": "minecraft:light_blue_stained_glass", + "333": "minecraft:yellow_stained_glass", + "334": "minecraft:lime_stained_glass", + "335": "minecraft:pink_stained_glass", + "336": "minecraft:gray_stained_glass", + "337": "minecraft:light_gray_stained_glass", + "338": "minecraft:cyan_stained_glass", + "339": "minecraft:purple_stained_glass", + "340": "minecraft:blue_stained_glass", + "341": "minecraft:brown_stained_glass", + "342": "minecraft:green_stained_glass", + "343": "minecraft:red_stained_glass", + "344": "minecraft:black_stained_glass", + "345": "minecraft:white_stained_glass_pane", + "346": "minecraft:orange_stained_glass_pane", + "347": "minecraft:magenta_stained_glass_pane", + "348": "minecraft:light_blue_stained_glass_pane", + "349": "minecraft:yellow_stained_glass_pane", + "350": "minecraft:lime_stained_glass_pane", + "351": "minecraft:pink_stained_glass_pane", + "352": "minecraft:gray_stained_glass_pane", + "353": "minecraft:light_gray_stained_glass_pane", + "354": "minecraft:cyan_stained_glass_pane", + "355": "minecraft:purple_stained_glass_pane", + "356": "minecraft:blue_stained_glass_pane", + "357": "minecraft:brown_stained_glass_pane", + "358": "minecraft:green_stained_glass_pane", + "359": "minecraft:red_stained_glass_pane", + "360": "minecraft:black_stained_glass_pane", + "361": "minecraft:prismarine", + "362": "minecraft:prismarine_bricks", + "363": "minecraft:dark_prismarine", + "364": "minecraft:prismarine_stairs", + "365": "minecraft:prismarine_brick_stairs", + "366": "minecraft:dark_prismarine_stairs", + "367": "minecraft:sea_lantern", + "368": "minecraft:red_sandstone", + "369": "minecraft:chiseled_red_sandstone", + "370": "minecraft:cut_red_sandstone", + "371": "minecraft:red_sandstone_stairs", + "372": "minecraft:repeating_command_block", + "373": "minecraft:chain_command_block", + "374": "minecraft:magma_block", + "375": "minecraft:nether_wart_block", + "376": "minecraft:red_nether_bricks", + "377": "minecraft:bone_block", + "378": "minecraft:structure_void", + "379": "minecraft:observer", + "380": "minecraft:shulker_box", + "381": "minecraft:white_shulker_box", + "382": "minecraft:orange_shulker_box", + "383": "minecraft:magenta_shulker_box", + "384": "minecraft:light_blue_shulker_box", + "385": "minecraft:yellow_shulker_box", + "386": "minecraft:lime_shulker_box", + "387": "minecraft:pink_shulker_box", + "388": "minecraft:gray_shulker_box", + "389": "minecraft:light_gray_shulker_box", + "390": "minecraft:cyan_shulker_box", + "391": "minecraft:purple_shulker_box", + "392": "minecraft:blue_shulker_box", + "393": "minecraft:brown_shulker_box", + "394": "minecraft:green_shulker_box", + "395": "minecraft:red_shulker_box", + "396": "minecraft:black_shulker_box", + "397": "minecraft:white_glazed_terracotta", + "398": "minecraft:orange_glazed_terracotta", + "399": "minecraft:magenta_glazed_terracotta", + "400": "minecraft:light_blue_glazed_terracotta", + "401": "minecraft:yellow_glazed_terracotta", + "402": "minecraft:lime_glazed_terracotta", + "403": "minecraft:pink_glazed_terracotta", + "404": "minecraft:gray_glazed_terracotta", + "405": "minecraft:light_gray_glazed_terracotta", + "406": "minecraft:cyan_glazed_terracotta", + "407": "minecraft:purple_glazed_terracotta", + "408": "minecraft:blue_glazed_terracotta", + "409": "minecraft:brown_glazed_terracotta", + "410": "minecraft:green_glazed_terracotta", + "411": "minecraft:red_glazed_terracotta", + "412": "minecraft:black_glazed_terracotta", + "413": "minecraft:white_concrete", + "414": "minecraft:orange_concrete", + "415": "minecraft:magenta_concrete", + "416": "minecraft:light_blue_concrete", + "417": "minecraft:yellow_concrete", + "418": "minecraft:lime_concrete", + "419": "minecraft:pink_concrete", + "420": "minecraft:gray_concrete", + "421": "minecraft:light_gray_concrete", + "422": "minecraft:cyan_concrete", + "423": "minecraft:purple_concrete", + "424": "minecraft:blue_concrete", + "425": "minecraft:brown_concrete", + "426": "minecraft:green_concrete", + "427": "minecraft:red_concrete", + "428": "minecraft:black_concrete", + "429": "minecraft:white_concrete_powder", + "430": "minecraft:orange_concrete_powder", + "431": "minecraft:magenta_concrete_powder", + "432": "minecraft:light_blue_concrete_powder", + "433": "minecraft:yellow_concrete_powder", + "434": "minecraft:lime_concrete_powder", + "435": "minecraft:pink_concrete_powder", + "436": "minecraft:gray_concrete_powder", + "437": "minecraft:light_gray_concrete_powder", + "438": "minecraft:cyan_concrete_powder", + "439": "minecraft:purple_concrete_powder", + "440": "minecraft:blue_concrete_powder", + "441": "minecraft:brown_concrete_powder", + "442": "minecraft:green_concrete_powder", + "443": "minecraft:red_concrete_powder", + "444": "minecraft:black_concrete_powder", + "445": "minecraft:turtle_egg", + "446": "minecraft:dead_tube_coral_block", + "447": "minecraft:dead_brain_coral_block", + "448": "minecraft:dead_bubble_coral_block", + "449": "minecraft:dead_fire_coral_block", + "450": "minecraft:dead_horn_coral_block", + "451": "minecraft:tube_coral_block", + "452": "minecraft:brain_coral_block", + "453": "minecraft:bubble_coral_block", + "454": "minecraft:fire_coral_block", + "455": "minecraft:horn_coral_block", + "456": "minecraft:tube_coral", + "457": "minecraft:brain_coral", + "458": "minecraft:bubble_coral", + "459": "minecraft:fire_coral", + "460": "minecraft:horn_coral", + "461": "minecraft:dead_brain_coral", + "462": "minecraft:dead_bubble_coral", + "463": "minecraft:dead_fire_coral", + "464": "minecraft:dead_horn_coral", + "465": "minecraft:dead_tube_coral", + "466": "minecraft:tube_coral_fan", + "467": "minecraft:brain_coral_fan", + "468": "minecraft:bubble_coral_fan", + "469": "minecraft:fire_coral_fan", + "470": "minecraft:horn_coral_fan", + "471": "minecraft:dead_tube_coral_fan", + "472": "minecraft:dead_brain_coral_fan", + "473": "minecraft:dead_bubble_coral_fan", + "474": "minecraft:dead_fire_coral_fan", + "475": "minecraft:dead_horn_coral_fan", + "476": "minecraft:blue_ice", + "477": "minecraft:conduit", + "478": "minecraft:polished_granite_stairs", + "479": "minecraft:smooth_red_sandstone_stairs", + "480": "minecraft:mossy_stone_brick_stairs", + "481": "minecraft:polished_diorite_stairs", + "482": "minecraft:mossy_cobblestone_stairs", + "483": "minecraft:end_stone_brick_stairs", + "484": "minecraft:stone_stairs", + "485": "minecraft:smooth_sandstone_stairs", + "486": "minecraft:smooth_quartz_stairs", + "487": "minecraft:granite_stairs", + "488": "minecraft:andesite_stairs", + "489": "minecraft:red_nether_brick_stairs", + "490": "minecraft:polished_andesite_stairs", + "491": "minecraft:diorite_stairs", + "492": "minecraft:polished_granite_slab", + "493": "minecraft:smooth_red_sandstone_slab", + "494": "minecraft:mossy_stone_brick_slab", + "495": "minecraft:polished_diorite_slab", + "496": "minecraft:mossy_cobblestone_slab", + "497": "minecraft:end_stone_brick_slab", + "498": "minecraft:smooth_sandstone_slab", + "499": "minecraft:smooth_quartz_slab", + "500": "minecraft:granite_slab", + "501": "minecraft:andesite_slab", + "502": "minecraft:red_nether_brick_slab", + "503": "minecraft:polished_andesite_slab", + "504": "minecraft:diorite_slab", + "505": "minecraft:scaffolding", + "506": "minecraft:iron_door", + "507": "minecraft:oak_door", + "508": "minecraft:spruce_door", + "509": "minecraft:birch_door", + "510": "minecraft:jungle_door", + "511": "minecraft:acacia_door", + "512": "minecraft:dark_oak_door", + "513": "minecraft:repeater", + "514": "minecraft:comparator", + "515": "minecraft:structure_block", + "516": "minecraft:jigsaw", + "517": "minecraft:composter", + "518": "minecraft:turtle_helmet", + "519": "minecraft:scute", + "520": "minecraft:iron_shovel", + "521": "minecraft:iron_pickaxe", + "522": "minecraft:iron_axe", + "523": "minecraft:flint_and_steel", + "524": "minecraft:apple", + "525": "minecraft:bow", + "526": "minecraft:arrow", + "527": "minecraft:coal", + "528": "minecraft:charcoal", + "529": "minecraft:diamond", + "530": "minecraft:iron_ingot", + "531": "minecraft:gold_ingot", + "532": "minecraft:iron_sword", + "533": "minecraft:wooden_sword", + "534": "minecraft:wooden_shovel", + "535": "minecraft:wooden_pickaxe", + "536": "minecraft:wooden_axe", + "537": "minecraft:stone_sword", + "538": "minecraft:stone_shovel", + "539": "minecraft:stone_pickaxe", + "540": "minecraft:stone_axe", + "541": "minecraft:diamond_sword", + "542": "minecraft:diamond_shovel", + "543": "minecraft:diamond_pickaxe", + "544": "minecraft:diamond_axe", + "545": "minecraft:stick", + "546": "minecraft:bowl", + "547": "minecraft:mushroom_stew", + "548": "minecraft:golden_sword", + "549": "minecraft:golden_shovel", + "550": "minecraft:golden_pickaxe", + "551": "minecraft:golden_axe", + "552": "minecraft:string", + "553": "minecraft:feather", + "554": "minecraft:gunpowder", + "555": "minecraft:wooden_hoe", + "556": "minecraft:stone_hoe", + "557": "minecraft:iron_hoe", + "558": "minecraft:diamond_hoe", + "559": "minecraft:golden_hoe", + "560": "minecraft:wheat_seeds", + "561": "minecraft:wheat", + "562": "minecraft:bread", + "563": "minecraft:leather_helmet", + "564": "minecraft:leather_chestplate", + "565": "minecraft:leather_leggings", + "566": "minecraft:leather_boots", + "567": "minecraft:chainmail_helmet", + "568": "minecraft:chainmail_chestplate", + "569": "minecraft:chainmail_leggings", + "570": "minecraft:chainmail_boots", + "571": "minecraft:iron_helmet", + "572": "minecraft:iron_chestplate", + "573": "minecraft:iron_leggings", + "574": "minecraft:iron_boots", + "575": "minecraft:diamond_helmet", + "576": "minecraft:diamond_chestplate", + "577": "minecraft:diamond_leggings", + "578": "minecraft:diamond_boots", + "579": "minecraft:golden_helmet", + "580": "minecraft:golden_chestplate", + "581": "minecraft:golden_leggings", + "582": "minecraft:golden_boots", + "583": "minecraft:flint", + "584": "minecraft:porkchop", + "585": "minecraft:cooked_porkchop", + "586": "minecraft:painting", + "587": "minecraft:golden_apple", + "588": "minecraft:enchanted_golden_apple", + "589": "minecraft:oak_sign", + "590": "minecraft:spruce_sign", + "591": "minecraft:birch_sign", + "592": "minecraft:jungle_sign", + "593": "minecraft:acacia_sign", + "594": "minecraft:dark_oak_sign", + "595": "minecraft:bucket", + "596": "minecraft:water_bucket", + "597": "minecraft:lava_bucket", + "598": "minecraft:minecart", + "599": "minecraft:saddle", + "600": "minecraft:redstone", + "601": "minecraft:snowball", + "602": "minecraft:oak_boat", + "603": "minecraft:leather", + "604": "minecraft:milk_bucket", + "605": "minecraft:pufferfish_bucket", + "606": "minecraft:salmon_bucket", + "607": "minecraft:cod_bucket", + "608": "minecraft:tropical_fish_bucket", + "609": "minecraft:brick", + "610": "minecraft:clay_ball", + "611": "minecraft:sugar_cane", + "612": "minecraft:kelp", + "613": "minecraft:dried_kelp_block", + "614": "minecraft:bamboo", + "615": "minecraft:paper", + "616": "minecraft:book", + "617": "minecraft:slime_ball", + "618": "minecraft:chest_minecart", + "619": "minecraft:furnace_minecart", + "620": "minecraft:egg", + "621": "minecraft:compass", + "622": "minecraft:fishing_rod", + "623": "minecraft:clock", + "624": "minecraft:glowstone_dust", + "625": "minecraft:cod", + "626": "minecraft:salmon", + "627": "minecraft:tropical_fish", + "628": "minecraft:pufferfish", + "629": "minecraft:cooked_cod", + "630": "minecraft:cooked_salmon", + "631": "minecraft:ink_sac", + "632": "minecraft:red_dye", + "633": "minecraft:green_dye", + "634": "minecraft:cocoa_beans", + "635": "minecraft:lapis_lazuli", + "636": "minecraft:purple_dye", + "637": "minecraft:cyan_dye", + "638": "minecraft:light_gray_dye", + "639": "minecraft:gray_dye", + "640": "minecraft:pink_dye", + "641": "minecraft:lime_dye", + "642": "minecraft:yellow_dye", + "643": "minecraft:light_blue_dye", + "644": "minecraft:magenta_dye", + "645": "minecraft:orange_dye", + "646": "minecraft:bone_meal", + "647": "minecraft:blue_dye", + "648": "minecraft:brown_dye", + "649": "minecraft:black_dye", + "650": "minecraft:white_dye", + "651": "minecraft:bone", + "652": "minecraft:sugar", + "653": "minecraft:cake", + "654": "minecraft:white_bed", + "655": "minecraft:orange_bed", + "656": "minecraft:magenta_bed", + "657": "minecraft:light_blue_bed", + "658": "minecraft:yellow_bed", + "659": "minecraft:lime_bed", + "660": "minecraft:pink_bed", + "661": "minecraft:gray_bed", + "662": "minecraft:light_gray_bed", + "663": "minecraft:cyan_bed", + "664": "minecraft:purple_bed", + "665": "minecraft:blue_bed", + "666": "minecraft:brown_bed", + "667": "minecraft:green_bed", + "668": "minecraft:red_bed", + "669": "minecraft:black_bed", + "670": "minecraft:cookie", + "671": "minecraft:filled_map", + "672": "minecraft:shears", + "673": "minecraft:melon_slice", + "674": "minecraft:dried_kelp", + "675": "minecraft:pumpkin_seeds", + "676": "minecraft:melon_seeds", + "677": "minecraft:beef", + "678": "minecraft:cooked_beef", + "679": "minecraft:chicken", + "680": "minecraft:cooked_chicken", + "681": "minecraft:rotten_flesh", + "682": "minecraft:ender_pearl", + "683": "minecraft:blaze_rod", + "684": "minecraft:ghast_tear", + "685": "minecraft:gold_nugget", + "686": "minecraft:nether_wart", + "687": "minecraft:potion", + "688": "minecraft:glass_bottle", + "689": "minecraft:spider_eye", + "690": "minecraft:fermented_spider_eye", + "691": "minecraft:blaze_powder", + "692": "minecraft:magma_cream", + "693": "minecraft:brewing_stand", + "694": "minecraft:cauldron", + "695": "minecraft:ender_eye", + "696": "minecraft:glistering_melon_slice", + "697": "minecraft:bat_spawn_egg", + "698": "minecraft:bee_spawn_egg", + "699": "minecraft:blaze_spawn_egg", + "700": "minecraft:cat_spawn_egg", + "701": "minecraft:cave_spider_spawn_egg", + "702": "minecraft:chicken_spawn_egg", + "703": "minecraft:cod_spawn_egg", + "704": "minecraft:cow_spawn_egg", + "705": "minecraft:creeper_spawn_egg", + "706": "minecraft:dolphin_spawn_egg", + "707": "minecraft:donkey_spawn_egg", + "708": "minecraft:drowned_spawn_egg", + "709": "minecraft:elder_guardian_spawn_egg", + "710": "minecraft:enderman_spawn_egg", + "711": "minecraft:endermite_spawn_egg", + "712": "minecraft:evoker_spawn_egg", + "713": "minecraft:fox_spawn_egg", + "714": "minecraft:ghast_spawn_egg", + "715": "minecraft:guardian_spawn_egg", + "716": "minecraft:horse_spawn_egg", + "717": "minecraft:husk_spawn_egg", + "718": "minecraft:llama_spawn_egg", + "719": "minecraft:magma_cube_spawn_egg", + "720": "minecraft:mooshroom_spawn_egg", + "721": "minecraft:mule_spawn_egg", + "722": "minecraft:ocelot_spawn_egg", + "723": "minecraft:panda_spawn_egg", + "724": "minecraft:parrot_spawn_egg", + "725": "minecraft:phantom_spawn_egg", + "726": "minecraft:pig_spawn_egg", + "727": "minecraft:pillager_spawn_egg", + "728": "minecraft:polar_bear_spawn_egg", + "729": "minecraft:pufferfish_spawn_egg", + "730": "minecraft:rabbit_spawn_egg", + "731": "minecraft:ravager_spawn_egg", + "732": "minecraft:salmon_spawn_egg", + "733": "minecraft:sheep_spawn_egg", + "734": "minecraft:shulker_spawn_egg", + "735": "minecraft:silverfish_spawn_egg", + "736": "minecraft:skeleton_spawn_egg", + "737": "minecraft:skeleton_horse_spawn_egg", + "738": "minecraft:slime_spawn_egg", + "739": "minecraft:spider_spawn_egg", + "740": "minecraft:squid_spawn_egg", + "741": "minecraft:stray_spawn_egg", + "742": "minecraft:trader_llama_spawn_egg", + "743": "minecraft:tropical_fish_spawn_egg", + "744": "minecraft:turtle_spawn_egg", + "745": "minecraft:vex_spawn_egg", + "746": "minecraft:villager_spawn_egg", + "747": "minecraft:vindicator_spawn_egg", + "748": "minecraft:wandering_trader_spawn_egg", + "749": "minecraft:witch_spawn_egg", + "750": "minecraft:wither_skeleton_spawn_egg", + "751": "minecraft:wolf_spawn_egg", + "752": "minecraft:zombie_spawn_egg", + "753": "minecraft:zombie_horse_spawn_egg", + "754": "minecraft:zombie_pigman_spawn_egg", + "755": "minecraft:zombie_villager_spawn_egg", + "756": "minecraft:experience_bottle", + "757": "minecraft:fire_charge", + "758": "minecraft:writable_book", + "759": "minecraft:written_book", + "760": "minecraft:emerald", + "761": "minecraft:item_frame", + "762": "minecraft:flower_pot", + "763": "minecraft:carrot", + "764": "minecraft:potato", + "765": "minecraft:baked_potato", + "766": "minecraft:poisonous_potato", + "767": "minecraft:map", + "768": "minecraft:golden_carrot", + "769": "minecraft:skeleton_skull", + "770": "minecraft:wither_skeleton_skull", + "771": "minecraft:player_head", + "772": "minecraft:zombie_head", + "773": "minecraft:creeper_head", + "774": "minecraft:dragon_head", + "775": "minecraft:carrot_on_a_stick", + "776": "minecraft:nether_star", + "777": "minecraft:pumpkin_pie", + "778": "minecraft:firework_rocket", + "779": "minecraft:firework_star", + "780": "minecraft:enchanted_book", + "781": "minecraft:nether_brick", + "782": "minecraft:quartz", + "783": "minecraft:tnt_minecart", + "784": "minecraft:hopper_minecart", + "785": "minecraft:prismarine_shard", + "786": "minecraft:prismarine_crystals", + "787": "minecraft:rabbit", + "788": "minecraft:cooked_rabbit", + "789": "minecraft:rabbit_stew", + "790": "minecraft:rabbit_foot", + "791": "minecraft:rabbit_hide", + "792": "minecraft:armor_stand", + "793": "minecraft:iron_horse_armor", + "794": "minecraft:golden_horse_armor", + "795": "minecraft:diamond_horse_armor", + "796": "minecraft:leather_horse_armor", + "797": "minecraft:lead", + "798": "minecraft:name_tag", + "799": "minecraft:command_block_minecart", + "800": "minecraft:mutton", + "801": "minecraft:cooked_mutton", + "802": "minecraft:white_banner", + "803": "minecraft:orange_banner", + "804": "minecraft:magenta_banner", + "805": "minecraft:light_blue_banner", + "806": "minecraft:yellow_banner", + "807": "minecraft:lime_banner", + "808": "minecraft:pink_banner", + "809": "minecraft:gray_banner", + "810": "minecraft:light_gray_banner", + "811": "minecraft:cyan_banner", + "812": "minecraft:purple_banner", + "813": "minecraft:blue_banner", + "814": "minecraft:brown_banner", + "815": "minecraft:green_banner", + "816": "minecraft:red_banner", + "817": "minecraft:black_banner", + "818": "minecraft:end_crystal", + "819": "minecraft:chorus_fruit", + "820": "minecraft:popped_chorus_fruit", + "821": "minecraft:beetroot", + "822": "minecraft:beetroot_seeds", + "823": "minecraft:beetroot_soup", + "824": "minecraft:dragon_breath", + "825": "minecraft:splash_potion", + "826": "minecraft:spectral_arrow", + "827": "minecraft:tipped_arrow", + "828": "minecraft:lingering_potion", + "829": "minecraft:shield", + "830": "minecraft:elytra", + "831": "minecraft:spruce_boat", + "832": "minecraft:birch_boat", + "833": "minecraft:jungle_boat", + "834": "minecraft:acacia_boat", + "835": "minecraft:dark_oak_boat", + "836": "minecraft:totem_of_undying", + "837": "minecraft:shulker_shell", + "838": "minecraft:iron_nugget", + "839": "minecraft:knowledge_book", + "840": "minecraft:debug_stick", + "841": "minecraft:music_disc_13", + "842": "minecraft:music_disc_cat", + "843": "minecraft:music_disc_blocks", + "844": "minecraft:music_disc_chirp", + "845": "minecraft:music_disc_far", + "846": "minecraft:music_disc_mall", + "847": "minecraft:music_disc_mellohi", + "848": "minecraft:music_disc_stal", + "849": "minecraft:music_disc_strad", + "850": "minecraft:music_disc_ward", + "851": "minecraft:music_disc_11", + "852": "minecraft:music_disc_wait", + "853": "minecraft:trident", + "854": "minecraft:phantom_membrane", + "855": "minecraft:nautilus_shell", + "856": "minecraft:heart_of_the_sea", + "857": "minecraft:crossbow", + "858": "minecraft:suspicious_stew", + "859": "minecraft:loom", + "860": "minecraft:flower_banner_pattern", + "861": "minecraft:creeper_banner_pattern", + "862": "minecraft:skull_banner_pattern", + "863": "minecraft:mojang_banner_pattern", + "864": "minecraft:globe_banner_pattern", + "865": "minecraft:barrel", + "866": "minecraft:smoker", + "867": "minecraft:blast_furnace", + "868": "minecraft:cartography_table", + "869": "minecraft:fletching_table", + "870": "minecraft:grindstone", + "871": "minecraft:lectern", + "872": "minecraft:smithing_table", + "873": "minecraft:stonecutter", + "874": "minecraft:bell", + "875": "minecraft:lantern", + "876": "minecraft:sweet_berries", + "877": "minecraft:campfire", + "878": "minecraft:honeycomb", + "879": "minecraft:bee_nest", + "880": "minecraft:bee_hive", + "881": "minecraft:honey_bottle" + }, "sounds": [ "ambient.cave", "ambient.underwater.enter", @@ -15,6 +1579,22 @@ "block.anvil.place", "block.anvil.step", "block.anvil.use", + "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", + "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", + "item.axe.strip", "block.bamboo.break", "block.bamboo.fall", "block.bamboo.hit", @@ -25,30 +1605,86 @@ "block.bamboo_sapling.place", "block.barrel.close", "block.barrel.open", + "entity.bat.ambient", + "entity.bat.death", + "entity.bat.hurt", + "entity.bat.loop", + "entity.bat.takeoff", "block.beacon.activate", "block.beacon.ambient", "block.beacon.deactivate", "block.beacon.power_select", + "entity.bee.death", + "entity.bee.hurt", + "entity.bee.loop_aggressive", + "entity.bee.loop", + "entity.bee.sting", + "entity.bee.pollinate", "block.beehive.drip", "block.beehive.enter", "block.beehive.exit", "block.beehive.shear", "block.beehive.work", - "block.bell.resonate", "block.bell.use", + "block.bell.resonate", + "entity.blaze.ambient", + "entity.blaze.burn", + "entity.blaze.death", + "entity.blaze.hurt", + "entity.blaze.shoot", + "entity.boat.paddle_land", + "entity.boat.paddle_water", + "item.book.page_turn", + "item.book.put", + "entity.fishing_bobber.retrieve", + "entity.fishing_bobber.splash", + "entity.fishing_bobber.throw", "block.blastfurnace.fire_crackle", + "item.bottle.empty", + "item.bottle.fill", + "item.bottle.fill_dragonbreath", "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", + "item.bucket.empty", + "item.bucket.empty_fish", + "item.bucket.empty_lava", + "item.bucket.fill", + "item.bucket.fill_fish", + "item.bucket.fill_lava", "block.campfire.crackle", + "entity.cat.ambient", + "entity.cat.stray_ambient", + "entity.cat.death", + "entity.cat.eat", + "entity.cat.hiss", + "entity.cat.beg_for_food", + "entity.cat.hurt", + "entity.cat.purr", + "entity.cat.purreow", "block.chest.close", "block.chest.locked", "block.chest.open", + "entity.chicken.ambient", + "entity.chicken.death", + "entity.chicken.egg", + "entity.chicken.hurt", + "entity.chicken.step", "block.chorus_flower.death", "block.chorus_flower.grow", + "item.chorus_fruit.teleport", + "block.wool.break", + "block.wool.fall", + "block.wool.hit", + "block.wool.place", + "block.wool.step", + "entity.cod.ambient", + "entity.cod.death", + "entity.cod.flop", + "entity.cod.hurt", "block.comparator.click", "block.composter.empty", "block.composter.fill", @@ -59,198 +1695,6 @@ "block.conduit.ambient.short", "block.conduit.attack.target", "block.conduit.deactivate", - "block.coral_block.break", - "block.coral_block.fall", - "block.coral_block.hit", - "block.coral_block.place", - "block.coral_block.step", - "block.crop.break", - "block.dispenser.dispense", - "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.gravel.break", - "block.gravel.fall", - "block.gravel.hit", - "block.gravel.place", - "block.gravel.step", - "block.grindstone.use", - "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.lantern.break", - "block.lantern.fall", - "block.lantern.hit", - "block.lantern.place", - "block.lantern.step", - "block.lava.ambient", - "block.lava.extinguish", - "block.lava.pop", - "block.lever.click", - "block.lily_pad.place", - "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.nether_wart.break", - "block.note_block.banjo", - "block.note_block.basedrum", - "block.note_block.bass", - "block.note_block.bell", - "block.note_block.bit", - "block.note_block.chime", - "block.note_block.cow_bell", - "block.note_block.didgeridoo", - "block.note_block.flute", - "block.note_block.guitar", - "block.note_block.harp", - "block.note_block.hat", - "block.note_block.iron_xylophone", - "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.scaffolding.break", - "block.scaffolding.fall", - "block.scaffolding.hit", - "block.scaffolding.place", - "block.scaffolding.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.smoker.smoke", - "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.sweet_berry_bush.break", - "block.sweet_berry_bush.place", - "block.tripwire.attach", - "block.tripwire.click_off", - "block.tripwire.click_on", - "block.tripwire.detach", - "block.water.ambient", - "block.wet_grass.break", - "block.wet_grass.fall", - "block.wet_grass.hit", - "block.wet_grass.place", - "block.wet_grass.step", - "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_door.close", - "block.wooden_door.open", - "block.wooden_pressure_plate.click_off", - "block.wooden_pressure_plate.click_on", - "block.wooden_trapdoor.close", - "block.wooden_trapdoor.open", - "block.wool.break", - "block.wool.fall", - "block.wool.hit", - "block.wool.place", - "block.wool.step", - "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.bee.death", - "entity.bee.hurt", - "entity.bee.loop", - "entity.bee.loop_aggressive", - "entity.bee.pollinate", - "entity.bee.sting", - "entity.blaze.ambient", - "entity.blaze.burn", - "entity.blaze.death", - "entity.blaze.hurt", - "entity.blaze.shoot", - "entity.boat.paddle_land", - "entity.boat.paddle_water", - "entity.cat.ambient", - "entity.cat.beg_for_food", - "entity.cat.death", - "entity.cat.eat", - "entity.cat.hiss", - "entity.cat.hurt", - "entity.cat.purr", - "entity.cat.purreow", - "entity.cat.stray_ambient", - "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", @@ -259,6 +1703,19 @@ "entity.creeper.death", "entity.creeper.hurt", "entity.creeper.primed", + "block.crop.break", + "item.crop.plant", + "item.crossbow.hit", + "item.crossbow.loading_end", + "item.crossbow.loading_middle", + "item.crossbow.loading_start", + "item.crossbow.quick_charge_1", + "item.crossbow.quick_charge_2", + "item.crossbow.quick_charge_3", + "item.crossbow.shoot", + "block.dispenser.dispense", + "block.dispenser.fail", + "block.dispenser.launch", "entity.dolphin.ambient", "entity.dolphin.ambient_water", "entity.dolphin.attack", @@ -274,7 +1731,6 @@ "entity.donkey.chest", "entity.donkey.death", "entity.donkey.hurt", - "entity.dragon_fireball.explode", "entity.drowned.ambient", "entity.drowned.ambient_water", "entity.drowned.death", @@ -293,15 +1749,19 @@ "entity.elder_guardian.flop", "entity.elder_guardian.hurt", "entity.elder_guardian.hurt_land", + "item.elytra.flying", + "block.enchantment_table.use", + "block.ender_chest.close", + "block.ender_chest.open", "entity.ender_dragon.ambient", "entity.ender_dragon.death", + "entity.dragon_fireball.explode", "entity.ender_dragon.flap", "entity.ender_dragon.growl", "entity.ender_dragon.hurt", "entity.ender_dragon.shoot", "entity.ender_eye.death", "entity.ender_eye.launch", - "entity.ender_pearl.throw", "entity.enderman.ambient", "entity.enderman.death", "entity.enderman.hurt", @@ -312,17 +1772,24 @@ "entity.endermite.death", "entity.endermite.hurt", "entity.endermite.step", + "entity.ender_pearl.throw", + "block.end_gateway.spawn", + "block.end_portal_frame.fill", + "block.end_portal.spawn", "entity.evoker.ambient", "entity.evoker.cast_spell", "entity.evoker.celebrate", "entity.evoker.death", + "entity.evoker_fangs.attack", "entity.evoker.hurt", "entity.evoker.prepare_attack", "entity.evoker.prepare_summon", "entity.evoker.prepare_wololo", - "entity.evoker_fangs.attack", "entity.experience_bottle.throw", "entity.experience_orb.pickup", + "block.fence_gate.close", + "block.fence_gate.open", + "item.firecharge.use", "entity.firework_rocket.blast", "entity.firework_rocket.blast_far", "entity.firework_rocket.large_blast", @@ -331,10 +1798,10 @@ "entity.firework_rocket.shoot", "entity.firework_rocket.twinkle", "entity.firework_rocket.twinkle_far", + "block.fire.ambient", + "block.fire.extinguish", "entity.fish.swim", - "entity.fishing_bobber.retrieve", - "entity.fishing_bobber.splash", - "entity.fishing_bobber.throw", + "item.flintandsteel.use", "entity.fox.aggro", "entity.fox.ambient", "entity.fox.bite", @@ -345,6 +1812,7 @@ "entity.fox.sleep", "entity.fox.sniff", "entity.fox.spit", + "block.furnace.fire_crackle", "entity.generic.big_fall", "entity.generic.burn", "entity.generic.death", @@ -362,6 +1830,32 @@ "entity.ghast.scream", "entity.ghast.shoot", "entity.ghast.warn", + "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.grindstone.use", "entity.guardian.ambient", "entity.guardian.ambient_land", "entity.guardian.attack", @@ -370,6 +1864,8 @@ "entity.guardian.flop", "entity.guardian.hurt", "entity.guardian.hurt_land", + "item.hoe.till", + "item.honey_bottle.drink", "entity.horse.ambient", "entity.horse.angry", "entity.horse.armor", @@ -394,6 +1890,14 @@ "entity.husk.death", "entity.husk.hurt", "entity.husk.step", + "entity.ravager.ambient", + "entity.ravager.attack", + "entity.ravager.celebrate", + "entity.ravager.death", + "entity.ravager.hurt", + "entity.ravager.step", + "entity.ravager.stunned", + "entity.ravager.roar", "entity.illusioner.ambient", "entity.illusioner.cast_spell", "entity.illusioner.death", @@ -401,19 +1905,37 @@ "entity.illusioner.mirror_move", "entity.illusioner.prepare_blindness", "entity.illusioner.prepare_mirror", + "block.iron_door.close", + "block.iron_door.open", "entity.iron_golem.attack", "entity.iron_golem.death", "entity.iron_golem.hurt", "entity.iron_golem.step", - "entity.item.break", - "entity.item.pickup", + "block.iron_trapdoor.close", + "block.iron_trapdoor.open", "entity.item_frame.add_item", "entity.item_frame.break", "entity.item_frame.place", "entity.item_frame.remove_item", "entity.item_frame.rotate_item", + "entity.item.break", + "entity.item.pickup", + "block.ladder.break", + "block.ladder.fall", + "block.ladder.hit", + "block.ladder.place", + "block.ladder.step", + "block.lantern.break", + "block.lantern.fall", + "block.lantern.hit", + "block.lantern.place", + "block.lantern.step", + "block.lava.ambient", + "block.lava.extinguish", + "block.lava.pop", "entity.leash_knot.break", "entity.leash_knot.place", + "block.lever.click", "entity.lightning_bolt.impact", "entity.lightning_bolt.thunder", "entity.lingering_potion.throw", @@ -427,39 +1949,69 @@ "entity.llama.step", "entity.llama.swag", "entity.magma_cube.death", - "entity.magma_cube.death_small", "entity.magma_cube.hurt", - "entity.magma_cube.hurt_small", "entity.magma_cube.jump", "entity.magma_cube.squish", - "entity.magma_cube.squish_small", + "block.metal.break", + "block.metal.fall", + "block.metal.hit", + "block.metal.place", + "block.metal_pressure_plate.click_off", + "block.metal_pressure_plate.click_on", + "block.metal.step", "entity.minecart.inside", "entity.minecart.riding", "entity.mooshroom.convert", "entity.mooshroom.eat", "entity.mooshroom.milk", - "entity.mooshroom.shear", "entity.mooshroom.suspicious_milk", + "entity.mooshroom.shear", "entity.mule.ambient", "entity.mule.chest", "entity.mule.death", "entity.mule.hurt", + "music.creative", + "music.credits", + "music.dragon", + "music.end", + "music.game", + "music.menu", + "music.nether", + "music.under_water", + "block.nether_wart.break", + "item.nether_wart.plant", + "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.note_block.iron_xylophone", + "block.note_block.cow_bell", + "block.note_block.didgeridoo", + "block.note_block.bit", + "block.note_block.banjo", + "entity.ocelot.hurt", "entity.ocelot.ambient", "entity.ocelot.death", - "entity.ocelot.hurt", "entity.painting.break", "entity.painting.place", - "entity.panda.aggressive_ambient", - "entity.panda.ambient", - "entity.panda.bite", - "entity.panda.cant_breed", - "entity.panda.death", - "entity.panda.eat", - "entity.panda.hurt", "entity.panda.pre_sneeze", "entity.panda.sneeze", + "entity.panda.ambient", + "entity.panda.death", + "entity.panda.eat", "entity.panda.step", + "entity.panda.cant_breed", + "entity.panda.aggressive_ambient", "entity.panda.worried_ambient", + "entity.panda.hurt", + "entity.panda.bite", "entity.parrot.ambient", "entity.parrot.death", "entity.parrot.eat", @@ -514,6 +2066,8 @@ "entity.pillager.celebrate", "entity.pillager.death", "entity.pillager.hurt", + "block.piston.contract", + "block.piston.extend", "entity.player.attack.crit", "entity.player.attack.knockback", "entity.player.attack.nodamage", @@ -539,6 +2093,9 @@ "entity.polar_bear.hurt", "entity.polar_bear.step", "entity.polar_bear.warning", + "block.portal.ambient", + "block.portal.travel", + "block.portal.trigger", "entity.puffer_fish.ambient", "entity.puffer_fish.blow_out", "entity.puffer_fish.blow_up", @@ -546,29 +2103,53 @@ "entity.puffer_fish.flop", "entity.puffer_fish.hurt", "entity.puffer_fish.sting", + "block.pumpkin.carve", "entity.rabbit.ambient", "entity.rabbit.attack", "entity.rabbit.death", "entity.rabbit.hurt", "entity.rabbit.jump", - "entity.ravager.ambient", - "entity.ravager.attack", - "entity.ravager.celebrate", - "entity.ravager.death", - "entity.ravager.hurt", - "entity.ravager.roar", - "entity.ravager.step", - "entity.ravager.stunned", + "event.raid.horn", + "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", + "block.redstone_torch.burnout", "entity.salmon.ambient", "entity.salmon.death", "entity.salmon.flop", "entity.salmon.hurt", + "block.sand.break", + "block.sand.fall", + "block.sand.hit", + "block.sand.place", + "block.sand.step", + "block.scaffolding.break", + "block.scaffolding.fall", + "block.scaffolding.hit", + "block.scaffolding.place", + "block.scaffolding.step", "entity.sheep.ambient", "entity.sheep.death", "entity.sheep.hurt", "entity.sheep.shear", "entity.sheep.step", + "item.shield.block", + "item.shield.break", + "item.shovel.flatten", "entity.shulker.ambient", + "block.shulker_box.close", + "block.shulker_box.open", + "entity.shulker_bullet.hit", + "entity.shulker_bullet.hurt", "entity.shulker.close", "entity.shulker.death", "entity.shulker.hurt", @@ -576,39 +2157,51 @@ "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_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.skeleton.hurt", "entity.skeleton.shoot", "entity.skeleton.step", - "entity.skeleton_horse.ambient", - "entity.skeleton_horse.ambient_water", - "entity.skeleton_horse.death", - "entity.skeleton_horse.gallop_water", - "entity.skeleton_horse.hurt", - "entity.skeleton_horse.jump_water", - "entity.skeleton_horse.step_water", - "entity.skeleton_horse.swim", "entity.slime.attack", "entity.slime.death", - "entity.slime.death_small", "entity.slime.hurt", - "entity.slime.hurt_small", "entity.slime.jump", - "entity.slime.jump_small", "entity.slime.squish", + "block.slime_block.break", + "block.slime_block.fall", + "block.slime_block.hit", + "block.slime_block.place", + "block.slime_block.step", + "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", + "block.smoker.smoke", + "entity.snowball.throw", + "block.snow.break", + "block.snow.fall", "entity.snow_golem.ambient", "entity.snow_golem.death", "entity.snow_golem.hurt", "entity.snow_golem.shoot", - "entity.snowball.throw", + "block.snow.hit", + "block.snow.place", + "block.snow.step", "entity.spider.ambient", "entity.spider.death", "entity.spider.hurt", @@ -619,11 +2212,37 @@ "entity.squid.death", "entity.squid.hurt", "entity.squid.squirt", + "block.stone.break", + "block.stone_button.click_off", + "block.stone_button.click_on", + "block.stone.fall", + "block.stone.hit", + "block.stone.place", + "block.stone_pressure_plate.click_off", + "block.stone_pressure_plate.click_on", + "block.stone.step", "entity.stray.ambient", "entity.stray.death", "entity.stray.hurt", "entity.stray.step", + "block.sweet_berry_bush.break", + "block.sweet_berry_bush.place", + "item.sweet_berries.pick_from_bush", + "enchant.thorns.hit", "entity.tnt.primed", + "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", + "block.tripwire.attach", + "block.tripwire.click_off", + "block.tripwire.click_on", + "block.tripwire.detach", "entity.tropical_fish.ambient", "entity.tropical_fish.death", "entity.tropical_fish.flop", @@ -640,6 +2259,15 @@ "entity.turtle.shamble", "entity.turtle.shamble_baby", "entity.turtle.swim", + "ui.button.click", + "ui.loom.select_pattern", + "ui.loom.take_result", + "ui.cartography_table.take_result", + "ui.stonecutter.take_result", + "ui.stonecutter.select_recipe", + "ui.toast.challenge_complete", + "ui.toast.in", + "ui.toast.out", "entity.vex.ambient", "entity.vex.charge", "entity.vex.death", @@ -650,6 +2278,7 @@ "entity.villager.hurt", "entity.villager.no", "entity.villager.trade", + "entity.villager.yes", "entity.villager.work_armorer", "entity.villager.work_butcher", "entity.villager.work_cartographer", @@ -663,11 +2292,11 @@ "entity.villager.work_shepherd", "entity.villager.work_toolsmith", "entity.villager.work_weaponsmith", - "entity.villager.yes", "entity.vindicator.ambient", "entity.vindicator.celebrate", "entity.vindicator.death", "entity.vindicator.hurt", + "block.lily_pad.place", "entity.wandering_trader.ambient", "entity.wandering_trader.death", "entity.wandering_trader.disappeared", @@ -678,6 +2307,9 @@ "entity.wandering_trader.reappeared", "entity.wandering_trader.trade", "entity.wandering_trader.yes", + "block.water.ambient", + "weather.rain", + "weather.rain.above", "entity.witch.ambient", "entity.witch.celebrate", "entity.witch.death", @@ -689,11 +2321,11 @@ "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.wither.spawn", "entity.wolf.ambient", "entity.wolf.death", "entity.wolf.growl", @@ -703,109 +2335,41 @@ "entity.wolf.shake", "entity.wolf.step", "entity.wolf.whine", + "block.wooden_door.close", + "block.wooden_door.open", + "block.wooden_trapdoor.close", + "block.wooden_trapdoor.open", + "block.wood.break", + "block.wooden_button.click_off", + "block.wooden_button.click_on", + "block.wood.fall", + "block.wood.hit", + "block.wood.place", + "block.wooden_pressure_plate.click_off", + "block.wooden_pressure_plate.click_on", + "block.wood.step", "entity.zombie.ambient", - "entity.zombie.attack_iron_door", "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.hurt", + "entity.zombie.infect", "entity.zombie_pigman.ambient", "entity.zombie_pigman.angry", "entity.zombie_pigman.death", "entity.zombie_pigman.hurt", + "entity.zombie.step", "entity.zombie_villager.ambient", "entity.zombie_villager.converted", "entity.zombie_villager.cure", "entity.zombie_villager.death", "entity.zombie_villager.hurt", - "entity.zombie_villager.step", - "event.raid.horn", - "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.book.page_turn", - "item.book.put", - "item.bottle.empty", - "item.bottle.fill", - "item.bottle.fill_dragonbreath", - "item.bucket.empty", - "item.bucket.empty_fish", - "item.bucket.empty_lava", - "item.bucket.fill", - "item.bucket.fill_fish", - "item.bucket.fill_lava", - "item.chorus_fruit.teleport", - "item.crop.plant", - "item.crossbow.hit", - "item.crossbow.loading_end", - "item.crossbow.loading_middle", - "item.crossbow.loading_start", - "item.crossbow.quick_charge_1", - "item.crossbow.quick_charge_2", - "item.crossbow.quick_charge_3", - "item.crossbow.shoot", - "item.elytra.flying", - "item.firecharge.use", - "item.flintandsteel.use", - "item.hoe.till", - "item.honey_bottle.drink", - "item.nether_wart.plant", - "item.shield.block", - "item.shield.break", - "item.shovel.flatten", - "item.sweet_berries.pick_from_bush", - "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.cartography_table.take_result", - "ui.loom.select_pattern", - "ui.loom.take_result", - "ui.stonecutter.select_recipe", - "ui.stonecutter.take_result", - "ui.toast.challenge_complete", - "ui.toast.in", - "ui.toast.out", - "weather.rain", - "weather.rain.above" + "entity.zombie_villager.step" ] } \ No newline at end of file