From 8581622a57e4da8d557f1595972a9d5cba480b84 Mon Sep 17 00:00:00 2001 From: Eric Date: Sat, 27 Apr 2019 16:56:28 +0200 Subject: [PATCH] Add support for 1.14 (untested) --- pom.xml | 2 +- .../java/de/epiceric/shopchest/ShopChest.java | 1 + .../shopchest/config/Placeholder.java | 1 + .../shopchest/language/BannerPatternName.java | 29 + .../shopchest/language/LanguageUtils.java | 164 +- .../java/de/epiceric/shopchest/shop/Shop.java | 1 + src/main/resources/hologram-format.yml | 4 +- src/main/resources/item_names.txt | 1831 +++++++++-------- 8 files changed, 1160 insertions(+), 873 deletions(-) create mode 100644 src/main/java/de/epiceric/shopchest/language/BannerPatternName.java diff --git a/pom.xml b/pom.xml index a0f8a5b..0c8ad71 100644 --- a/pom.xml +++ b/pom.xml @@ -69,7 +69,7 @@ org.bukkit bukkit - 1.13.2-R0.1-SNAPSHOT + 1.14-R0.1-SNAPSHOT provided diff --git a/src/main/java/de/epiceric/shopchest/ShopChest.java b/src/main/java/de/epiceric/shopchest/ShopChest.java index 2f8fbad..1e58ab7 100644 --- a/src/main/java/de/epiceric/shopchest/ShopChest.java +++ b/src/main/java/de/epiceric/shopchest/ShopChest.java @@ -162,6 +162,7 @@ public class ShopChest extends JavaPlugin { case "v1_12_R1": case "v1_13_R1": case "v1_13_R2": + case "v1_14_R1": break; default: debug("Server version not officially supported: " + Utils.getServerVersion() + "!"); diff --git a/src/main/java/de/epiceric/shopchest/config/Placeholder.java b/src/main/java/de/epiceric/shopchest/config/Placeholder.java index 3a39fe8..a2b15ce 100644 --- a/src/main/java/de/epiceric/shopchest/config/Placeholder.java +++ b/src/main/java/de/epiceric/shopchest/config/Placeholder.java @@ -17,6 +17,7 @@ public enum Placeholder { PLAYER("%PLAYER%"), POTION_EFFECT("%POTION-EFFECT%"), MUSIC_TITLE("%MUSIC-TITLE%"), + BANNER_PATTERN_NAME("%BANNER-PATTERN-NAME%"), PROPERTY("%PROPERTY%"), VALUE("%VALUE%"), EXTENDED("%EXTENDED%"), diff --git a/src/main/java/de/epiceric/shopchest/language/BannerPatternName.java b/src/main/java/de/epiceric/shopchest/language/BannerPatternName.java new file mode 100644 index 0000000..71ee11d --- /dev/null +++ b/src/main/java/de/epiceric/shopchest/language/BannerPatternName.java @@ -0,0 +1,29 @@ +package de.epiceric.shopchest.language; + +import org.bukkit.Material; + +public class BannerPatternName { + + private Material bannerPatternMaterial; + private String localizedName; + + public BannerPatternName(Material bannerPatternMaterial, String localizedName) { + this.bannerPatternMaterial = bannerPatternMaterial; + this.localizedName = localizedName; + } + + /** + * @return Localized Name of the Banner Pattern + */ + public String getLocalizedName() { + return localizedName; + } + + /** + * @return Material of the Banner Pattern + */ + public Material getBannerPatternMaterial() { + return bannerPatternMaterial; + } + +} diff --git a/src/main/java/de/epiceric/shopchest/language/LanguageUtils.java b/src/main/java/de/epiceric/shopchest/language/LanguageUtils.java index 0ca7e6a..1eab7fd 100644 --- a/src/main/java/de/epiceric/shopchest/language/LanguageUtils.java +++ b/src/main/java/de/epiceric/shopchest/language/LanguageUtils.java @@ -36,6 +36,7 @@ public class LanguageUtils { private static ArrayList entityNames = new ArrayList<>(); private static ArrayList potionNames = new ArrayList<>(); private static ArrayList musicDiscNames = new ArrayList<>(); + private static ArrayList bannerPatternNames = new ArrayList<>(); private static ArrayList generationNames = new ArrayList<>(); private static ArrayList messages = new ArrayList<>(); @@ -1199,8 +1200,6 @@ public class LanguageUtils { itemNames.add(new ItemName(Material.WHEAT, langConfig.getString("block.minecraft.wheat", "Wheat Crops"))); itemNames.add(new ItemName(Material.FARMLAND, langConfig.getString("block.minecraft.farmland", "Farmland"))); itemNames.add(new ItemName(Material.FURNACE, langConfig.getString("block.minecraft.furnace", "Furnace"))); - itemNames.add(new ItemName(Material.SIGN, langConfig.getString("block.minecraft.sign", "Sign"))); - itemNames.add(new ItemName(Material.WALL_SIGN, langConfig.getString("block.minecraft.wall_sign", "Wall Sign"))); itemNames.add(new ItemName(Material.LADDER, langConfig.getString("block.minecraft.ladder", "Ladder"))); itemNames.add(new ItemName(Material.RAIL, langConfig.getString("block.minecraft.rail", "Rail"))); itemNames.add(new ItemName(Material.POWERED_RAIL, langConfig.getString("block.minecraft.powered_rail", "Powered Rail"))); @@ -1623,7 +1622,6 @@ public class LanguageUtils { itemNames.add(new ItemName(Material.ITEM_FRAME, langConfig.getString("item.minecraft.item_frame", "Item Frame"))); itemNames.add(new ItemName(Material.GOLDEN_APPLE, langConfig.getString("item.minecraft.golden_apple", "Golden Apple"))); itemNames.add(new ItemName(Material.ENCHANTED_GOLDEN_APPLE, langConfig.getString("item.minecraft.enchanted_golden_apple", "Enchanted Golden Apple"))); - itemNames.add(new ItemName(Material.SIGN, langConfig.getString("item.minecraft.sign", "Sign"))); itemNames.add(new ItemName(Material.BUCKET, langConfig.getString("item.minecraft.bucket", "Bucket"))); itemNames.add(new ItemName(Material.WATER_BUCKET, langConfig.getString("item.minecraft.water_bucket", "Water Bucket"))); itemNames.add(new ItemName(Material.LAVA_BUCKET, langConfig.getString("item.minecraft.lava_bucket", "Lava Bucket"))); @@ -1678,8 +1676,6 @@ public class LanguageUtils { itemNames.add(new ItemName(Material.MUSIC_DISC_WAIT, langConfig.getString("item.minecraft.music_disc_wait", "Music Disc"))); itemNames.add(new ItemName(Material.BONE, langConfig.getString("item.minecraft.bone", "Bone"))); itemNames.add(new ItemName(Material.INK_SAC, langConfig.getString("item.minecraft.ink_sac", "Ink Sac"))); - itemNames.add(new ItemName(Material.ROSE_RED, langConfig.getString("item.minecraft.rose_red", "Rose Red"))); - itemNames.add(new ItemName(Material.CACTUS_GREEN, langConfig.getString("item.minecraft.cactus_green", "Cactus Green"))); itemNames.add(new ItemName(Material.COCOA_BEANS, langConfig.getString("item.minecraft.cocoa_beans", "Cocoa Beans"))); itemNames.add(new ItemName(Material.LAPIS_LAZULI, langConfig.getString("item.minecraft.lapis_lazuli", "Lapis Lazuli"))); itemNames.add(new ItemName(Material.PURPLE_DYE, langConfig.getString("item.minecraft.purple_dye", "Purple Dye"))); @@ -1688,7 +1684,6 @@ public class LanguageUtils { itemNames.add(new ItemName(Material.GRAY_DYE, langConfig.getString("item.minecraft.gray_dye", "Gray Dye"))); itemNames.add(new ItemName(Material.PINK_DYE, langConfig.getString("item.minecraft.pink_dye", "Pink Dye"))); itemNames.add(new ItemName(Material.LIME_DYE, langConfig.getString("item.minecraft.lime_dye", "Lime Dye"))); - itemNames.add(new ItemName(Material.DANDELION_YELLOW, langConfig.getString("item.minecraft.dandelion_yellow", "Dandelion Yellow"))); itemNames.add(new ItemName(Material.LIGHT_BLUE_DYE, langConfig.getString("item.minecraft.light_blue_dye", "Light Blue Dye"))); itemNames.add(new ItemName(Material.MAGENTA_DYE, langConfig.getString("item.minecraft.magenta_dye", "Magenta Dye"))); itemNames.add(new ItemName(Material.ORANGE_DYE, langConfig.getString("item.minecraft.orange_dye", "Orange Dye"))); @@ -1833,6 +1828,124 @@ public class LanguageUtils { itemNames.add(new ItemName(Material.NAUTILUS_SHELL, langConfig.getString("item.minecraft.nautilus_shell", "Nautilus Shell"))); itemNames.add(new ItemName(Material.HEART_OF_THE_SEA, langConfig.getString("item.minecraft.heart_of_the_sea", "Heart of the Sea"))); + if (Utils.getMajorVersion() >= 14) { + // Add 1.14 item names + itemNames.add(new ItemName(Material.ACACIA_SIGN, langConfig.getString("block.minecraft.acacia_sign", "Acacia Sign"))); + itemNames.add(new ItemName(Material.ACACIA_WALL_SIGN, langConfig.getString("block.minecraft.acacia_wall_sign", "Acacia Wall Sign"))); + itemNames.add(new ItemName(Material.ANDESITE_SLAB, langConfig.getString("block.minecraft.andesite_slab", "Andesite Slab"))); + itemNames.add(new ItemName(Material.ANDESITE_STAIRS, langConfig.getString("block.minecraft.andesite_stairs", "Andesite Stairs"))); + itemNames.add(new ItemName(Material.ANDESITE_WALL, langConfig.getString("block.minecraft.andesite_wall", "Andesite Wall"))); + itemNames.add(new ItemName(Material.BAMBOO, langConfig.getString("block.minecraft.bamboo", "Bamboo"))); + itemNames.add(new ItemName(Material.BAMBOO_SAPLING, langConfig.getString("block.minecraft.bamboo_sapling", "Bamboo Sapling"))); + itemNames.add(new ItemName(Material.BARREL, langConfig.getString("block.minecraft.barrel", "Barrel"))); + itemNames.add(new ItemName(Material.BELL, langConfig.getString("block.minecraft.bell", "Bell"))); + itemNames.add(new ItemName(Material.BIRCH_SIGN, langConfig.getString("block.minecraft.birch_sign", "Birch Sign"))); + itemNames.add(new ItemName(Material.BIRCH_WALL_SIGN, langConfig.getString("block.minecraft.birch_wall_sign", "Birch Wall Sign"))); + itemNames.add(new ItemName(Material.BLACK_DYE, langConfig.getString("item.minecraft.black_dye", "Black Dye"))); + itemNames.add(new ItemName(Material.BLAST_FURNACE, langConfig.getString("block.minecraft.blast_furnace", "Blast Furnace"))); + itemNames.add(new ItemName(Material.BLUE_DYE, langConfig.getString("item.minecraft.blue_dye", "Blue Dye"))); + itemNames.add(new ItemName(Material.BRICK_WALL, langConfig.getString("block.minecraft.brick_wall", "Brick Wall"))); + itemNames.add(new ItemName(Material.BROWN_DYE, langConfig.getString("item.minecraft.brown_dye", "Brown Dye"))); + itemNames.add(new ItemName(Material.CAMPFIRE, langConfig.getString("block.minecraft.campfire", "Campfire"))); + itemNames.add(new ItemName(Material.CARTOGRAPHY_TABLE, langConfig.getString("block.minecraft.cartography_table", "Cartography Table"))); + itemNames.add(new ItemName(Material.CAT_SPAWN_EGG, langConfig.getString("item.minecraft.cat_spawn_egg", "Cat Spawn Egg"))); + itemNames.add(new ItemName(Material.COMPOSTER, langConfig.getString("block.minecraft.composter", "Composter"))); + itemNames.add(new ItemName(Material.CORNFLOWER, langConfig.getString("block.minecraft.cornflower", "Cornflower"))); + itemNames.add(new ItemName(Material.CREEPER_BANNER_PATTERN, langConfig.getString("item.minecraft.creeper_banner_pattern", "Banner Pattern"))); + itemNames.add(new ItemName(Material.CROSSBOW, langConfig.getString("item.minecraft.crossbow", "Crossbow"))); + itemNames.add(new ItemName(Material.CUT_RED_SANDSTONE_SLAB, langConfig.getString("block.minecraft.cut_red_sandstone_slab", "Cut Red Sandstone Slab"))); + itemNames.add(new ItemName(Material.CUT_SANDSTONE_SLAB, langConfig.getString("block.minecraft.cut_sandstone_slab", "Cut Sandstone Slab"))); + itemNames.add(new ItemName(Material.DARK_OAK_SIGN, langConfig.getString("block.minecraft.dark_oak_sign", "Dark Oak Sign"))); + itemNames.add(new ItemName(Material.DARK_OAK_WALL_SIGN, langConfig.getString("block.minecraft.dark_oak_wall_sign", "Dark Oak Wall Sign"))); + itemNames.add(new ItemName(Material.DEAD_BRAIN_CORAL, langConfig.getString("block.minecraft.dead_brain_coral", "Dead Brain Coral"))); + itemNames.add(new ItemName(Material.DEAD_BUBBLE_CORAL, langConfig.getString("block.minecraft.dead_bubble_coral", "Dead Bubble Coral"))); + itemNames.add(new ItemName(Material.DEAD_FIRE_CORAL, langConfig.getString("block.minecraft.dead_fire_coral", "Dead Fire Coral"))); + itemNames.add(new ItemName(Material.DEAD_HORN_CORAL, langConfig.getString("block.minecraft.dead_horn_coral", "Dead Horn Coral"))); + itemNames.add(new ItemName(Material.DEAD_TUBE_CORAL, langConfig.getString("block.minecraft.dead_tube_coral", "Dead Tube Coral"))); + itemNames.add(new ItemName(Material.DIORITE_SLAB, langConfig.getString("block.minecraft.diorite_slab", "Diorite Slab"))); + itemNames.add(new ItemName(Material.DIORITE_STAIRS, langConfig.getString("block.minecraft.diorite_stairs", "Diorite Stairs"))); + itemNames.add(new ItemName(Material.DIORITE_WALL, langConfig.getString("block.minecraft.diorite_wall", "Diorite Wall"))); + itemNames.add(new ItemName(Material.END_STONE_BRICK_SLAB, langConfig.getString("block.minecraft.end_stone_brick_slab", "End Stone Brick Slab"))); + itemNames.add(new ItemName(Material.END_STONE_BRICK_STAIRS, langConfig.getString("block.minecraft.end_stone_brick_stairs", "End Stone Brick Stairs"))); + itemNames.add(new ItemName(Material.END_STONE_BRICK_WALL, langConfig.getString("block.minecraft.end_stone_brick_wall", "End Stone Brick Wall"))); + itemNames.add(new ItemName(Material.FLETCHING_TABLE, langConfig.getString("block.minecraft.fletching_table", "Fletching Table"))); + itemNames.add(new ItemName(Material.FLOWER_BANNER_PATTERN, langConfig.getString("item.minecraft.flower_banner_pattern", "Banner Pattern"))); + itemNames.add(new ItemName(Material.FOX_SPAWN_EGG, langConfig.getString("item.minecraft.fox_spawn_egg", "Fox Spawn Egg"))); + itemNames.add(new ItemName(Material.GLOBE_BANNER_PATTERN, langConfig.getString("item.minecraft.globe_banner_pattern", "Banner Pattern"))); + itemNames.add(new ItemName(Material.GRANITE_SLAB, langConfig.getString("block.minecraft.granite_slab", "Granite Slab"))); + itemNames.add(new ItemName(Material.GRANITE_STAIRS, langConfig.getString("block.minecraft.granite_stairs", "Granite Stairs"))); + itemNames.add(new ItemName(Material.GRANITE_WALL, langConfig.getString("block.minecraft.granite_wall", "Granite Wall"))); + itemNames.add(new ItemName(Material.GREEN_DYE, langConfig.getString("item.minecraft.green_dye", "Green Dye"))); + itemNames.add(new ItemName(Material.GRINDSTONE, langConfig.getString("block.minecraft.grindstone", "Grindstone"))); + itemNames.add(new ItemName(Material.JIGSAW, langConfig.getString("block.minecraft.jigsaw", "Jigsaw"))); + itemNames.add(new ItemName(Material.JUNGLE_SIGN, langConfig.getString("block.minecraft.jungle_sign", "Jungle Sign"))); + itemNames.add(new ItemName(Material.JUNGLE_WALL_SIGN, langConfig.getString("block.minecraft.jungle_wall_sign", "Jungle Wall Sign"))); + itemNames.add(new ItemName(Material.LANTERN, langConfig.getString("block.minecraft.lantern", "Lantern"))); + itemNames.add(new ItemName(Material.LEATHER_HORSE_ARMOR, langConfig.getString("item.minecraft.leather_horse_armor", "Leather Horse Armor"))); + itemNames.add(new ItemName(Material.LECTERN, langConfig.getString("block.minecraft.lectern", "Lectern"))); + itemNames.add(new ItemName(Material.LILY_OF_THE_VALLEY, langConfig.getString("block.minecraft.lily_of_the_valley", "Lily of the Valley"))); + itemNames.add(new ItemName(Material.LOOM, langConfig.getString("block.minecraft.loom", "Loom"))); + itemNames.add(new ItemName(Material.MOJANG_BANNER_PATTERN, langConfig.getString("item.minecraft.mojang_banner_pattern", "Banner Pattern"))); + itemNames.add(new ItemName(Material.MOSSY_COBBLESTONE_SLAB, langConfig.getString("block.minecraft.mossy_cobblestone_slab", "Mossy Cobblestone Slab"))); + itemNames.add(new ItemName(Material.MOSSY_COBBLESTONE_STAIRS, langConfig.getString("block.minecraft.mossy_cobblestone_stairs", "Mossy Cobblestone Stairs"))); + itemNames.add(new ItemName(Material.MOSSY_STONE_BRICK_SLAB, langConfig.getString("block.minecraft.mossy_stone_brick_slab", "Mossy Stone Brick Slab"))); + itemNames.add(new ItemName(Material.MOSSY_STONE_BRICK_STAIRS, langConfig.getString("block.minecraft.mossy_stone_brick_stairs", "Mossy Stone Brick Stairs"))); + itemNames.add(new ItemName(Material.MOSSY_STONE_BRICK_WALL, langConfig.getString("block.minecraft.mossy_stone_brick_wall", "Mossy Stone Brick Wall"))); + itemNames.add(new ItemName(Material.NETHER_BRICK_WALL, langConfig.getString("block.minecraft.nether_brick_wall", "Nether Brick Wall"))); + itemNames.add(new ItemName(Material.OAK_SIGN, langConfig.getString("block.minecraft.oak_sign", "Oak Sign"))); + itemNames.add(new ItemName(Material.OAK_WALL_SIGN, langConfig.getString("block.minecraft.oak_wall_sign", "Oak Wall Sign"))); + itemNames.add(new ItemName(Material.PANDA_SPAWN_EGG, langConfig.getString("item.minecraft.panda_spawn_egg", "Panda Spawn Egg"))); + itemNames.add(new ItemName(Material.PILLAGER_SPAWN_EGG, langConfig.getString("item.minecraft.pillager_spawn_egg", "Pillager Spawn Egg"))); + itemNames.add(new ItemName(Material.POLISHED_ANDESITE_SLAB, langConfig.getString("block.minecraft.polished_andesite_slab", "Polished Andesite Slab"))); + itemNames.add(new ItemName(Material.POLISHED_ANDESITE_STAIRS, langConfig.getString("block.minecraft.polished_andesite_stairs", "Polished Andesite Stairs"))); + itemNames.add(new ItemName(Material.POLISHED_DIORITE_SLAB, langConfig.getString("block.minecraft.polished_diorite_slab", "Polished Diorite Slab"))); + itemNames.add(new ItemName(Material.POLISHED_DIORITE_STAIRS, langConfig.getString("block.minecraft.polished_diorite_stairs", "Polished Diorite Stairs"))); + itemNames.add(new ItemName(Material.POLISHED_GRANITE_SLAB, langConfig.getString("block.minecraft.polished_granite_slab", "Polished Granite Slab"))); + itemNames.add(new ItemName(Material.POLISHED_GRANITE_STAIRS, langConfig.getString("block.minecraft.polished_granite_stairs", "Polished Granite Stairs"))); + itemNames.add(new ItemName(Material.POTTED_BAMBOO, langConfig.getString("block.minecraft.potted_bamboo", "Potted Bamboo"))); + itemNames.add(new ItemName(Material.POTTED_CORNFLOWER, langConfig.getString("block.minecraft.potted_cornflower", "Potted Cornflower"))); + itemNames.add(new ItemName(Material.POTTED_LILY_OF_THE_VALLEY, langConfig.getString("block.minecraft.potted_lily_of_the_valley", "Potted Lily of the Valley"))); + itemNames.add(new ItemName(Material.POTTED_WITHER_ROSE, langConfig.getString("block.minecraft.potted_wither_rose", "Potted Wither Rose"))); + itemNames.add(new ItemName(Material.PRISMARINE_WALL, langConfig.getString("block.minecraft.prismarine_wall", "Prismarine Wall"))); + itemNames.add(new ItemName(Material.RAVAGER_SPAWN_EGG, langConfig.getString("item.minecraft.ravager_spawn_egg", "Ravager Spawn Egg"))); + itemNames.add(new ItemName(Material.RED_DYE, langConfig.getString("item.minecraft.red_dye", "Red Dye"))); + itemNames.add(new ItemName(Material.RED_NETHER_BRICK_SLAB, langConfig.getString("block.minecraft.red_nether_brick_slab", "Red Nether Brick Slab"))); + itemNames.add(new ItemName(Material.RED_NETHER_BRICK_STAIRS, langConfig.getString("block.minecraft.red_nether_brick_stairs", "Red Nether Brick Stairs"))); + itemNames.add(new ItemName(Material.RED_NETHER_BRICK_WALL, langConfig.getString("block.minecraft.red_nether_brick_wall", "Red Nether Brick Wall"))); + itemNames.add(new ItemName(Material.RED_SANDSTONE_WALL, langConfig.getString("block.minecraft.red_sandstone_wall", "Red Sandstone Wall"))); + itemNames.add(new ItemName(Material.SANDSTONE_WALL, langConfig.getString("block.minecraft.sandstone_wall", "Sandstone Wall"))); + itemNames.add(new ItemName(Material.SCAFFOLDING, langConfig.getString("block.minecraft.scaffolding", "Scaffolding"))); + itemNames.add(new ItemName(Material.SKULL_BANNER_PATTERN, langConfig.getString("item.minecraft.skull_banner_pattern", "Banner Pattern"))); + itemNames.add(new ItemName(Material.SMITHING_TABLE, langConfig.getString("block.minecraft.smithing_table", "Smithing Table"))); + itemNames.add(new ItemName(Material.SMOKER, langConfig.getString("block.minecraft.smoker", "Smoker"))); + itemNames.add(new ItemName(Material.SMOOTH_QUARTZ_SLAB, langConfig.getString("block.minecraft.smooth_quartz_slab", "Smooth Quartz Slab"))); + itemNames.add(new ItemName(Material.SMOOTH_QUARTZ_STAIRS, langConfig.getString("block.minecraft.smooth_quartz_stairs", "Smooth Quartz Stairs"))); + itemNames.add(new ItemName(Material.SMOOTH_RED_SANDSTONE_SLAB, langConfig.getString("block.minecraft.smooth_red_sandstone_slab", "Smooth Red Sandstone Slab"))); + itemNames.add(new ItemName(Material.SMOOTH_RED_SANDSTONE_STAIRS, langConfig.getString("block.minecraft.smooth_red_sandstone_stairs", "Smooth Red Sandstone Stairs"))); + itemNames.add(new ItemName(Material.SMOOTH_SANDSTONE_SLAB, langConfig.getString("block.minecraft.smooth_sandstone_slab", "Smooth Sandstone Slab"))); + itemNames.add(new ItemName(Material.SMOOTH_SANDSTONE_STAIRS, langConfig.getString("block.minecraft.smooth_sandstone_stairs", "Smooth Sandstone Stairs"))); + itemNames.add(new ItemName(Material.SMOOTH_STONE_SLAB, langConfig.getString("block.minecraft.smooth_stone_slab", "Smooth Stone Slab"))); + itemNames.add(new ItemName(Material.SPRUCE_SIGN, langConfig.getString("block.minecraft.spruce_sign", "Spruce Sign"))); + itemNames.add(new ItemName(Material.SPRUCE_WALL_SIGN, langConfig.getString("block.minecraft.spruce_wall_sign", "Spruce Wall Sign"))); + itemNames.add(new ItemName(Material.STONE_BRICK_WALL, langConfig.getString("block.minecraft.stone_brick_wall", "Stone Brick Wall"))); + itemNames.add(new ItemName(Material.STONECUTTER, langConfig.getString("block.minecraft.stonecutter", "Stonecutter"))); + itemNames.add(new ItemName(Material.SUSPICIOUS_STEW, langConfig.getString("item.minecraft.suspicious_stew", "Suspicious Stew"))); + itemNames.add(new ItemName(Material.SWEET_BERRIES, langConfig.getString("item.minecraft.sweet_berries", "Sweet Berries"))); + itemNames.add(new ItemName(Material.SWEET_BERRY_BUSH, langConfig.getString("block.minecraft.sweet_berry_bush", "Sweet Berry Bush"))); + itemNames.add(new ItemName(Material.TRADER_LLAMA_SPAWN_EGG, langConfig.getString("item.minecraft.trader_llama_spawn_egg", "Trader Llama Spawn Egg"))); + itemNames.add(new ItemName(Material.WANDERING_TRADER_SPAWN_EGG, langConfig.getString("item.minecraft.wandering_trader_spawn_egg", "Wandering Trader Spawn Egg"))); + itemNames.add(new ItemName(Material.WHITE_DYE, langConfig.getString("item.minecraft.white_dye", "White Dye"))); + itemNames.add(new ItemName(Material.WITHER_ROSE, langConfig.getString("item.minecraft.wither_rose", "Wither Rose"))); + itemNames.add(new ItemName(Material.YELLOW_DYE, langConfig.getString("item.minecraft.yellow_dye", "Yellow Dye"))); + } else { + // Add pre-1.14 item names that don't exist anymore + itemNames.add(new ItemName(Material.valueOf("CACTUS_GREEN"), langConfig.getString("item.minecraft.cactus_green", "Cactus Green"))); + itemNames.add(new ItemName(Material.valueOf("DANDELION_YELLOW"), langConfig.getString("item.minecraft.dandelion_yellow", "Dandelion Yellow"))); + itemNames.add(new ItemName(Material.valueOf("ROSE_RED"), langConfig.getString("item.minecraft.rose_red", "Rose Red"))); + itemNames.add(new ItemName(Material.valueOf("SIGN"), langConfig.getString("item.minecraft.sign", "Sign"))); + itemNames.add(new ItemName(Material.valueOf("WALL_SIGN"), langConfig.getString("item.minecraft.wall_sign", "Wall Sign"))); + } + // Add Enchantment Names enchantmentNames.add(new EnchantmentName(Enchantment.DAMAGE_ALL, langConfig.getString("enchantment.minecraft.sharpness", "Sharpness"))); enchantmentNames.add(new EnchantmentName(Enchantment.DAMAGE_UNDEAD, langConfig.getString("enchantment.minecraft.smite", "Smite"))); @@ -1869,6 +1982,13 @@ public class LanguageUtils { enchantmentNames.add(new EnchantmentName(Enchantment.RIPTIDE, langConfig.getString("enchantment.minecraft.riptide", "Riptide"))); enchantmentNames.add(new EnchantmentName(Enchantment.CHANNELING, langConfig.getString("enchantment.minecraft.channeling", "Channeling"))); + if (Utils.getMajorVersion() >= 14) { + // Add 1.14 enchantment names + enchantmentNames.add(new EnchantmentName(Enchantment.MULTISHOT, langConfig.getString("enchantment.minecraft.multishot", "Multishot"))); + enchantmentNames.add(new EnchantmentName(Enchantment.QUICK_CHARGE, langConfig.getString("enchantment.minecraft.quick_charge", "Quick Charge"))); + enchantmentNames.add(new EnchantmentName(Enchantment.PIERCING, langConfig.getString("enchantment.minecraft.piercing", "Piercing"))); + } + // Add Enchantment Level Names enchantmentLevelNames.add(new EnchantmentName.EnchantmentLevelName(1, langConfig.getString("enchantment.level.1", "I"))); enchantmentLevelNames.add(new EnchantmentName.EnchantmentLevelName(2, langConfig.getString("enchantment.level.2", "II"))); @@ -1913,6 +2033,14 @@ public class LanguageUtils { potionEffectNames.add(new PotionEffectName(PotionEffectType.CONDUIT_POWER, langConfig.getString("effect.minecraft.conduit_power", "Conduit Power"))); potionEffectNames.add(new PotionEffectName(PotionEffectType.DOLPHINS_GRACE, langConfig.getString("effect.minecraft.dolphins_grace", "Dolphin's Grace"))); + + if (Utils.getMajorVersion() >= 14) { + // Add 1.14 potion effect names + potionEffectNames.add(new PotionEffectName(PotionEffectType.BAD_OMEN, langConfig.getString("effect.minecraft.bad_omen", "Bad Omen"))); + potionEffectNames.add(new PotionEffectName(PotionEffectType.HERO_OF_THE_VILLAGE, langConfig.getString("effect.minecraft.hero_of_the_village", "Hero of the Village"))); + + } + // Add Potion Names potionNames.add(new PotionName(PotionName.PotionItemType.POTION, PotionType.UNCRAFTABLE, langConfig.getString("item.minecraft.potion.effect.empty", "Uncraftable Potion"))); potionNames.add(new PotionName(PotionName.PotionItemType.POTION, PotionType.WATER, langConfig.getString("item.minecraft.potion.effect.water", "Water Bottle"))); @@ -2023,6 +2151,15 @@ public class LanguageUtils { musicDiscNames.add(new MusicDiscName(Material.MUSIC_DISC_11, langConfig.getString("item.minecraft.music_disc_11.desc", "C418 - 11"))); musicDiscNames.add(new MusicDiscName(Material.MUSIC_DISC_WAIT, langConfig.getString("item.minecraft.music_disc_wait.desc", "C418 - wait"))); + if (Utils.getMajorVersion() >= 14) { + // Add Banner Pattern Names + bannerPatternNames.add(new BannerPatternName(Material.CREEPER_BANNER_PATTERN, langConfig.getString("item.minecraft.creeper_banner_pattern.desc", "Creeper Charge"))); + bannerPatternNames.add(new BannerPatternName(Material.SKULL_BANNER_PATTERN, langConfig.getString("item.minecraft.skull_banner_pattern.desc", "Skull Charge"))); + bannerPatternNames.add(new BannerPatternName(Material.FLOWER_BANNER_PATTERN, langConfig.getString("item.minecraft.flower_banner_pattern.desc", "Flower Charge"))); + bannerPatternNames.add(new BannerPatternName(Material.MOJANG_BANNER_PATTERN, langConfig.getString("item.minecraft.mojang_banner_pattern.desc", "Thing"))); + bannerPatternNames.add(new BannerPatternName(Material.GLOBE_BANNER_PATTERN, langConfig.getString("item.minecraft.globe_banner_pattern.desc", "Globe"))); + } + // Add Book Generation Names generationNames.add(new BookGenerationName(CustomBookMeta.Generation.ORIGINAL, langConfig.getString("book.generation.0", "Original"))); generationNames.add(new BookGenerationName(CustomBookMeta.Generation.COPY_OF_ORIGINAL, langConfig.getString("book.generation.1", "Copy of original"))); @@ -2329,6 +2466,21 @@ public class LanguageUtils { return ""; } + /** + * @param bannerPatternMaterial Material of the Music Disc whose name should be looked up + * @return Localized title of the Music Disc + */ + public static String getBannerPatternName(Material bannerPatternMaterial) { + if (bannerPatternMaterial == null) return null; + for (BannerPatternName bannerPatternName : bannerPatternNames) { + if (bannerPatternMaterial == bannerPatternName.getBannerPatternMaterial()) { + return bannerPatternName.getLocalizedName(); + } + } + + return ""; + } + /** * @param is ItemStack that should be of type {@link Material#WRITTEN_BOOK} * @return Localized name of the generation or {@code null} if the item is not a written book diff --git a/src/main/java/de/epiceric/shopchest/shop/Shop.java b/src/main/java/de/epiceric/shopchest/shop/Shop.java index 4f41c93..2c863ba 100644 --- a/src/main/java/de/epiceric/shopchest/shop/Shop.java +++ b/src/main/java/de/epiceric/shopchest/shop/Shop.java @@ -286,6 +286,7 @@ public class Shop { placeholders.put(Placeholder.SELL_PRICE, getSellPrice()); placeholders.put(Placeholder.POTION_EFFECT, LanguageUtils.getPotionEffectName(itemStack)); placeholders.put(Placeholder.MUSIC_TITLE, LanguageUtils.getMusicDiscName(itemStack.getType())); + placeholders.put(Placeholder.BANNER_PATTERN_NAME, LanguageUtils.getBannerPatternName(itemStack.getType())); placeholders.put(Placeholder.GENERATION, LanguageUtils.getBookGenerationName(itemStack)); placeholders.put(Placeholder.STOCK, Utils.getAmount(inventory, itemStack)); placeholders.put(Placeholder.MAX_STACK, itemStack.getMaxStackSize()); diff --git a/src/main/resources/hologram-format.yml b/src/main/resources/hologram-format.yml index 54dc3c0..c12806c 100644 --- a/src/main/resources/hologram-format.yml +++ b/src/main/resources/hologram-format.yml @@ -24,8 +24,8 @@ # # Valid placeholders are: # %VENDOR%, %AMOUNT%, %ITEM-NAME%, %ENCHANTMENT%, %BUY-PRICE%, -# %SELL-PRICE%, %POTION-EFFECT%, %MUSIC-TITLE%, %GENERATION%, -# %STOCK%, %MAX-STACK%, %CHEST-SPACE%, %DURABILITY% +# %SELL-PRICE%, %POTION-EFFECT%, %MUSIC-TITLE%, %BANNER-PATTERN-NAME%, +# %GENERATION%, %STOCK%, %MAX-STACK%, %CHEST-SPACE%, %DURABILITY% # # In the format, placeholders can also be used for scripts. # Examples: diff --git a/src/main/resources/item_names.txt b/src/main/resources/item_names.txt index 5c19b8a..061a8ab 100644 --- a/src/main/resources/item_names.txt +++ b/src/main/resources/item_names.txt @@ -1,868 +1,971 @@ -Item names for Bukkit 1.13 +Item names for Bukkit 1.14 (Source: https://hub.spigotmc.org/javadocs/bukkit/org/bukkit/Material.html) -ACACIA_BOAT -ACACIA_BUTTON -ACACIA_DOOR -ACACIA_FENCE -ACACIA_FENCE_GATE -ACACIA_LEAVES -ACACIA_LOG -ACACIA_PLANKS -ACACIA_PRESSURE_PLATE -ACACIA_SAPLING -ACACIA_SLAB -ACACIA_STAIRS -ACACIA_TRAPDOOR -ACACIA_WOOD -ACTIVATOR_RAIL -AIR -ALLIUM -ANDESITE -ANVIL -APPLE -ARMOR_STAND -ARROW -ATTACHED_MELON_STEM -ATTACHED_PUMPKIN_STEM -AZURE_BLUET -BAKED_POTATO -BARRIER -BAT_SPAWN_EGG -BEACON -BEDROCK -BEEF -BEETROOT -BEETROOT_SEEDS -BEETROOT_SOUP -BEETROOTS -BIRCH_BOAT -BIRCH_BUTTON -BIRCH_DOOR -BIRCH_FENCE -BIRCH_FENCE_GATE -BIRCH_LEAVES -BIRCH_LOG -BIRCH_PLANKS -BIRCH_PRESSURE_PLATE -BIRCH_SAPLING -BIRCH_SLAB -BIRCH_STAIRS -BIRCH_TRAPDOOR -BIRCH_WOOD -BLACK_BANNER -BLACK_BED -BLACK_CARPET -BLACK_CONCRETE -BLACK_CONCRETE_POWDER -BLACK_GLAZED_TERRACOTTA -BLACK_SHULKER_BOX -BLACK_STAINED_GLASS -BLACK_STAINED_GLASS_PANE -BLACK_TERRACOTTA -BLACK_WALL_BANNER -BLACK_WOOL -BLAZE_POWDER -BLAZE_ROD -BLAZE_SPAWN_EGG -BLUE_BANNER -BLUE_BED -BLUE_CARPET -BLUE_CONCRETE -BLUE_CONCRETE_POWDER -BLUE_GLAZED_TERRACOTTA -BLUE_ICE -BLUE_ORCHID -BLUE_SHULKER_BOX -BLUE_STAINED_GLASS -BLUE_STAINED_GLASS_PANE -BLUE_TERRACOTTA -BLUE_WALL_BANNER -BLUE_WOOL -BONE -BONE_BLOCK -BONE_MEAL -BOOK -BOOKSHELF -BOW -BOWL -BRAIN_CORAL -BRAIN_CORAL_BLOCK -BRAIN_CORAL_FAN -BRAIN_CORAL_WALL_FAN -BREAD -BREWING_STAND -BRICK -BRICK_SLAB -BRICK_STAIRS -BRICKS -BROWN_BANNER -BROWN_BED -BROWN_CARPET -BROWN_CONCRETE -BROWN_CONCRETE_POWDER -BROWN_GLAZED_TERRACOTTA -BROWN_MUSHROOM -BROWN_MUSHROOM_BLOCK -BROWN_SHULKER_BOX -BROWN_STAINED_GLASS -BROWN_STAINED_GLASS_PANE -BROWN_TERRACOTTA -BROWN_WALL_BANNER -BROWN_WOOL -BUBBLE_COLUMN -BUBBLE_CORAL -BUBBLE_CORAL_BLOCK -BUBBLE_CORAL_FAN -BUBBLE_CORAL_WALL_FAN -BUCKET -CACTUS -CACTUS_GREEN -CAKE -CARROT -CARROT_ON_A_STICK -CARROTS -CARVED_PUMPKIN -CAULDRON -CAVE_AIR -CAVE_SPIDER_SPAWN_EGG -CHAIN_COMMAND_BLOCK -CHAINMAIL_BOOTS -CHAINMAIL_CHESTPLATE -CHAINMAIL_HELMET -CHAINMAIL_LEGGINGS -CHARCOAL -CHEST -CHEST_MINECART -CHICKEN -CHICKEN_SPAWN_EGG -CHIPPED_ANVIL -CHISELED_QUARTZ_BLOCK -CHISELED_RED_SANDSTONE -CHISELED_SANDSTONE -CHISELED_STONE_BRICKS -CHORUS_FLOWER -CHORUS_FRUIT -CHORUS_PLANT -CLAY -CLAY_BALL -CLOCK -COAL -COAL_BLOCK -COAL_ORE -COARSE_DIRT -COBBLESTONE -COBBLESTONE_SLAB -COBBLESTONE_STAIRS -COBBLESTONE_WALL -COBWEB -COCOA -COCOA_BEANS -COD -COD_BUCKET -COD_SPAWN_EGG -COMMAND_BLOCK -COMMAND_BLOCK_MINECART -COMPARATOR -COMPASS -CONDUIT -COOKED_BEEF -COOKED_CHICKEN -COOKED_COD -COOKED_MUTTON -COOKED_PORKCHOP -COOKED_RABBIT -COOKED_SALMON -COOKIE -COW_SPAWN_EGG -CRACKED_STONE_BRICKS -CRAFTING_TABLE -CREEPER_HEAD -CREEPER_SPAWN_EGG -CREEPER_WALL_HEAD -CUT_RED_SANDSTONE -CUT_SANDSTONE -CYAN_BANNER -CYAN_BED -CYAN_CARPET -CYAN_CONCRETE -CYAN_CONCRETE_POWDER -CYAN_DYE -CYAN_GLAZED_TERRACOTTA -CYAN_SHULKER_BOX -CYAN_STAINED_GLASS -CYAN_STAINED_GLASS_PANE -CYAN_TERRACOTTA -CYAN_WALL_BANNER -CYAN_WOOL -DAMAGED_ANVIL -DANDELION -DANDELION_YELLOW -DARK_OAK_BOAT -DARK_OAK_BUTTON -DARK_OAK_DOOR -DARK_OAK_FENCE -DARK_OAK_FENCE_GATE -DARK_OAK_LEAVES -DARK_OAK_LOG -DARK_OAK_PLANKS -DARK_OAK_PRESSURE_PLATE -DARK_OAK_SAPLING -DARK_OAK_SLAB -DARK_OAK_STAIRS -DARK_OAK_TRAPDOOR -DARK_OAK_WOOD -DARK_PRISMARINE -DARK_PRISMARINE_SLAB -DARK_PRISMARINE_STAIRS -DAYLIGHT_DETECTOR -DEAD_BRAIN_CORAL_BLOCK -DEAD_BRAIN_CORAL_FAN -DEAD_BRAIN_CORAL_WALL_FAN -DEAD_BUBBLE_CORAL_BLOCK -DEAD_BUBBLE_CORAL_FAN -DEAD_BUBBLE_CORAL_WALL_FAN -DEAD_BUSH -DEAD_FIRE_CORAL_BLOCK -DEAD_FIRE_CORAL_FAN -DEAD_FIRE_CORAL_WALL_FAN -DEAD_HORN_CORAL_BLOCK -DEAD_HORN_CORAL_FAN -DEAD_HORN_CORAL_WALL_FAN -DEAD_TUBE_CORAL_BLOCK -DEAD_TUBE_CORAL_FAN -DEAD_TUBE_CORAL_WALL_FAN -DEBUG_STICK -DETECTOR_RAIL -DIAMOND -DIAMOND_AXE -DIAMOND_BLOCK -DIAMOND_BOOTS -DIAMOND_CHESTPLATE -DIAMOND_HELMET -DIAMOND_HOE -DIAMOND_HORSE_ARMOR -DIAMOND_LEGGINGS -DIAMOND_ORE -DIAMOND_PICKAXE -DIAMOND_SHOVEL -DIAMOND_SWORD -DIORITE -DIRT -DISPENSER -DOLPHIN_SPAWN_EGG -DONKEY_SPAWN_EGG -DRAGON_BREATH -DRAGON_EGG -DRAGON_HEAD -DRAGON_WALL_HEAD -DRIED_KELP -DRIED_KELP_BLOCK -DROPPER -DROWNED_SPAWN_EGG -EGG -ELDER_GUARDIAN_SPAWN_EGG -ELYTRA -EMERALD -EMERALD_BLOCK -EMERALD_ORE -ENCHANTED_BOOK -ENCHANTED_GOLDEN_APPLE -ENCHANTING_TABLE -END_CRYSTAL -END_GATEWAY -END_PORTAL -END_PORTAL_FRAME -END_ROD -END_STONE -END_STONE_BRICKS -ENDER_CHEST -ENDER_EYE -ENDER_PEARL -ENDERMAN_SPAWN_EGG -ENDERMITE_SPAWN_EGG -EVOKER_SPAWN_EGG -EXPERIENCE_BOTTLE -FARMLAND -FEATHER -FERMENTED_SPIDER_EYE -FERN -FILLED_MAP -FIRE -FIRE_CHARGE -FIRE_CORAL -FIRE_CORAL_BLOCK -FIRE_CORAL_FAN -FIRE_CORAL_WALL_FAN -FIREWORK_ROCKET -FIREWORK_STAR -FISHING_ROD -FLINT -FLINT_AND_STEEL -FLOWER_POT -FROSTED_ICE -FURNACE -FURNACE_MINECART -GHAST_SPAWN_EGG -GHAST_TEAR -GLASS -GLASS_BOTTLE -GLASS_PANE -GLISTERING_MELON_SLICE -GLOWSTONE -GLOWSTONE_DUST -GOLD_BLOCK -GOLD_INGOT -GOLD_NUGGET -GOLD_ORE -GOLDEN_APPLE -GOLDEN_AXE -GOLDEN_BOOTS -GOLDEN_CARROT -GOLDEN_CHESTPLATE -GOLDEN_HELMET -GOLDEN_HOE -GOLDEN_HORSE_ARMOR -GOLDEN_LEGGINGS -GOLDEN_PICKAXE -GOLDEN_SHOVEL -GOLDEN_SWORD -GRANITE -GRASS -GRASS_BLOCK -GRASS_PATH -GRAVEL -GRAY_BANNER -GRAY_BED -GRAY_CARPET -GRAY_CONCRETE -GRAY_CONCRETE_POWDER -GRAY_DYE -GRAY_GLAZED_TERRACOTTA -GRAY_SHULKER_BOX -GRAY_STAINED_GLASS -GRAY_STAINED_GLASS_PANE -GRAY_TERRACOTTA -GRAY_WALL_BANNER -GRAY_WOOL -GREEN_BANNER -GREEN_BED -GREEN_CARPET -GREEN_CONCRETE -GREEN_CONCRETE_POWDER -GREEN_GLAZED_TERRACOTTA -GREEN_SHULKER_BOX -GREEN_STAINED_GLASS -GREEN_STAINED_GLASS_PANE -GREEN_TERRACOTTA -GREEN_WALL_BANNER -GREEN_WOOL -GUARDIAN_SPAWN_EGG -GUNPOWDER -HAY_BLOCK -HEART_OF_THE_SEA -HEAVY_WEIGHTED_PRESSURE_PLATE -HOPPER -HOPPER_MINECART -HORN_CORAL -HORN_CORAL_BLOCK -HORN_CORAL_FAN -HORN_CORAL_WALL_FAN -HORSE_SPAWN_EGG -HUSK_SPAWN_EGG -ICE -INFESTED_CHISELED_STONE_BRICKS -INFESTED_COBBLESTONE -INFESTED_CRACKED_STONE_BRICKS -INFESTED_MOSSY_STONE_BRICKS -INFESTED_STONE -INFESTED_STONE_BRICKS -INK_SAC -IRON_AXE -IRON_BARS -IRON_BLOCK -IRON_BOOTS -IRON_CHESTPLATE -IRON_DOOR -IRON_HELMET -IRON_HOE -IRON_HORSE_ARMOR -IRON_INGOT -IRON_LEGGINGS -IRON_NUGGET -IRON_ORE -IRON_PICKAXE -IRON_SHOVEL -IRON_SWORD -IRON_TRAPDOOR -ITEM_FRAME -JACK_O_LANTERN -JUKEBOX -JUNGLE_BOAT -JUNGLE_BUTTON -JUNGLE_DOOR -JUNGLE_FENCE -JUNGLE_FENCE_GATE -JUNGLE_LEAVES -JUNGLE_LOG -JUNGLE_PLANKS -JUNGLE_PRESSURE_PLATE -JUNGLE_SAPLING -JUNGLE_SLAB -JUNGLE_STAIRS -JUNGLE_TRAPDOOR -JUNGLE_WOOD -KELP -KELP_PLANT -KNOWLEDGE_BOOK -LADDER -LAPIS_BLOCK -LAPIS_LAZULI -LAPIS_ORE -LARGE_FERN -LAVA -LAVA_BUCKET -LEAD -LEATHER -LEATHER_BOOTS -LEATHER_CHESTPLATE -LEATHER_HELMET +ACACIA_BOAT +ACACIA_BUTTON +ACACIA_DOOR +ACACIA_FENCE +ACACIA_FENCE_GATE +ACACIA_LEAVES +ACACIA_LOG +ACACIA_PLANKS +ACACIA_PRESSURE_PLATE +ACACIA_SAPLING +ACACIA_SIGN +ACACIA_SLAB +ACACIA_STAIRS +ACACIA_TRAPDOOR +ACACIA_WALL_SIGN +ACACIA_WOOD +ACTIVATOR_RAIL +AIR +ALLIUM +ANDESITE +ANDESITE_SLAB +ANDESITE_STAIRS +ANDESITE_WALL +ANVIL +APPLE +ARMOR_STAND +ARROW +ATTACHED_MELON_STEM +ATTACHED_PUMPKIN_STEM +AZURE_BLUET +BAKED_POTATO +BAMBOO +BAMBOO_SAPLING +BARREL +BARRIER +BAT_SPAWN_EGG +BEACON +BEDROCK +BEEF +BEETROOT +BEETROOT_SEEDS +BEETROOT_SOUP +BEETROOTS +BELL +BIRCH_BOAT +BIRCH_BUTTON +BIRCH_DOOR +BIRCH_FENCE +BIRCH_FENCE_GATE +BIRCH_LEAVES +BIRCH_LOG +BIRCH_PLANKS +BIRCH_PRESSURE_PLATE +BIRCH_SAPLING +BIRCH_SIGN +BIRCH_SLAB +BIRCH_STAIRS +BIRCH_TRAPDOOR +BIRCH_WALL_SIGN +BIRCH_WOOD +BLACK_BANNER +BLACK_BED +BLACK_CARPET +BLACK_CONCRETE +BLACK_CONCRETE_POWDER +BLACK_DYE +BLACK_GLAZED_TERRACOTTA +BLACK_SHULKER_BOX +BLACK_STAINED_GLASS +BLACK_STAINED_GLASS_PANE +BLACK_TERRACOTTA +BLACK_WALL_BANNER +BLACK_WOOL +BLAST_FURNACE +BLAZE_POWDER +BLAZE_ROD +BLAZE_SPAWN_EGG +BLUE_BANNER +BLUE_BED +BLUE_CARPET +BLUE_CONCRETE +BLUE_CONCRETE_POWDER +BLUE_DYE +BLUE_GLAZED_TERRACOTTA +BLUE_ICE +BLUE_ORCHID +BLUE_SHULKER_BOX +BLUE_STAINED_GLASS +BLUE_STAINED_GLASS_PANE +BLUE_TERRACOTTA +BLUE_WALL_BANNER +BLUE_WOOL +BONE +BONE_BLOCK +BONE_MEAL +BOOK +BOOKSHELF +BOW +BOWL +BRAIN_CORAL +BRAIN_CORAL_BLOCK +BRAIN_CORAL_FAN +BRAIN_CORAL_WALL_FAN +BREAD +BREWING_STAND +BRICK +BRICK_SLAB +BRICK_STAIRS +BRICK_WALL +BRICKS +BROWN_BANNER +BROWN_BED +BROWN_CARPET +BROWN_CONCRETE +BROWN_CONCRETE_POWDER +BROWN_DYE +BROWN_GLAZED_TERRACOTTA +BROWN_MUSHROOM +BROWN_MUSHROOM_BLOCK +BROWN_SHULKER_BOX +BROWN_STAINED_GLASS +BROWN_STAINED_GLASS_PANE +BROWN_TERRACOTTA +BROWN_WALL_BANNER +BROWN_WOOL +BUBBLE_COLUMN +BUBBLE_CORAL +BUBBLE_CORAL_BLOCK +BUBBLE_CORAL_FAN +BUBBLE_CORAL_WALL_FAN +BUCKET +CACTUS +CAKE +CAMPFIRE +CARROT +CARROT_ON_A_STICK +CARROTS +CARTOGRAPHY_TABLE +CARVED_PUMPKIN +CAT_SPAWN_EGG +CAULDRON +CAVE_AIR +CAVE_SPIDER_SPAWN_EGG +CHAIN_COMMAND_BLOCK +CHAINMAIL_BOOTS +CHAINMAIL_CHESTPLATE +CHAINMAIL_HELMET +CHAINMAIL_LEGGINGS +CHARCOAL +CHEST +CHEST_MINECART +CHICKEN +CHICKEN_SPAWN_EGG +CHIPPED_ANVIL +CHISELED_QUARTZ_BLOCK +CHISELED_RED_SANDSTONE +CHISELED_SANDSTONE +CHISELED_STONE_BRICKS +CHORUS_FLOWER +CHORUS_FRUIT +CHORUS_PLANT +CLAY +CLAY_BALL +CLOCK +COAL +COAL_BLOCK +COAL_ORE +COARSE_DIRT +COBBLESTONE +COBBLESTONE_SLAB +COBBLESTONE_STAIRS +COBBLESTONE_WALL +COBWEB +COCOA +COCOA_BEANS +COD +COD_BUCKET +COD_SPAWN_EGG +COMMAND_BLOCK +COMMAND_BLOCK_MINECART +COMPARATOR +COMPASS +COMPOSTER +CONDUIT +COOKED_BEEF +COOKED_CHICKEN +COOKED_COD +COOKED_MUTTON +COOKED_PORKCHOP +COOKED_RABBIT +COOKED_SALMON +COOKIE +CORNFLOWER +COW_SPAWN_EGG +CRACKED_STONE_BRICKS +CRAFTING_TABLE +CREEPER_BANNER_PATTERN +CREEPER_HEAD +CREEPER_SPAWN_EGG +CREEPER_WALL_HEAD +CROSSBOW +CUT_RED_SANDSTONE +CUT_RED_SANDSTONE_SLAB +CUT_SANDSTONE +CUT_SANDSTONE_SLAB +CYAN_BANNER +CYAN_BED +CYAN_CARPET +CYAN_CONCRETE +CYAN_CONCRETE_POWDER +CYAN_DYE +CYAN_GLAZED_TERRACOTTA +CYAN_SHULKER_BOX +CYAN_STAINED_GLASS +CYAN_STAINED_GLASS_PANE +CYAN_TERRACOTTA +CYAN_WALL_BANNER +CYAN_WOOL +DAMAGED_ANVIL +DANDELION +DARK_OAK_BOAT +DARK_OAK_BUTTON +DARK_OAK_DOOR +DARK_OAK_FENCE +DARK_OAK_FENCE_GATE +DARK_OAK_LEAVES +DARK_OAK_LOG +DARK_OAK_PLANKS +DARK_OAK_PRESSURE_PLATE +DARK_OAK_SAPLING +DARK_OAK_SIGN +DARK_OAK_SLAB +DARK_OAK_STAIRS +DARK_OAK_TRAPDOOR +DARK_OAK_WALL_SIGN +DARK_OAK_WOOD +DARK_PRISMARINE +DARK_PRISMARINE_SLAB +DARK_PRISMARINE_STAIRS +DAYLIGHT_DETECTOR +DEAD_BRAIN_CORAL +DEAD_BRAIN_CORAL_BLOCK +DEAD_BRAIN_CORAL_FAN +DEAD_BRAIN_CORAL_WALL_FAN +DEAD_BUBBLE_CORAL +DEAD_BUBBLE_CORAL_BLOCK +DEAD_BUBBLE_CORAL_FAN +DEAD_BUBBLE_CORAL_WALL_FAN +DEAD_BUSH +DEAD_FIRE_CORAL +DEAD_FIRE_CORAL_BLOCK +DEAD_FIRE_CORAL_FAN +DEAD_FIRE_CORAL_WALL_FAN +DEAD_HORN_CORAL +DEAD_HORN_CORAL_BLOCK +DEAD_HORN_CORAL_FAN +DEAD_HORN_CORAL_WALL_FAN +DEAD_TUBE_CORAL +DEAD_TUBE_CORAL_BLOCK +DEAD_TUBE_CORAL_FAN +DEAD_TUBE_CORAL_WALL_FAN +DEBUG_STICK +DETECTOR_RAIL +DIAMOND +DIAMOND_AXE +DIAMOND_BLOCK +DIAMOND_BOOTS +DIAMOND_CHESTPLATE +DIAMOND_HELMET +DIAMOND_HOE +DIAMOND_HORSE_ARMOR +DIAMOND_LEGGINGS +DIAMOND_ORE +DIAMOND_PICKAXE +DIAMOND_SHOVEL +DIAMOND_SWORD +DIORITE +DIORITE_SLAB +DIORITE_STAIRS +DIORITE_WALL +DIRT +DISPENSER +DOLPHIN_SPAWN_EGG +DONKEY_SPAWN_EGG +DRAGON_BREATH +DRAGON_EGG +DRAGON_HEAD +DRAGON_WALL_HEAD +DRIED_KELP +DRIED_KELP_BLOCK +DROPPER +DROWNED_SPAWN_EGG +EGG +ELDER_GUARDIAN_SPAWN_EGG +ELYTRA +EMERALD +EMERALD_BLOCK +EMERALD_ORE +ENCHANTED_BOOK +ENCHANTED_GOLDEN_APPLE +ENCHANTING_TABLE +END_CRYSTAL +END_GATEWAY +END_PORTAL +END_PORTAL_FRAME +END_ROD +END_STONE +END_STONE_BRICK_SLAB +END_STONE_BRICK_STAIRS +END_STONE_BRICK_WALL +END_STONE_BRICKS +ENDER_CHEST +ENDER_EYE +ENDER_PEARL +ENDERMAN_SPAWN_EGG +ENDERMITE_SPAWN_EGG +EVOKER_SPAWN_EGG +EXPERIENCE_BOTTLE +FARMLAND +FEATHER +FERMENTED_SPIDER_EYE +FERN +FILLED_MAP +FIRE +FIRE_CHARGE +FIRE_CORAL +FIRE_CORAL_BLOCK +FIRE_CORAL_FAN +FIRE_CORAL_WALL_FAN +FIREWORK_ROCKET +FIREWORK_STAR +FISHING_ROD +FLETCHING_TABLE +FLINT +FLINT_AND_STEEL +FLOWER_BANNER_PATTERN +FLOWER_POT +FOX_SPAWN_EGG +FROSTED_ICE +FURNACE +FURNACE_MINECART +GHAST_SPAWN_EGG +GHAST_TEAR +GLASS +GLASS_BOTTLE +GLASS_PANE +GLISTERING_MELON_SLICE +GLOBE_BANNER_PATTERN +GLOWSTONE +GLOWSTONE_DUST +GOLD_BLOCK +GOLD_INGOT +GOLD_NUGGET +GOLD_ORE +GOLDEN_APPLE +GOLDEN_AXE +GOLDEN_BOOTS +GOLDEN_CARROT +GOLDEN_CHESTPLATE +GOLDEN_HELMET +GOLDEN_HOE +GOLDEN_HORSE_ARMOR +GOLDEN_LEGGINGS +GOLDEN_PICKAXE +GOLDEN_SHOVEL +GOLDEN_SWORD +GRANITE +GRANITE_SLAB +GRANITE_STAIRS +GRANITE_WALL +GRASS +GRASS_BLOCK +GRASS_PATH +GRAVEL +GRAY_BANNER +GRAY_BED +GRAY_CARPET +GRAY_CONCRETE +GRAY_CONCRETE_POWDER +GRAY_DYE +GRAY_GLAZED_TERRACOTTA +GRAY_SHULKER_BOX +GRAY_STAINED_GLASS +GRAY_STAINED_GLASS_PANE +GRAY_TERRACOTTA +GRAY_WALL_BANNER +GRAY_WOOL +GREEN_BANNER +GREEN_BED +GREEN_CARPET +GREEN_CONCRETE +GREEN_CONCRETE_POWDER +GREEN_DYE +GREEN_GLAZED_TERRACOTTA +GREEN_SHULKER_BOX +GREEN_STAINED_GLASS +GREEN_STAINED_GLASS_PANE +GREEN_TERRACOTTA +GREEN_WALL_BANNER +GREEN_WOOL +GRINDSTONE +GUARDIAN_SPAWN_EGG +GUNPOWDER +HAY_BLOCK +HEART_OF_THE_SEA +HEAVY_WEIGHTED_PRESSURE_PLATE +HOPPER +HOPPER_MINECART +HORN_CORAL +HORN_CORAL_BLOCK +HORN_CORAL_FAN +HORN_CORAL_WALL_FAN +HORSE_SPAWN_EGG +HUSK_SPAWN_EGG +ICE +INFESTED_CHISELED_STONE_BRICKS +INFESTED_COBBLESTONE +INFESTED_CRACKED_STONE_BRICKS +INFESTED_MOSSY_STONE_BRICKS +INFESTED_STONE +INFESTED_STONE_BRICKS +INK_SAC +IRON_AXE +IRON_BARS +IRON_BLOCK +IRON_BOOTS +IRON_CHESTPLATE +IRON_DOOR +IRON_HELMET +IRON_HOE +IRON_HORSE_ARMOR +IRON_INGOT +IRON_LEGGINGS +IRON_NUGGET +IRON_ORE +IRON_PICKAXE +IRON_SHOVEL +IRON_SWORD +IRON_TRAPDOOR +ITEM_FRAME +JACK_O_LANTERN +JIGSAW +JUKEBOX +JUNGLE_BOAT +JUNGLE_BUTTON +JUNGLE_DOOR +JUNGLE_FENCE +JUNGLE_FENCE_GATE +JUNGLE_LEAVES +JUNGLE_LOG +JUNGLE_PLANKS +JUNGLE_PRESSURE_PLATE +JUNGLE_SAPLING +JUNGLE_SIGN +JUNGLE_SLAB +JUNGLE_STAIRS +JUNGLE_TRAPDOOR +JUNGLE_WALL_SIGN +JUNGLE_WOOD +KELP +KELP_PLANT +KNOWLEDGE_BOOK +LADDER +LANTERN +LAPIS_BLOCK +LAPIS_LAZULI +LAPIS_ORE +LARGE_FERN +LAVA +LAVA_BUCKET +LEAD +LEATHER +LEATHER_BOOTS +LEATHER_CHESTPLATE +LEATHER_HELMET +LEATHER_HORSE_ARMOR LEATHER_LEGGINGS -LEVER -LIGHT_BLUE_BANNER -LIGHT_BLUE_BED -LIGHT_BLUE_CARPET -LIGHT_BLUE_CONCRETE -LIGHT_BLUE_CONCRETE_POWDER -LIGHT_BLUE_DYE -LIGHT_BLUE_GLAZED_TERRACOTTA -LIGHT_BLUE_SHULKER_BOX -LIGHT_BLUE_STAINED_GLASS -LIGHT_BLUE_STAINED_GLASS_PANE -LIGHT_BLUE_TERRACOTTA -LIGHT_BLUE_WALL_BANNER -LIGHT_BLUE_WOOL -LIGHT_GRAY_BANNER -LIGHT_GRAY_BED -LIGHT_GRAY_CARPET -LIGHT_GRAY_CONCRETE -LIGHT_GRAY_CONCRETE_POWDER -LIGHT_GRAY_DYE -LIGHT_GRAY_GLAZED_TERRACOTTA -LIGHT_GRAY_SHULKER_BOX -LIGHT_GRAY_STAINED_GLASS -LIGHT_GRAY_STAINED_GLASS_PANE -LIGHT_GRAY_TERRACOTTA -LIGHT_GRAY_WALL_BANNER -LIGHT_GRAY_WOOL -LIGHT_WEIGHTED_PRESSURE_PLATE -LILAC -LILY_PAD -LIME_BANNER -LIME_BED -LIME_CARPET -LIME_CONCRETE -LIME_CONCRETE_POWDER -LIME_DYE -LIME_GLAZED_TERRACOTTA -LIME_SHULKER_BOX -LIME_STAINED_GLASS -LIME_STAINED_GLASS_PANE -LIME_TERRACOTTA -LIME_WALL_BANNER -LIME_WOOL -LINGERING_POTION -LLAMA_SPAWN_EGG -MAGENTA_BANNER -MAGENTA_BED -MAGENTA_CARPET -MAGENTA_CONCRETE -MAGENTA_CONCRETE_POWDER -MAGENTA_DYE -MAGENTA_GLAZED_TERRACOTTA -MAGENTA_SHULKER_BOX -MAGENTA_STAINED_GLASS -MAGENTA_STAINED_GLASS_PANE -MAGENTA_TERRACOTTA -MAGENTA_WALL_BANNER -MAGENTA_WOOL -MAGMA_BLOCK -MAGMA_CREAM -MAGMA_CUBE_SPAWN_EGG -MAP -MELON -MELON_SEEDS -MELON_SLICE -MELON_STEM -MILK_BUCKET -MINECART -MOOSHROOM_SPAWN_EGG -MOSSY_COBBLESTONE -MOSSY_COBBLESTONE_WALL -MOSSY_STONE_BRICKS -MOVING_PISTON -MULE_SPAWN_EGG -MUSHROOM_STEM -MUSHROOM_STEW -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 -MUTTON -MYCELIUM -NAME_TAG -NAUTILUS_SHELL -NETHER_BRICK -NETHER_BRICK_FENCE -NETHER_BRICK_SLAB -NETHER_BRICK_STAIRS -NETHER_BRICKS -NETHER_PORTAL -NETHER_QUARTZ_ORE -NETHER_STAR -NETHER_WART -NETHER_WART_BLOCK -NETHERRACK -NOTE_BLOCK -OAK_BOAT -OAK_BUTTON -OAK_DOOR -OAK_FENCE -OAK_FENCE_GATE -OAK_LEAVES -OAK_LOG -OAK_PLANKS -OAK_PRESSURE_PLATE -OAK_SAPLING -OAK_SLAB -OAK_STAIRS -OAK_TRAPDOOR -OAK_WOOD -OBSERVER -OBSIDIAN -OCELOT_SPAWN_EGG -ORANGE_BANNER -ORANGE_BED -ORANGE_CARPET -ORANGE_CONCRETE -ORANGE_CONCRETE_POWDER -ORANGE_DYE -ORANGE_GLAZED_TERRACOTTA -ORANGE_SHULKER_BOX -ORANGE_STAINED_GLASS -ORANGE_STAINED_GLASS_PANE -ORANGE_TERRACOTTA -ORANGE_TULIP -ORANGE_WALL_BANNER -ORANGE_WOOL -OXEYE_DAISY -PACKED_ICE -PAINTING -PAPER -PARROT_SPAWN_EGG -PEONY -PETRIFIED_OAK_SLAB -PHANTOM_MEMBRANE -PHANTOM_SPAWN_EGG -PIG_SPAWN_EGG -PINK_BANNER -PINK_BED -PINK_CARPET -PINK_CONCRETE -PINK_CONCRETE_POWDER -PINK_DYE -PINK_GLAZED_TERRACOTTA -PINK_SHULKER_BOX -PINK_STAINED_GLASS -PINK_STAINED_GLASS_PANE -PINK_TERRACOTTA -PINK_TULIP -PINK_WALL_BANNER -PINK_WOOL -PISTON -PISTON_HEAD -PLAYER_HEAD -PLAYER_WALL_HEAD -PODZOL -POISONOUS_POTATO -POLAR_BEAR_SPAWN_EGG -POLISHED_ANDESITE -POLISHED_DIORITE -POLISHED_GRANITE -POPPED_CHORUS_FRUIT -POPPY -PORKCHOP -POTATO -POTATOES -POTION -POTTED_ACACIA_SAPLING -POTTED_ALLIUM -POTTED_AZURE_BLUET -POTTED_BIRCH_SAPLING -POTTED_BLUE_ORCHID -POTTED_BROWN_MUSHROOM -POTTED_CACTUS -POTTED_DANDELION -POTTED_DARK_OAK_SAPLING -POTTED_DEAD_BUSH -POTTED_FERN -POTTED_JUNGLE_SAPLING -POTTED_OAK_SAPLING -POTTED_ORANGE_TULIP -POTTED_OXEYE_DAISY -POTTED_PINK_TULIP -POTTED_POPPY -POTTED_RED_MUSHROOM -POTTED_RED_TULIP -POTTED_SPRUCE_SAPLING -POTTED_WHITE_TULIP -POWERED_RAIL -PRISMARINE -PRISMARINE_BRICK_SLAB -PRISMARINE_BRICK_STAIRS -PRISMARINE_BRICKS -PRISMARINE_CRYSTALS -PRISMARINE_SHARD -PRISMARINE_SLAB -PRISMARINE_STAIRS -PUFFERFISH -PUFFERFISH_BUCKET -PUFFERFISH_SPAWN_EGG -PUMPKIN -PUMPKIN_PIE -PUMPKIN_SEEDS -PUMPKIN_STEM -PURPLE_BANNER -PURPLE_BED -PURPLE_CARPET -PURPLE_CONCRETE -PURPLE_CONCRETE_POWDER -PURPLE_DYE -PURPLE_GLAZED_TERRACOTTA -PURPLE_SHULKER_BOX -PURPLE_STAINED_GLASS -PURPLE_STAINED_GLASS_PANE -PURPLE_TERRACOTTA -PURPLE_WALL_BANNER -PURPLE_WOOL -PURPUR_BLOCK -PURPUR_PILLAR -PURPUR_SLAB -PURPUR_STAIRS -QUARTZ -QUARTZ_BLOCK -QUARTZ_PILLAR -QUARTZ_SLAB -QUARTZ_STAIRS -RABBIT -RABBIT_FOOT -RABBIT_HIDE -RABBIT_SPAWN_EGG -RABBIT_STEW -RAIL -RED_BANNER -RED_BED -RED_CARPET -RED_CONCRETE -RED_CONCRETE_POWDER -RED_GLAZED_TERRACOTTA -RED_MUSHROOM -RED_MUSHROOM_BLOCK -RED_NETHER_BRICKS -RED_SAND -RED_SANDSTONE -RED_SANDSTONE_SLAB -RED_SANDSTONE_STAIRS -RED_SHULKER_BOX -RED_STAINED_GLASS -RED_STAINED_GLASS_PANE -RED_TERRACOTTA -RED_TULIP -RED_WALL_BANNER -RED_WOOL -REDSTONE -REDSTONE_BLOCK -REDSTONE_LAMP -REDSTONE_ORE -REDSTONE_TORCH -REDSTONE_WALL_TORCH -REDSTONE_WIRE -REPEATER -REPEATING_COMMAND_BLOCK -ROSE_BUSH -ROSE_RED -ROTTEN_FLESH -SADDLE -SALMON -SALMON_BUCKET -SALMON_SPAWN_EGG -SAND -SANDSTONE -SANDSTONE_SLAB -SANDSTONE_STAIRS -SCUTE -SEA_LANTERN -SEA_PICKLE -SEAGRASS -SHEARS -SHEEP_SPAWN_EGG -SHIELD -SHULKER_BOX -SHULKER_SHELL -SHULKER_SPAWN_EGG -SIGN -SILVERFISH_SPAWN_EGG -SKELETON_HORSE_SPAWN_EGG -SKELETON_SKULL -SKELETON_SPAWN_EGG -SKELETON_WALL_SKULL -SLIME_BALL -SLIME_BLOCK -SLIME_SPAWN_EGG -SMOOTH_QUARTZ -SMOOTH_RED_SANDSTONE -SMOOTH_SANDSTONE -SMOOTH_STONE -SNOW -SNOW_BLOCK -SNOWBALL -SOUL_SAND -SPAWNER -SPECTRAL_ARROW -SPIDER_EYE -SPIDER_SPAWN_EGG -SPLASH_POTION -SPONGE -SPRUCE_BOAT -SPRUCE_BUTTON -SPRUCE_DOOR -SPRUCE_FENCE -SPRUCE_FENCE_GATE -SPRUCE_LEAVES -SPRUCE_LOG -SPRUCE_PLANKS -SPRUCE_PRESSURE_PLATE -SPRUCE_SAPLING -SPRUCE_SLAB -SPRUCE_STAIRS -SPRUCE_TRAPDOOR -SPRUCE_WOOD -SQUID_SPAWN_EGG -STICK -STICKY_PISTON -STONE -STONE_AXE -STONE_BRICK_SLAB -STONE_BRICK_STAIRS -STONE_BRICKS -STONE_BUTTON -STONE_HOE -STONE_PICKAXE -STONE_PRESSURE_PLATE -STONE_SHOVEL -STONE_SLAB -STONE_SWORD -STRAY_SPAWN_EGG -STRING -STRIPPED_ACACIA_LOG -STRIPPED_ACACIA_WOOD -STRIPPED_BIRCH_LOG -STRIPPED_BIRCH_WOOD -STRIPPED_DARK_OAK_LOG -STRIPPED_DARK_OAK_WOOD -STRIPPED_JUNGLE_LOG -STRIPPED_JUNGLE_WOOD -STRIPPED_OAK_LOG -STRIPPED_OAK_WOOD -STRIPPED_SPRUCE_LOG -STRIPPED_SPRUCE_WOOD -STRUCTURE_BLOCK -STRUCTURE_VOID -SUGAR -SUGAR_CANE -SUNFLOWER -TALL_GRASS -TALL_SEAGRASS -TERRACOTTA -TIPPED_ARROW -TNT -TNT_MINECART -TORCH -TOTEM_OF_UNDYING -TRAPPED_CHEST -TRIDENT -TRIPWIRE -TRIPWIRE_HOOK -TROPICAL_FISH -TROPICAL_FISH_BUCKET -TROPICAL_FISH_SPAWN_EGG -TUBE_CORAL -TUBE_CORAL_BLOCK -TUBE_CORAL_FAN -TUBE_CORAL_WALL_FAN -TURTLE_EGG -TURTLE_HELMET -TURTLE_SPAWN_EGG -VEX_SPAWN_EGG -VILLAGER_SPAWN_EGG -VINDICATOR_SPAWN_EGG -VINE -VOID_AIR -WALL_SIGN -WALL_TORCH -WATER -WATER_BUCKET -WET_SPONGE -WHEAT -WHEAT_SEEDS -WHITE_BANNER -WHITE_BED -WHITE_CARPET -WHITE_CONCRETE -WHITE_CONCRETE_POWDER -WHITE_GLAZED_TERRACOTTA -WHITE_SHULKER_BOX -WHITE_STAINED_GLASS -WHITE_STAINED_GLASS_PANE -WHITE_TERRACOTTA -WHITE_TULIP -WHITE_WALL_BANNER -WHITE_WOOL -WITCH_SPAWN_EGG -WITHER_SKELETON_SKULL -WITHER_SKELETON_SPAWN_EGG -WITHER_SKELETON_WALL_SKULL -WOLF_SPAWN_EGG -WOODEN_AXE -WOODEN_HOE -WOODEN_PICKAXE -WOODEN_SHOVEL -WOODEN_SWORD -WRITABLE_BOOK -WRITTEN_BOOK -YELLOW_BANNER -YELLOW_BED -YELLOW_CARPET -YELLOW_CONCRETE -YELLOW_CONCRETE_POWDER -YELLOW_GLAZED_TERRACOTTA -YELLOW_SHULKER_BOX -YELLOW_STAINED_GLASS -YELLOW_STAINED_GLASS_PANE -YELLOW_TERRACOTTA -YELLOW_WALL_BANNER -YELLOW_WOOL -ZOMBIE_HEAD -ZOMBIE_HORSE_SPAWN_EGG -ZOMBIE_PIGMAN_SPAWN_EGG -ZOMBIE_SPAWN_EGG -ZOMBIE_VILLAGER_SPAWN_EGG +LECTERN +LEVER +LIGHT_BLUE_BANNER +LIGHT_BLUE_BED +LIGHT_BLUE_CARPET +LIGHT_BLUE_CONCRETE +LIGHT_BLUE_CONCRETE_POWDER +LIGHT_BLUE_DYE +LIGHT_BLUE_GLAZED_TERRACOTTA +LIGHT_BLUE_SHULKER_BOX +LIGHT_BLUE_STAINED_GLASS +LIGHT_BLUE_STAINED_GLASS_PANE +LIGHT_BLUE_TERRACOTTA +LIGHT_BLUE_WALL_BANNER +LIGHT_BLUE_WOOL +LIGHT_GRAY_BANNER +LIGHT_GRAY_BED +LIGHT_GRAY_CARPET +LIGHT_GRAY_CONCRETE +LIGHT_GRAY_CONCRETE_POWDER +LIGHT_GRAY_DYE +LIGHT_GRAY_GLAZED_TERRACOTTA +LIGHT_GRAY_SHULKER_BOX +LIGHT_GRAY_STAINED_GLASS +LIGHT_GRAY_STAINED_GLASS_PANE +LIGHT_GRAY_TERRACOTTA +LIGHT_GRAY_WALL_BANNER +LIGHT_GRAY_WOOL +LIGHT_WEIGHTED_PRESSURE_PLATE +LILAC +LILY_OF_THE_VALLEY +LILY_PAD +LIME_BANNER +LIME_BED +LIME_CARPET +LIME_CONCRETE +LIME_CONCRETE_POWDER +LIME_DYE +LIME_GLAZED_TERRACOTTA +LIME_SHULKER_BOX +LIME_STAINED_GLASS +LIME_STAINED_GLASS_PANE +LIME_TERRACOTTA +LIME_WALL_BANNER +LIME_WOOL +LINGERING_POTION +LLAMA_SPAWN_EGG +LOOM +MAGENTA_BANNER +MAGENTA_BED +MAGENTA_CARPET +MAGENTA_CONCRETE +MAGENTA_CONCRETE_POWDER +MAGENTA_DYE +MAGENTA_GLAZED_TERRACOTTA +MAGENTA_SHULKER_BOX +MAGENTA_STAINED_GLASS +MAGENTA_STAINED_GLASS_PANE +MAGENTA_TERRACOTTA +MAGENTA_WALL_BANNER +MAGENTA_WOOL +MAGMA_BLOCK +MAGMA_CREAM +MAGMA_CUBE_SPAWN_EGG +MAP +MELON +MELON_SEEDS +MELON_SLICE +MELON_STEM +MILK_BUCKET +MINECART +MOJANG_BANNER_PATTERN +MOOSHROOM_SPAWN_EGG +MOSSY_COBBLESTONE +MOSSY_COBBLESTONE_SLAB +MOSSY_COBBLESTONE_STAIRS +MOSSY_COBBLESTONE_WALL +MOSSY_STONE_BRICK_SLAB +MOSSY_STONE_BRICK_STAIRS +MOSSY_STONE_BRICK_WALL +MOSSY_STONE_BRICKS +MOVING_PISTON +MULE_SPAWN_EGG +MUSHROOM_STEM +MUSHROOM_STEW +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 +MUTTON +MYCELIUM +NAME_TAG +NAUTILUS_SHELL +NETHER_BRICK +NETHER_BRICK_FENCE +NETHER_BRICK_SLAB +NETHER_BRICK_STAIRS +NETHER_BRICK_WALL +NETHER_BRICKS +NETHER_PORTAL +NETHER_QUARTZ_ORE +NETHER_STAR +NETHER_WART +NETHER_WART_BLOCK +NETHERRACK +NOTE_BLOCK +OAK_BOAT +OAK_BUTTON +OAK_DOOR +OAK_FENCE +OAK_FENCE_GATE +OAK_LEAVES +OAK_LOG +OAK_PLANKS +OAK_PRESSURE_PLATE +OAK_SAPLING +OAK_SIGN +OAK_SLAB +OAK_STAIRS +OAK_TRAPDOOR +OAK_WALL_SIGN +OAK_WOOD +OBSERVER +OBSIDIAN +OCELOT_SPAWN_EGG +ORANGE_BANNER +ORANGE_BED +ORANGE_CARPET +ORANGE_CONCRETE +ORANGE_CONCRETE_POWDER +ORANGE_DYE +ORANGE_GLAZED_TERRACOTTA +ORANGE_SHULKER_BOX +ORANGE_STAINED_GLASS +ORANGE_STAINED_GLASS_PANE +ORANGE_TERRACOTTA +ORANGE_TULIP +ORANGE_WALL_BANNER +ORANGE_WOOL +OXEYE_DAISY +PACKED_ICE +PAINTING +PANDA_SPAWN_EGG +PAPER +PARROT_SPAWN_EGG +PEONY +PETRIFIED_OAK_SLAB +PHANTOM_MEMBRANE +PHANTOM_SPAWN_EGG +PIG_SPAWN_EGG +PILLAGER_SPAWN_EGG +PINK_BANNER +PINK_BED +PINK_CARPET +PINK_CONCRETE +PINK_CONCRETE_POWDER +PINK_DYE +PINK_GLAZED_TERRACOTTA +PINK_SHULKER_BOX +PINK_STAINED_GLASS +PINK_STAINED_GLASS_PANE +PINK_TERRACOTTA +PINK_TULIP +PINK_WALL_BANNER +PINK_WOOL +PISTON +PISTON_HEAD +PLAYER_HEAD +PLAYER_WALL_HEAD +PODZOL +POISONOUS_POTATO +POLAR_BEAR_SPAWN_EGG +POLISHED_ANDESITE +POLISHED_ANDESITE_SLAB +POLISHED_ANDESITE_STAIRS +POLISHED_DIORITE +POLISHED_DIORITE_SLAB +POLISHED_DIORITE_STAIRS +POLISHED_GRANITE +POLISHED_GRANITE_SLAB +POLISHED_GRANITE_STAIRS +POPPED_CHORUS_FRUIT +POPPY +PORKCHOP +POTATO +POTATOES +POTION +POTTED_ACACIA_SAPLING +POTTED_ALLIUM +POTTED_AZURE_BLUET +POTTED_BAMBOO +POTTED_BIRCH_SAPLING +POTTED_BLUE_ORCHID +POTTED_BROWN_MUSHROOM +POTTED_CACTUS +POTTED_CORNFLOWER +POTTED_DANDELION +POTTED_DARK_OAK_SAPLING +POTTED_DEAD_BUSH +POTTED_FERN +POTTED_JUNGLE_SAPLING +POTTED_LILY_OF_THE_VALLEY +POTTED_OAK_SAPLING +POTTED_ORANGE_TULIP +POTTED_OXEYE_DAISY +POTTED_PINK_TULIP +POTTED_POPPY +POTTED_RED_MUSHROOM +POTTED_RED_TULIP +POTTED_SPRUCE_SAPLING +POTTED_WHITE_TULIP +POTTED_WITHER_ROSE +POWERED_RAIL +PRISMARINE +PRISMARINE_BRICK_SLAB +PRISMARINE_BRICK_STAIRS +PRISMARINE_BRICKS +PRISMARINE_CRYSTALS +PRISMARINE_SHARD +PRISMARINE_SLAB +PRISMARINE_STAIRS +PRISMARINE_WALL +PUFFERFISH +PUFFERFISH_BUCKET +PUFFERFISH_SPAWN_EGG +PUMPKIN +PUMPKIN_PIE +PUMPKIN_SEEDS +PUMPKIN_STEM +PURPLE_BANNER +PURPLE_BED +PURPLE_CARPET +PURPLE_CONCRETE +PURPLE_CONCRETE_POWDER +PURPLE_DYE +PURPLE_GLAZED_TERRACOTTA +PURPLE_SHULKER_BOX +PURPLE_STAINED_GLASS +PURPLE_STAINED_GLASS_PANE +PURPLE_TERRACOTTA +PURPLE_WALL_BANNER +PURPLE_WOOL +PURPUR_BLOCK +PURPUR_PILLAR +PURPUR_SLAB +PURPUR_STAIRS +QUARTZ +QUARTZ_BLOCK +QUARTZ_PILLAR +QUARTZ_SLAB +QUARTZ_STAIRS +RABBIT +RABBIT_FOOT +RABBIT_HIDE +RABBIT_SPAWN_EGG +RABBIT_STEW +RAIL +RAVAGER_SPAWN_EGG +RED_BANNER +RED_BED +RED_CARPET +RED_CONCRETE +RED_CONCRETE_POWDER +RED_DYE +RED_GLAZED_TERRACOTTA +RED_MUSHROOM +RED_MUSHROOM_BLOCK +RED_NETHER_BRICK_SLAB +RED_NETHER_BRICK_STAIRS +RED_NETHER_BRICK_WALL +RED_NETHER_BRICKS +RED_SAND +RED_SANDSTONE +RED_SANDSTONE_SLAB +RED_SANDSTONE_STAIRS +RED_SANDSTONE_WALL +RED_SHULKER_BOX +RED_STAINED_GLASS +RED_STAINED_GLASS_PANE +RED_TERRACOTTA +RED_TULIP +RED_WALL_BANNER +RED_WOOL +REDSTONE +REDSTONE_BLOCK +REDSTONE_LAMP +REDSTONE_ORE +REDSTONE_TORCH +REDSTONE_WALL_TORCH +REDSTONE_WIRE +REPEATER +REPEATING_COMMAND_BLOCK +ROSE_BUSH +ROTTEN_FLESH +SADDLE +SALMON +SALMON_BUCKET +SALMON_SPAWN_EGG +SAND +SANDSTONE +SANDSTONE_SLAB +SANDSTONE_STAIRS +SANDSTONE_WALL +SCAFFOLDING +SCUTE +SEA_LANTERN +SEA_PICKLE +SEAGRASS +SHEARS +SHEEP_SPAWN_EGG +SHIELD +SHULKER_BOX +SHULKER_SHELL +SHULKER_SPAWN_EGG +SILVERFISH_SPAWN_EGG +SKELETON_HORSE_SPAWN_EGG +SKELETON_SKULL +SKELETON_SPAWN_EGG +SKELETON_WALL_SKULL +SKULL_BANNER_PATTERN +SLIME_BALL +SLIME_BLOCK +SLIME_SPAWN_EGG +SMITHING_TABLE +SMOKER +SMOOTH_QUARTZ +SMOOTH_QUARTZ_SLAB +SMOOTH_QUARTZ_STAIRS +SMOOTH_RED_SANDSTONE +SMOOTH_RED_SANDSTONE_SLAB +SMOOTH_RED_SANDSTONE_STAIRS +SMOOTH_SANDSTONE +SMOOTH_SANDSTONE_SLAB +SMOOTH_SANDSTONE_STAIRS +SMOOTH_STONE +SMOOTH_STONE_SLAB +SNOW +SNOW_BLOCK +SNOWBALL +SOUL_SAND +SPAWNER +SPECTRAL_ARROW +SPIDER_EYE +SPIDER_SPAWN_EGG +SPLASH_POTION +SPONGE +SPRUCE_BOAT +SPRUCE_BUTTON +SPRUCE_DOOR +SPRUCE_FENCE +SPRUCE_FENCE_GATE +SPRUCE_LEAVES +SPRUCE_LOG +SPRUCE_PLANKS +SPRUCE_PRESSURE_PLATE +SPRUCE_SAPLING +SPRUCE_SIGN +SPRUCE_SLAB +SPRUCE_STAIRS +SPRUCE_TRAPDOOR +SPRUCE_WALL_SIGN +SPRUCE_WOOD +SQUID_SPAWN_EGG +STICK +STICKY_PISTON +STONE +STONE_AXE +STONE_BRICK_SLAB +STONE_BRICK_STAIRS +STONE_BRICK_WALL +STONE_BRICKS +STONE_BUTTON +STONE_HOE +STONE_PICKAXE +STONE_PRESSURE_PLATE +STONE_SHOVEL +STONE_SLAB +STONE_STAIRS +STONE_SWORD +STONECUTTER +STRAY_SPAWN_EGG +STRING +STRIPPED_ACACIA_LOG +STRIPPED_ACACIA_WOOD +STRIPPED_BIRCH_LOG +STRIPPED_BIRCH_WOOD +STRIPPED_DARK_OAK_LOG +STRIPPED_DARK_OAK_WOOD +STRIPPED_JUNGLE_LOG +STRIPPED_JUNGLE_WOOD +STRIPPED_OAK_LOG +STRIPPED_OAK_WOOD +STRIPPED_SPRUCE_LOG +STRIPPED_SPRUCE_WOOD +STRUCTURE_BLOCK +STRUCTURE_VOID +SUGAR +SUGAR_CANE +SUNFLOWER +SUSPICIOUS_STEW +SWEET_BERRIES +SWEET_BERRY_BUSH +TALL_GRASS +TALL_SEAGRASS +TERRACOTTA +TIPPED_ARROW +TNT +TNT_MINECART +TORCH +TOTEM_OF_UNDYING +TRADER_LLAMA_SPAWN_EGG +TRAPPED_CHEST +TRIDENT +TRIPWIRE +TRIPWIRE_HOOK +TROPICAL_FISH +TROPICAL_FISH_BUCKET +TROPICAL_FISH_SPAWN_EGG +TUBE_CORAL +TUBE_CORAL_BLOCK +TUBE_CORAL_FAN +TUBE_CORAL_WALL_FAN +TURTLE_EGG +TURTLE_HELMET +TURTLE_SPAWN_EGG +VEX_SPAWN_EGG +VILLAGER_SPAWN_EGG +VINDICATOR_SPAWN_EGG +VINE +VOID_AIR +WALL_TORCH +WANDERING_TRADER_SPAWN_EGG +WATER +WATER_BUCKET +WET_SPONGE +WHEAT +WHEAT_SEEDS +WHITE_BANNER +WHITE_BED +WHITE_CARPET +WHITE_CONCRETE +WHITE_CONCRETE_POWDER +WHITE_DYE +WHITE_GLAZED_TERRACOTTA +WHITE_SHULKER_BOX +WHITE_STAINED_GLASS +WHITE_STAINED_GLASS_PANE +WHITE_TERRACOTTA +WHITE_TULIP +WHITE_WALL_BANNER +WHITE_WOOL +WITCH_SPAWN_EGG +WITHER_ROSE +WITHER_SKELETON_SKULL +WITHER_SKELETON_SPAWN_EGG +WITHER_SKELETON_WALL_SKULL +WOLF_SPAWN_EGG +WOODEN_AXE +WOODEN_HOE +WOODEN_PICKAXE +WOODEN_SHOVEL +WOODEN_SWORD +WRITABLE_BOOK +WRITTEN_BOOK +YELLOW_BANNER +YELLOW_BED +YELLOW_CARPET +YELLOW_CONCRETE +YELLOW_CONCRETE_POWDER +YELLOW_DYE +YELLOW_GLAZED_TERRACOTTA +YELLOW_SHULKER_BOX +YELLOW_STAINED_GLASS +YELLOW_STAINED_GLASS_PANE +YELLOW_TERRACOTTA +YELLOW_WALL_BANNER +YELLOW_WOOL +ZOMBIE_HEAD +ZOMBIE_HORSE_SPAWN_EGG +ZOMBIE_PIGMAN_SPAWN_EGG +ZOMBIE_SPAWN_EGG +ZOMBIE_VILLAGER_SPAWN_EGG ZOMBIE_WALL_HEAD \ No newline at end of file