diff --git a/src/main/java/de/bixilon/minosoft/game/datatypes/Slot.java b/src/main/java/de/bixilon/minosoft/game/datatypes/Slot.java index d535cccd9..004768fc1 100644 --- a/src/main/java/de/bixilon/minosoft/game/datatypes/Slot.java +++ b/src/main/java/de/bixilon/minosoft/game/datatypes/Slot.java @@ -13,11 +13,13 @@ package de.bixilon.minosoft.game.datatypes; +import de.bixilon.minosoft.game.datatypes.entities.Items; import de.bixilon.minosoft.nbt.tag.CompoundTag; public class Slot { int itemId; int itemCount; + short itemMetadata; CompoundTag nbt; public Slot(int itemId, int itemCount, CompoundTag nbt) { @@ -26,8 +28,9 @@ public class Slot { this.nbt = nbt; } - public Slot(short itemId, byte itemCount, short itemDamage, CompoundTag nbt) { + public Slot(short itemId, byte itemCount, short itemMetadata, CompoundTag nbt) { this.itemId = itemId; + this.itemMetadata = itemMetadata; this.itemCount = itemCount; this.nbt = nbt; } @@ -40,14 +43,19 @@ public class Slot { return itemCount; } + public short getItemMetadata() { + return itemMetadata; + } + public CompoundTag getNbt() { return nbt; } public String getDisplayName() { + String itemName = Items.byLegacy(getItemId(), getItemMetadata()).name(); if (nbt != null && nbt.containsKey("display") && nbt.getCompoundTag("display").containsKey("Name")) { // check if object has nbt data, and a custom display name - return new TextComponent(nbt.getCompoundTag("display").getStringTag("Name").getValue()).getColoredMessage(); + return String.format("%s (%s)", new TextComponent(nbt.getCompoundTag("display").getStringTag("Name").getValue()).getColoredMessage(), itemName); } - return ""; //ToDo display name per Item + return itemName; //ToDo display name per Item } } diff --git a/src/main/java/de/bixilon/minosoft/game/datatypes/entities/Items.java b/src/main/java/de/bixilon/minosoft/game/datatypes/entities/Items.java new file mode 100644 index 000000000..200203624 --- /dev/null +++ b/src/main/java/de/bixilon/minosoft/game/datatypes/entities/Items.java @@ -0,0 +1,1040 @@ +/* + * Codename Minosoft + * Copyright (C) 2020 Moritz Zwerger + * + * This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along with this program. If not, see . + * + * This software is not affiliated with Mojang AB, the original developer of Minecraft. + */ + +package de.bixilon.minosoft.game.datatypes.entities; + +import de.bixilon.minosoft.game.datatypes.Identifier; + +public enum Items { + UNKNOWN(null, -1), // the buggy pink black item + STONE(new Identifier("stone"), 1), + GRANITE(new Identifier("granite", "stone"), 1, 1), + POLISHED_GRANITE(new Identifier("polished_granite", "stone"), 1, 2), + DIORITE(new Identifier("diorite", "stone"), 1, 3), + POLISHED_DIORITE(new Identifier("polished_diorite", "stone"), 1, 4), + ANDESITE(new Identifier("andesite", "stone"), 1, 5), + POLISHED_ANDESITE(new Identifier("polished_andesite", "stone"), 1, 6), + GRASS_BLOCK(new Identifier("grass_block", "grass"), 2), + DIRT(new Identifier("dirt"), 3), + COARSE_DIRT(new Identifier("coarse_dirt", "dirt"), 3, 1), + PODZOL(new Identifier("podzol", "dirt"), 3, 2), + COBBLESTONE(new Identifier("cobblestone"), 4), + OAK_PLANKS(new Identifier("oak_planks", "planks"), 5), + SPRUCE_PLANKS(new Identifier("spruce_planks", "planks"), 5, 1), + BIRCH_PLANKS(new Identifier("birch_planks", "planks"), 5, 2), + JUNGLE_PLANKS(new Identifier("jungle_planks", "planks"), 5, 3), + ACACIA_PLANKS(new Identifier("acacia_planks", "planks"), 5, 4), + DARK_OAK_PLANKS(new Identifier("dark_oak_planks", "planks"), 5, 5), + OAK_SAPLING(new Identifier("oak_sapling", "sapling"), 6), + SPRUCE_SAPLING(new Identifier("spruce_sapling", "sapling"), 6, 1), + BIRCH_SAPLING(new Identifier("birch_sapling", "sapling"), 6, 2), + JUNGLE_SAPLING(new Identifier("jungle_sapling", "sapling"), 6, 3), + ACACIA_SAPLING(new Identifier("acacia_sapling", "sapling"), 6, 4), + DARK_OAK_SAPLING(new Identifier("dark_oak_sapling", "sapling"), 6, 5), + BEDROCK(new Identifier("bedrock"), 7), + SAND(new Identifier("sand"), 12), + RED_SAND(new Identifier("red_sand", "sand"), 12, 1), + GRAVEL(new Identifier("gravel"), 13), + GOLD_ORE(new Identifier("gold_ore"), 14), + IRON_ORE(new Identifier("iron_ore"), 15), + COAL_ORE(new Identifier("coal_ore"), 16), + OAK_LOG(new Identifier("oak_log", "log"), 17), + SPRUCE_LOG(new Identifier("spruce_log", "log"), 17, 1), + BIRCH_LOG(new Identifier("birch_log", "log"), 17, 2), + JUNGLE_LOG(new Identifier("jungle_log", "log"), 17, 3), + ACACIA_LOG(new Identifier("acacia_log", "log2"), 162), + DARK_OAK_LOG(new Identifier("dark_oak_log", "log2"), 162, 1), + STRIPPED_OAK_LOG(new Identifier(null, "stripped_oak_log"), -2), + STRIPPED_SPRUCE_LOG(new Identifier(null, "stripped_spruce_log"), -2), + STRIPPED_BIRCH_LOG(new Identifier(null, "stripped_birch_log"), -2), + STRIPPED_JUNGLE_LOG(new Identifier(null, "stripped_jungle_log"), -2), + STRIPPED_ACACIA_LOG(new Identifier(null, "stripped_acacia_log"), -2), + STRIPPED_DARK_OAK_LOG(new Identifier(null, "stripped_dark_oak_log"), -2), + STRIPPED_OAK_WOOD(new Identifier("stripped_oak_wood", "stripped_oak_bark"), -2), + STRIPPED_SPRUCE_WOOD(new Identifier("stripped_spruce_wood", "stripped_spruce_bark"), -2), + STRIPPED_BIRCH_WOOD(new Identifier("stripped_birch_wood", "stripped_birch_bark"), -2), + STRIPPED_JUNGLE_WOOD(new Identifier("stripped_jungle_wood", "stripped_jungle_bark"), -2), + STRIPPED_ACACIA_WOOD(new Identifier("stripped_acacia_wood", "stripped_acacia_bark"), -2), + STRIPPED_DARK_OAK_WOOD(new Identifier("stripped_dark_oak_wood", "stripped_dark_oak_bark"), -2), + OAK_WOOD(new Identifier("oak_wood", "oak_bark"), -2), + SPRUCE_WOOD(new Identifier("spruce_wood", "spruce_bark"), -2), + BIRCH_WOOD(new Identifier("birch_wood", "birch_bark"), -2), + JUNGLE_WOOD(new Identifier("jungle_wood", "jungle_bark"), -2), + ACACIA_WOOD(new Identifier("acacia_wood", "acacia_bark"), -2), + DARK_OAK_WOOD(new Identifier("dark_oak_wood", "dark_oak_bark"), -2), + OAK_LEAVES(new Identifier("oak_leaves", "leaves"), 18), + SPRUCE_LEAVES(new Identifier("spruce_leaves", "leaves"), 18, 1), + BIRCH_LEAVES(new Identifier("birch_leaves", "leaves"), 18, 2), + JUNGLE_LEAVES(new Identifier("jungle_leaves", "leaves"), 18, 3), + ACACIA_LEAVES(new Identifier("acacia_leaves", "leaves2"), 161), + DARK_OAK_LEAVES(new Identifier("dark_oak_leaves", "leaves2"), 161, 1), + SPONGE(new Identifier("sponge"), 19), + WET_SPONGE(new Identifier("wet_sponge", "sponge"), 19, 1), + GLASS(new Identifier("glass"), 20), + LAPIS_LAZULI_ORE(new Identifier("lapis_ore"), 21), + LAPIS_LAZULI_BLOCK(new Identifier("lapis_block"), 22), + DISPENSER(new Identifier("dispenser"), 23), + SANDSTONE(new Identifier("sandstone"), 24), + CHISELED_SANDSTONE(new Identifier("chiseled_sandstone", "sandstone"), 24, 1), + CUT_SANDSTONE(new Identifier("cut_sandstone", "sandstone"), 24, 2), + NOTE_BLOCK(new Identifier("note_block", "noteblock"), 25), + POWERED_RAIL(new Identifier("powered_rail", "golden_rail"), 27), + DETECTOR_RAIL(new Identifier("detector_rail"), 28), + STICKY_PISTON(new Identifier("sticky_piston"), 29), + COBWEB(new Identifier("cobweb"), 30), + GRASS(new Identifier(null, "grass"), -2), + FERN(new Identifier("fern", "tallgrass"), 31, 2), + DEAD_BUSH(new Identifier("dead_bush", "deadbush"), 32), + SEAGRASS(new Identifier(null, "seagrass"), -2), + SEA_PICKLE(new Identifier(null, "sea_pickle"), -2), + PISTON(new Identifier("piston"), 33), + WHITE_WOOL(new Identifier("white_wool", "wool"), 35), + ORANGE_WOOL(new Identifier("orange_wool", "wool"), 35, 1), + MAGENTA_WOOL(new Identifier("magenta_wool", "wool"), 35, 2), + LIGHT_BLUE_WOOL(new Identifier("light_blue_wool", "wool"), 35, 3), + YELLOW_WOOL(new Identifier("yellow_wool", "wool"), 35, 4), + LIME_WOOL(new Identifier("lime_wool", "wool"), 35, 5), + PINK_WOOL(new Identifier("pink_wool", "wool"), 35, 6), + GRAY_WOOL(new Identifier("gray_wool", "wool"), 35, 7), + LIGHT_GRAY_WOOL(new Identifier("light_gray_wool", "wool"), 35, 8), + CYAN_WOOL(new Identifier("cyan_wool", "wool"), 35, 9), + PURPLE_WOOL(new Identifier("purple_wool", "wool"), 35, 10), + BLUE_WOOL(new Identifier("blue_wool", "wool"), 35, 11), + BROWN_WOOL(new Identifier("brown_wool", "wool"), 35, 12), + GREEN_WOOL(new Identifier("green_wool", "wool"), 35, 13), + RED_WOOL(new Identifier("red_wool", "wool"), 35, 14), + BLACK_WOOL(new Identifier("black_wool", "wool"), 35, 15), + DANDELION(new Identifier("dandelion", "yellow_flower"), 37), + POPPY(new Identifier("poppy", "red_flower"), 38), + BLUE_ORCHID(new Identifier("blue_orchid", "red_flower"), 38, 1), + ALLIUM(new Identifier("allium", "red_flower"), 38, 2), + AZURE_BLUET(new Identifier("azure_bluet", "red_flower"), 38, 3), + RED_TULIP(new Identifier("red_tulip", "red_flower"), 38, 4), + ORANGE_TULIP(new Identifier("orange_tulip", "red_flower"), 38, 5), + WHITE_TULIP(new Identifier("white_tulip", "red_flower"), 38, 6), + PINK_TULIP(new Identifier("pink_tulip", "red_flower"), 38, 7), + OXEYE_DAISY(new Identifier("oxeye_daisy", "red_flower"), 38, 8), + BROWN_MUSHROOM(new Identifier("brown_mushroom"), 39), + RED_MUSHROOM(new Identifier("red_mushroom"), 40), + BLOCK_OF_GOLD(new Identifier("gold_block"), 41), + BLOCK_OF_IRON(new Identifier("iron_block"), 42), + OAK_SLAB(new Identifier("oak_slab", "wooden_slab"), 126), + SPRUCE_SLAB(new Identifier("spruce_slab", "wooden_slab"), 126, 1), + BIRCH_SLAB(new Identifier("birch_slab", "wooden_slab"), 126, 2), + JUNGLE_SLAB(new Identifier("jungle_slab", "wooden_slab"), 126, 3), + ACACIA_SLAB(new Identifier("acacia_slab", "wooden_slab"), 126, 4), + DARK_OAK_SLAB(new Identifier("dark_oak_slab", "wooden_slab"), 126, 5), + STONE_SLAB(new Identifier("stone_slab"), 44, 2), + SANDSTONE_SLAB(new Identifier("sandstone_slab", "stone_slab"), 44, 1), + PETRIFIED_OAK_SLAB(new Identifier(null, "petrified_oak_slab"), -2), + COBBLESTONE_SLAB(new Identifier("cobblestone_slab", "stone_slab"), 44, 3), + BRICK_SLAB(new Identifier("brick_slab", "stone_slab"), 44, 4), + STONE_BRICK_SLAB(new Identifier("stone_brick_slab", "stone_slab"), 44, 5), + NETHER_BRICK_SLAB(new Identifier("nether_brick_slab", "stone_slab"), 44, 6), + QUARTZ_SLAB(new Identifier("quartz_slab", "stone_slab"), 44, 7), + RED_SANDSTONE_SLAB(new Identifier("red_sandstone_slab", "stone_slab2"), 182), + PURPUR_SLAB(new Identifier("purpur_slab"), 205), + PRISMARINE_SLAB(new Identifier(null, "prismarine_slab"), -2), + PRISMARINE_BRICK_SLAB(new Identifier(null, "prismarine_brick_slab"), -2), + DARK_PRISMARINE_SLAB(new Identifier(null, "dark_prismarine_slab"), -2), + SMOOTH_QUARTZ(new Identifier("smooth_quartz", "double_stone_slab"), 43, 7), + SMOOTH_RED_SANDSTONE(new Identifier(null, "smooth_red_sandstone"), -2), + SMOOTH_SANDSTONE(new Identifier(null, "smooth_sandstone"), -2), + SMOOTH_STONE(new Identifier("smooth_stone", "double_stone_slab"), 43, 8), + BRICKS(new Identifier("bricks", "brick_block"), 45), + TNT(new Identifier("tnt"), 46), + BOOKSHELF(new Identifier("bookshelf"), 47), + MOSSY_COBBLESTONE(new Identifier("mossy_cobblestone"), 48), + OBSIDIAN(new Identifier("obsidian"), 49), + TORCH(new Identifier("torch"), 50), + END_ROD(new Identifier("end_rod"), 198), + CHORUS_PLANT(new Identifier("chorus_plant"), 199), + CHORUS_FLOWER(new Identifier("chorus_flower"), 200), + PURPUR_BLOCK(new Identifier("purpur_block"), 201), + PURPUR_PILLAR(new Identifier("purpur_pillar"), 202), + PURPUR_STAIRS(new Identifier("purpur_stairs"), 203), + SPAWNER(new Identifier("spawner", "mob_spawner"), 52), + OAK_STAIRS(new Identifier("oak_stairs"), 53), + CHEST(new Identifier("chest"), 54), + DIAMOND_ORE(new Identifier("diamond_ore"), 56), + BLOCK_OF_DIAMOND(new Identifier("diamond_block"), 57), + CRAFTING_TABLE(new Identifier("crafting_table"), 58), + FARMLAND(new Identifier("farmland", "wheat"), 60), + FURNACE(new Identifier("furnace"), 61), + LADDER(new Identifier("ladder"), 65), + RAIL(new Identifier("rail"), 66), + COBBLESTONE_STAIRS(new Identifier("cobblestone_stairs", "stone_stairs"), 67), + LEVER(new Identifier("lever"), 69), + STONE_PRESSURE_PLATE(new Identifier("stone_pressure_plate"), 70), + OAK_PRESSURE_PLATE(new Identifier("oak_pressure_plate", "wooden_pressure_plate"), 72), + SPRUCE_PRESSURE_PLATE(new Identifier(null, "spruce_pressure_plate"), -2), + BIRCH_PRESSURE_PLATE(new Identifier(null, "birch_pressure_plate"), -2), + JUNGLE_PRESSURE_PLATE(new Identifier(null, "jungle_pressure_plate"), -2), + ACACIA_PRESSURE_PLATE(new Identifier(null, "acacia_pressure_plate"), -2), + DARK_OAK_PRESSURE_PLATE(new Identifier(null, "dark_oak_pressure_plate"), -2), + REDSTONE_ORE(new Identifier("redstone_ore"), 73), + REDSTONE_TORCH(new Identifier("redstone_torch", "lit_redstone_torch"), 76), + STONE_BUTTON(new Identifier("stone_button"), 77), + SNOW(new Identifier("snow", "snow_layer"), 78), + ICE(new Identifier("ice"), 79), + SNOW_BLOCK(new Identifier("snow_block", "snow"), 80), + CACTUS(new Identifier("cactus"), 81), + CLAY(new Identifier("clay"), 337), + JUKEBOX(new Identifier("jukebox"), 84), + OAK_FENCE(new Identifier("oak_fence", "fence"), 85), + SPRUCE_FENCE(new Identifier("spruce_fence"), 188), + BIRCH_FENCE(new Identifier("birch_fence"), 189), + JUNGLE_FENCE(new Identifier("jungle_fence"), 190), + ACACIA_FENCE(new Identifier("acacia_fence"), 192), + DARK_OAK_FENCE(new Identifier("dark_oak_fence"), 191), + PUMPKIN(new Identifier("pumpkin"), 86), + CARVED_PUMPKIN(new Identifier("carved_pumpkin", "pumpkin"), -2), + NETHERRACK(new Identifier("netherrack"), 87), + SOUL_SAND(new Identifier("soul_sand"), 88), + GLOWSTONE(new Identifier("glowstone"), 89), + JACK_OLANTERN(new Identifier("jack_o_lantern", "lit_pumpkin"), 91), + OAK_TRAPDOOR(new Identifier("oak_trapdoor", "trapdoor"), 96), + SPRUCE_TRAPDOOR(new Identifier(null, "spruce_trapdoor"), -2), + BIRCH_TRAPDOOR(new Identifier(null, "birch_trapdoor"), -2), + JUNGLE_TRAPDOOR(new Identifier(null, "jungle_trapdoor"), -2), + ACACIA_TRAPDOOR(new Identifier(null, "acacia_trapdoor"), -2), + DARK_OAK_TRAPDOOR(new Identifier(null, "dark_oak_trapdoor"), -2), + INFESTED_STONE(new Identifier("infested_stone", "monster_egg"), 97), + INFESTED_COBBLESTONE(new Identifier("infested_cobblestone", "monster_egg"), 97, 1), + INFESTED_STONE_BRICKS(new Identifier("infested_stone_bricks", "monster_egg"), 97, 2), + INFESTED_MOSSY_STONE_BRICKS(new Identifier("infested_mossy_stone_bricks", "monster_egg"), 97, 3), + INFESTED_CRACKED_STONE_BRICKS(new Identifier("infested_cracked_stone_bricks", "monster_egg"), 97, 4), + INFESTED_CHISELED_STONE_BRICKS(new Identifier("infested_chiseled_stone_bricks", "monster_egg"), 97, 5), + STONE_BRICKS(new Identifier("stone_bricks", "stonebrick"), 98), + MOSSY_STONE_BRICKS(new Identifier("mossy_stone_bricks", "stonebrick"), 98, 1), + CRACKED_STONE_BRICKS(new Identifier("cracked_stone_bricks", "stonebrick"), 98, 2), + CHISELED_STONE_BRICKS(new Identifier("chiseled_stone_bricks", "stonebrick"), 98, 3), + BROWN_MUSHROOM_BLOCK(new Identifier("brown_mushroom_block"), 99), + RED_MUSHROOM_BLOCK(new Identifier("red_mushroom_block"), 100), + MUSHROOM_STEM(new Identifier("mushroom_stem", "red_mushroom_block"), -2), + IRON_BARS(new Identifier("iron_bars"), 101), + GLASS_PANE(new Identifier("glass_pane"), 102), + MELON(new Identifier("melon", "melon_block"), 103), + VINES(new Identifier("vine"), 106), + OAK_FENCE_GATE(new Identifier("oak_fence_gate", "fence_gate"), 107), + SPRUCE_FENCE_GATE(new Identifier("spruce_fence_gate"), 183), + BIRCH_FENCE_GATE(new Identifier("birch_fence_gate"), 184), + JUNGLE_FENCE_GATE(new Identifier("jungle_fence_gate"), 185), + ACACIA_FENCE_GATE(new Identifier("acacia_fence_gate"), 187), + DARK_OAK_FENCE_GATE(new Identifier("dark_oak_fence_gate"), 186), + BRICK_STAIRS(new Identifier("brick_stairs"), 108), + STONE_BRICK_STAIRS(new Identifier("stone_brick_stairs"), 109), + MYCELIUM(new Identifier("mycelium"), 110), + LILY_PAD(new Identifier("lily_pad", "waterlily"), 111), + NETHER_BRICKS(new Identifier("nether_bricks", "nether_brick"), 112), + NETHER_BRICK_FENCE(new Identifier("nether_brick_fence"), 113), + NETHER_BRICK_STAIRS(new Identifier("nether_brick_stairs"), 114), + ENCHANTING_TABLE(new Identifier("enchanting_table"), 116), + END_PORTAL_FRAME(new Identifier("end_portal_frame"), 120), + END_STONE(new Identifier("end_stone"), 121), + END_STONE_BRICKS(new Identifier("end_stone_bricks", "end_bricks"), 206), + DRAGON_EGG(new Identifier("dragon_egg"), 122), + REDSTONE_LAMP(new Identifier("redstone_lamp"), 123), + SANDSTONE_STAIRS(new Identifier("sandstone_stairs"), 128), + EMERALD_ORE(new Identifier("emerald_ore"), 129), + ENDER_CHEST(new Identifier("ender_chest"), 130), + TRIPWIRE_HOOK(new Identifier("tripwire_hook"), 131), + BLOCK_OF_EMERALD(new Identifier("emerald_block"), 133), + SPRUCE_STAIRS(new Identifier("spruce_stairs"), 134), + BIRCH_STAIRS(new Identifier("birch_stairs"), 135), + JUNGLE_STAIRS(new Identifier("jungle_stairs"), 136), + COMMAND_BLOCK(new Identifier("command_block"), 137), + BEACON(new Identifier("beacon"), 138), + COBBLESTONE_WALL(new Identifier("cobblestone_wall"), 139), + MOSSY_COBBLESTONE_WALL(new Identifier("mossy_cobblestone_wall", "cobblestone_wall"), 139, 1), + OAK_BUTTON(new Identifier("oak_button", "wooden_button"), 143), + SPRUCE_BUTTON(new Identifier(null, "spruce_button"), -2), + BIRCH_BUTTON(new Identifier(null, "birch_button"), -2), + JUNGLE_BUTTON(new Identifier(null, "jungle_button"), -2), + ACACIA_BUTTON(new Identifier(null, "acacia_button"), -2), + DARK_OAK_BUTTON(new Identifier(null, "dark_oak_button"), -2), + ANVIL(new Identifier("anvil"), 145), + CHIPPED_ANVIL(new Identifier("chipped_anvil", "anvil"), 145, 1), + DAMAGED_ANVIL(new Identifier("damaged_anvil", "anvil"), 145, 2), + TRAPPED_CHEST(new Identifier("trapped_chest"), 146), + LIGHT_WEIGHTED_PRESSURE_PLATE(new Identifier("light_weighted_pressure_plate"), 147), + HEAVY_WEIGHTED_PRESSURE_PLATE(new Identifier("heavy_weighted_pressure_plate"), 148), + DAYLIGHT_DETECTOR(new Identifier("daylight_detector"), 151), + BLOCK_OF_REDSTONE(new Identifier("redstone_block"), 152), + NETHER_QUARTZ_ORE(new Identifier("nether_quartz_ore", "quartz_ore"), 153), + HOPPER(new Identifier("hopper"), 154), + CHISELED_QUARTZ_BLOCK(new Identifier("chiseled_quartz_block", "quartz"), 155, 1), + BLOCK_OF_QUARTZ(new Identifier("quartz_block", "quartz"), 155), + QUARTZ_PILLAR(new Identifier("quartz_pillar", "quartz"), 155, 2), + QUARTZ_STAIRS(new Identifier("quartz_stairs"), 156), + ACTIVATOR_RAIL(new Identifier("activator_rail"), 157), + DROPPER(new Identifier("dropper"), 158), + WHITE_TERRACOTTA(new Identifier("white_terracotta", "stained_hardened_clay"), 159), + ORANGE_TERRACOTTA(new Identifier("orange_terracotta", "stained_hardened_clay"), 159, 1), + MAGENTA_TERRACOTTA(new Identifier("magenta_terracotta", "stained_hardened_clay"), 159, 2), + LIGHT_BLUE_TERRACOTTA(new Identifier("light_blue_terracotta", "stained_hardened_clay"), 159, 3), + YELLOW_TERRACOTTA(new Identifier("yellow_terracotta", "stained_hardened_clay"), 159, 4), + LIME_TERRACOTTA(new Identifier("lime_terracotta", "stained_hardened_clay"), 159, 5), + PINK_TERRACOTTA(new Identifier("pink_terracotta", "stained_hardened_clay"), 159, 6), + GRAY_TERRACOTTA(new Identifier("gray_terracotta", "stained_hardened_clay"), 159, 7), + LIGHT_GRAY_TERRACOTTA(new Identifier("light_gray_terracotta", "stained_hardened_clay"), 159, 8), + CYAN_TERRACOTTA(new Identifier("cyan_terracotta", "stained_hardened_clay"), 159, 9), + PURPLE_TERRACOTTA(new Identifier("purple_terracotta", "stained_hardened_clay"), 159, 10), + BLUE_TERRACOTTA(new Identifier("blue_terracotta", "stained_hardened_clay"), 159, 11), + BROWN_TERRACOTTA(new Identifier("brown_terracotta", "stained_hardened_clay"), 159, 12), + GREEN_TERRACOTTA(new Identifier("green_terracotta", "stained_hardened_clay"), 159, 13), + RED_TERRACOTTA(new Identifier("red_terracotta", "stained_hardened_clay"), 159, 14), + BLACK_TERRACOTTA(new Identifier("black_terracotta", "stained_hardened_clay"), 159, 15), + BARRIER(new Identifier("barrier"), 166), + IRON_TRAPDOOR(new Identifier("iron_trapdoor"), 167), + HAY_BALE(new Identifier("hay_block", "hay_bale"), 170), + WHITE_CARPET(new Identifier("white_carpet", "carpet"), 171), + ORANGE_CARPET(new Identifier("orange_carpet", "carpet"), 171, 1), + MAGENTA_CARPET(new Identifier("magenta_carpet", "carpet"), 171, 2), + LIGHT_BLUE_CARPET(new Identifier("light_blue_carpet", "carpet"), 171, 3), + YELLOW_CARPET(new Identifier("yellow_carpet", "carpet"), 171, 4), + LIME_CARPET(new Identifier("lime_carpet", "carpet"), 171, 5), + PINK_CARPET(new Identifier("pink_carpet", "carpet"), 171, 6), + GRAY_CARPET(new Identifier("gray_carpet", "carpet"), 171, 7), + LIGHT_GRAY_CARPET(new Identifier("light_gray_carpet", "carpet"), 171, 8), + CYAN_CARPET(new Identifier("cyan_carpet", "carpet"), 171, 9), + PURPLE_CARPET(new Identifier("purple_carpet", "carpet"), 171, 10), + BLUE_CARPET(new Identifier("blue_carpet", "carpet"), 171, 11), + BROWN_CARPET(new Identifier("brown_carpet", "carpet"), 171, 12), + GREEN_CARPET(new Identifier("green_carpet", "carpet"), 171, 13), + RED_CARPET(new Identifier("red_carpet", "carpet"), 171, 14), + BLACK_CARPET(new Identifier("black_carpet", "carpet"), 171, 15), + TERRACOTTA(new Identifier("terracotta", "hardened_clay"), 172), + BLOCK_OF_COAL(new Identifier("coal_block"), 173), + PACKED_ICE(new Identifier("packed_ice"), 174), + ACACIA_STAIRS(new Identifier("acacia_stairs"), 163), + DARK_OAK_STAIRS(new Identifier("dark_oak_stairs"), 164), + SLIME_BLOCK(new Identifier("slime_block", "slime"), 165), + GRASS_PATH(new Identifier("grass_path"), 208), + SUNFLOWER(new Identifier("sunflower", "double_plant"), 175), + LILAC(new Identifier("lilac", "double_plant"), 175, 1), + ROSE_BUSH(new Identifier("rose_bush", "double_plant"), 175, 4), + PEONY(new Identifier("peony", "double_plant"), 175, 5), + TALL_GRASS(new Identifier("tall_grass", "double_plant"), 175, 2), + LARGE_FERN(new Identifier("large_fern", "double_plant"), 175, 3), + WHITE_STAINED_GLASS(new Identifier("white_stained_glass", "stained_glass"), 95), + ORANGE_STAINED_GLASS(new Identifier("orange_stained_glass", "stained_glass"), 95, 1), + MAGENTA_STAINED_GLASS(new Identifier("magenta_stained_glass", "stained_glass"), 95, 2), + LIGHT_BLUE_STAINED_GLASS(new Identifier("light_blue_stained_glass", "stained_glass"), 95, 3), + YELLOW_STAINED_GLASS(new Identifier("yellow_stained_glass", "stained_glass"), 95, 4), + LIME_STAINED_GLASS(new Identifier("lime_stained_glass", "stained_glass"), 95, 5), + PINK_STAINED_GLASS(new Identifier("pink_stained_glass", "stained_glass"), 95, 6), + GRAY_STAINED_GLASS(new Identifier("gray_stained_glass", "stained_glass"), 95, 7), + LIGHT_GRAY_STAINED_GLASS(new Identifier("light_gray_stained_glass", "stained_glass"), 95, 8), + CYAN_STAINED_GLASS(new Identifier("cyan_stained_glass", "stained_glass"), 95, 9), + PURPLE_STAINED_GLASS(new Identifier("purple_stained_glass", "stained_glass"), 95, 10), + BLUE_STAINED_GLASS(new Identifier("blue_stained_glass", "stained_glass"), 95, 11), + BROWN_STAINED_GLASS(new Identifier("brown_stained_glass", "stained_glass"), 95, 12), + GREEN_STAINED_GLASS(new Identifier("green_stained_glass", "stained_glass"), 95, 13), + RED_STAINED_GLASS(new Identifier("red_stained_glass", "stained_glass"), 95, 14), + BLACK_STAINED_GLASS(new Identifier("black_stained_glass", "stained_glass"), 95, 15), + WHITE_STAINED_GLASS_PANE(new Identifier("white_stained_glass_pane", "stained_glass_pane"), 160), + ORANGE_STAINED_GLASS_PANE(new Identifier("orange_stained_glass_pane", "stained_glass_pane"), 160, 1), + MAGENTA_STAINED_GLASS_PANE(new Identifier("magenta_stained_glass_pane", "stained_glass_pane"), 160, 2), + LIGHT_BLUE_STAINED_GLASS_PANE(new Identifier("light_blue_stained_glass_pane", "stained_glass_pane"), 160, 3), + YELLOW_STAINED_GLASS_PANE(new Identifier("yellow_stained_glass_pane", "stained_glass_pane"), 160, 4), + LIME_STAINED_GLASS_PANE(new Identifier("lime_stained_glass_pane", "stained_glass_pane"), 160, 5), + PINK_STAINED_GLASS_PANE(new Identifier("pink_stained_glass_pane", "stained_glass_pane"), 160, 6), + GRAY_STAINED_GLASS_PANE(new Identifier("gray_stained_glass_pane", "stained_glass_pane"), 160, 7), + LIGHT_GRAY_STAINED_GLASS_PANE(new Identifier("light_gray_stained_glass_pane", "stained_glass_pane"), 160, 8), + CYAN_STAINED_GLASS_PANE(new Identifier("cyan_stained_glass_pane", "stained_glass_pane"), 160, 9), + PURPLE_STAINED_GLASS_PANE(new Identifier("purple_stained_glass_pane", "stained_glass_pane"), 160, 10), + BLUE_STAINED_GLASS_PANE(new Identifier("blue_stained_glass_pane", "stained_glass_pane"), 160, 11), + BROWN_STAINED_GLASS_PANE(new Identifier("brown_stained_glass_pane", "stained_glass_pane"), 160, 12), + GREEN_STAINED_GLASS_PANE(new Identifier("green_stained_glass_pane", "stained_glass_pane"), 160, 13), + RED_STAINED_GLASS_PANE(new Identifier("red_stained_glass_pane", "stained_glass_pane"), 160, 14), + BLACK_STAINED_GLASS_PANE(new Identifier("black_stained_glass_pane", "stained_glass_pane"), 160, 15), + PRISMARINE(new Identifier("prismarine"), 168), + PRISMARINE_BRICKS(new Identifier("prismarine_bricks", "prismarine"), 168, 1), + DARK_PRISMARINE(new Identifier("dark_prismarine", "prismarine"), 168, 2), + PRISMARINE_STAIRS(new Identifier(null, "prismarine_stairs"), -2), + PRISMARINE_BRICK_STAIRS(new Identifier(null, "prismarine_brick_stairs"), -2), + DARK_PRISMARINE_STAIRS(new Identifier(null, "dark_prismarine_stairs"), -2), + SEA_LANTERN(new Identifier("sea_lantern"), 169), + RED_SANDSTONE(new Identifier("red_sandstone"), 179), + CHISELED_RED_SANDSTONE(new Identifier("chiseled_red_sandstone", "red_sandstone"), 179, 1), + CUT_RED_SANDSTONE(new Identifier("cut_red_sandstone", "red_sandstone"), 179, 2), + RED_SANDSTONE_STAIRS(new Identifier("red_sandstone_stairs"), 180), + REPEATING_COMMAND_BLOCK(new Identifier("repeating_command_block"), 210), + CHAIN_COMMAND_BLOCK(new Identifier("chain_command_block"), 211), + MAGMA_BLOCK(new Identifier("magma_block", "magma"), 213), + NETHER_WART_BLOCK(new Identifier("nether_wart_block"), 214), + RED_NETHER_BRICKS(new Identifier("red_nether_bricks", "red_nether_brick"), 215), + BONE_BLOCK(new Identifier("bone_block"), 216), + STRUCTURE_VOID(new Identifier("structure_void"), 217), + OBSERVER(new Identifier("observer"), 218), + SHULKER_BOX(new Identifier(null, "shulker_box"), -2), + WHITE_SHULKER_BOX(new Identifier("white_shulker_box"), 219), + ORANGE_SHULKER_BOX(new Identifier("orange_shulker_box"), 220), + MAGENTA_SHULKER_BOX(new Identifier("magenta_shulker_box"), 221), + LIGHT_BLUE_SHULKER_BOX(new Identifier("light_blue_shulker_box"), 222), + YELLOW_SHULKER_BOX(new Identifier("yellow_shulker_box"), 223), + LIME_SHULKER_BOX(new Identifier("lime_shulker_box"), 224), + PINK_SHULKER_BOX(new Identifier("pink_shulker_box"), 225), + GRAY_SHULKER_BOX(new Identifier("gray_shulker_box"), 226), + LIGHT_GRAY_SHULKER_BOX(new Identifier("light_gray_shulker_box"), 227), + CYAN_SHULKER_BOX(new Identifier("cyan_shulker_box"), 228), + PURPLE_SHULKER_BOX(new Identifier("purple_shulker_box"), 229), + BLUE_SHULKER_BOX(new Identifier("blue_shulker_box"), 230), + BROWN_SHULKER_BOX(new Identifier("brown_shulker_box"), 231), + GREEN_SHULKER_BOX(new Identifier("green_shulker_box"), 232), + RED_SHULKER_BOX(new Identifier("red_shulker_box"), 233), + BLACK_SHULKER_BOX(new Identifier("black_shulker_box"), 234), + WHITE_GLAZED_TERRACOTTA(new Identifier("white_glazed_terracotta"), 235), + ORANGE_GLAZED_TERRACOTTA(new Identifier("orange_glazed_terracotta"), 236), + MAGENTA_GLAZED_TERRACOTTA(new Identifier("magenta_glazed_terracotta"), 237), + LIGHT_BLUE_GLAZED_TERRACOTTA(new Identifier("light_blue_glazed_terracotta"), 238), + YELLOW_GLAZED_TERRACOTTA(new Identifier("yellow_glazed_terracotta"), 239), + LIME_GLAZED_TERRACOTTA(new Identifier("lime_glazed_terracotta"), 240), + PINK_GLAZED_TERRACOTTA(new Identifier("pink_glazed_terracotta"), 241), + GRAY_GLAZED_TERRACOTTA(new Identifier("gray_glazed_terracotta"), 242), + LIGHT_GRAY_GLAZED_TERRACOTTA(new Identifier("light_gray_glazed_terracotta"), 243), + CYAN_GLAZED_TERRACOTTA(new Identifier("cyan_glazed_terracotta"), 244), + PURPLE_GLAZED_TERRACOTTA(new Identifier("purple_glazed_terracotta"), 245), + BLUE_GLAZED_TERRACOTTA(new Identifier("blue_glazed_terracotta"), 246), + BROWN_GLAZED_TERRACOTTA(new Identifier("brown_glazed_terracotta"), 247), + GREEN_GLAZED_TERRACOTTA(new Identifier("green_glazed_terracotta"), 248), + RED_GLAZED_TERRACOTTA(new Identifier("red_glazed_terracotta"), 249), + BLACK_GLAZED_TERRACOTTA(new Identifier("black_glazed_terracotta"), 250), + WHITE_CONCRETE(new Identifier("white_concrete", "concrete"), 251), + ORANGE_CONCRETE(new Identifier("orange_concrete", "concrete"), 251, 1), + MAGENTA_CONCRETE(new Identifier("magenta_concrete", "concrete"), 251, 2), + LIGHT_BLUE_CONCRETE(new Identifier("light_blue_concrete", "concrete"), 251, 3), + YELLOW_CONCRETE(new Identifier("yellow_concrete", "concrete"), 251, 4), + LIME_CONCRETE(new Identifier("lime_concrete", "concrete"), 251, 5), + PINK_CONCRETE(new Identifier("pink_concrete", "concrete"), 251, 6), + GRAY_CONCRETE(new Identifier("gray_concrete", "concrete"), 251, 7), + LIGHT_GRAY_CONCRETE(new Identifier("light_gray_concrete", "concrete"), 251, 8), + CYAN_CONCRETE(new Identifier("cyan_concrete", "concrete"), 251, 9), + PURPLE_CONCRETE(new Identifier("purple_concrete", "concrete"), 251, 10), + BLUE_CONCRETE(new Identifier("blue_concrete", "concrete"), 251, 11), + BROWN_CONCRETE(new Identifier("brown_concrete", "concrete"), 251, 12), + GREEN_CONCRETE(new Identifier("green_concrete", "concrete"), 251, 13), + RED_CONCRETE(new Identifier("red_concrete", "concrete"), 251, 14), + BLACK_CONCRETE(new Identifier("black_concrete", "concrete"), 251, 15), + WHITE_CONCRETE_POWDER(new Identifier("white_concrete_powder", "concrete_powder"), 252), + ORANGE_CONCRETE_POWDER(new Identifier("orange_concrete_powder", "concrete_powder"), 252, 1), + MAGENTA_CONCRETE_POWDER(new Identifier("magenta_concrete_powder", "concrete_powder"), 252, 2), + LIGHT_BLUE_CONCRETE_POWDER(new Identifier("light_blue_concrete_powder", "concrete_powder"), 252, 3), + YELLOW_CONCRETE_POWDER(new Identifier("yellow_concrete_powder", "concrete_powder"), 252, 4), + LIME_CONCRETE_POWDER(new Identifier("lime_concrete_powder", "concrete_powder"), 252, 5), + PINK_CONCRETE_POWDER(new Identifier("pink_concrete_powder", "concrete_powder"), 252, 6), + GRAY_CONCRETE_POWDER(new Identifier("gray_concrete_powder", "concrete_powder"), 252, 7), + LIGHT_GRAY_CONCRETE_POWDER(new Identifier("light_gray_concrete_powder", "concrete_powder"), 252, 8), + CYAN_CONCRETE_POWDER(new Identifier("cyan_concrete_powder", "concrete_powder"), 252, 9), + PURPLE_CONCRETE_POWDER(new Identifier("purple_concrete_powder", "concrete_powder"), 252, 10), + BLUE_CONCRETE_POWDER(new Identifier("blue_concrete_powder", "concrete_powder"), 252, 11), + BROWN_CONCRETE_POWDER(new Identifier("brown_concrete_powder", "concrete_powder"), 252, 12), + GREEN_CONCRETE_POWDER(new Identifier("green_concrete_powder", "concrete_powder"), 252, 13), + RED_CONCRETE_POWDER(new Identifier("red_concrete_powder", "concrete_powder"), 252, 14), + BLACK_CONCRETE_POWDER(new Identifier("black_concrete_powder", "concrete_powder"), 252, 15), + TURTLE_EGG(new Identifier(null, "turtle_egg"), -2), + DEAD_TUBE_CORAL_BLOCK(new Identifier(null, "dead_tube_coral_block"), -2), + DEAD_BRAIN_CORAL_BLOCK(new Identifier(null, "dead_brain_coral_block"), -2), + DEAD_BUBBLE_CORAL_BLOCK(new Identifier(null, "dead_bubble_coral_block"), -2), + DEAD_FIRE_CORAL_BLOCK(new Identifier(null, "dead_fire_coral_block"), -2), + DEAD_HORN_CORAL_BLOCK(new Identifier(null, "dead_horn_coral_block"), -2), + TUBE_CORAL_BLOCK(new Identifier(null, "tube_coral_block"), -2), + BRAIN_CORAL_BLOCK(new Identifier(null, "brain_coral_block"), -2), + BUBBLE_CORAL_BLOCK(new Identifier(null, "bubble_coral_block"), -2), + FIRE_CORAL_BLOCK(new Identifier(null, "fire_coral_block"), -2), + HORN_CORAL_BLOCK(new Identifier(null, "horn_coral_block"), -2), + TUBE_CORAL(new Identifier(null, "tube_coral"), -2), + BRAIN_CORAL(new Identifier(null, "brain_coral"), -2), + BUBBLE_CORAL(new Identifier(null, "bubble_coral"), -2), + FIRE_CORAL(new Identifier(null, "fire_coral"), -2), + HORN_CORAL(new Identifier(null, "horn_coral"), -2), + DEAD_BRAIN_CORAL(new Identifier(null, "dead_brain_coral"), -2), + DEAD_BUBBLE_CORAL(new Identifier(null, "dead_bubble_coral"), -2), + DEAD_FIRE_CORAL(new Identifier(null, "dead_fire_coral"), -2), + DEAD_HORN_CORAL(new Identifier(null, "dead_horn_coral"), -2), + DEAD_TUBE_CORAL(new Identifier(null, "dead_tube_coral"), -2), + TUBE_CORAL_FAN(new Identifier(null, "tube_coral_fan"), -2), + BRAIN_CORAL_FAN(new Identifier(null, "brain_coral_fan"), -2), + BUBBLE_CORAL_FAN(new Identifier(null, "bubble_coral_fan"), -2), + FIRE_CORAL_FAN(new Identifier(null, "fire_coral_fan"), -2), + HORN_CORAL_FAN(new Identifier(null, "horn_coral_fan"), -2), + DEAD_TUBE_CORAL_FAN(new Identifier(null, "dead_tube_coral_fan"), -2), + DEAD_BRAIN_CORAL_FAN(new Identifier(null, "dead_brain_coral_fan"), -2), + DEAD_BUBBLE_CORAL_FAN(new Identifier(null, "dead_bubble_coral_fan"), -2), + DEAD_FIRE_CORAL_FAN(new Identifier(null, "dead_fire_coral_fan"), -2), + DEAD_HORN_CORAL_FAN(new Identifier(null, "dead_horn_coral_fan"), -2), + BLUE_ICE(new Identifier(null, "blue_ice"), -2), + CONDUIT(new Identifier(null, "conduit"), -2), + IRON_DOOR(new Identifier("iron_door"), 330), + OAK_DOOR(new Identifier("oak_door", "wooden_door"), 324), + SPRUCE_DOOR(new Identifier("spruce_door"), 427), + BIRCH_DOOR(new Identifier("birch_door"), 428), + JUNGLE_DOOR(new Identifier("jungle_door"), 429), + ACACIA_DOOR(new Identifier("acacia_door"), 430), + DARK_OAK_DOOR(new Identifier("dark_oak_door"), 431), + REDSTONE_REPEATER(new Identifier("repeater"), 356), + REDSTONE_COMPARATOR(new Identifier("comparator"), 404), + STRUCTURE_BLOCK(new Identifier("structure_block"), 255), + TURTLE_SHELL(new Identifier(null, "turtle_helmet"), -2), + SCUTE(new Identifier(null, "scute"), -2), + IRON_SHOVEL(new Identifier("iron_shovel"), 256), + IRON_PICKAXE(new Identifier("iron_pickaxe"), 257), + IRON_AXE(new Identifier("iron_axe"), 258), + FLINT_AND_STEEL(new Identifier("flint_and_steel"), 259), + APPLE(new Identifier("apple"), 260), + BOW(new Identifier("bow"), 261), + ARROW(new Identifier("arrow"), 262), + COAL(new Identifier("coal"), 263), + CHARCOAL(new Identifier("charcoal"), 263, 1), + DIAMOND(new Identifier("diamond"), 264), + IRON_INGOT(new Identifier("iron_ingot"), 265), + GOLD_INGOT(new Identifier("gold_ingot"), 266), + IRON_SWORD(new Identifier("iron_sword"), 267), + WOODEN_SWORD(new Identifier("wooden_sword"), 268), + WOODEN_SHOVEL(new Identifier("wooden_shovel"), 269), + WOODEN_PICKAXE(new Identifier("wooden_pickaxe"), 270), + WOODEN_AXE(new Identifier("wooden_axe"), 271), + STONE_SWORD(new Identifier("stone_sword"), 272), + STONE_SHOVEL(new Identifier("stone_shovel"), 273), + STONE_PICKAXE(new Identifier("stone_pickaxe"), 274), + STONE_AXE(new Identifier("stone_axe"), 275), + DIAMOND_SWORD(new Identifier("diamond_sword"), 276), + DIAMOND_SHOVEL(new Identifier("diamond_shovel"), 277), + DIAMOND_PICKAXE(new Identifier("diamond_pickaxe"), 278), + DIAMOND_AXE(new Identifier("diamond_axe"), 279), + STICK(new Identifier("stick"), 280), + BOWL(new Identifier("bowl"), 281), + MUSHROOM_STEW(new Identifier("mushroom_stew"), 282), + GOLDEN_SWORD(new Identifier("golden_sword"), 283), + GOLDEN_SHOVEL(new Identifier("golden_shovel"), 284), + GOLDEN_PICKAXE(new Identifier("golden_pickaxe"), 285), + GOLDEN_AXE(new Identifier("golden_axe"), 286), + STRING(new Identifier("string"), 287), + FEATHER(new Identifier("feather"), 288), + GUNPOWDER(new Identifier("gunpowder"), 289), + WOODEN_HOE(new Identifier("wooden_hoe"), 290), + STONE_HOE(new Identifier("stone_hoe"), 291), + IRON_HOE(new Identifier("iron_hoe"), 292), + DIAMOND_HOE(new Identifier("diamond_hoe"), 293), + GOLDEN_HOE(new Identifier("golden_hoe"), 294), + WHEAT_SEEDS(new Identifier("wheat_seeds"), 295), + WHEAT(new Identifier("wheat"), 296), + BREAD(new Identifier("bread"), 297), + LEATHER_CAP(new Identifier("leather_helmet"), 298), + LEATHER_TUNIC(new Identifier("leather_chestplate"), 299), + LEATHER_PANTS(new Identifier("leather_leggings"), 300), + LEATHER_BOOTS(new Identifier("leather_boots"), 301), + CHAINMAIL_HELMET(new Identifier("chainmail_helmet"), 302), + CHAINMAIL_CHESTPLATE(new Identifier("chainmail_chestplate"), 303), + CHAINMAIL_LEGGINGS(new Identifier("chainmail_leggings"), 304), + CHAINMAIL_BOOTS(new Identifier("chainmail_boots"), 305), + IRON_HELMET(new Identifier("iron_helmet"), 306), + IRON_CHESTPLATE(new Identifier("iron_chestplate"), 307), + IRON_LEGGINGS(new Identifier("iron_leggings"), 308), + IRON_BOOTS(new Identifier("iron_boots"), 309), + DIAMOND_HELMET(new Identifier("diamond_helmet"), 310), + DIAMOND_CHESTPLATE(new Identifier("diamond_chestplate"), 311), + DIAMOND_LEGGINGS(new Identifier("diamond_leggings"), 312), + DIAMOND_BOOTS(new Identifier("diamond_boots"), 313), + GOLDEN_HELMET(new Identifier("golden_helmet"), 314), + GOLDEN_CHESTPLATE(new Identifier("golden_chestplate"), 315), + GOLDEN_LEGGINGS(new Identifier("golden_leggings"), 316), + GOLDEN_BOOTS(new Identifier("golden_boots"), 317), + FLINT(new Identifier("flint"), 318), + RAW_PORKCHOP(new Identifier("porkchop"), 319), + COOKED_PORKCHOP(new Identifier("cooked_porkchop"), 320), + PAINTING(new Identifier("painting"), 321), + GOLDEN_APPLE(new Identifier("golden_apple"), 322), + ENCHANTED_GOLDEN_APPLE(new Identifier("enchanted_golden_apple", "golden_apple"), 322, 1), + SIGN(new Identifier("sign"), 323), + BUCKET(new Identifier("bucket"), 325), + WATER_BUCKET(new Identifier("water_bucket"), 326), + LAVA_BUCKET(new Identifier("lava_bucket"), 327), + MINECART(new Identifier("minecart"), 328), + SADDLE(new Identifier("saddle"), 329), + REDSTONE(new Identifier("redstone"), 331), + SNOWBALL(new Identifier("snowball"), 332), + OAK_BOAT(new Identifier("oak_boat", "boat"), 333), + LEATHER(new Identifier("leather"), 334), + MILK_BUCKET(new Identifier("milk_bucket"), 335), + BUCKET_OF_PUFFERFISH(new Identifier(null, "pufferfish_bucket"), -2), + BUCKET_OF_SALMON(new Identifier(null, "salmon_bucket"), -2), + BUCKET_OF_COD(new Identifier(null, "cod_bucket"), -2), + BUCKET_OF_TROPICAL_FISH(new Identifier("tropical_fish_bucket", "clownfish_bucket"), -2), + BRICK(new Identifier("brick"), 336), + CLAY_BALL(new Identifier("clay_ball"), 337), + SUGAR_CANE(new Identifier("sugar_cane", "reeds"), 338), + KELP(new Identifier(null, "kelp"), -2), + DRIED_KELP_BLOCK(new Identifier(null, "dried_kelp_block"), -2), + PAPER(new Identifier("paper"), 339), + BOOK(new Identifier("book"), 340), + SLIMEBALL(new Identifier("slime_ball"), 341), + MINECART_WITH_CHEST(new Identifier("chest_minecart"), 342), + MINECART_WITH_FURNACE(new Identifier("furnace_minecart"), 343), + EGG(new Identifier("egg"), 344), + COMPASS(new Identifier("compass"), 345), + FISHING_ROD(new Identifier("fishing_rod"), 346), + CLOCK(new Identifier("clock"), 347), + GLOWSTONE_DUST(new Identifier("glowstone_dust"), 348), + RAW_COD(new Identifier("cod", "fish"), 349), + RAW_SALMON(new Identifier("salmon", "fish"), 349, 1), + TROPICAL_FISH(new Identifier("tropical_fish", "fish"), 349, 2), + PUFFERFISH(new Identifier("pufferfish", "fish"), 349, 3), + COOKED_COD(new Identifier("cooked_cod", "cooked_fish"), 350), + COOKED_SALMON(new Identifier("cooked_salmon", "cooked_fish"), 350, 1), + INK_SAC(new Identifier("ink_sac", "dye"), 351), + ROSE_RED(new Identifier("rose_red", "dye"), 351, 1), + CACTUS_GREEN(new Identifier("cactus_green", "dye"), 351, 2), + COCOA_BEANS(new Identifier("cocoa_beans", "dye"), 351, 3), + LAPIS_LAZULI(new Identifier("lapis_lazuli", "dye"), 351, 4), + PURPLE_DYE(new Identifier("purple_dye", "dye"), 351, 5), + CYAN_DYE(new Identifier("cyan_dye", "dye"), 351, 6), + LIGHT_GRAY_DYE(new Identifier("light_gray_dye", "dye"), 351, 7), + GRAY_DYE(new Identifier("gray_dye", "dye"), 351, 8), + PINK_DYE(new Identifier("pink_dye", "dye"), 351, 9), + LIME_DYE(new Identifier("lime_dye", "dye"), 351, 10), + DANDELION_YELLOW(new Identifier("dandelion_yellow", "dye"), 351, 11), + LIGHT_BLUE_DYE(new Identifier("light_blue_dye", "dye"), 351, 12), + MAGENTA_DYE(new Identifier("magenta_dye", "dye"), 351, 13), + ORANGE_DYE(new Identifier("orange_dye", "dye"), 351, 14), + BONE_MEAL(new Identifier("bone_meal", "dye"), 351, 15), + BONE(new Identifier("bone"), 352), + SUGAR(new Identifier("sugar"), 353), + CAKE(new Identifier("cake"), 354), + WHITE_BED(new Identifier("white_bed", "bed"), 355), + ORANGE_BED(new Identifier("orange_bed", "bed"), 355, 1), + MAGENTA_BED(new Identifier("magenta_bed", "bed"), 355, 2), + LIGHT_BLUE_BED(new Identifier("light_blue_bed", "bed"), 355, 3), + YELLOW_BED(new Identifier("yellow_bed", "bed"), 355, 4), + LIME_BED(new Identifier("lime_bed", "bed"), 355, 5), + PINK_BED(new Identifier("pink_bed", "bed"), 355, 6), + GRAY_BED(new Identifier("gray_bed", "bed"), 355, 7), + LIGHT_GRAY_BED(new Identifier("light_gray_bed", "bed"), 355, 8), + CYAN_BED(new Identifier("cyan_bed", "bed"), 355, 9), + PURPLE_BED(new Identifier("purple_bed", "bed"), 355, 10), + BLUE_BED(new Identifier("blue_bed", "bed"), 355, 11), + BROWN_BED(new Identifier("brown_bed", "bed"), 355, 12), + GREEN_BED(new Identifier("green_bed", "bed"), 355, 13), + RED_BED(new Identifier("red_bed", "bed"), 355, 14), + BLACK_BED(new Identifier("black_bed", "bed"), 355, 15), + COOKIE(new Identifier("cookie"), 357), + MAP(new Identifier("filled_map"), 358), + SHEARS(new Identifier("shears"), 359), + MELON_SLICE(new Identifier("melon_slice", "melon"), 360), + DRIED_KELP(new Identifier(null, "dried_kelp"), -2), + PUMPKIN_SEEDS(new Identifier("pumpkin_seeds"), 361), + MELON_SEEDS(new Identifier("melon_seeds"), 362), + RAW_BEEF(new Identifier("beef"), 363), + STEAK(new Identifier("cooked_beef"), 364), + RAW_CHICKEN(new Identifier("chicken"), 365), + COOKED_CHICKEN(new Identifier("cooked_chicken"), 366), + ROTTEN_FLESH(new Identifier("rotten_flesh"), 367), + ENDER_PEARL(new Identifier("ender_pearl"), 368), + BLAZE_ROD(new Identifier("blaze_rod"), 369), + GHAST_TEAR(new Identifier("ghast_tear"), 370), + GOLD_NUGGET(new Identifier("gold_nugget"), 371), + NETHER_WART(new Identifier("nether_wart"), 372), + POTION(new Identifier("potion", "potion"), 373), + SPLASH_POTION(new Identifier("splash_potion"), 438), + LINGERING_POTION(new Identifier("lingering_potion"), 441), + WATER_BOTTLE(new Identifier(null, "potion{Potion"), -2), + UNCRAFTABLE_POTION(new Identifier(null, "potion"), -2), + AWKWARD_POTION(new Identifier("potion{Potion", "potion"), 373, 16), + THICK_POTION(new Identifier("potion{Potion", "potion"), 373, 32), + MUNDANE_POTION(new Identifier("potion{Potion", "potion"), 373, 64), + GLASS_BOTTLE(new Identifier("glass_bottle"), 374), + SPIDER_EYE(new Identifier("spider_eye"), 375), + FERMENTED_SPIDER_EYE(new Identifier("fermented_spider_eye"), 376), + BLAZE_POWDER(new Identifier("blaze_powder"), 377), + MAGMA_CREAM(new Identifier("magma_cream"), 378), + BREWING_STAND(new Identifier("brewing_stand"), 379), + CAULDRON(new Identifier("cauldron"), 380), + EYE_OF_ENDER(new Identifier("ender_eye"), 381), + GLISTERING_MELON_SLICE(new Identifier("glistering_melon_slice", "speckled_melon"), 382), + BAT_SPAWN_EGG(new Identifier("bat_spawn_egg", "spawn_egg"), 383, 65), + BLAZE_SPAWN_EGG(new Identifier("blaze_spawn_egg", "spawn_egg"), 383, 61), + CAVE_SPIDER_SPAWN_EGG(new Identifier("cave_spider_spawn_egg", "spawn_egg"), 383, 59), + CHICKEN_SPAWN_EGG(new Identifier("chicken_spawn_egg", "spawn_egg"), 383, 93), + COD_SPAWN_EGG(new Identifier(null, "cod_spawn_egg"), -2), + COW_SPAWN_EGG(new Identifier("cow_spawn_egg", "spawn_egg"), 383, 92), + CREEPER_SPAWN_EGG(new Identifier("creeper_spawn_egg", "spawn_egg"), 383, 50), + DOLPHIN_SPAWN_EGG(new Identifier(null, "dolphin_spawn_egg"), -2), + DONKEY_SPAWN_EGG(new Identifier("donkey_spawn_egg", "spawn_egg"), 383, 31), + DROWNED_SPAWN_EGG(new Identifier(null, "drowned_spawn_egg"), -2), + ELDER_GUARDIAN_SPAWN_EGG(new Identifier("elder_guardian_spawn_egg", "spawn_egg"), 383, 4), + ENDERMAN_SPAWN_EGG(new Identifier("enderman_spawn_egg", "spawn_egg"), 383, 58), + ENDERMITE_SPAWN_EGG(new Identifier("endermite_spawn_egg", "spawn_egg"), 383, 67), + EVOKER_SPAWN_EGG(new Identifier("evoker_spawn_egg", "spawn_egg"), 383, 34), + GHAST_SPAWN_EGG(new Identifier("ghast_spawn_egg", "spawn_egg"), 383, 56), + GUARDIAN_SPAWN_EGG(new Identifier("guardian_spawn_egg", "spawn_egg"), 383, 68), + HORSE_SPAWN_EGG(new Identifier("horse_spawn_egg", "spawn_egg"), 383, 100), + HUSK_SPAWN_EGG(new Identifier("husk_spawn_egg", "spawn_egg"), 383, 23), + LLAMA_SPAWN_EGG(new Identifier("llama_spawn_egg", "spawn_egg"), 383, 103), + MAGMA_CUBE_SPAWN_EGG(new Identifier("magma_cube_spawn_egg", "spawn_egg"), 383, 62), + MOOSHROOM_SPAWN_EGG(new Identifier("mooshroom_spawn_egg", "spawn_egg"), 383, 96), + MULE_SPAWN_EGG(new Identifier("mule_spawn_egg", "spawn_egg"), 383, 32), + OCELOT_SPAWN_EGG(new Identifier("ocelot_spawn_egg", "spawn_egg"), 383, 98), + PARROT_SPAWN_EGG(new Identifier("parrot_spawn_egg", "spawn_egg"), -2), + PHANTOM_SPAWN_EGG(new Identifier(null, "phantom_spawn_egg"), -2), + PIG_SPAWN_EGG(new Identifier("pig_spawn_egg", "spawn_egg"), 383, 90), + POLAR_BEAR_SPAWN_EGG(new Identifier("polar_bear_spawn_egg", "spawn_egg"), 383, 102), + PUFFERFISH_SPAWN_EGG(new Identifier(null, "pufferfish_spawn_egg"), -2), + RABBIT_SPAWN_EGG(new Identifier("rabbit_spawn_egg", "spawn_egg"), 383, 101), + SALMON_SPAWN_EGG(new Identifier(null, "salmon_spawn_egg"), -2), + SHEEP_SPAWN_EGG(new Identifier("sheep_spawn_egg", "spawn_egg"), 383, 91), + SHULKER_SPAWN_EGG(new Identifier("shulker_spawn_egg", "spawn_egg"), 383, 69), + SILVERFISH_SPAWN_EGG(new Identifier("silverfish_spawn_egg", "spawn_egg"), -2), + SKELETON_SPAWN_EGG(new Identifier("skeleton_spawn_egg", "spawn_egg"), 383, 51), + SKELETON_HORSE_SPAWN_EGG(new Identifier("skeleton_horse_spawn_egg", "spawn_egg"), 383, 28), + SLIME_SPAWN_EGG(new Identifier("slime_spawn_egg", "spawn_egg"), 383, 55), + SPIDER_SPAWN_EGG(new Identifier("spider_spawn_egg", "spawn_egg"), 383, 52), + SQUID_SPAWN_EGG(new Identifier("squid_spawn_egg", "spawn_egg"), 383, 94), + STRAY_SPAWN_EGG(new Identifier("stray_spawn_egg", "spawn_egg"), 383, 6), + TROPICAL_FISH_SPAWN_EGG(new Identifier(null, "tropical_fish_spawn_egg"), -2), + TURTLE_SPAWN_EGG(new Identifier(null, "turtle_spawn_egg"), -2), + VEX_SPAWN_EGG(new Identifier("vex_spawn_egg", "spawn_egg"), 383, 35), + VILLAGER_SPAWN_EGG(new Identifier("villager_spawn_egg", "spawn_egg"), 383, 120), + VINDICATOR_SPAWN_EGG(new Identifier("vindicator_spawn_egg", "spawn_egg"), 383, 36), + WITCH_SPAWN_EGG(new Identifier("witch_spawn_egg", "spawn_egg"), 383, 66), + WITHER_SKELETON_SPAWN_EGG(new Identifier("wither_skeleton_spawn_egg", "spawn_egg"), 383, 5), + WOLF_SPAWN_EGG(new Identifier("wolf_spawn_egg", "spawn_egg"), 383, 95), + ZOMBIE_SPAWN_EGG(new Identifier("zombie_spawn_egg", "spawn_egg"), 383, 54), + ZOMBIE_HORSE_SPAWN_EGG(new Identifier("zombie_horse_spawn_egg", "spawn_egg"), 383, 29), + ZOMBIE_PIGMAN_SPAWN_EGG(new Identifier("zombie_pigman_spawn_egg", "spawn_egg"), 383, 57), + ZOMBIE_VILLAGER_SPAWN_EGG(new Identifier("zombie_villager_spawn_egg", "spawn_egg"), 383, 27), + BOTTLE_O_ENCHANTING(new Identifier("experience_bottle"), 384), + FIRE_CHARGE(new Identifier("fire_charge"), 385), + BOOK_AND_QUILL(new Identifier("writable_book"), 386), + WRITTEN_BOOK(new Identifier("written_book"), 387), + EMERALD(new Identifier("emerald"), 388), + ITEM_FRAME(new Identifier("item_frame"), 389), + FLOWER_POT(new Identifier("flower_pot"), 390), + CARROT(new Identifier("carrot"), 391), + POTATO(new Identifier("potato"), 392), + BAKED_POTATO(new Identifier("baked_potato"), 393), + POISONOUS_POTATO(new Identifier("poisonous_potato"), 394), + EMPTY_MAP(new Identifier("map"), 395), + GOLDEN_CARROT(new Identifier("golden_carrot"), 396), + SKELETON_SKULL(new Identifier("skeleton_skull", "skull"), 397), + WITHER_SKELETON_SKULL(new Identifier("wither_skeleton_skull", "skull"), 397, 1), + PLAYER_HEAD(new Identifier("player_head", "skull"), 397, 3), + ZOMBIE_HEAD(new Identifier("zombie_head", "skull"), 397, 2), + CREEPER_HEAD(new Identifier("creeper_head", "skull"), 397, 4), + DRAGON_HEAD(new Identifier("dragon_head", "skull"), 397, 5), + CARROT_ON_A_STICK(new Identifier("carrot_on_a_stick"), 398), + NETHER_STAR(new Identifier("nether_star"), 399), + PUMPKIN_PIE(new Identifier("pumpkin_pie"), 400), + FIREWORK_ROCKET(new Identifier("firework_rocket", "fireworks"), 401), + FIREWORK_STAR(new Identifier("firework_star", "firework_charge"), 402), + ENCHANTED_BOOK(new Identifier("enchanted_book"), 403), + NETHER_BRICK(new Identifier("nether_brick", "netherbrick"), 405), + NETHER_QUARTZ(new Identifier("quartz"), 406), + MINECART_WITH_TNT(new Identifier("tnt_minecart"), 407), + MINECART_WITH_HOPPER(new Identifier("hopper_minecart"), 408), + PRISMARINE_SHARD(new Identifier("prismarine_shard"), 409), + PRISMARINE_CRYSTALS(new Identifier("prismarine_crystals"), 410), + RAW_RABBIT(new Identifier("rabbit"), 411), + COOKED_RABBIT(new Identifier("cooked_rabbit"), 412), + RABBIT_STEW(new Identifier("rabbit_stew"), 413), + RABBITS_FOOT(new Identifier("rabbit_foot"), 414), + RABBIT_HIDE(new Identifier("rabbit_hide"), 415), + ARMOR_STAND(new Identifier("armor_stand"), 416), + IRON_HORSE_ARMOR(new Identifier("iron_horse_armor"), 417), + GOLDEN_HORSE_ARMOR(new Identifier("golden_horse_armor"), 418), + DIAMOND_HORSE_ARMOR(new Identifier("diamond_horse_armor"), 419), + LEAD(new Identifier("lead"), 420), + NAME_TAG(new Identifier("name_tag"), 421), + MINECART_WITH_COMMAND_BLOCK(new Identifier("command_block_minecart"), 422), + RAW_MUTTON(new Identifier("mutton"), 423), + COOKED_MUTTON(new Identifier("cooked_mutton"), 424), + WHITE_BANNER(new Identifier("white_banner", "banner"), 425, 15), + ORANGE_BANNER(new Identifier("orange_banner", "banner"), 425, 14), + MAGENTA_BANNER(new Identifier("magenta_banner", "banner"), 425, 13), + LIGHT_BLUE_BANNER(new Identifier("light_blue_banner", "banner"), 425, 12), + YELLOW_BANNER(new Identifier("yellow_banner", "banner"), 425, 11), + LIME_BANNER(new Identifier("lime_banner", "banner"), 425, 10), + PINK_BANNER(new Identifier("pink_banner", "banner"), 425, 9), + GRAY_BANNER(new Identifier("gray_banner", "banner"), 425, 8), + LIGHT_GRAY_BANNER(new Identifier("light_gray_banner", "banner"), 425, 7), + CYAN_BANNER(new Identifier("cyan_banner", "banner"), 425, 6), + PURPLE_BANNER(new Identifier("purple_banner", "banner"), 425, 5), + BLUE_BANNER(new Identifier("blue_banner", "banner"), 425, 4), + BROWN_BANNER(new Identifier("brown_banner", "banner"), 425, 3), + GREEN_BANNER(new Identifier("green_banner", "banner"), 425, 2), + RED_BANNER(new Identifier("red_banner", "banner"), 425, 1), + BLACK_BANNER(new Identifier("black_banner", "banner"), 425), + END_CRYSTAL(new Identifier("end_crystal"), 426), + CHORUS_FRUIT(new Identifier("chorus_fruit"), 432), + POPPED_CHORUS_FRUIT(new Identifier("popped_chorus_fruit", "chorus_fruit_popped"), 433), + BEETROOT(new Identifier("beetroot"), 434), + BEETROOT_SEEDS(new Identifier("beetroot_seeds"), 435), + BEETROOT_SOUP(new Identifier("beetroot_soup"), 436), + DRAGONS_BREATH(new Identifier("dragon_breath"), 437), + SPECTRAL_ARROW(new Identifier("spectral_arrow"), 439), + TIPPED_ARROW(new Identifier("tipped_arrow"), 440), + SHIELD(new Identifier("shield"), 442), + ELYTRA(new Identifier("elytra"), 443), + SPRUCE_BOAT(new Identifier("spruce_boat"), 444), + BIRCH_BOAT(new Identifier("birch_boat"), 445), + JUNGLE_BOAT(new Identifier("jungle_boat"), 446), + ACACIA_BOAT(new Identifier("acacia_boat"), 447), + DARK_OAK_BOAT(new Identifier("dark_oak_boat"), 448), + TOTEM_OF_UNDYING(new Identifier("totem_of_undying"), 449), + SHULKER_SHELL(new Identifier("shulker_shell"), 450), + IRON_NUGGET(new Identifier("iron_nugget"), 452), + KNOWLEDGE_BOOK(new Identifier(null, "knowledge_book"), -2), + DEBUG_STICK(new Identifier(null, "debug_stick"), -2), + DISC_13(new Identifier("music_disc_13", "record_13"), 2256), + CAT_DISC(new Identifier("music_disc_cat", "record_cat"), 2257), + BLOCKS_DISC(new Identifier("music_disc_blocks", "record_blocks"), 2258), + CHIRP_DISC(new Identifier("music_disc_chirp", "record_chirp"), 2259), + FAR_DISC(new Identifier("music_disc_far", "record_far"), 2260), + MALL_DISC(new Identifier("music_disc_mall", "record_mall"), 2261), + MELLOHI_DISC(new Identifier("music_disc_mellohi", "record_mellohi"), 2262), + STAL_DISC(new Identifier("music_disc_stal", "record_stal"), 2263), + STRAD_DISC(new Identifier("music_disc_strad", "record_strad"), 2264), + WARD_DISC(new Identifier("music_disc_ward", "record_ward"), 2265), + DISC_11(new Identifier("music_disc_11", "record_11"), 2266), + WAIT_DISC(new Identifier("music_disc_wait", "record_wait"), 2267), + TRIDENT(new Identifier(null, "trident"), -2), + PHANTOM_MEMBRANE(new Identifier(null, "phantom_membrane"), -2), + NAUTILUS_SHELL(new Identifier(null, "nautilus_shell"), -2), + HEART_OF_THE_SEA(new Identifier(null, "heart_of_the_sea"), -2), + WATER(new Identifier("water", "still_water"), 9), + LAVA(new Identifier("lava", "still_lava"), 11), + TALL_SEAGRASS(new Identifier(null, "tall_seagrass"), -2), + PISTON_HEAD(new Identifier("piston_head"), 34), + MOVING_PISTON(new Identifier(null, "moving_piston"), -2), + WALL_TORCH(new Identifier("wall_torch", "torch"), -2), + FIRE(new Identifier("fire"), 51), + REDSTONE_DUST(new Identifier("redstone_wire"), 55), + WALL_SIGN(new Identifier("wall_sign"), 68), + REDSTONE_WALL_TORCH(new Identifier(null, "redstone_wall_torch"), -2), + NETHER_PORTAL(new Identifier("nether_portal", "portal"), 90), + ATTACHED_PUMPKIN_STEM(new Identifier(null, "attached_pumpkin_stem"), -2), + ATTACHED_MELON_STEM(new Identifier(null, "attached_melon_stem"), -2), + PUMPKIN_STEM(new Identifier("pumpkin_stem"), 104), + MELON_STEM(new Identifier("melon_stem"), 105), + END_PORTAL(new Identifier("end_portal"), 119), + COCOA(new Identifier("cocoa"), 127), + TRIPWIRE(new Identifier("tripwire", "tripwire_hook"), 132), + POTTED_OAK_SAPLING(new Identifier("potted_oak_sapling", "flower_pot"), -2), + POTTED_SPRUCE_SAPLING(new Identifier("potted_spruce_sapling", "flower_pot"), -2), + POTTED_BIRCH_SAPLING(new Identifier("potted_birch_sapling", "flower_pot"), -2), + POTTED_JUNGLE_SAPLING(new Identifier("potted_jungle_sapling", "flower_pot"), -2), + POTTED_ACACIA_SAPLING(new Identifier("potted_acacia_sapling", "flower_pot"), -2), + POTTED_DARK_OAK_SAPLING(new Identifier("potted_dark_oak_sapling", "flower_pot"), -2), + POTTED_FERN(new Identifier("potted_fern", "flower_pot"), -2), + POTTED_DANDELION(new Identifier("potted_dandelion", "flower_pot"), -2), + POTTED_POPPY(new Identifier("potted_poppy", "flower_pot"), -2), + POTTED_BLUE_ORCHID(new Identifier("potted_blue_orchid", "flower_pot"), -2), + POTTED_ALLIUM(new Identifier("potted_allium", "flower_pot"), -2), + POTTED_AZURE_BLUET(new Identifier("potted_azure_bluet", "flower_pot"), -2), + POTTED_RED_TULIP(new Identifier("potted_red_tulip", "flower_pot"), -2), + POTTED_ORANGE_TULIP(new Identifier("potted_orange_tulip", "flower_pot"), -2), + POTTED_WHITE_TULIP(new Identifier("potted_white_tulip", "flower_pot"), -2), + POTTED_PINK_TULIP(new Identifier("potted_pink_tulip", "flower_pot"), -2), + POTTED_OXEYE_DAISY(new Identifier("potted_oxeye_daisy", "flower_pot"), -2), + POTTED_RED_MUSHROOM(new Identifier("potted_red_mushroom", "flower_pot"), -2), + POTTED_BROWN_MUSHROOM(new Identifier("potted_brown_mushroom", "flower_pot"), -2), + POTTED_DEAD_BUSH(new Identifier("potted_dead_bush", "flower_pot"), -2), + POTTED_CACTUS(new Identifier("potted_cactus", "flower_pot"), -2), + CARROTS(new Identifier("carrots"), 141), + POTATOES(new Identifier("potatoes"), 142), + SKELETON_WALL_SKULL(new Identifier("skeleton_wall_skull", "skull"), -2), + WITHER_SKELETON_WALL_SKULL(new Identifier("wither_skeleton_wall_skull", "skull"), -2), + ZOMBIE_WALL_HEAD(new Identifier("zombie_wall_head", "skull"), -2), + PLAYER_WALL_HEAD(new Identifier("player_wall_head", "skull"), -2), + CREEPER_WALL_HEAD(new Identifier("creeper_wall_head", "skull"), -2), + DRAGON_WALL_HEAD(new Identifier("dragon_wall_head", "skull"), -2), + WHITE_WALL_BANNER(new Identifier(null, "white_wall_banner"), -2), + ORANGE_WALL_BANNER(new Identifier(null, "orange_wall_banner"), -2), + MAGENTA_WALL_BANNER(new Identifier(null, "magenta_wall_banner"), -2), + LIGHT_BLUE_WALL_BANNER(new Identifier(null, "light_blue_wall_banner"), -2), + YELLOW_WALL_BANNER(new Identifier(null, "yellow_wall_banner"), -2), + LIME_WALL_BANNER(new Identifier(null, "lime_wall_banner"), -2), + PINK_WALL_BANNER(new Identifier(null, "pink_wall_banner"), -2), + GRAY_WALL_BANNER(new Identifier(null, "gray_wall_banner"), -2), + LIGHT_GRAY_WALL_BANNER(new Identifier(null, "light_gray_wall_banner"), -2), + CYAN_WALL_BANNER(new Identifier(null, "cyan_wall_banner"), -2), + PURPLE_WALL_BANNER(new Identifier(null, "purple_wall_banner"), -2), + BLUE_WALL_BANNER(new Identifier(null, "blue_wall_banner"), -2), + BROWN_WALL_BANNER(new Identifier(null, "brown_wall_banner"), -2), + GREEN_WALL_BANNER(new Identifier(null, "green_wall_banner"), -2), + RED_WALL_BANNER(new Identifier(null, "red_wall_banner"), -2), + BLACK_WALL_BANNER(new Identifier(null, "black_wall_banner"), -2), + BEETROOTS(new Identifier("beetroots"), 207), + END_GATEWAY(new Identifier("end_gateway"), 209), + FROSTED_ICE(new Identifier("frosted_ice"), 212), + KELP_PLANT(new Identifier(null, "kelp_plant"), -2), + DEAD_TUBE_CORAL_WALL_FAN(new Identifier(null, "dead_tube_coral_wall_fan"), -2), + DEAD_BRAIN_CORAL_WALL_FAN(new Identifier(null, "dead_brain_coral_wall_fan"), -2), + DEAD_BUBBLE_CORAL_WALL_FAN(new Identifier(null, "dead_bubble_coral_wall_fan"), -2), + DEAD_FIRE_CORAL_WALL_FAN(new Identifier(null, "dead_fire_coral_wall_fan"), -2), + DEAD_HORN_CORAL_WALL_FAN(new Identifier(null, "dead_horn_coral_wall_fan"), -2), + TUBE_CORAL_WALL_FAN(new Identifier(null, "tube_coral_wall_fan"), -2), + BRAIN_CORAL_WALL_FAN(new Identifier(null, "brain_coral_wall_fan"), -2), + BUBBLE_CORAL_WALL_FAN(new Identifier(null, "bubble_coral_wall_fan"), -2), + FIRE_CORAL_WALL_FAN(new Identifier(null, "fire_coral_wall_fan"), -2), + HORN_CORAL_WALL_FAN(new Identifier(null, "horn_coral_wall_fan"), -2), + VOID_AIR(new Identifier(null, "void_air"), -2), + CAVE_AIR(new Identifier(null, "cave_air"), -2), + BUBBLE_COLUMN(new Identifier(null, "bubble_column"), -2), + CORNFLOWER(new Identifier(null, "cornflower"), -2), + LILY_OF_THE_VALLEY(new Identifier(null, "lily_of_the_valley"), -2), + WITHER_ROSE(new Identifier(null, "wither_rose"), -2), + SMOOTH_STONE_SLAB(new Identifier(null, "smooth_stone_slab"), -2), + CUT_SANDSTONE_SLAB(new Identifier(null, "cut_sandstone_slab"), -2), + CUT_RED_SANDSTONE_SLAB(new Identifier(null, "cut_red_sandstone_slab"), -2), + BRICK_WALL(new Identifier(null, "brick_wall"), -2), + PRISMARINE_WALL(new Identifier(null, "prismarine_wall"), -2), + RED_SANDSTONE_WALL(new Identifier(null, "red_sandstone_wall"), -2), + MOSSY_STONE_BRICK_WALL(new Identifier(null, "mossy_stone_brick_wall"), -2), + GRANITE_WALL(new Identifier(null, "granite_wall"), -2), + STONE_BRICK_WALL(new Identifier(null, "stone_brick_wall"), -2), + NETHER_BRICK_WALL(new Identifier(null, "nether_brick_wall"), -2), + ANDESITE_WALL(new Identifier(null, "andesite_wall"), -2), + RED_NETHER_BRICK_WALL(new Identifier(null, "red_nether_brick_wall"), -2), + SANDSTONE_WALL(new Identifier(null, "sandstone_wall"), -2), + END_STONE_BRICK_WALL(new Identifier(null, "end_stone_brick_wall"), -2), + DIORITE_WALL(new Identifier(null, "diorite_wall"), -2), + POLISHED_GRANITE_STAIRS(new Identifier(null, "polished_granite_stairs"), -2), + SMOOTH_RED_SANDSTONE_STAIRS(new Identifier(null, "smooth_red_sandstone_stairs"), -2), + MOSSY_STONE_BRICK_STAIRS(new Identifier(null, "mossy_stone_brick_stairs"), -2), + POLISHED_DIORITE_STAIRS(new Identifier(null, "polished_diorite_stairs"), -2), + MOSSY_COBBLESTONE_STAIRS(new Identifier(null, "mossy_cobblestone_stairs"), -2), + END_STONE_BRICK_STAIRS(new Identifier(null, "end_stone_brick_stairs"), -2), + STONE_STAIRS(new Identifier(null, "stone_stairs"), -2), + SMOOTH_SANDSTONE_STAIRS(new Identifier(null, "smooth_sandstone_stairs"), -2), + SMOOTH_QUARTZ_STAIRS(new Identifier(null, "smooth_quartz_stairs"), -2), + GRANITE_STAIRS(new Identifier(null, "granite_stairs"), -2), + ANDESITE_STAIRS(new Identifier(null, "andesite_stairs"), -2), + RED_NETHER_BRICK_STAIRS(new Identifier(null, "red_nether_brick_stairs"), -2), + POLISHED_ANDESITE_STAIRS(new Identifier(null, "polished_andesite_stairs"), -2), + DIORITE_STAIRS(new Identifier(null, "diorite_stairs"), -2), + POLISHED_GRANITE_SLAB(new Identifier(null, "polished_granite_slab"), -2), + SMOOTH_RED_SANDSTONE_SLAB(new Identifier(null, "smooth_red_sandstone_slab"), -2), + MOSSY_STONE_BRICK_SLAB(new Identifier(null, "mossy_stone_brick_slab"), -2), + POLISHED_DIORITE_SLAB(new Identifier(null, "polished_diorite_slab"), -2), + MOSSY_COBBLESTONE_SLAB(new Identifier(null, "mossy_cobblestone_slab"), -2), + END_STONE_BRICK_SLAB(new Identifier(null, "end_stone_brick_slab"), -2), + SMOOTH_SANDSTONE_SLAB(new Identifier(null, "smooth_sandstone_slab"), -2), + SMOOTH_QUARTZ_SLAB(new Identifier(null, "smooth_quartz_slab"), -2), + GRANITE_SLAB(new Identifier(null, "granite_slab"), -2), + ANDESITE_SLAB(new Identifier(null, "andesite_slab"), -2), + RED_NETHER_BRICK_SLAB(new Identifier(null, "red_nether_brick_slab"), -2), + POLISHED_ANDESITE_SLAB(new Identifier(null, "polished_andesite_slab"), -2), + DIORITE_SLAB(new Identifier(null, "diorite_slab"), -2), + SCAFFOLDING(new Identifier(null, "scaffolding"), -2), + JIGSAW_BLOCK(new Identifier(null, "jigsaw"), -2), + COMPOSTER(new Identifier(null, "composter"), -2), + OAK_SIGN(new Identifier(null, "oak_sign"), -2), + SPRUCE_SIGN(new Identifier(null, "spruce_sign"), -2), + BIRCH_SIGN(new Identifier(null, "birch_sign"), -2), + JUNGLE_SIGN(new Identifier(null, "jungle_sign"), -2), + ACACIA_SIGN(new Identifier(null, "acacia_sign"), -2), + DARK_OAK_SIGN(new Identifier(null, "dark_oak_sign"), -2), + BAMBOO(new Identifier(null, "bamboo"), -2), + RED_DYE(new Identifier(null, "red_dye"), -2), + GREEN_DYE(new Identifier(null, "green_dye"), -2), + YELLOW_DYE(new Identifier(null, "yellow_dye"), -2), + BLUE_DYE(new Identifier(null, "blue_dye"), -2), + BROWN_DYE(new Identifier(null, "brown_dye"), -2), + BLACK_DYE(new Identifier(null, "black_dye"), -2), + WHITE_DYE(new Identifier(null, "white_dye"), -2), + CAT_SPAWN_EGG(new Identifier(null, "cat_spawn_egg"), -2), + FOX_SPAWN_EGG(new Identifier(null, "fox_spawn_egg"), -2), + PANDA_SPAWN_EGG(new Identifier(null, "panda_spawn_egg"), -2), + PILLAGER_SPAWN_EGG(new Identifier(null, "pillager_spawn_egg"), -2), + RAVAGER_SPAWN_EGG(new Identifier(null, "ravager_spawn_egg"), -2), + TRADER_LLAMA_SPAWN_EGG(new Identifier(null, "trader_llama_spawn_egg"), -2), + WANDERING_TRADER_SPAWN_EGG(new Identifier(null, "wandering_trader_spawn_egg"), -2), + LEATHER_HORSE_ARMOR(new Identifier(null, "leather_horse_armor"), -2), + CROSSBOW(new Identifier(null, "crossbow"), -2), + SUSPICIOUS_STEW(new Identifier(null, "suspicious_stew"), -2), + LOOM(new Identifier(null, "loom"), -2), + FLOWER_BANNER_PATTERN(new Identifier(null, "flower_banner_pattern"), -2), + CREEPER_BANNER_PATTERN(new Identifier(null, "creeper_banner_pattern"), -2), + SKULL_BANNER_PATTERN(new Identifier(null, "skull_banner_pattern"), -2), + MOJANG_BANNER_PATTERN(new Identifier(null, "mojang_banner_pattern"), -2), + GLOBE_BANNER_PATTERN(new Identifier(null, "globe_banner_pattern"), -2), + BARREL(new Identifier(null, "barrel"), -2), + SMOKER(new Identifier(null, "smoker"), -2), + BLAST_FURNACE(new Identifier(null, "blast_furnace"), -2), + CARTOGRAPHY_TABLE(new Identifier(null, "cartography_table"), -2), + FLETCHING_TABLE(new Identifier(null, "fletching_table"), -2), + GRINDSTONE(new Identifier(null, "grindstone"), -2), + LECTERN(new Identifier(null, "lectern"), -2), + SMITHING_TABLE(new Identifier(null, "smithing_table"), -2), + STONECUTTER(new Identifier(null, "stonecutter"), -2), + BELL(new Identifier(null, "bell"), -2), + LANTERN(new Identifier(null, "lantern"), -2), + SWEET_BERRIES(new Identifier(null, "sweet_berries"), -2), + CAMPFIRE(new Identifier(null, "campfire"), -2); + + //ToDo spawner, potions + + final Identifier identifier; + final int legacyId; + int legacyData; + + // legacy id -2 means: 1.13+ + Items(Identifier identifier, int legacyId, int legacyData) { + this.identifier = identifier; + this.legacyId = legacyId; + this.legacyData = legacyData; + } + + Items(Identifier identifier, int legacyId) { + this.identifier = identifier; + this.legacyId = legacyId; + } + + public Identifier getIdentifier() { + return identifier; + } + + + public int getLegacyId() { + return legacyId; + } + + public int getLegacyData() { + return legacyData; + } + + public static Items byIdentifier(Identifier identifier) { + for (Items b : values()) { + if (b.getIdentifier().equals(identifier)) { + return b; + } + } + return UNKNOWN; + } + + public static Items byLegacy(int id, int data) { + for (Items b : values()) { + if (b.getLegacyId() == id && b.getLegacyData() == data) { + return b; + } + } + return UNKNOWN; + } + + public static Items byLegacy(int id) { + return byLegacy(id, 0); + } + + +} diff --git a/src/main/java/de/bixilon/minosoft/game/datatypes/entities/meta/AgeableMetaData.java b/src/main/java/de/bixilon/minosoft/game/datatypes/entities/meta/AgeableMetaData.java index eaf1b3f40..46b1fb7f2 100644 --- a/src/main/java/de/bixilon/minosoft/game/datatypes/entities/meta/AgeableMetaData.java +++ b/src/main/java/de/bixilon/minosoft/game/datatypes/entities/meta/AgeableMetaData.java @@ -24,7 +24,6 @@ public class AgeableMetaData extends MobMetaData { public int getAge() { - //ToDo custom Potion Effect Color Type switch (version) { case VERSION_1_7_10: return (int) sets.get(12).getData(); diff --git a/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/login/PacketEncryptionKeyRequest.java b/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/login/PacketEncryptionKeyRequest.java index e7d2bd380..f024380c3 100644 --- a/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/login/PacketEncryptionKeyRequest.java +++ b/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/login/PacketEncryptionKeyRequest.java @@ -32,7 +32,7 @@ public class PacketEncryptionKeyRequest implements ClientboundPacket { publicKey = buffer.readBytes(buffer.readShort()); // read length, then the bytes verifyToken = buffer.readBytes(buffer.readShort()); // read length, then the bytes break; - } // ToDo + } } @Override diff --git a/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketEntityEquipment.java b/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketEntityEquipment.java index 4fd1d69d4..12e281059 100644 --- a/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketEntityEquipment.java +++ b/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketEntityEquipment.java @@ -41,7 +41,7 @@ public class PacketEntityEquipment implements ClientboundPacket { @Override public void log() { if (data != null) { - Log.protocol(String.format("Entity equipment changed (entityId=%d, slot=%s): %s", entityId, slot.name(), data.getDisplayName())); + Log.protocol(String.format("Entity equipment changed (entityId=%d, slot=%s): %dx %s", entityId, slot.name(), data.getItemCount(), data.getDisplayName())); } else { // null means nothing, means air Log.protocol(String.format("Entity equipment changed (entityId=%d, slot=%s): AIR", entityId, slot.name())); diff --git a/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketEntityHeadRotation.java b/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketEntityHeadRotation.java index d748d7771..9ce68945b 100644 --- a/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketEntityHeadRotation.java +++ b/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketEntityHeadRotation.java @@ -29,7 +29,7 @@ public class PacketEntityHeadRotation implements ClientboundPacket { switch (v) { case VERSION_1_7_10: this.entityId = buffer.readInteger(); - this.headYaw = buffer.readByte(); //ToDo + this.headYaw = buffer.readByte(); break; } } diff --git a/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketEntityPositionAndRotation.java b/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketEntityPositionAndRotation.java index d84c789ee..40ecbf376 100644 --- a/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketEntityPositionAndRotation.java +++ b/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketEntityPositionAndRotation.java @@ -33,7 +33,7 @@ public class PacketEntityPositionAndRotation implements ClientboundPacket { case VERSION_1_7_10: this.entityId = buffer.readInteger(); this.location = new RelativeLocation(buffer.readFixedPointNumberByte(), buffer.readFixedPointNumberByte(), buffer.readFixedPointNumberByte()); - this.yaw = buffer.readByte(); //ToDo + this.yaw = buffer.readByte(); //ToDo dividing, ... this.pitch = buffer.readByte(); break; } diff --git a/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketEntityRotation.java b/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketEntityRotation.java index 8f85675e7..bc44c9bca 100644 --- a/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketEntityRotation.java +++ b/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketEntityRotation.java @@ -30,7 +30,7 @@ public class PacketEntityRotation implements ClientboundPacket { switch (v) { case VERSION_1_7_10: this.entityId = buffer.readInteger(); - this.yaw = buffer.readByte(); //ToDo + this.yaw = buffer.readByte(); this.pitch = buffer.readByte(); break; } diff --git a/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketEntityTeleport.java b/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketEntityTeleport.java index 026c92bdc..7fa5fc5bf 100644 --- a/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketEntityTeleport.java +++ b/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketEntityTeleport.java @@ -33,7 +33,7 @@ public class PacketEntityTeleport implements ClientboundPacket { case VERSION_1_7_10: this.entityId = buffer.readInteger(); this.location = new Location(buffer.readFixedPointNumberInteger(), buffer.readFixedPointNumberInteger(), buffer.readFixedPointNumberInteger()); - this.yaw = buffer.readByte(); //ToDo + this.yaw = buffer.readByte(); this.pitch = buffer.readByte(); break; } diff --git a/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketSpawnMob.java b/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketSpawnMob.java index 4b6d7a973..66c1de181 100644 --- a/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketSpawnMob.java +++ b/src/main/java/de/bixilon/minosoft/protocol/packets/clientbound/play/PacketSpawnMob.java @@ -36,7 +36,7 @@ public class PacketSpawnMob implements ClientboundPacket { int entityId = buffer.readVarInt(); Mobs type = Mobs.byType(buffer.readByte()); Location location = new Location(buffer.readFixedPointNumberInteger(), buffer.readFixedPointNumberInteger(), buffer.readFixedPointNumberInteger()); - int yaw = buffer.readByte(); //ToDo + int yaw = buffer.readByte(); int pitch = buffer.readByte(); int headPitch = buffer.readByte(); Velocity velocity = new Velocity(buffer.readShort(), buffer.readShort(), buffer.readShort()); diff --git a/src/main/java/de/bixilon/minosoft/protocol/protocol/InByteBuffer.java b/src/main/java/de/bixilon/minosoft/protocol/protocol/InByteBuffer.java index 6d72022ca..552aa71df 100644 --- a/src/main/java/de/bixilon/minosoft/protocol/protocol/InByteBuffer.java +++ b/src/main/java/de/bixilon/minosoft/protocol/protocol/InByteBuffer.java @@ -112,7 +112,6 @@ public class InByteBuffer { public String readString() { int length = readVarInt(); if (length > ProtocolDefinition.STRING_MAX_LEN) { - // ToDo throw new PacketDataException(String.format("String is longer than %s", ProtocolDefinition.STRING_MAX_LEN)); return null; } return new String(readBytes(length), StandardCharsets.UTF_8); diff --git a/src/main/java/de/bixilon/minosoft/protocol/protocol/OutByteBuffer.java b/src/main/java/de/bixilon/minosoft/protocol/protocol/OutByteBuffer.java index c297bbb3e..0719e9021 100644 --- a/src/main/java/de/bixilon/minosoft/protocol/protocol/OutByteBuffer.java +++ b/src/main/java/de/bixilon/minosoft/protocol/protocol/OutByteBuffer.java @@ -89,7 +89,6 @@ public class OutByteBuffer { public void writeString(String s) { if (s.length() > ProtocolDefinition.STRING_MAX_LEN) { - //ToDo writeByte((byte) 0); // write length 0 } writeVarInt(s.length());