From 4cb59b18de4c4fcfdba87f2bbbde79a9bded4c83 Mon Sep 17 00:00:00 2001 From: Eric Date: Wed, 25 Jul 2018 16:43:23 +0200 Subject: [PATCH] Re-add support for Minecraft 1.8 - 1.12.2 --- .../java/de/epiceric/shopchest/ShopChest.java | 13 +- .../de/epiceric/shopchest/config/Config.java | 22 +- .../language/BookGenerationName.java | 8 +- .../epiceric/shopchest/language/ItemName.java | 13 + .../shopchest/language/LanguageUtils.java | 1076 +++++++++++++- .../listeners/ChestProtectListener.java | 279 ++-- .../shopchest/nms/ArmorStandWrapper.java | 40 +- .../shopchest/nms/CustomBookMeta.java | 90 ++ .../epiceric/shopchest/nms/JsonBuilder.java | 8 +- .../epiceric/shopchest/nms/SpawnEggMeta.java | 89 ++ .../java/de/epiceric/shopchest/shop/Shop.java | 6 +- .../epiceric/shopchest/utils/ItemUtils.java | 14 +- .../de/epiceric/shopchest/utils/Utils.java | 53 +- src/main/resources/lang/de_DE-legacy.lang | 1045 +++++++++++++ src/main/resources/lang/en_US-legacy.lang | 1292 +++++++++++++++++ 15 files changed, 3853 insertions(+), 195 deletions(-) create mode 100644 src/main/java/de/epiceric/shopchest/nms/CustomBookMeta.java create mode 100644 src/main/java/de/epiceric/shopchest/nms/SpawnEggMeta.java create mode 100644 src/main/resources/lang/de_DE-legacy.lang create mode 100644 src/main/resources/lang/en_US-legacy.lang diff --git a/src/main/java/de/epiceric/shopchest/ShopChest.java b/src/main/java/de/epiceric/shopchest/ShopChest.java index b353809..f186446 100644 --- a/src/main/java/de/epiceric/shopchest/ShopChest.java +++ b/src/main/java/de/epiceric/shopchest/ShopChest.java @@ -151,6 +151,14 @@ public class ShopChest extends JavaPlugin { } switch (Utils.getServerVersion()) { + case "v1_8_R1": + case "v1_8_R2": + case "v1_8_R3": + case "v1_9_R1": + case "v1_9_R2": + case "v1_10_R1": + case "v1_11_R1": + case "v1_12_R1": case "v1_13_R1": break; default: @@ -353,7 +361,10 @@ public class ShopChest extends JavaPlugin { getServer().getPluginManager().registerEvents(new ShopInteractListener(this), this); getServer().getPluginManager().registerEvents(new NotifyPlayerOnJoinListener(this), this); getServer().getPluginManager().registerEvents(new ChestProtectListener(this, worldGuard), this); - getServer().getPluginManager().registerEvents(new BlockExplodeListener(this), this); + + if (!Utils.getServerVersion().equals("v1_8_R1")) { + getServer().getPluginManager().registerEvents(new BlockExplodeListener(this), this); + } if (hasWorldGuard()) { getServer().getPluginManager().registerEvents(new WorldGuardListener(this), this); diff --git a/src/main/java/de/epiceric/shopchest/config/Config.java b/src/main/java/de/epiceric/shopchest/config/Config.java index cadbbdb..4bf07e2 100644 --- a/src/main/java/de/epiceric/shopchest/config/Config.java +++ b/src/main/java/de/epiceric/shopchest/config/Config.java @@ -5,6 +5,8 @@ import de.epiceric.shopchest.language.LanguageUtils; import de.epiceric.shopchest.sql.Database; import de.epiceric.shopchest.utils.ItemUtils; import de.epiceric.shopchest.utils.ShopUpdater; +import de.epiceric.shopchest.utils.Utils; + import org.bukkit.configuration.InvalidConfigurationException; import org.bukkit.inventory.ItemStack; @@ -543,14 +545,16 @@ public class Config { langConfig = new LanguageConfiguration(plugin, showMessages); File langFolder = new File(plugin.getDataFolder(), "lang"); - if (!(new File(langFolder, "en_US.lang")).exists()) - plugin.saveResource("lang/en_US.lang", false); + String legacy = Utils.getMajorVersion() < 13 ? "-legacy" : ""; - if (!(new File(langFolder, "de_DE.lang")).exists()) - plugin.saveResource("lang/de_DE.lang", false); + if (!(new File(langFolder, "en_US" + legacy + ".lang")).exists()) + plugin.saveResource("lang/en_US" + legacy + ".lang", false); + + if (!(new File(langFolder, "de_DE" + legacy + ".lang")).exists()) + plugin.saveResource("lang/de_DE" + legacy + ".lang", false); - File langConfigFile = new File(langFolder, languageFile + ".lang"); - File langDefaultFile = new File(langFolder, "en_US.lang"); + File langConfigFile = new File(langFolder, languageFile + legacy + ".lang"); + File langDefaultFile = new File(langFolder, "en_US" + legacy + ".lang"); if (!langConfigFile.exists()) { if (!langDefaultFile.exists()) { @@ -558,8 +562,8 @@ public class Config { Reader r = getTextResource("lang/" + langConfigFile.getName(), showMessages); if (r == null) { - r = getTextResource("lang/en_US.lang", showMessages); - if (showMessages) plugin.getLogger().info("Using locale \"en_US\" (Streamed from jar file)"); + r = getTextResource("lang/en_US" + legacy + ".lang", showMessages); + if (showMessages) plugin.getLogger().info("Using locale \"en_US" + legacy + "\" (Streamed from jar file)"); } else { if (showMessages) plugin.getLogger().info("Using locale \"" + langConfigFile.getName().substring(0, langConfigFile.getName().length() - 5) + "\" (Streamed from jar file)"); @@ -593,7 +597,7 @@ public class Config { } else { try { langConfig.load(langDefaultFile); - if (showMessages) plugin.getLogger().info("Using locale \"en_US\""); + if (showMessages) plugin.getLogger().info("Using locale \"en_US" + legacy + "\""); } catch (IOException | InvalidConfigurationException e) { if (showMessages) { plugin.getLogger().warning("Using default language values"); diff --git a/src/main/java/de/epiceric/shopchest/language/BookGenerationName.java b/src/main/java/de/epiceric/shopchest/language/BookGenerationName.java index 59f5f6a..b0bc651 100644 --- a/src/main/java/de/epiceric/shopchest/language/BookGenerationName.java +++ b/src/main/java/de/epiceric/shopchest/language/BookGenerationName.java @@ -1,13 +1,13 @@ package de.epiceric.shopchest.language; -import org.bukkit.inventory.meta.BookMeta; +import de.epiceric.shopchest.nms.CustomBookMeta; public class BookGenerationName { private String localizedName; - private BookMeta.Generation generation; + private CustomBookMeta.Generation generation; - public BookGenerationName(BookMeta.Generation generation, String localizedName) { + public BookGenerationName(CustomBookMeta.Generation generation, String localizedName) { this.generation = generation; this.localizedName = localizedName; } @@ -15,7 +15,7 @@ public class BookGenerationName { /** * @return Generation linked to the name */ - public BookMeta.Generation getGeneration() { + public CustomBookMeta.Generation getGeneration() { return generation; } diff --git a/src/main/java/de/epiceric/shopchest/language/ItemName.java b/src/main/java/de/epiceric/shopchest/language/ItemName.java index d89d072..5fd6354 100644 --- a/src/main/java/de/epiceric/shopchest/language/ItemName.java +++ b/src/main/java/de/epiceric/shopchest/language/ItemName.java @@ -5,10 +5,16 @@ import org.bukkit.Material; public class ItemName { private Material material; + private int subId; private String localizedName; public ItemName(Material material, String localizedName) { + this(material, 0, localizedName); + } + + public ItemName(Material material, int subId, String localizedName) { this.material = material; + this.subId = subId; this.localizedName = localizedName; } @@ -19,6 +25,13 @@ public class ItemName { return material; } + /** + * @return Sub ID linked to the name + */ + public int getSubId() { + return subId; + } + /** * @return Name linked to the item */ diff --git a/src/main/java/de/epiceric/shopchest/language/LanguageUtils.java b/src/main/java/de/epiceric/shopchest/language/LanguageUtils.java index adba906..b380d2e 100644 --- a/src/main/java/de/epiceric/shopchest/language/LanguageUtils.java +++ b/src/main/java/de/epiceric/shopchest/language/LanguageUtils.java @@ -4,14 +4,20 @@ import de.epiceric.shopchest.ShopChest; import de.epiceric.shopchest.config.Config; import de.epiceric.shopchest.config.LanguageConfiguration; import de.epiceric.shopchest.config.Placeholder; +import de.epiceric.shopchest.nms.CustomBookMeta; +import de.epiceric.shopchest.nms.SpawnEggMeta; +import de.epiceric.shopchest.utils.Utils; + import org.bukkit.ChatColor; import org.bukkit.Material; import org.bukkit.enchantments.Enchantment; +import org.bukkit.entity.EntityType; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.BookMeta; import org.bukkit.inventory.meta.ItemMeta; import org.bukkit.inventory.meta.PotionMeta; import org.bukkit.inventory.meta.SkullMeta; +import org.bukkit.potion.Potion; import org.bukkit.potion.PotionEffectType; import org.bukkit.potion.PotionType; @@ -34,6 +40,951 @@ public class LanguageUtils { private static ArrayList messages = new ArrayList<>(); + private static void loadLegacy() { + // Add Block Names + itemNames.add(new ItemName(Material.valueOf("STONE"), langConfig.getString("tile.stone.stone.name", "Stone"))); + itemNames.add(new ItemName(Material.valueOf("STONE"), 1, langConfig.getString("tile.stone.granite.name", "Granite"))); + itemNames.add(new ItemName(Material.valueOf("STONE"), 2, langConfig.getString("tile.stone.graniteSmooth.name", "Polished Granite"))); + itemNames.add(new ItemName(Material.valueOf("STONE"), 3, langConfig.getString("tile.stone.diorite.name", "Diorite"))); + itemNames.add(new ItemName(Material.valueOf("STONE"), 4, langConfig.getString("tile.stone.dioriteSmooth.name", "Polished Diorite"))); + itemNames.add(new ItemName(Material.valueOf("STONE"), 5, langConfig.getString("tile.stone.andesite.name", "Andesite"))); + itemNames.add(new ItemName(Material.valueOf("STONE"), 6, langConfig.getString("tile.stone.andesiteSmooth.name", "Polished Andesite"))); + itemNames.add(new ItemName(Material.valueOf("GRASS"), langConfig.getString("tile.grass.name", "Grass Block"))); + itemNames.add(new ItemName(Material.valueOf("DIRT"), langConfig.getString("tile.dirt.default.name", "Dirt"))); + itemNames.add(new ItemName(Material.valueOf("DIRT"), 1, langConfig.getString("tile.dirt.coarse.name", "Coarse Dirt"))); + itemNames.add(new ItemName(Material.valueOf("DIRT"), 2, langConfig.getString("tile.dirt.podzol.name", "Podzol"))); + itemNames.add(new ItemName(Material.valueOf("COBBLESTONE"), langConfig.getString("tile.stonebrick.name", "Cobblestone"))); + itemNames.add(new ItemName(Material.valueOf("WOOD"), langConfig.getString("tile.wood.oak.name", "Oak Wood Planks"))); + itemNames.add(new ItemName(Material.valueOf("WOOD"), 1, langConfig.getString("tile.wood.spruce.name", "Spruce Wood Planks"))); + itemNames.add(new ItemName(Material.valueOf("WOOD"), 2, langConfig.getString("tile.wood.birch.name", "Birch Wood Planks"))); + itemNames.add(new ItemName(Material.valueOf("WOOD"), 3, langConfig.getString("tile.wood.jungle.name", "Jungle Wood Planks"))); + itemNames.add(new ItemName(Material.valueOf("WOOD"), 4, langConfig.getString("tile.wood.acacia.name", "Acacia Wood Planks"))); + itemNames.add(new ItemName(Material.valueOf("WOOD"), 5, langConfig.getString("tile.wood.big_oak.name", "Dark Oak Wood Planks"))); + itemNames.add(new ItemName(Material.valueOf("SAPLING"), langConfig.getString("tile.sapling.oak.name", "Oak Sapling"))); + itemNames.add(new ItemName(Material.valueOf("SAPLING"), 1, langConfig.getString("tile.sapling.spruce.name", "Spruce Sapling"))); + itemNames.add(new ItemName(Material.valueOf("SAPLING"), 2, langConfig.getString("tile.sapling.birch.name", "Birch Sapling"))); + itemNames.add(new ItemName(Material.valueOf("SAPLING"), 3, langConfig.getString("tile.sapling.jungle.name", "Jungle Sapling"))); + itemNames.add(new ItemName(Material.valueOf("SAPLING"), 4, langConfig.getString("tile.sapling.acacia.name", "Acacia Sapling"))); + itemNames.add(new ItemName(Material.valueOf("SAPLING"), 5, langConfig.getString("tile.sapling.big_oak.name", "Dark Oak Sapling"))); + itemNames.add(new ItemName(Material.valueOf("BEDROCK"), langConfig.getString("tile.bedrock.name", "Bedrock"))); + itemNames.add(new ItemName(Material.valueOf("WATER"), langConfig.getString("tile.water.name", "Water"))); + itemNames.add(new ItemName(Material.valueOf("LAVA"), langConfig.getString("tile.lava.name", "Lava"))); + itemNames.add(new ItemName(Material.valueOf("SAND"), langConfig.getString("tile.sand.default.name", "Sand"))); + itemNames.add(new ItemName(Material.valueOf("SAND"), 1, langConfig.getString("tile.sand.red.name", "Red Sand"))); + itemNames.add(new ItemName(Material.valueOf("GRAVEL"), langConfig.getString("tile.gravel.name", "Gravel"))); + itemNames.add(new ItemName(Material.valueOf("GOLD_ORE"), langConfig.getString("tile.oreGold.name", "Gold Ore"))); + itemNames.add(new ItemName(Material.valueOf("IRON_ORE"), langConfig.getString("tile.oreIron.name", "Iron Ore"))); + itemNames.add(new ItemName(Material.valueOf("COAL_ORE"), langConfig.getString("tile.oreCoal.name", "Coal Ore"))); + itemNames.add(new ItemName(Material.valueOf("LOG"), langConfig.getString("tile.log.oak.name", "Oak Wood"))); + itemNames.add(new ItemName(Material.valueOf("LOG"), 1, langConfig.getString("tile.log.spruce.name", "Spruce Wood"))); + itemNames.add(new ItemName(Material.valueOf("LOG"), 2, langConfig.getString("tile.log.birch.name", "Birch Wood"))); + itemNames.add(new ItemName(Material.valueOf("LOG"), 3, langConfig.getString("tile.log.jungle.name", "Jungle Wood"))); + itemNames.add(new ItemName(Material.valueOf("LEAVES"), langConfig.getString("tile.leaves.oak.name", "Oak Leaves"))); + itemNames.add(new ItemName(Material.valueOf("LEAVES"), 1, langConfig.getString("tile.leaves.spruce.name", "Spruce Leaves"))); + itemNames.add(new ItemName(Material.valueOf("LEAVES"), 2, langConfig.getString("tile.leaves.birch.name", "Birch Leaves"))); + itemNames.add(new ItemName(Material.valueOf("LEAVES"), 3, langConfig.getString("tile.leaves.jungle.name", "Jungle Leaves"))); + itemNames.add(new ItemName(Material.valueOf("SPONGE"), langConfig.getString("tile.sponge.dry.name", "Sponge"))); + itemNames.add(new ItemName(Material.valueOf("SPONGE"), 1, langConfig.getString("tile.sponge.wet.name", "Wet Sponge"))); + itemNames.add(new ItemName(Material.valueOf("GLASS"), langConfig.getString("tile.glass.name", "Glass"))); + itemNames.add(new ItemName(Material.valueOf("LAPIS_ORE"), langConfig.getString("tile.oreLapis.name", "Lapis Lazuli Ore"))); + itemNames.add(new ItemName(Material.valueOf("LAPIS_BLOCK"), langConfig.getString("tile.blockLapis.name", "Lapis Lazuli Block"))); + itemNames.add(new ItemName(Material.valueOf("DISPENSER"), langConfig.getString("tile.dispenser.name", "Dispenser"))); + itemNames.add(new ItemName(Material.valueOf("SANDSTONE"), langConfig.getString("tile.sandStone.default.name", "Sandstone"))); + itemNames.add(new ItemName(Material.valueOf("SANDSTONE"), 1, langConfig.getString("tile.sandStone.chiseled.name", "Chiseled Sandstone"))); + itemNames.add(new ItemName(Material.valueOf("SANDSTONE"), 2, langConfig.getString("tile.sandStone.smooth.name", "Smooth Sandstone"))); + itemNames.add(new ItemName(Material.valueOf("NOTE_BLOCK"), langConfig.getString("tile.musicBlock.name", "Note Block"))); + itemNames.add(new ItemName(Material.valueOf("POWERED_RAIL"), langConfig.getString("tile.goldenRail.name", "Powered Rail"))); + itemNames.add(new ItemName(Material.valueOf("DETECTOR_RAIL"), langConfig.getString("tile.detectorRail.name", "Detector Rail"))); + itemNames.add(new ItemName(Material.valueOf("PISTON_STICKY_BASE"), langConfig.getString("tile.pistonStickyBase.name", "Sticky Piston"))); + itemNames.add(new ItemName(Material.valueOf("WEB"), langConfig.getString("tile.web.name", "Web"))); + itemNames.add(new ItemName(Material.valueOf("LONG_GRASS"), langConfig.getString("tile.tallgrass.shrub.name", "Shrub"))); + itemNames.add(new ItemName(Material.valueOf("LONG_GRASS"), 1, langConfig.getString("tile.tallgrass.grass.name", "Grass"))); + itemNames.add(new ItemName(Material.valueOf("LONG_GRASS"), 2, langConfig.getString("tile.tallgrass.fern.name", "Fern"))); + itemNames.add(new ItemName(Material.valueOf("DEAD_BUSH"), langConfig.getString("tile.deadbush.name", "Dead Bush"))); + itemNames.add(new ItemName(Material.valueOf("PISTON_BASE"), langConfig.getString("tile.pistonBase.name", "Piston"))); + itemNames.add(new ItemName(Material.valueOf("WOOL"), langConfig.getString("tile.cloth.white.name", "White Wool"))); + itemNames.add(new ItemName(Material.valueOf("WOOL"), 1, langConfig.getString("tile.cloth.orange.name", "Orange Wool"))); + itemNames.add(new ItemName(Material.valueOf("WOOL"), 2, langConfig.getString("tile.cloth.magenta.name", "Magenta Wool"))); + itemNames.add(new ItemName(Material.valueOf("WOOL"), 3, langConfig.getString("tile.cloth.lightBlue.name", "Light Blue Wool"))); + itemNames.add(new ItemName(Material.valueOf("WOOL"), 4, langConfig.getString("tile.cloth.yellow.name", "Yellow Wool"))); + itemNames.add(new ItemName(Material.valueOf("WOOL"), 5, langConfig.getString("tile.cloth.lime.name", "Lime Wool"))); + itemNames.add(new ItemName(Material.valueOf("WOOL"), 6, langConfig.getString("tile.cloth.pink.name", "Pink Wool"))); + itemNames.add(new ItemName(Material.valueOf("WOOL"), 7, langConfig.getString("tile.cloth.gray.name", "Gray Wool"))); + itemNames.add(new ItemName(Material.valueOf("WOOL"), 8, langConfig.getString("tile.cloth.silver.name", "Light Gray Wool"))); + itemNames.add(new ItemName(Material.valueOf("WOOL"), 9, langConfig.getString("tile.cloth.cyan.name", "Cyan Wool"))); + itemNames.add(new ItemName(Material.valueOf("WOOL"), 10, langConfig.getString("tile.cloth.purple.name", "Purple Wool"))); + itemNames.add(new ItemName(Material.valueOf("WOOL"), 11, langConfig.getString("tile.cloth.blue.name", "Blue Wool"))); + itemNames.add(new ItemName(Material.valueOf("WOOL"), 12, langConfig.getString("tile.cloth.brown.name", "Brown Wool"))); + itemNames.add(new ItemName(Material.valueOf("WOOL"), 13, langConfig.getString("tile.cloth.green.name", "Green Wool"))); + itemNames.add(new ItemName(Material.valueOf("WOOL"), 14, langConfig.getString("tile.cloth.red.name", "Red Wool"))); + itemNames.add(new ItemName(Material.valueOf("WOOL"), 15, langConfig.getString("tile.cloth.black.name", "Black Wool"))); + itemNames.add(new ItemName(Material.valueOf("YELLOW_FLOWER"), langConfig.getString("tile.flower1.dandelion.name", "Dandelion"))); + itemNames.add(new ItemName(Material.valueOf("RED_ROSE"), langConfig.getString("tile.flower2.poppy.name", "Poppy"))); + itemNames.add(new ItemName(Material.valueOf("RED_ROSE"), 1, langConfig.getString("tile.flower2.blueOrchid.name", "Blue Orchid"))); + itemNames.add(new ItemName(Material.valueOf("RED_ROSE"), 2, langConfig.getString("tile.flower2.allium.name", "Allium"))); + itemNames.add(new ItemName(Material.valueOf("RED_ROSE"), 3, langConfig.getString("tile.flower2.houstonia.name", "Azure Bluet"))); + itemNames.add(new ItemName(Material.valueOf("RED_ROSE"), 4, langConfig.getString("tile.flower2.tulipRed.name", "Red Tulip"))); + itemNames.add(new ItemName(Material.valueOf("RED_ROSE"), 5, langConfig.getString("tile.flower2.tulipOrange.name", "Orange Tulip"))); + itemNames.add(new ItemName(Material.valueOf("RED_ROSE"), 6, langConfig.getString("tile.flower2.tulipWhite.name", "White Tulip"))); + itemNames.add(new ItemName(Material.valueOf("RED_ROSE"), 7, langConfig.getString("tile.flower2.tulipPink.name", "Pink Tulip"))); + itemNames.add(new ItemName(Material.valueOf("RED_ROSE"), 8, langConfig.getString("tile.flower2.oxeyeDaisy.name", "Oxeye Daisy"))); + itemNames.add(new ItemName(Material.valueOf("BROWN_MUSHROOM"), langConfig.getString("tile.mushroom.name", "Mushroom"))); + itemNames.add(new ItemName(Material.valueOf("RED_MUSHROOM"), langConfig.getString("tile.mushroom.name", "Mushroom"))); + itemNames.add(new ItemName(Material.valueOf("GOLD_BLOCK"), langConfig.getString("tile.blockGold.name", "Block of Gold"))); + itemNames.add(new ItemName(Material.valueOf("IRON_BLOCK"), langConfig.getString("tile.blockIron.name", "Block of Iron"))); + itemNames.add(new ItemName(Material.valueOf("STEP"), langConfig.getString("tile.stoneSlab.stone.name", "Stone Slab"))); + itemNames.add(new ItemName(Material.valueOf("STEP"), 1, langConfig.getString("tile.stoneSlab.sand.name", "Sandstone Slab"))); + itemNames.add(new ItemName(Material.valueOf("STEP"), 2, langConfig.getString("tile.stoneSlab.wood.name", "Wooden Slab"))); + itemNames.add(new ItemName(Material.valueOf("STEP"), 3, langConfig.getString("tile.stoneSlab.cobble.name", "Cobblestone Slab"))); + itemNames.add(new ItemName(Material.valueOf("STEP"), 4, langConfig.getString("tile.stoneSlab.brick.name", "Brick Slab"))); + itemNames.add(new ItemName(Material.valueOf("STEP"), 5, langConfig.getString("tile.stoneSlab.smoothStoneBrick.name", "Stone Brick Slab"))); + itemNames.add(new ItemName(Material.valueOf("STEP"), 6, langConfig.getString("tile.stoneSlab.netherBrick.name", "Nether Brick Slab"))); + itemNames.add(new ItemName(Material.valueOf("STEP"), 7, langConfig.getString("tile.stoneSlab.quartz.name", "Quartz Slab"))); + itemNames.add(new ItemName(Material.valueOf("BRICK"), langConfig.getString("tile.brick.name", "Brick"))); + itemNames.add(new ItemName(Material.valueOf("TNT"), langConfig.getString("tile.tnt.name", "TNT"))); + itemNames.add(new ItemName(Material.valueOf("BOOKSHELF"), langConfig.getString("tile.bookshelf.name", "Bookshelf"))); + itemNames.add(new ItemName(Material.valueOf("MOSSY_COBBLESTONE"), langConfig.getString("tile.stoneMoss.name", "Moss Stone"))); + itemNames.add(new ItemName(Material.valueOf("OBSIDIAN"), langConfig.getString("tile.obsidian.name", "Obsidian"))); + itemNames.add(new ItemName(Material.valueOf("TORCH"), langConfig.getString("tile.torch.name", "Torch"))); + itemNames.add(new ItemName(Material.valueOf("FIRE"), langConfig.getString("tile.fire.name", "Fire"))); + itemNames.add(new ItemName(Material.valueOf("MOB_SPAWNER"), langConfig.getString("tile.mobSpawner.name", "Mob Spawner"))); + itemNames.add(new ItemName(Material.valueOf("WOOD_STAIRS"), langConfig.getString("tile.stairsWood.name", "Oak Wood Stairs"))); + itemNames.add(new ItemName(Material.valueOf("CHEST"), langConfig.getString("tile.chest.name", "Chest"))); + itemNames.add(new ItemName(Material.valueOf("DIAMOND_ORE"), langConfig.getString("tile.oreDiamond.name", "Diamond Ore"))); + itemNames.add(new ItemName(Material.valueOf("DIAMOND_BLOCK"), langConfig.getString("tile.blockDiamond.name", "Block of Diamond"))); + itemNames.add(new ItemName(Material.valueOf("WORKBENCH"), langConfig.getString("tile.workbench.name", "Crafting Table"))); + itemNames.add(new ItemName(Material.valueOf("SOIL"), langConfig.getString("tile.farmland.name", "Farmland"))); + itemNames.add(new ItemName(Material.valueOf("FURNACE"), langConfig.getString("tile.furnace.name", "Furnace"))); + itemNames.add(new ItemName(Material.valueOf("LADDER"), langConfig.getString("tile.ladder.name", "Ladder"))); + itemNames.add(new ItemName(Material.valueOf("RAILS"), langConfig.getString("tile.rail.name", "Rail"))); + itemNames.add(new ItemName(Material.valueOf("COBBLESTONE_STAIRS"), langConfig.getString("tile.stairsStone.name", "Stone Stairs"))); + itemNames.add(new ItemName(Material.valueOf("LEVER"), langConfig.getString("tile.lever.name", "Lever"))); + itemNames.add(new ItemName(Material.valueOf("STONE_PLATE"), langConfig.getString("tile.pressurePlateStone.name", "Stone Pressure Plate"))); + itemNames.add(new ItemName(Material.valueOf("WOOD_PLATE"), langConfig.getString("tile.pressurePlateWood.name", "Wooden Pressure Plate"))); + itemNames.add(new ItemName(Material.valueOf("REDSTONE_ORE"), langConfig.getString("tile.oreRedstone.name", "Redstone Ore"))); + itemNames.add(new ItemName(Material.valueOf("REDSTONE_TORCH_ON"), langConfig.getString("tile.notGate.name", "Redstone Torch"))); + itemNames.add(new ItemName(Material.valueOf("SNOW"), langConfig.getString("tile.snow.name", "Snow"))); + itemNames.add(new ItemName(Material.valueOf("ICE"), langConfig.getString("tile.ice.name", "Ice"))); + itemNames.add(new ItemName(Material.valueOf("SNOW_BLOCK"), langConfig.getString("tile.snow.name", "Snow"))); + itemNames.add(new ItemName(Material.valueOf("CACTUS"), langConfig.getString("tile.cactus.name", "Cactus"))); + itemNames.add(new ItemName(Material.valueOf("CLAY"), langConfig.getString("tile.clay.name", "Clay"))); + itemNames.add(new ItemName(Material.valueOf("JUKEBOX"), langConfig.getString("tile.jukebox.name", "Jukebox"))); + itemNames.add(new ItemName(Material.valueOf("FENCE"), langConfig.getString("tile.fence.name", "Oak Fence"))); + itemNames.add(new ItemName(Material.valueOf("PUMPKIN"), langConfig.getString("tile.pumpkin.name", "Pumpkin"))); + itemNames.add(new ItemName(Material.valueOf("NETHERRACK"), langConfig.getString("tile.hellrock.name", "Netherrack"))); + itemNames.add(new ItemName(Material.valueOf("SOUL_SAND"), langConfig.getString("tile.hellsand.name", "Soul Sand"))); + itemNames.add(new ItemName(Material.valueOf("GLOWSTONE"), langConfig.getString("tile.lightgem.name", "Glowstone"))); + itemNames.add(new ItemName(Material.valueOf("PORTAL"), langConfig.getString("tile.portal.name", "Portal"))); + itemNames.add(new ItemName(Material.valueOf("JACK_O_LANTERN"), langConfig.getString("tile.litpumpkin.name", "Jack o'Lantern"))); + itemNames.add(new ItemName(Material.valueOf("STAINED_GLASS"), langConfig.getString("tile.stainedGlass.white.name", "White Stained Glass"))); + itemNames.add(new ItemName(Material.valueOf("STAINED_GLASS"), 1, langConfig.getString("tile.stainedGlass.orange.name", "Orange Stained Glass"))); + itemNames.add(new ItemName(Material.valueOf("STAINED_GLASS"), 2, langConfig.getString("tile.stainedGlass.magenta.name", "Magenta Stained Glass"))); + itemNames.add(new ItemName(Material.valueOf("STAINED_GLASS"), 3, langConfig.getString("tile.stainedGlass.lightBlue.name", "Light Blue Stained Glass"))); + itemNames.add(new ItemName(Material.valueOf("STAINED_GLASS"), 4, langConfig.getString("tile.stainedGlass.yellow.name", "Yellow Stained Glass"))); + itemNames.add(new ItemName(Material.valueOf("STAINED_GLASS"), 5, langConfig.getString("tile.stainedGlass.lime.name", "Lime Stained Glass"))); + itemNames.add(new ItemName(Material.valueOf("STAINED_GLASS"), 6, langConfig.getString("tile.stainedGlass.pink.name", "Pink Stained Glass"))); + itemNames.add(new ItemName(Material.valueOf("STAINED_GLASS"), 7, langConfig.getString("tile.stainedGlass.gray.name", "Gray Stained Glass"))); + itemNames.add(new ItemName(Material.valueOf("STAINED_GLASS"), 8, langConfig.getString("tile.stainedGlass.silver.name", "Light Gray Stained Glass"))); + itemNames.add(new ItemName(Material.valueOf("STAINED_GLASS"), 9, langConfig.getString("tile.stainedGlass.cyan.name", "Cyan Stained Glass"))); + itemNames.add(new ItemName(Material.valueOf("STAINED_GLASS"), 10, langConfig.getString("tile.stainedGlass.purple.name", "Purple Stained Glass"))); + itemNames.add(new ItemName(Material.valueOf("STAINED_GLASS"), 11, langConfig.getString("tile.stainedGlass.blue.name", "Blue Stained Glass"))); + itemNames.add(new ItemName(Material.valueOf("STAINED_GLASS"), 12, langConfig.getString("tile.stainedGlass.brown.name", "Brown Stained Glass"))); + itemNames.add(new ItemName(Material.valueOf("STAINED_GLASS"), 13, langConfig.getString("tile.stainedGlass.green.name", "Green Stained Glass"))); + itemNames.add(new ItemName(Material.valueOf("STAINED_GLASS"), 14, langConfig.getString("tile.stainedGlass.red.name", "Red Stained Glass"))); + itemNames.add(new ItemName(Material.valueOf("STAINED_GLASS"), 15, langConfig.getString("tile.stainedGlass.black.name", "Black Stained Glass"))); + itemNames.add(new ItemName(Material.valueOf("TRAP_DOOR"), langConfig.getString("tile.trapdoor.name", "Wooden Trapdoor"))); + itemNames.add(new ItemName(Material.valueOf("MONSTER_EGGS"), langConfig.getString("tile.monsterStoneEgg.stone.name", "Stone Monster Egg"))); + itemNames.add(new ItemName(Material.valueOf("MONSTER_EGGS"), 1, langConfig.getString("tile.monsterStoneEgg.cobble.name", "Cobblestone Monster Egg"))); + itemNames.add(new ItemName(Material.valueOf("MONSTER_EGGS"), 2, langConfig.getString("tile.monsterStoneEgg.brick.name", "Stone Brick Monster Egg"))); + itemNames.add(new ItemName(Material.valueOf("MONSTER_EGGS"), 3, langConfig.getString("tile.monsterStoneEgg.mossybrick.name", "Mossy Stone Brick Monster Egg"))); + itemNames.add(new ItemName(Material.valueOf("MONSTER_EGGS"), 4, langConfig.getString("tile.monsterStoneEgg.crackedbrick.name", "Cracked Stone Brick Monster Egg"))); + itemNames.add(new ItemName(Material.valueOf("MONSTER_EGGS"), 5, langConfig.getString("tile.monsterStoneEgg.chiseledbrick.name", "Chiseled Stone Brick Monster Egg"))); + itemNames.add(new ItemName(Material.valueOf("SMOOTH_BRICK"), langConfig.getString("tile.stonebricksmooth.default.name", "Stone Bricks"))); + itemNames.add(new ItemName(Material.valueOf("SMOOTH_BRICK"), 1, langConfig.getString("tile.stonebricksmooth.mossy.name", "Mossy Stone Bricks"))); + itemNames.add(new ItemName(Material.valueOf("SMOOTH_BRICK"), 2, langConfig.getString("tile.stonebricksmooth.cracked.name", "Cracked Stone Bricks"))); + itemNames.add(new ItemName(Material.valueOf("SMOOTH_BRICK"), 3, langConfig.getString("tile.stonebricksmooth.chiseled.name", "Chiseled Stone Bricks"))); + itemNames.add(new ItemName(Material.valueOf("HUGE_MUSHROOM_1"), langConfig.getString("tile.mushroom.name", "Mushroom"))); + itemNames.add(new ItemName(Material.valueOf("HUGE_MUSHROOM_2"), langConfig.getString("tile.mushroom.name", "Mushroom"))); + itemNames.add(new ItemName(Material.valueOf("IRON_FENCE"), langConfig.getString("tile.fenceIron.name", "Iron Bars"))); + itemNames.add(new ItemName(Material.valueOf("THIN_GLASS"), langConfig.getString("tile.thinGlass.name", "Glass Pane"))); + itemNames.add(new ItemName(Material.valueOf("MELON_BLOCK"), langConfig.getString("tile.melon.name", "Melon"))); + itemNames.add(new ItemName(Material.valueOf("VINE"), langConfig.getString("tile.vine.name", "Vines"))); + itemNames.add(new ItemName(Material.valueOf("FENCE_GATE"), langConfig.getString("tile.fenceGate.name", "Oak Fence Gate"))); + itemNames.add(new ItemName(Material.valueOf("BRICK_STAIRS"), langConfig.getString("tile.stairsBrick.name", "Brick Stairs"))); + itemNames.add(new ItemName(Material.valueOf("SMOOTH_STAIRS"), langConfig.getString("tile.stairsStoneBrickSmooth.name", "Stone Brick Stairs"))); + itemNames.add(new ItemName(Material.valueOf("MYCEL"), langConfig.getString("tile.mycel.name", "Mycelium"))); + itemNames.add(new ItemName(Material.valueOf("WATER_LILY"), langConfig.getString("tile.waterlily.name", "Lily Pad"))); + itemNames.add(new ItemName(Material.valueOf("NETHER_BRICK"), langConfig.getString("tile.netherBrick.name", "Nether Brick"))); + itemNames.add(new ItemName(Material.valueOf("NETHER_FENCE"), langConfig.getString("tile.netherFence.name", "Nether Brick Fence"))); + itemNames.add(new ItemName(Material.valueOf("NETHER_BRICK_STAIRS"), langConfig.getString("tile.stairsNetherBrick.name", "Nether Brick Stairs"))); + itemNames.add(new ItemName(Material.valueOf("ENCHANTMENT_TABLE"), langConfig.getString("tile.enchantmentTable.name", "Enchantment Table"))); + itemNames.add(new ItemName(Material.valueOf("ENDER_PORTAL_FRAME"), langConfig.getString("tile.endPortalFrame.name", "End Portal Frame"))); + itemNames.add(new ItemName(Material.valueOf("ENDER_STONE"), langConfig.getString("tile.whiteStone.name", "End Stone"))); + itemNames.add(new ItemName(Material.valueOf("DRAGON_EGG"), langConfig.getString("tile.dragonEgg.name", "Dragon Egg"))); + itemNames.add(new ItemName(Material.valueOf("REDSTONE_LAMP_OFF"), langConfig.getString("tile.redstoneLight.name", "Redstone Lamp"))); + itemNames.add(new ItemName(Material.valueOf("WOOD_STEP"), langConfig.getString("tile.woodSlab.oak.name", "Oak Wood Slab"))); + itemNames.add(new ItemName(Material.valueOf("WOOD_STEP"), 1, langConfig.getString("tile.woodSlab.spruce.name", "Spruce Wood Slab"))); + itemNames.add(new ItemName(Material.valueOf("WOOD_STEP"), 2, langConfig.getString("tile.woodSlab.birch.name", "Birch Wood Slab"))); + itemNames.add(new ItemName(Material.valueOf("WOOD_STEP"), 3, langConfig.getString("tile.woodSlab.jungle.name", "Jungle Wood Slab"))); + itemNames.add(new ItemName(Material.valueOf("WOOD_STEP"), 4, langConfig.getString("tile.woodSlab.acacia.name", "Acacia Wood Slab"))); + itemNames.add(new ItemName(Material.valueOf("WOOD_STEP"), 5, langConfig.getString("tile.woodSlab.big_oak.name", "Dark Oak Wood Slab"))); + itemNames.add(new ItemName(Material.valueOf("SANDSTONE_STAIRS"), langConfig.getString("tile.stairsSandStone.name", "Mycelium"))); + itemNames.add(new ItemName(Material.valueOf("EMERALD_ORE"), langConfig.getString("tile.oreEmerald.name", "Emerald Ore"))); + itemNames.add(new ItemName(Material.valueOf("ENDER_CHEST"), langConfig.getString("tile.enderChest.name", "Ender Chest"))); + itemNames.add(new ItemName(Material.valueOf("TRIPWIRE_HOOK"), langConfig.getString("tile.tripWireSource.name", "Tripwire Hook"))); + itemNames.add(new ItemName(Material.valueOf("EMERALD_BLOCK"), langConfig.getString("tile.blockEmerald.name", "Block of Emerald"))); + itemNames.add(new ItemName(Material.valueOf("SPRUCE_WOOD_STAIRS"), langConfig.getString("tile.stairsWoodSpruce.name", "Spruce Wood Stairs"))); + itemNames.add(new ItemName(Material.valueOf("BIRCH_WOOD_STAIRS"), langConfig.getString("tile.stairsWoodBirch.name", "Birch Wood Stairs"))); + itemNames.add(new ItemName(Material.valueOf("JUNGLE_WOOD_STAIRS"), langConfig.getString("tile.stairsWoodJungle.name", "Jungle Wood Stairs"))); + itemNames.add(new ItemName(Material.valueOf("COMMAND"), langConfig.getString("tile.commandBlock.name", "Command Block"))); + itemNames.add(new ItemName(Material.valueOf("BEACON"), langConfig.getString("tile.beacon.name", "Beacon"))); + itemNames.add(new ItemName(Material.valueOf("COBBLE_WALL"), langConfig.getString("tile.cobbleWall.normal.name", "Cobblestone Wall"))); + itemNames.add(new ItemName(Material.valueOf("COBBLE_WALL"), 1, langConfig.getString("tile.cobbleWall.mossy.name", "Mossy Cobblestone Wall"))); + itemNames.add(new ItemName(Material.valueOf("WOOD_BUTTON"), langConfig.getString("tile.button.name", "Button"))); + itemNames.add(new ItemName(Material.valueOf("NETHER_STALK"), langConfig.getString("tile.netherStalk.name", "Nether Wart"))); + itemNames.add(new ItemName(Material.valueOf("ANVIL"), langConfig.getString("tile.anvil.intact.name", "Anvil"))); + itemNames.add(new ItemName(Material.valueOf("ANVIL"), 1, langConfig.getString("tile.anvil.slightlyDamaged.name", "Slightly Damaged Anvil"))); + itemNames.add(new ItemName(Material.valueOf("ANVIL"), 2, langConfig.getString("tile.anvil.veryDamaged.name", "Very Damaged Anvil"))); + itemNames.add(new ItemName(Material.valueOf("TRAPPED_CHEST"), langConfig.getString("tile.chestTrap.name", "Trapped Chest"))); + itemNames.add(new ItemName(Material.valueOf("GOLD_PLATE"), langConfig.getString("tile.weightedPlate_light.name", "Weighted Pressure Plate (Light)"))); + itemNames.add(new ItemName(Material.valueOf("IRON_PLATE"), langConfig.getString("tile.weightedPlate_heavy.name", "Weighted Pressure Plate (Heavy)"))); + itemNames.add(new ItemName(Material.valueOf("DAYLIGHT_DETECTOR"), langConfig.getString("tile.daylightDetector.name", "Daylight Sensor"))); + itemNames.add(new ItemName(Material.valueOf("REDSTONE_BLOCK"), langConfig.getString("tile.blockRedstone.name", "Block of Redstone"))); + itemNames.add(new ItemName(Material.valueOf("QUARTZ_ORE"), langConfig.getString("tile.netherquartz.name", "Nether Quartz Ore"))); + itemNames.add(new ItemName(Material.valueOf("HOPPER"), langConfig.getString("tile.hopper.name", "Hopper"))); + itemNames.add(new ItemName(Material.valueOf("QUARTZ_BLOCK"), langConfig.getString("tile.quartzBlock.default.name", "Block of Quartz"))); + itemNames.add(new ItemName(Material.valueOf("QUARTZ_BLOCK"), langConfig.getString("tile.quartzBlock.chiseled.name", "Chiseled Quartz Block"))); + itemNames.add(new ItemName(Material.valueOf("QUARTZ_BLOCK"), langConfig.getString("tile.quartzBlock.lines.name", "Pillar Quartz Block"))); + itemNames.add(new ItemName(Material.valueOf("QUARTZ_STAIRS"), langConfig.getString("tile.stairsQuartz.name", "Quartz Stairs"))); + itemNames.add(new ItemName(Material.valueOf("ACTIVATOR_RAIL"), langConfig.getString("tile.activatorRail.name", "Activator Rail"))); + itemNames.add(new ItemName(Material.valueOf("DROPPER"), langConfig.getString("tile.dropper.name", "Dropper"))); + itemNames.add(new ItemName(Material.valueOf("STAINED_CLAY"), langConfig.getString("tile.clayHardenedStained.white.name", "White Terracotta"))); + itemNames.add(new ItemName(Material.valueOf("STAINED_CLAY"), 1, langConfig.getString("tile.clayHardenedStained.orange.name", "Orange Terracotta"))); + itemNames.add(new ItemName(Material.valueOf("STAINED_CLAY"), 2, langConfig.getString("tile.clayHardenedStained.magenta.name", "Magenta Terracotta"))); + itemNames.add(new ItemName(Material.valueOf("STAINED_CLAY"), 3, langConfig.getString("tile.clayHardenedStained.lightBlue.name", "Light Blue Terracotta"))); + itemNames.add(new ItemName(Material.valueOf("STAINED_CLAY"), 4, langConfig.getString("tile.clayHardenedStained.yellow.name", "Yellow Terracotta"))); + itemNames.add(new ItemName(Material.valueOf("STAINED_CLAY"), 5, langConfig.getString("tile.clayHardenedStained.lime.name", "Lime Terracotta"))); + itemNames.add(new ItemName(Material.valueOf("STAINED_CLAY"), 6, langConfig.getString("tile.clayHardenedStained.pink.name", "Pink Terracotta"))); + itemNames.add(new ItemName(Material.valueOf("STAINED_CLAY"), 7, langConfig.getString("tile.clayHardenedStained.gray.name", "Gray Terracotta"))); + itemNames.add(new ItemName(Material.valueOf("STAINED_CLAY"), 8, langConfig.getString("tile.clayHardenedStained.silver.name", "Light Gray Terracotta"))); + itemNames.add(new ItemName(Material.valueOf("STAINED_CLAY"), 9, langConfig.getString("tile.clayHardenedStained.cyan.name", "Cyan Terracotta"))); + itemNames.add(new ItemName(Material.valueOf("STAINED_CLAY"), 10, langConfig.getString("tile.clayHardenedStained.purple.name", "Purple Terracotta"))); + itemNames.add(new ItemName(Material.valueOf("STAINED_CLAY"), 11, langConfig.getString("tile.clayHardenedStained.blue.name", "Blue Terracotta"))); + itemNames.add(new ItemName(Material.valueOf("STAINED_CLAY"), 12, langConfig.getString("tile.clayHardenedStained.brown.name", "Brown Terracotta"))); + itemNames.add(new ItemName(Material.valueOf("STAINED_CLAY"), 13, langConfig.getString("tile.clayHardenedStained.green.name", "Green Terracotta"))); + itemNames.add(new ItemName(Material.valueOf("STAINED_CLAY"), 14, langConfig.getString("tile.clayHardenedStained.red.name", "Red Terracotta"))); + itemNames.add(new ItemName(Material.valueOf("STAINED_CLAY"), 15, langConfig.getString("tile.clayHardenedStained.black.name", "Black Terracotta"))); + itemNames.add(new ItemName(Material.valueOf("STAINED_GLASS_PANE"), langConfig.getString("tile.thinStainedGlass.white.name", "White Stained Glass Pane"))); + itemNames.add(new ItemName(Material.valueOf("STAINED_GLASS_PANE"), 1, langConfig.getString("tile.thinStainedGlass.orange.name", "Orange Stained Glass Pane"))); + itemNames.add(new ItemName(Material.valueOf("STAINED_GLASS_PANE"), 2, langConfig.getString("tile.thinStainedGlass.magenta.name", "Magenta Stained Glass Pane"))); + itemNames.add(new ItemName(Material.valueOf("STAINED_GLASS_PANE"), 3, langConfig.getString("tile.thinStainedGlass.lightBlue.name", "Light Blue Stained Glass Pane"))); + itemNames.add(new ItemName(Material.valueOf("STAINED_GLASS_PANE"), 4, langConfig.getString("tile.thinStainedGlass.yellow.name", "Yellow Stained Glass Pane"))); + itemNames.add(new ItemName(Material.valueOf("STAINED_GLASS_PANE"), 5, langConfig.getString("tile.thinStainedGlass.lime.name", "Lime Stained Glass Pane"))); + itemNames.add(new ItemName(Material.valueOf("STAINED_GLASS_PANE"), 6, langConfig.getString("tile.thinStainedGlass.pink.name", "Pink Stained Glass Pane"))); + itemNames.add(new ItemName(Material.valueOf("STAINED_GLASS_PANE"), 7, langConfig.getString("tile.thinStainedGlass.gray.name", "Gray Stained Glass Pane"))); + itemNames.add(new ItemName(Material.valueOf("STAINED_GLASS_PANE"), 8, langConfig.getString("tile.thinStainedGlass.silver.name", "Light Gray Stained Glass Pane"))); + itemNames.add(new ItemName(Material.valueOf("STAINED_GLASS_PANE"), 9, langConfig.getString("tile.thinStainedGlass.cyan.name", "Cyan Stained Glass Pane"))); + itemNames.add(new ItemName(Material.valueOf("STAINED_GLASS_PANE"), 10, langConfig.getString("tile.thinStainedGlass.purple.name", "Purple Stained Glass Pane"))); + itemNames.add(new ItemName(Material.valueOf("STAINED_GLASS_PANE"), 11, langConfig.getString("tile.thinStainedGlass.blue.name", "Blue Stained Glass Pane"))); + itemNames.add(new ItemName(Material.valueOf("STAINED_GLASS_PANE"), 12, langConfig.getString("tile.thinStainedGlass.brown.name", "Brown Stained Glass Pane"))); + itemNames.add(new ItemName(Material.valueOf("STAINED_GLASS_PANE"), 13, langConfig.getString("tile.thinStainedGlass.green.name", "Green Stained Glass Pane"))); + itemNames.add(new ItemName(Material.valueOf("STAINED_GLASS_PANE"), 14, langConfig.getString("tile.thinStainedGlass.red.name", "Red Stained Glass Pane"))); + itemNames.add(new ItemName(Material.valueOf("STAINED_GLASS_PANE"), 15, langConfig.getString("tile.thinStainedGlass.black.name", "Black Stained Glass Pane"))); + itemNames.add(new ItemName(Material.valueOf("LEAVES_2"), langConfig.getString("tile.leaves.acacia.name", "Acacia Leaves"))); + itemNames.add(new ItemName(Material.valueOf("LEAVES_2"), 1, langConfig.getString("tile.leaves.big_oak.name", "Dark Oak Leaves"))); + itemNames.add(new ItemName(Material.valueOf("LOG_2"), langConfig.getString("tile.log.acacia.name", "Acacia Wood"))); + itemNames.add(new ItemName(Material.valueOf("LOG_2"), 1, langConfig.getString("tile.log.big_oak.name", "Dark Oak Wood"))); + itemNames.add(new ItemName(Material.valueOf("ACACIA_STAIRS"), langConfig.getString("tile.stairsWoodAcacia.name", "Acacia Wood Stairs"))); + itemNames.add(new ItemName(Material.valueOf("DARK_OAK_STAIRS"), langConfig.getString("tile.stairsWoodDarkOak.name", "Dark Oak Wood Stairs"))); + itemNames.add(new ItemName(Material.valueOf("SLIME_BLOCK"), langConfig.getString("tile.slime.name", "Slime Block"))); + itemNames.add(new ItemName(Material.valueOf("BARRIER"), langConfig.getString("tile.barrier.name", "Barrier"))); + itemNames.add(new ItemName(Material.valueOf("IRON_TRAPDOOR"), langConfig.getString("tile.ironTrapdoor.name", "Iron Trapdoor"))); + itemNames.add(new ItemName(Material.valueOf("PRISMARINE"), langConfig.getString("tile.prismarine.rough.name", "Prismarine"))); + itemNames.add(new ItemName(Material.valueOf("PRISMARINE"), 1, langConfig.getString("tile.prismarine.bricks.name", "Prismarine Bricks"))); + itemNames.add(new ItemName(Material.valueOf("PRISMARINE"), 2, langConfig.getString("tile.prismarine.dark.name", "Dark Prismarine"))); + itemNames.add(new ItemName(Material.valueOf("SEA_LANTERN"), langConfig.getString("tile.seaLantern.name", "Sea Lantern"))); + itemNames.add(new ItemName(Material.valueOf("HAY_BLOCK"), langConfig.getString("tile.hayBlock.name", "Hay Bale"))); + itemNames.add(new ItemName(Material.valueOf("CARPET"), langConfig.getString("tile.woolCarpet.white.name", "White Carpet"))); + itemNames.add(new ItemName(Material.valueOf("CARPET"), 1, langConfig.getString("tile.woolCarpet.orange.name", "Orange Carpet"))); + itemNames.add(new ItemName(Material.valueOf("CARPET"), 2, langConfig.getString("tile.woolCarpet.magenta.name", "Magenta Carpet"))); + itemNames.add(new ItemName(Material.valueOf("CARPET"), 3, langConfig.getString("tile.woolCarpet.lightBlue.name", "Light Blue Carpet"))); + itemNames.add(new ItemName(Material.valueOf("CARPET"), 4, langConfig.getString("tile.woolCarpet.yellow.name", "Yellow Carpet"))); + itemNames.add(new ItemName(Material.valueOf("CARPET"), 5, langConfig.getString("tile.woolCarpet.lime.name", "Lime Carpet"))); + itemNames.add(new ItemName(Material.valueOf("CARPET"), 6, langConfig.getString("tile.woolCarpet.pink.name", "Pink Carpet"))); + itemNames.add(new ItemName(Material.valueOf("CARPET"), 7, langConfig.getString("tile.woolCarpet.gray.name", "Gray Carpet"))); + itemNames.add(new ItemName(Material.valueOf("CARPET"), 8, langConfig.getString("tile.woolCarpet.silver.name", "Light Gray Carpet"))); + itemNames.add(new ItemName(Material.valueOf("CARPET"), 9, langConfig.getString("tile.woolCarpet.cyan.name", "Cyan Carpet"))); + itemNames.add(new ItemName(Material.valueOf("CARPET"), 10, langConfig.getString("tile.woolCarpet.purple.name", "Purple Carpet"))); + itemNames.add(new ItemName(Material.valueOf("CARPET"), 11, langConfig.getString("tile.woolCarpet.blue.name", "Blue Carpet"))); + itemNames.add(new ItemName(Material.valueOf("CARPET"), 12, langConfig.getString("tile.woolCarpet.brown.name", "Brown Carpet"))); + itemNames.add(new ItemName(Material.valueOf("CARPET"), 13, langConfig.getString("tile.woolCarpet.green.name", "Green Carpet"))); + itemNames.add(new ItemName(Material.valueOf("CARPET"), 14, langConfig.getString("tile.woolCarpet.red.name", "Red Carpet"))); + itemNames.add(new ItemName(Material.valueOf("CARPET"), 15, langConfig.getString("tile.woolCarpet.black.name", "Black Carpet"))); + itemNames.add(new ItemName(Material.valueOf("HARD_CLAY"), langConfig.getString("tile.clayHardened.name", "Hardened Clay"))); + itemNames.add(new ItemName(Material.valueOf("COAL_BLOCK"), langConfig.getString("tile.blockCoal.name", "Block of Coal"))); + itemNames.add(new ItemName(Material.valueOf("PACKED_ICE"), langConfig.getString("tile.icePacked.name", "Packed Ice"))); + itemNames.add(new ItemName(Material.valueOf("DOUBLE_PLANT"), langConfig.getString("tile.doublePlant.sunflower.name", "Sunflower"))); + itemNames.add(new ItemName(Material.valueOf("DOUBLE_PLANT"), 1, langConfig.getString("tile.doublePlant.syringa.name", "Lilac"))); + itemNames.add(new ItemName(Material.valueOf("DOUBLE_PLANT"), 2, langConfig.getString("tile.doublePlant.grass.name", "Double Tallgrass"))); + itemNames.add(new ItemName(Material.valueOf("DOUBLE_PLANT"), 3, langConfig.getString("tile.doublePlant.fern.name", "Large Fern"))); + itemNames.add(new ItemName(Material.valueOf("DOUBLE_PLANT"), 4, langConfig.getString("tile.doublePlant.rose.name", "Rose Bush"))); + itemNames.add(new ItemName(Material.valueOf("DOUBLE_PLANT"), 5, langConfig.getString("tile.doublePlant.paeonia.name", "Peony"))); + itemNames.add(new ItemName(Material.valueOf("RED_SANDSTONE"), langConfig.getString("tile.redSandStone.default.name", "Red Sandstone"))); + itemNames.add(new ItemName(Material.valueOf("RED_SANDSTONE"), 1, langConfig.getString("tile.redSandStone.chiseled.name", "Chiseled Red Sandstone"))); + itemNames.add(new ItemName(Material.valueOf("RED_SANDSTONE"), 2, langConfig.getString("tile.redSandStone.smooth.name", "Smooth Red Sandstone"))); + itemNames.add(new ItemName(Material.valueOf("RED_SANDSTONE_STAIRS"), langConfig.getString("tile.stairsRedSandStone.name", "Red Sandstone Stairs"))); + itemNames.add(new ItemName(Material.valueOf("STONE_SLAB2"), langConfig.getString("tile.stoneSlab2.red_sandstone.name", "Red Sandstone Slab"))); + itemNames.add(new ItemName(Material.valueOf("SPRUCE_FENCE_GATE"), langConfig.getString("tile.spruceFenceGate.name", "Spruce Fence Gate"))); + itemNames.add(new ItemName(Material.valueOf("BIRCH_FENCE_GATE"), langConfig.getString("tile.birchFenceGate.name", "Birch Fence Gate"))); + itemNames.add(new ItemName(Material.valueOf("JUNGLE_FENCE_GATE"), langConfig.getString("tile.jungleFenceGate.name", "Jungle Fence Gate"))); + itemNames.add(new ItemName(Material.valueOf("DARK_OAK_FENCE_GATE"), langConfig.getString("tile.darkOakFenceGate.name", "Dark Oak Fence Gate"))); + itemNames.add(new ItemName(Material.valueOf("ACACIA_FENCE_GATE"), langConfig.getString("tile.acaciaFenceGate.name", "Acacia Fence Gate"))); + itemNames.add(new ItemName(Material.valueOf("SPRUCE_FENCE"), langConfig.getString("tile.spruceFence.name", "Spruce Fence"))); + itemNames.add(new ItemName(Material.valueOf("BIRCH_FENCE"), langConfig.getString("tile.birchFence.name", "Birch Fence"))); + itemNames.add(new ItemName(Material.valueOf("JUNGLE_FENCE"), langConfig.getString("tile.jungleFence.name", "Jungle Fence"))); + itemNames.add(new ItemName(Material.valueOf("DARK_OAK_FENCE"), langConfig.getString("tile.darkOakFence.name", "Dark Oak Fence"))); + itemNames.add(new ItemName(Material.valueOf("ACACIA_FENCE"), langConfig.getString("tile.acaciaFence.name", "Acacia Fence"))); + + if (Utils.getMajorVersion() >= 9) { + // Add Block Names of 1.9 + itemNames.add(new ItemName(Material.valueOf("END_ROD"), langConfig.getString("tile.endRod.name", "End Rod"))); + itemNames.add(new ItemName(Material.valueOf("CHORUS_PLANT"), langConfig.getString("tile.chorusPlant.name", "Chorus Plant"))); + itemNames.add(new ItemName(Material.valueOf("CHORUS_FLOWER"), langConfig.getString("tile.chorusFlower.name", "Chorus Flower"))); + itemNames.add(new ItemName(Material.valueOf("PURPUR_BLOCK"), langConfig.getString("tile.purpurBlock.name", "Purpur Block"))); + itemNames.add(new ItemName(Material.valueOf("PURPUR_PILLAR"), langConfig.getString("tile.purpurPillar.name", "Purpur Pillar"))); + itemNames.add(new ItemName(Material.valueOf("PURPUR_STAIRS"), langConfig.getString("tile.stairsPurpur.name", "Purpur Stairs"))); + itemNames.add(new ItemName(Material.valueOf("PURPUR_SLAB"), langConfig.getString("tile.purpurSlab.name", "Purpur Slab"))); + itemNames.add(new ItemName(Material.valueOf("END_BRICKS"), langConfig.getString("tile.endBricks.name", "End Stone Bricks"))); + itemNames.add(new ItemName(Material.valueOf("GRASS_PATH"), langConfig.getString("tile.grassPath.name", "Grass Path"))); + itemNames.add(new ItemName(Material.valueOf("COMMAND_REPEATING"), langConfig.getString("tile.repeatingCommandBlock.name", "Repeating Command Block"))); + itemNames.add(new ItemName(Material.valueOf("COMMAND_CHAIN"), langConfig.getString("tile.chainCommandBlock.name", "Chain Command Block"))); + itemNames.add(new ItemName(Material.valueOf("STRUCTURE_BLOCK"), langConfig.getString("tile.structureBlock.name", "Structure Block"))); + } + + if (Utils.getMajorVersion() >= 10) { + // Add Block Names of 1.10 + itemNames.add(new ItemName(Material.valueOf("MAGMA"), langConfig.getString("tile.magma.name", "Magma Block"))); + itemNames.add(new ItemName(Material.valueOf("NETHER_WART_BLOCK"), langConfig.getString("tile.netherWartBlock.name", "Nether Wart Block"))); + itemNames.add(new ItemName(Material.valueOf("RED_NETHER_BRICK"), langConfig.getString("tile.redNetherBrick.name", "Red Nether Brick"))); + itemNames.add(new ItemName(Material.valueOf("BONE_BLOCK"), langConfig.getString("tile.boneBlock.name", "Bone Block"))); + itemNames.add(new ItemName(Material.valueOf("STRUCTURE_VOID"), langConfig.getString("tile.structureVoid.name", "Structure Void"))); + } + + if (Utils.getMajorVersion() >= 11) { + // Add Block Names of 1.11 + itemNames.add(new ItemName(Material.valueOf("OBSERVER"), langConfig.getString("tile.observer.name", "Observer"))); + itemNames.add(new ItemName(Material.valueOf("WHITE_SHULKER_BOX"), langConfig.getString("tile.shulkerBoxWhite.name", "White Shulker Box"))); + itemNames.add(new ItemName(Material.valueOf("ORANGE_SHULKER_BOX"), langConfig.getString("tile.shulkerBoxOrange.name", "Orange Shulker Box"))); + itemNames.add(new ItemName(Material.valueOf("MAGENTA_SHULKER_BOX"), langConfig.getString("tile.shulkerBoxMagenta.name", "Magenta Shulker Box"))); + itemNames.add(new ItemName(Material.valueOf("LIGHT_BLUE_SHULKER_BOX"), langConfig.getString("tile.shulkerBoxLightBlue.name", "Light Blue Shulker Box"))); + itemNames.add(new ItemName(Material.valueOf("YELLOW_SHULKER_BOX"), langConfig.getString("tile.shulkerBoxYellow.name", "Yellow Shulker Box"))); + itemNames.add(new ItemName(Material.valueOf("LIME_SHULKER_BOX"), langConfig.getString("tile.shulkerBoxLime.name", "Lime Shulker Box"))); + itemNames.add(new ItemName(Material.valueOf("PINK_SHULKER_BOX"), langConfig.getString("tile.shulkerBoxPink.name", "Pink Shulker Box"))); + itemNames.add(new ItemName(Material.valueOf("GRAY_SHULKER_BOX"), langConfig.getString("tile.shulkerBoxGray.name", "Gray Shulker Box"))); + itemNames.add(new ItemName(Material.valueOf("SILVER_SHULKER_BOX"), langConfig.getString("tile.shulkerBoxSilver.name", "Light Gray Shulker Box"))); + itemNames.add(new ItemName(Material.valueOf("CYAN_SHULKER_BOX"), langConfig.getString("tile.shulkerBoxCyan.name", "Cyan Shulker Box"))); + itemNames.add(new ItemName(Material.valueOf("PURPLE_SHULKER_BOX"), langConfig.getString("tile.shulkerBoxPurple.name", "Purple Shulker Box"))); + itemNames.add(new ItemName(Material.valueOf("BLUE_SHULKER_BOX"), langConfig.getString("tile.shulkerBoxBlue.name", "Blue Shulker Box"))); + itemNames.add(new ItemName(Material.valueOf("BROWN_SHULKER_BOX"), langConfig.getString("tile.shulkerBoxBrown.name", "Brown Shulker Box"))); + itemNames.add(new ItemName(Material.valueOf("GREEN_SHULKER_BOX"), langConfig.getString("tile.shulkerBoxGreen.name", "Green Shulker Box"))); + itemNames.add(new ItemName(Material.valueOf("RED_SHULKER_BOX"), langConfig.getString("tile.shulkerBoxRed.name", "Red Shulker Box"))); + itemNames.add(new ItemName(Material.valueOf("BLACK_SHULKER_BOX"), langConfig.getString("tile.shulkerBoxBlack.name", "Black Shulker Box"))); + } + + if (Utils.getMajorVersion() >= 12) { + // Add Block Names of 1.12 + itemNames.add(new ItemName(Material.valueOf("CONCRETE"), langConfig.getString("tile.concrete.white.name", "White Concrete"))); + itemNames.add(new ItemName(Material.valueOf("CONCRETE"), 1, langConfig.getString("tile.concrete.orange.name", "Orange Concrete"))); + itemNames.add(new ItemName(Material.valueOf("CONCRETE"), 2, langConfig.getString("tile.concrete.magenta.name", "Magenta Concrete"))); + itemNames.add(new ItemName(Material.valueOf("CONCRETE"), 3, langConfig.getString("tile.concrete.lightBlue.name", "Light Blue Concrete"))); + itemNames.add(new ItemName(Material.valueOf("CONCRETE"), 4, langConfig.getString("tile.concrete.yellow.name", "Yellow Concrete"))); + itemNames.add(new ItemName(Material.valueOf("CONCRETE"), 5, langConfig.getString("tile.concrete.lime.name", "Lime Concrete"))); + itemNames.add(new ItemName(Material.valueOf("CONCRETE"), 6, langConfig.getString("tile.concrete.pink.name", "Pink Concrete"))); + itemNames.add(new ItemName(Material.valueOf("CONCRETE"), 7, langConfig.getString("tile.concrete.gray.name", "Gray Concrete"))); + itemNames.add(new ItemName(Material.valueOf("CONCRETE"), 8, langConfig.getString("tile.concrete.silver.name", "Light Gray Concrete"))); + itemNames.add(new ItemName(Material.valueOf("CONCRETE"), 9, langConfig.getString("tile.concrete.cyan.name", "Cyan Concrete"))); + itemNames.add(new ItemName(Material.valueOf("CONCRETE"), 10, langConfig.getString("tile.concrete.purple.name", "Purple Concrete"))); + itemNames.add(new ItemName(Material.valueOf("CONCRETE"), 11, langConfig.getString("tile.concrete.blue.name", "Blue Concrete"))); + itemNames.add(new ItemName(Material.valueOf("CONCRETE"), 12, langConfig.getString("tile.concrete.brown.name", "Brown Concrete"))); + itemNames.add(new ItemName(Material.valueOf("CONCRETE"), 13, langConfig.getString("tile.concrete.green.name", "Green Concrete"))); + itemNames.add(new ItemName(Material.valueOf("CONCRETE"), 14, langConfig.getString("tile.concrete.red.name", "Red Concrete"))); + itemNames.add(new ItemName(Material.valueOf("CONCRETE"), 15, langConfig.getString("tile.concrete.black.name", "Black Concrete"))); + itemNames.add(new ItemName(Material.valueOf("CONCRETE_POWDER"), langConfig.getString("tile.concretePowder.white.name", "White Concrete Powder"))); + itemNames.add(new ItemName(Material.valueOf("CONCRETE_POWDER"), 1, langConfig.getString("tile.concretePowder.orange.name", "Orange Concrete Powder"))); + itemNames.add(new ItemName(Material.valueOf("CONCRETE_POWDER"), 2, langConfig.getString("tile.concretePowder.magenta.name", "Magenta Concrete Powder"))); + itemNames.add(new ItemName(Material.valueOf("CONCRETE_POWDER"), 3, langConfig.getString("tile.concretePowder.lightBlue.name", "Light Blue Concrete Powder"))); + itemNames.add(new ItemName(Material.valueOf("CONCRETE_POWDER"), 4, langConfig.getString("tile.concretePowder.yellow.name", "Yellow Concrete Powder"))); + itemNames.add(new ItemName(Material.valueOf("CONCRETE_POWDER"), 5, langConfig.getString("tile.concretePowder.lime.name", "Lime Concrete Powder"))); + itemNames.add(new ItemName(Material.valueOf("CONCRETE_POWDER"), 6, langConfig.getString("tile.concretePowder.pink.name", "Pink Concrete Powder"))); + itemNames.add(new ItemName(Material.valueOf("CONCRETE_POWDER"), 7, langConfig.getString("tile.concretePowder.gray.name", "Gray Concrete Powder"))); + itemNames.add(new ItemName(Material.valueOf("CONCRETE_POWDER"), 8, langConfig.getString("tile.concretePowder.silver.name", "Light Gray Concrete Powder"))); + itemNames.add(new ItemName(Material.valueOf("CONCRETE_POWDER"), 9, langConfig.getString("tile.concretePowder.cyan.name", "Cyan Concrete Powder"))); + itemNames.add(new ItemName(Material.valueOf("CONCRETE_POWDER"), 10, langConfig.getString("tile.concretePowder.purple.name", "Purple Concrete Powder"))); + itemNames.add(new ItemName(Material.valueOf("CONCRETE_POWDER"), 11, langConfig.getString("tile.concretePowder.blue.name", "Blue Concrete Powder"))); + itemNames.add(new ItemName(Material.valueOf("CONCRETE_POWDER"), 12, langConfig.getString("tile.concretePowder.brown.name", "Brown Concrete Powder"))); + itemNames.add(new ItemName(Material.valueOf("CONCRETE_POWDER"), 13, langConfig.getString("tile.concretePowder.green.name", "Green Concrete Powder"))); + itemNames.add(new ItemName(Material.valueOf("CONCRETE_POWDER"), 14, langConfig.getString("tile.concretePowder.red.name", "Red Concrete Powder"))); + itemNames.add(new ItemName(Material.valueOf("CONCRETE_POWDER"), 15, langConfig.getString("tile.concretePowder.black.name", "Black Concrete Powder"))); + itemNames.add(new ItemName(Material.valueOf("WHITE_GLAZED_TERRACOTTA"), langConfig.getString("tile.glazedTerracottaWhite.name", "White Terracotta"))); + itemNames.add(new ItemName(Material.valueOf("ORANGE_GLAZED_TERRACOTTA"), langConfig.getString("tile.glazedTerracottaOrange.name", "Orange Glazed Terracotta"))); + itemNames.add(new ItemName(Material.valueOf("MAGENTA_GLAZED_TERRACOTTA"), langConfig.getString("tile.glazedTerracottaMagenta.name", "Magenta Glazed Terracotta"))); + itemNames.add(new ItemName(Material.valueOf("LIGHT_BLUE_GLAZED_TERRACOTTA"), langConfig.getString("tile.glazedTerracottaLightBlue.name", "Light Blue Glazed Terracotta"))); + itemNames.add(new ItemName(Material.valueOf("YELLOW_GLAZED_TERRACOTTA"), langConfig.getString("tile.glazedTerracottaYellow.name", "Yellow Glazed Terracotta"))); + itemNames.add(new ItemName(Material.valueOf("LIME_GLAZED_TERRACOTTA"), langConfig.getString("tile.glazedTerracottaLime.name", "Lime Glazed Terracotta"))); + itemNames.add(new ItemName(Material.valueOf("PINK_GLAZED_TERRACOTTA"), langConfig.getString("tile.glazedTerracottaPink.name", "Pink Glazed Terracotta"))); + itemNames.add(new ItemName(Material.valueOf("GRAY_GLAZED_TERRACOTTA"), langConfig.getString("tile.glazedTerracottaGray.name", "Gray Glazed Terracotta"))); + itemNames.add(new ItemName(Material.valueOf("SILVER_GLAZED_TERRACOTTA"), langConfig.getString("tile.glazedTerracottaSilver.name", "Light Gray Glazed Terracotta"))); + itemNames.add(new ItemName(Material.valueOf("CYAN_GLAZED_TERRACOTTA"), langConfig.getString("tile.glazedTerracottaCyan.name", "Cyan Glazed Terracotta"))); + itemNames.add(new ItemName(Material.valueOf("PURPLE_GLAZED_TERRACOTTA"), langConfig.getString("tile.glazedTerracottaPurple.name", "Purple Glazed Terracotta"))); + itemNames.add(new ItemName(Material.valueOf("BLUE_GLAZED_TERRACOTTA"), langConfig.getString("tile.glazedTerracottaBlue.name", "Blue Glazed Terracotta"))); + itemNames.add(new ItemName(Material.valueOf("BROWN_GLAZED_TERRACOTTA"), langConfig.getString("tile.glazedTerracottaBrown.name", "Brown Glazed Terracotta"))); + itemNames.add(new ItemName(Material.valueOf("GREEN_GLAZED_TERRACOTTA"), langConfig.getString("tile.glazedTerracottaGreen.name", "Green Glazed Terracotta"))); + itemNames.add(new ItemName(Material.valueOf("RED_GLAZED_TERRACOTTA"), langConfig.getString("tile.glazedTerracottaRed.name", "Red Glazed Terracotta"))); + itemNames.add(new ItemName(Material.valueOf("BLACK_GLAZED_TERRACOTTA"), langConfig.getString("tile.glazedTerracottaBlack.name", "Black Glazed Terracotta"))); + } + + // Add Item Names + itemNames.add(new ItemName(Material.valueOf("IRON_SPADE"), langConfig.getString("item.shovelIron.name", "Iron Shovel"))); + itemNames.add(new ItemName(Material.valueOf("IRON_PICKAXE"), langConfig.getString("item.pickaxeIron.name", "Iron Pickaxe"))); + itemNames.add(new ItemName(Material.valueOf("IRON_AXE"), langConfig.getString("item.hatchetIron.name", "Iron Axe"))); + itemNames.add(new ItemName(Material.valueOf("FLINT_AND_STEEL"), langConfig.getString("item.flintAndSteel.name", "Flint and Steel"))); + itemNames.add(new ItemName(Material.valueOf("APPLE"), langConfig.getString("item.apple.name", "Apple"))); + itemNames.add(new ItemName(Material.valueOf("BOW"), langConfig.getString("item.bow.name", "Bow"))); + itemNames.add(new ItemName(Material.valueOf("ARROW"), langConfig.getString("item.arrow.name", "Arrow"))); + itemNames.add(new ItemName(Material.valueOf("COAL"), langConfig.getString("item.coal.name", "Coal"))); + itemNames.add(new ItemName(Material.valueOf("COAL"), 1, langConfig.getString("item.charcoal.name", "Charcoal"))); + itemNames.add(new ItemName(Material.valueOf("DIAMOND"), langConfig.getString("item.diamond.name", "Diamond"))); + itemNames.add(new ItemName(Material.valueOf("IRON_INGOT"), langConfig.getString("item.ingotIron.name", "Iron Ingot"))); + itemNames.add(new ItemName(Material.valueOf("GOLD_INGOT"), langConfig.getString("item.ingotGold.name", "Gold Ingot"))); + itemNames.add(new ItemName(Material.valueOf("IRON_SWORD"), langConfig.getString("item.swordIron.name", "Iron Sword"))); + itemNames.add(new ItemName(Material.valueOf("WOOD_SWORD"), langConfig.getString("item.swordWood.name", "Wooden Sword"))); + itemNames.add(new ItemName(Material.valueOf("WOOD_SPADE"), langConfig.getString("item.shovelWood.name", "Wooden Shovel"))); + itemNames.add(new ItemName(Material.valueOf("WOOD_PICKAXE"), langConfig.getString("item.pickaxeWood.name", "Wooden Pickaxe"))); + itemNames.add(new ItemName(Material.valueOf("WOOD_AXE"), langConfig.getString("item.hatchetWood.name", "Wooden Axe"))); + itemNames.add(new ItemName(Material.valueOf("STONE_SWORD"), langConfig.getString("item.swordStone.name", "Stone Sword"))); + itemNames.add(new ItemName(Material.valueOf("STONE_SPADE"), langConfig.getString("item.shovelStone.name", "Stone Shovel"))); + itemNames.add(new ItemName(Material.valueOf("STONE_PICKAXE"), langConfig.getString("item.pickaxeStone.name", "Stone Pickaxe"))); + itemNames.add(new ItemName(Material.valueOf("STONE_AXE"), langConfig.getString("item.hatchetStone.name", "Stone Axe"))); + itemNames.add(new ItemName(Material.valueOf("DIAMOND_SWORD"), langConfig.getString("item.swordDiamond.name", "Diamond Sword"))); + itemNames.add(new ItemName(Material.valueOf("DIAMOND_SPADE"), langConfig.getString("item.shovelDiamond.name", "Diamond Shovel"))); + itemNames.add(new ItemName(Material.valueOf("DIAMOND_PICKAXE"), langConfig.getString("item.pickaxeDiamond.name", "Diamond Pickaxe"))); + itemNames.add(new ItemName(Material.valueOf("DIAMOND_AXE"), langConfig.getString("item.hatchetDiamond.name", "Diamond Axe"))); + itemNames.add(new ItemName(Material.valueOf("STICK"), langConfig.getString("item.stick.name", "Stick"))); + itemNames.add(new ItemName(Material.valueOf("BOWL"), langConfig.getString("item.bowl.name", "Bowl"))); + itemNames.add(new ItemName(Material.valueOf("MUSHROOM_SOUP"), langConfig.getString("item.mushroomStew.name", "Mushroom Stew"))); + itemNames.add(new ItemName(Material.valueOf("GOLD_SWORD"), langConfig.getString("item.swordGold.name", "Golden Sword"))); + itemNames.add(new ItemName(Material.valueOf("GOLD_SPADE"), langConfig.getString("item.shovelGold.name", "Golden Shovel"))); + itemNames.add(new ItemName(Material.valueOf("GOLD_PICKAXE"), langConfig.getString("item.pickaxeGold.name", "Golden Pickaxe"))); + itemNames.add(new ItemName(Material.valueOf("GOLD_AXE"), langConfig.getString("item.hatchetGold.name", "Golden Axe"))); + itemNames.add(new ItemName(Material.valueOf("STRING"), langConfig.getString("item.string.name", "String"))); + itemNames.add(new ItemName(Material.valueOf("FEATHER"), langConfig.getString("item.feather.name", "Feather"))); + itemNames.add(new ItemName(Material.valueOf("SULPHUR"), langConfig.getString("item.sulphur.name", "Gunpowder"))); + itemNames.add(new ItemName(Material.valueOf("WOOD_HOE"), langConfig.getString("item.hoeWood.name", "Wooden Hoe"))); + itemNames.add(new ItemName(Material.valueOf("STONE_HOE"), langConfig.getString("item.hoeStone.name", "Stone Hoe"))); + itemNames.add(new ItemName(Material.valueOf("IRON_HOE"), langConfig.getString("item.hoeIron.name", "Iron Hoe"))); + itemNames.add(new ItemName(Material.valueOf("DIAMOND_HOE"), langConfig.getString("item.hoeDiamond.name", "Diamond Hoe"))); + itemNames.add(new ItemName(Material.valueOf("GOLD_HOE"), langConfig.getString("item.hoeGold.name", "Golden Hoe"))); + itemNames.add(new ItemName(Material.valueOf("SEEDS"), langConfig.getString("item.seeds.name", "Seeds"))); + itemNames.add(new ItemName(Material.valueOf("WHEAT"), langConfig.getString("item.wheat.name", "Wheat"))); + itemNames.add(new ItemName(Material.valueOf("BREAD"), langConfig.getString("item.bread.name", "Bread"))); + itemNames.add(new ItemName(Material.valueOf("LEATHER_HELMET"), langConfig.getString("item.helmetCloth.name", "Leather Cap"))); + itemNames.add(new ItemName(Material.valueOf("LEATHER_CHESTPLATE"), langConfig.getString("item.chestplateCloth.name", "Leather Tunic"))); + itemNames.add(new ItemName(Material.valueOf("LEATHER_LEGGINGS"), langConfig.getString("item.leggingsCloth.name", "Leather Pants"))); + itemNames.add(new ItemName(Material.valueOf("LEATHER_BOOTS"), langConfig.getString("item.bootsCloth.name", "Leather Boots"))); + itemNames.add(new ItemName(Material.valueOf("CHAINMAIL_HELMET"), langConfig.getString("item.helmetChain.name", "Chain Helmet"))); + itemNames.add(new ItemName(Material.valueOf("CHAINMAIL_CHESTPLATE"), langConfig.getString("item.chestplateChain.name", "Chain Chestplate"))); + itemNames.add(new ItemName(Material.valueOf("CHAINMAIL_LEGGINGS"), langConfig.getString("item.leggingsChain.name", "Chain Leggings"))); + itemNames.add(new ItemName(Material.valueOf("CHAINMAIL_BOOTS"), langConfig.getString("item.bootsChain.name", "Chain Boots"))); + itemNames.add(new ItemName(Material.valueOf("IRON_HELMET"), langConfig.getString("item.helmetIron.name", "Iron Helmet"))); + itemNames.add(new ItemName(Material.valueOf("IRON_CHESTPLATE"), langConfig.getString("item.chestplateIron.name", "Iron Chestplate"))); + itemNames.add(new ItemName(Material.valueOf("IRON_LEGGINGS"), langConfig.getString("item.leggingsIron.name", "Iron Leggings"))); + itemNames.add(new ItemName(Material.valueOf("IRON_BOOTS"), langConfig.getString("item.bootsIron.name", "Iron Boots"))); + itemNames.add(new ItemName(Material.valueOf("DIAMOND_HELMET"), langConfig.getString("item.helmetDiamond.name", "Diamond Helmet"))); + itemNames.add(new ItemName(Material.valueOf("DIAMOND_CHESTPLATE"), langConfig.getString("item.chestplateDiamond.name", "Diamond Chestplate"))); + itemNames.add(new ItemName(Material.valueOf("DIAMOND_LEGGINGS"), langConfig.getString("item.leggingsDiamond.name", "Diamond Leggings"))); + itemNames.add(new ItemName(Material.valueOf("DIAMOND_BOOTS"), langConfig.getString("item.bootsDiamond.name", "Diamond Boots"))); + itemNames.add(new ItemName(Material.valueOf("GOLD_HELMET"), langConfig.getString("item.helmetGold.name", "Golden Helmet"))); + itemNames.add(new ItemName(Material.valueOf("GOLD_CHESTPLATE"), langConfig.getString("item.chestplateGold.name", "Golden Chestplate"))); + itemNames.add(new ItemName(Material.valueOf("GOLD_LEGGINGS"), langConfig.getString("item.leggingsGold.name", "Golden Leggings"))); + itemNames.add(new ItemName(Material.valueOf("GOLD_BOOTS"), langConfig.getString("item.bootsGold.name", "Golden Boots"))); + itemNames.add(new ItemName(Material.valueOf("FLINT"), langConfig.getString("item.flint.name", "Flint"))); + itemNames.add(new ItemName(Material.valueOf("PORK"), langConfig.getString("item.porkchopRaw.name", "Raw Porkchop"))); + itemNames.add(new ItemName(Material.valueOf("GRILLED_PORK"), langConfig.getString("item.porkchopCooked.name", "Cooked Porkchop"))); + itemNames.add(new ItemName(Material.valueOf("PAINTING"), langConfig.getString("item.painting.name", "Painting"))); + itemNames.add(new ItemName(Material.valueOf("GOLDEN_APPLE"), langConfig.getString("item.appleGold.name", "Golden Apple"))); + itemNames.add(new ItemName(Material.valueOf("GOLDEN_APPLE"), 1, langConfig.getString("item.appleGold.name", "Golden Apple"))); + itemNames.add(new ItemName(Material.valueOf("SIGN"), langConfig.getString("item.sign.name", "Sign"))); + itemNames.add(new ItemName(Material.valueOf("WOOD_DOOR"), langConfig.getString("item.doorOak.name", "Oak Door"))); + itemNames.add(new ItemName(Material.valueOf("BUCKET"), langConfig.getString("item.bucket.name", "Bucket"))); + itemNames.add(new ItemName(Material.valueOf("WATER_BUCKET"), langConfig.getString("item.bucketWater.name", "Water Bucket"))); + itemNames.add(new ItemName(Material.valueOf("LAVA_BUCKET"), langConfig.getString("item.bucketLava.name", "Lava Bucket"))); + itemNames.add(new ItemName(Material.valueOf("MINECART"), langConfig.getString("item.minecart.name", "Minecart"))); + itemNames.add(new ItemName(Material.valueOf("SADDLE"), langConfig.getString("item.saddle.name", "Saddle"))); + itemNames.add(new ItemName(Material.valueOf("IRON_DOOR"), langConfig.getString("item.doorIron.name", "Iron Door"))); + itemNames.add(new ItemName(Material.valueOf("REDSTONE"), langConfig.getString("item.redstone.name", "Redstone"))); + itemNames.add(new ItemName(Material.valueOf("SNOW_BALL"), langConfig.getString("item.snowball.name", "Snowball"))); + itemNames.add(new ItemName(Material.valueOf("BOAT"), langConfig.getString("item.boat.oak.name", "Oak Boat"))); + itemNames.add(new ItemName(Material.valueOf("LEATHER"), langConfig.getString("item.leather.name", "Leather"))); + itemNames.add(new ItemName(Material.valueOf("MILK_BUCKET"), langConfig.getString("item.milk.name", "Milk"))); + itemNames.add(new ItemName(Material.valueOf("BRICK"), langConfig.getString("item.brick.name", "Brick"))); + itemNames.add(new ItemName(Material.valueOf("CLAY_BALL"), langConfig.getString("item.clay.name", "Clay"))); + itemNames.add(new ItemName(Material.valueOf("SUGAR_CANE"), langConfig.getString("item.reeds.name", "Sugar Canes"))); + itemNames.add(new ItemName(Material.valueOf("PAPER"), langConfig.getString("item.paper.name", "Paper"))); + itemNames.add(new ItemName(Material.valueOf("BOOK"), langConfig.getString("item.book.name", "Book"))); + itemNames.add(new ItemName(Material.valueOf("SLIME_BALL"), langConfig.getString("item.slimeball.name", "Slimeball"))); + itemNames.add(new ItemName(Material.valueOf("STORAGE_MINECART"), langConfig.getString("item.minecartChest.name", "Minecart with Chest"))); + itemNames.add(new ItemName(Material.valueOf("POWERED_MINECART"), langConfig.getString("item.minecartFurnace.name", "Minecart with Furnace"))); + itemNames.add(new ItemName(Material.valueOf("EGG"), langConfig.getString("item.egg.name", "Egg"))); + itemNames.add(new ItemName(Material.valueOf("COMPASS"), langConfig.getString("item.compass.name", "Compass"))); + itemNames.add(new ItemName(Material.valueOf("FISHING_ROD"), langConfig.getString("item.fishingRod.name", "Fishing Rod"))); + itemNames.add(new ItemName(Material.valueOf("WATCH"), langConfig.getString("item.clock.name", "Clock"))); + itemNames.add(new ItemName(Material.valueOf("GLOWSTONE_DUST"), langConfig.getString("item.yellowDust.name", "Glowstone Dust"))); + itemNames.add(new ItemName(Material.valueOf("RAW_FISH"), langConfig.getString("item.fish.cod.raw.name", "Raw Fish"))); + itemNames.add(new ItemName(Material.valueOf("RAW_FISH"), 1, langConfig.getString("item.fish.salmon.raw.name", "Raw Salmon"))); + itemNames.add(new ItemName(Material.valueOf("RAW_FISH"), 2, langConfig.getString("item.fish.clownfish.raw.name", "Clownfish"))); + itemNames.add(new ItemName(Material.valueOf("RAW_FISH"), 3, langConfig.getString("item.fish.pufferfish.raw.name", "Pufferfish"))); + itemNames.add(new ItemName(Material.valueOf("COOKED_FISH"), langConfig.getString("item.fish.cod.cooked.name", "Cooked Fish"))); + itemNames.add(new ItemName(Material.valueOf("COOKED_FISH"), 1, langConfig.getString("item.fish.salmon.cooked.name", "Cooked Salmon"))); + itemNames.add(new ItemName(Material.valueOf("INK_SACK"), langConfig.getString("item.dyePowder.black.name", "Ink Sac"))); + itemNames.add(new ItemName(Material.valueOf("INK_SACK"), 1, langConfig.getString("item.dyePowder.red.name", "Rose Red"))); + itemNames.add(new ItemName(Material.valueOf("INK_SACK"), 2, langConfig.getString("item.dyePowder.green.name", "Cactus Green"))); + itemNames.add(new ItemName(Material.valueOf("INK_SACK"), 3, langConfig.getString("item.dyePowder.brown.name", "Cocoa Beans"))); + itemNames.add(new ItemName(Material.valueOf("INK_SACK"), 4, langConfig.getString("item.dyePowder.blue.name", "Lapis Lazuli"))); + itemNames.add(new ItemName(Material.valueOf("INK_SACK"), 5, langConfig.getString("item.dyePowder.purple.name", "Purple Dye"))); + itemNames.add(new ItemName(Material.valueOf("INK_SACK"), 6, langConfig.getString("item.dyePowder.cyan.name", "Cyan Dye"))); + itemNames.add(new ItemName(Material.valueOf("INK_SACK"), 7, langConfig.getString("item.dyePowder.silver.name", "Light Gray Dye"))); + itemNames.add(new ItemName(Material.valueOf("INK_SACK"), 8, langConfig.getString("item.dyePowder.gray.name", "Gray Dye"))); + itemNames.add(new ItemName(Material.valueOf("INK_SACK"), 9, langConfig.getString("item.dyePowder.pink.name", "Pink Dye"))); + itemNames.add(new ItemName(Material.valueOf("INK_SACK"), 10, langConfig.getString("item.dyePowder.lime.name", "Lime Dye"))); + itemNames.add(new ItemName(Material.valueOf("INK_SACK"), 11, langConfig.getString("item.dyePowder.yellow.name", "Dandelion Yellow"))); + itemNames.add(new ItemName(Material.valueOf("INK_SACK"), 12, langConfig.getString("item.dyePowder.lightBlue.name", "Light Blue Dye"))); + itemNames.add(new ItemName(Material.valueOf("INK_SACK"), 13, langConfig.getString("item.dyePowder.magenta.name", "Magenta Dye"))); + itemNames.add(new ItemName(Material.valueOf("INK_SACK"), 14, langConfig.getString("item.dyePowder.orange.name", "Orange Dye"))); + itemNames.add(new ItemName(Material.valueOf("INK_SACK"), 15, langConfig.getString("item.dyePowder.white.name", "Bone Meal"))); + itemNames.add(new ItemName(Material.valueOf("BONE"), langConfig.getString("item.bone.name", "Bone"))); + itemNames.add(new ItemName(Material.valueOf("SUGAR"), langConfig.getString("item.sugar.name", "Sugar"))); + itemNames.add(new ItemName(Material.valueOf("CAKE"), langConfig.getString("item.cake.name", "Cake"))); + itemNames.add(new ItemName(Material.valueOf("DIODE"), langConfig.getString("item.diode.name", "Redstone Repeater"))); + itemNames.add(new ItemName(Material.valueOf("COOKIE"), langConfig.getString("item.cookie.name", "Cookie"))); + itemNames.add(new ItemName(Material.valueOf("MAP"), langConfig.getString("item.map.name", "Map"))); + itemNames.add(new ItemName(Material.valueOf("SHEARS"), langConfig.getString("item.shears.name", "Shears"))); + itemNames.add(new ItemName(Material.valueOf("MELON"), langConfig.getString("item.melon.name", "Melon"))); + itemNames.add(new ItemName(Material.valueOf("PUMPKIN_SEEDS"), langConfig.getString("item.seeds_pumpkin.name", "Pumpkin Seeds"))); + itemNames.add(new ItemName(Material.valueOf("MELON_SEEDS"), langConfig.getString("item.seeds_melon.name", "Melon Seeds"))); + itemNames.add(new ItemName(Material.valueOf("RAW_BEEF"), langConfig.getString("item.beefRaw.name", "Raw Beef"))); + itemNames.add(new ItemName(Material.valueOf("COOKED_BEEF"), langConfig.getString("item.beefCooked.name", "Steak"))); + itemNames.add(new ItemName(Material.valueOf("RAW_CHICKEN"), langConfig.getString("item.chickenRaw.name", "Raw Chicken"))); + itemNames.add(new ItemName(Material.valueOf("COOKED_CHICKEN"), langConfig.getString("item.chickenCooked.name", "Cooked Chicken"))); + itemNames.add(new ItemName(Material.valueOf("ROTTEN_FLESH"), langConfig.getString("item.rottenFlesh.name", "Rotten Flesh"))); + itemNames.add(new ItemName(Material.valueOf("ENDER_PEARL"), langConfig.getString("item.enderPearl.name", "Ender Pearl"))); + itemNames.add(new ItemName(Material.valueOf("BLAZE_ROD"), langConfig.getString("item.blazeRod.name", "Blaze Rod"))); + itemNames.add(new ItemName(Material.valueOf("GHAST_TEAR"), langConfig.getString("item.ghastTear.name", "Ghast Tear"))); + itemNames.add(new ItemName(Material.valueOf("GOLD_NUGGET"), langConfig.getString("item.goldNugget.name", "Gold Nugget"))); + itemNames.add(new ItemName(Material.valueOf("NETHER_WARTS"), langConfig.getString("item.netherStalkSeeds.name", "Nether Wart"))); + itemNames.add(new ItemName(Material.valueOf("POTION"), langConfig.getString("item.potion.name", "Potion"))); + itemNames.add(new ItemName(Material.valueOf("GLASS_BOTTLE"), langConfig.getString("item.glassBottle.name", "Glass Bottle"))); + itemNames.add(new ItemName(Material.valueOf("SPIDER_EYE"), langConfig.getString("item.spiderEye.name", "Spider Eye"))); + itemNames.add(new ItemName(Material.valueOf("FERMENTED_SPIDER_EYE"), langConfig.getString("item.fermentedSpiderEye.name", "Fermented Spider Eye"))); + itemNames.add(new ItemName(Material.valueOf("BLAZE_POWDER"), langConfig.getString("item.blazePowder.name", "Blaze Powder"))); + itemNames.add(new ItemName(Material.valueOf("MAGMA_CREAM"), langConfig.getString("item.magmaCream.name", "Magma Cream"))); + itemNames.add(new ItemName(Material.valueOf("BREWING_STAND_ITEM"), langConfig.getString("item.brewingStand.name", "Brewing Stand"))); + itemNames.add(new ItemName(Material.valueOf("CAULDRON_ITEM"), langConfig.getString("item.cauldron.name", "Cauldron"))); + itemNames.add(new ItemName(Material.valueOf("EYE_OF_ENDER"), langConfig.getString("item.eyeOfEnder.name", "Eye of Ender"))); + itemNames.add(new ItemName(Material.valueOf("SPECKLED_MELON"), langConfig.getString("item.speckledMelon.name", "Glistering Melon"))); + itemNames.add(new ItemName(Material.valueOf("MONSTER_EGG"), langConfig.getString("item.monsterPlacer.name", "Spawn"))); + itemNames.add(new ItemName(Material.valueOf("EXP_BOTTLE"), langConfig.getString("item.expBottle.name", "Bottle o' Enchanting"))); + itemNames.add(new ItemName(Material.valueOf("FIREWORK_CHARGE"), langConfig.getString("item.fireball.name", "Fire Charge"))); + itemNames.add(new ItemName(Material.valueOf("BOOK_AND_QUILL"), langConfig.getString("item.writingBook.name", "Book and Quill"))); + itemNames.add(new ItemName(Material.valueOf("WRITTEN_BOOK"), langConfig.getString("item.writtenBook.name", "Written Book"))); + itemNames.add(new ItemName(Material.valueOf("EMERALD"), langConfig.getString("item.emerald.name", "Emerald"))); + itemNames.add(new ItemName(Material.valueOf("ITEM_FRAME"), langConfig.getString("item.frame.name", "Item Frame"))); + itemNames.add(new ItemName(Material.valueOf("FLOWER_POT_ITEM"), langConfig.getString("item.flowerPot.name", "Flower Pot"))); + itemNames.add(new ItemName(Material.valueOf("CARROT_ITEM"), langConfig.getString("item.carrots.name", "Carrot"))); + itemNames.add(new ItemName(Material.valueOf("POTATO_ITEM"), langConfig.getString("item.potato.name", "Potato"))); + itemNames.add(new ItemName(Material.valueOf("BAKED_POTATO"), langConfig.getString("item.potatoBaked.name", "Baked Potato"))); + itemNames.add(new ItemName(Material.valueOf("POISONOUS_POTATO"), langConfig.getString("item.potatoPoisonous.name", "Poisonous Potato"))); + itemNames.add(new ItemName(Material.valueOf("EMPTY_MAP"), langConfig.getString("item.emptyMap.name", "Empty Map"))); + itemNames.add(new ItemName(Material.valueOf("GOLDEN_CARROT"), langConfig.getString("item.carrotGolden.name", "Golden Carrot"))); + itemNames.add(new ItemName(Material.valueOf("SKULL_ITEM"), langConfig.getString("item.skull.skeleton.name", "Skeleton Skull"))); + itemNames.add(new ItemName(Material.valueOf("SKULL_ITEM"), 1, langConfig.getString("item.skull.wither.name", "Wither Skeleton Skull"))); + itemNames.add(new ItemName(Material.valueOf("SKULL_ITEM"), 2, langConfig.getString("item.skull.zombie.name", "Zombie Head"))); + itemNames.add(new ItemName(Material.valueOf("SKULL_ITEM"), 3, langConfig.getString("item.skull.char.name", "Head"))); + itemNames.add(new ItemName(Material.valueOf("SKULL_ITEM"), 4, langConfig.getString("item.skull.creeper.name", "Creeper Head"))); + itemNames.add(new ItemName(Material.valueOf("SKULL_ITEM"), 5, langConfig.getString("item.skull.dragon.name", "Creeper Head"))); + itemNames.add(new ItemName(Material.valueOf("CARROT_STICK"), langConfig.getString("item.carrotOnAStick.name", "Carrot on a Stick"))); + itemNames.add(new ItemName(Material.valueOf("NETHER_STAR"), langConfig.getString("item.netherStar.name", "Nether Star"))); + itemNames.add(new ItemName(Material.valueOf("PUMPKIN_PIE"), langConfig.getString("item.pumpkinPie.name", "Pumpkin Pie"))); + itemNames.add(new ItemName(Material.valueOf("FIREWORK"), langConfig.getString("item.fireworks.name", "Firework Rocket"))); + itemNames.add(new ItemName(Material.valueOf("FIREWORK_CHARGE"), langConfig.getString("item.fireworksCharge.name", "Firework Star"))); + itemNames.add(new ItemName(Material.valueOf("ENCHANTED_BOOK"), langConfig.getString("item.enchantedBook.name", "Enchanted Book"))); + itemNames.add(new ItemName(Material.valueOf("REDSTONE_COMPARATOR"), langConfig.getString("item.comparator.name", "Redstone Comparator"))); + itemNames.add(new ItemName(Material.valueOf("NETHER_BRICK_ITEM"), langConfig.getString("item.netherbrick.name", "Nether Brick"))); + itemNames.add(new ItemName(Material.valueOf("QUARTZ"), langConfig.getString("item.netherquartz.name", "Nether Quartz"))); + itemNames.add(new ItemName(Material.valueOf("EXPLOSIVE_MINECART"), langConfig.getString("item.minecartTnt.name", "Minecart with TNT"))); + itemNames.add(new ItemName(Material.valueOf("HOPPER_MINECART"), langConfig.getString("item.minecartHopper.name", "Minecart with Hopper"))); + itemNames.add(new ItemName(Material.valueOf("PRISMARINE_SHARD"), langConfig.getString("item.prismarineShard.name", "Prismarine Shard"))); + itemNames.add(new ItemName(Material.valueOf("PRISMARINE_CRYSTALS"), langConfig.getString("item.prismarineCrystals.name", "Prismarine Crystals"))); + itemNames.add(new ItemName(Material.valueOf("RABBIT"), langConfig.getString("item.rabbitRaw.name", "Raw Rabbit"))); + itemNames.add(new ItemName(Material.valueOf("COOKED_RABBIT"), langConfig.getString("item.rabbitCooked.name", "Cooked Rabbit"))); + itemNames.add(new ItemName(Material.valueOf("RABBIT_STEW"), langConfig.getString("item.rabbitStew.name", "Rabbit Stew"))); + itemNames.add(new ItemName(Material.valueOf("RABBIT_FOOT"), langConfig.getString("item.rabbitFoot.name", "Rabbit's Foot"))); + itemNames.add(new ItemName(Material.valueOf("RABBIT_HIDE"), langConfig.getString("item.rabbitHide.name", "Rabbit Hide"))); + itemNames.add(new ItemName(Material.valueOf("ARMOR_STAND"), langConfig.getString("item.armorStand.name", "Armor Stand"))); + itemNames.add(new ItemName(Material.valueOf("IRON_BARDING"), langConfig.getString("item.horsearmormetal.name", "Iron Horse Armor"))); + itemNames.add(new ItemName(Material.valueOf("GOLD_BARDING"), langConfig.getString("item.horsearmorgold.name", "Gold Horse Armor"))); + itemNames.add(new ItemName(Material.valueOf("DIAMOND_BARDING"), langConfig.getString("item.horsearmordiamond.name", "Diamond Horse Armor"))); + itemNames.add(new ItemName(Material.valueOf("LEASH"), langConfig.getString("item.leash.name", "Lead"))); + itemNames.add(new ItemName(Material.valueOf("NAME_TAG"), langConfig.getString("item.nameTag.name", "Name Tag"))); + itemNames.add(new ItemName(Material.valueOf("COMMAND_MINECART"), langConfig.getString("item.minecartCommandBlock.name", "Minecart with Command Block"))); + itemNames.add(new ItemName(Material.valueOf("MUTTON"), langConfig.getString("item.muttonRaw.name", "Raw Mutton"))); + itemNames.add(new ItemName(Material.valueOf("COOKED_MUTTON"), langConfig.getString("item.muttonCooked.name", "Cooked Mutton"))); + itemNames.add(new ItemName(Material.valueOf("BANNER"), langConfig.getString("item.banner.black.name", "Black Banner"))); + itemNames.add(new ItemName(Material.valueOf("BANNER"), 1, langConfig.getString("item.banner.red.name", "Red Banner"))); + itemNames.add(new ItemName(Material.valueOf("BANNER"), 2, langConfig.getString("item.banner.green.name", "Green Banner"))); + itemNames.add(new ItemName(Material.valueOf("BANNER"), 3, langConfig.getString("item.banner.brown.name", "Brown Banner"))); + itemNames.add(new ItemName(Material.valueOf("BANNER"), 4, langConfig.getString("item.banner.blue.name", "Blue Banner"))); + itemNames.add(new ItemName(Material.valueOf("BANNER"), 5, langConfig.getString("item.banner.purple.name", "Purple Banner"))); + itemNames.add(new ItemName(Material.valueOf("BANNER"), 6, langConfig.getString("item.banner.cyan.name", "Cyan Banner"))); + itemNames.add(new ItemName(Material.valueOf("BANNER"), 7, langConfig.getString("item.banner.silver.name", "Light Gray Banner"))); + itemNames.add(new ItemName(Material.valueOf("BANNER"), 8, langConfig.getString("item.banner.gray.name", "Gray Banner"))); + itemNames.add(new ItemName(Material.valueOf("BANNER"), 9, langConfig.getString("item.banner.pink.name", "Pink Banner"))); + itemNames.add(new ItemName(Material.valueOf("BANNER"), 10, langConfig.getString("item.banner.lime.name", "Lime Banner"))); + itemNames.add(new ItemName(Material.valueOf("BANNER"), 11, langConfig.getString("item.banner.yellow.name", "Yellow Banner"))); + itemNames.add(new ItemName(Material.valueOf("BANNER"), 12, langConfig.getString("item.banner.lightBlue.name", "Light Blue Banner"))); + itemNames.add(new ItemName(Material.valueOf("BANNER"), 13, langConfig.getString("item.banner.magenta.name", "Magenta Banner"))); + itemNames.add(new ItemName(Material.valueOf("BANNER"), 14, langConfig.getString("item.banner.orange.name", "Orange Banner"))); + itemNames.add(new ItemName(Material.valueOf("BANNER"), 15, langConfig.getString("item.banner.white.name", "White Banner"))); + itemNames.add(new ItemName(Material.valueOf("SPRUCE_DOOR_ITEM"), langConfig.getString("item.doorSpruce.name", "Spruce Door"))); + itemNames.add(new ItemName(Material.valueOf("BIRCH_DOOR_ITEM"), langConfig.getString("item.doorBirch.name", "Birch Door"))); + itemNames.add(new ItemName(Material.valueOf("JUNGLE_DOOR_ITEM"), langConfig.getString("item.doorJungle.name", "Jungle Door"))); + itemNames.add(new ItemName(Material.valueOf("ACACIA_DOOR_ITEM"), langConfig.getString("item.doorAcacia.name", "Acacia Door"))); + itemNames.add(new ItemName(Material.valueOf("DARK_OAK_DOOR_ITEM"), langConfig.getString("item.doorDarkOak.name", "Dark Oak Door"))); + itemNames.add(new ItemName(Material.valueOf("GOLD_RECORD"), langConfig.getString("item.record.name", "Music Disc"))); + itemNames.add(new ItemName(Material.valueOf("GREEN_RECORD"), langConfig.getString("item.record.name", "Music Disc"))); + itemNames.add(new ItemName(Material.valueOf("RECORD_3"), langConfig.getString("item.record.name", "Music Disc"))); + itemNames.add(new ItemName(Material.valueOf("RECORD_4"), langConfig.getString("item.record.name", "Music Disc"))); + itemNames.add(new ItemName(Material.valueOf("RECORD_5"), langConfig.getString("item.record.name", "Music Disc"))); + itemNames.add(new ItemName(Material.valueOf("RECORD_6"), langConfig.getString("item.record.name", "Music Disc"))); + itemNames.add(new ItemName(Material.valueOf("RECORD_7"), langConfig.getString("item.record.name", "Music Disc"))); + itemNames.add(new ItemName(Material.valueOf("RECORD_8"), langConfig.getString("item.record.name", "Music Disc"))); + itemNames.add(new ItemName(Material.valueOf("RECORD_9"), langConfig.getString("item.record.name", "Music Disc"))); + itemNames.add(new ItemName(Material.valueOf("RECORD_10"), langConfig.getString("item.record.name", "Music Disc"))); + itemNames.add(new ItemName(Material.valueOf("RECORD_11"), langConfig.getString("item.record.name", "Music Disc"))); + itemNames.add(new ItemName(Material.valueOf("RECORD_12"), langConfig.getString("item.record.name", "Music Disc"))); + + if (Utils.getMajorVersion() >= 9) { + // Add Item names of 1.9 + itemNames.add(new ItemName(Material.valueOf("END_CRYSTAL"), langConfig.getString("item.end_crystal.name", "End Crystal"))); + itemNames.add(new ItemName(Material.valueOf("CHORUS_FRUIT"), langConfig.getString("item.chorusFruit.name", "Chorus Fruit"))); + itemNames.add(new ItemName(Material.valueOf("CHORUS_FRUIT_POPPED"), langConfig.getString("item.chorusFruitPopped.name", "Popped Chorus Fruit"))); + itemNames.add(new ItemName(Material.valueOf("BEETROOT"), langConfig.getString("item.beetroot.name", "Beetroot"))); + itemNames.add(new ItemName(Material.valueOf("BEETROOT_SEEDS"), langConfig.getString("item.beetroot_seeds.name", "Beetroot Seeds"))); + itemNames.add(new ItemName(Material.valueOf("BEETROOT_SOUP"), langConfig.getString("item.beetroot_soup.name", "Beetroot Soup"))); + itemNames.add(new ItemName(Material.valueOf("DRAGONS_BREATH"), langConfig.getString("item.dragon_breath.name", "Dragon's Breath"))); + itemNames.add(new ItemName(Material.valueOf("SPECTRAL_ARROW"), langConfig.getString("item.spectral_arrow.name", "Spectral Arrow"))); + itemNames.add(new ItemName(Material.valueOf("TIPPED_ARROW"), langConfig.getString("item.tipped_arrow.name", "Tipped Arrow"))); + itemNames.add(new ItemName(Material.valueOf("SHIELD"), langConfig.getString("item.shield.name", "Shield"))); + itemNames.add(new ItemName(Material.valueOf("ELYTRA"), langConfig.getString("item.elytra.name", "Elytra"))); + itemNames.add(new ItemName(Material.valueOf("BOAT_SPRUCE"), langConfig.getString("item.boat.spruce.name", "Spruce Boat"))); + itemNames.add(new ItemName(Material.valueOf("BOAT_BIRCH"), langConfig.getString("item.boat.birch.name", "Birch Boat"))); + itemNames.add(new ItemName(Material.valueOf("BOAT_JUNGLE"), langConfig.getString("item.boat.jungle.name", "Jungle Boat"))); + itemNames.add(new ItemName(Material.valueOf("BOAT_ACACIA"), langConfig.getString("item.boat.acacia.name", "Acacia Boat"))); + itemNames.add(new ItemName(Material.valueOf("BOAT_DARK_OAK"), langConfig.getString("item.boat.dark_oak.name", "Dark Oak Boat"))); + } + + if (Utils.getMajorVersion() >= 11) { + // Add Item Names of 1.11 + itemNames.add(new ItemName(Material.valueOf("TOTEM"), langConfig.getString("item.totem.name", "Totem of Undying"))); + itemNames.add(new ItemName(Material.valueOf("SHULKER_SHELL"), langConfig.getString("item.shulkerShell.name", "Shulker Shell"))); + + if (Utils.getRevision() >= 2 || Utils.getMajorVersion() > 11) { + // Add Item Name of 1.11.2 + itemNames.add(new ItemName(Material.valueOf("IRON_NUGGET"), langConfig.getString("item.ironNugget.name", "Iron Nugget"))); + } + } + + if (Utils.getMajorVersion() >= 12) { + // Add Item Name of 1.12 + itemNames.add(new ItemName(Material.valueOf("KNOWLEDGE_BOOK"), langConfig.getString("item.knowledgeBook.name", "Knowledge Book"))); + itemNames.add(new ItemName(Material.valueOf("BED"), langConfig.getString("item.bed.white.name", "White Bed"))); + itemNames.add(new ItemName(Material.valueOf("BED"), 1, langConfig.getString("item.bed.orange.name", "Orange Bed"))); + itemNames.add(new ItemName(Material.valueOf("BED"), 2, langConfig.getString("item.bed.magenta.name", "Magenta Bed"))); + itemNames.add(new ItemName(Material.valueOf("BED"), 3, langConfig.getString("item.bed.lightBlue.name", "Light Blue Bed"))); + itemNames.add(new ItemName(Material.valueOf("BED"), 4, langConfig.getString("item.bed.yellow.name", "Yellow Bed"))); + itemNames.add(new ItemName(Material.valueOf("BED"), 5, langConfig.getString("item.bed.lime.name", "Lime Bed"))); + itemNames.add(new ItemName(Material.valueOf("BED"), 6, langConfig.getString("item.bed.pink.name", "Pink Bed"))); + itemNames.add(new ItemName(Material.valueOf("BED"), 7, langConfig.getString("item.bed.gray.name", "Gray Bed"))); + itemNames.add(new ItemName(Material.valueOf("BED"), 8, langConfig.getString("item.bed.silver.name", "Light Gray Bed"))); + itemNames.add(new ItemName(Material.valueOf("BED"), 9, langConfig.getString("item.bed.cyan.name", "Cyan Bed"))); + itemNames.add(new ItemName(Material.valueOf("BED"), 10, langConfig.getString("item.bed.purple.name", "Purple Bed"))); + itemNames.add(new ItemName(Material.valueOf("BED"), 11, langConfig.getString("item.bed.blue.name", "Blue Bed"))); + itemNames.add(new ItemName(Material.valueOf("BED"), 12, langConfig.getString("item.bed.brown.name", "Brown Bed"))); + itemNames.add(new ItemName(Material.valueOf("BED"), 13, langConfig.getString("item.bed.green.name", "Green Bed"))); + itemNames.add(new ItemName(Material.valueOf("BED"), 14, langConfig.getString("item.bed.red.name", "Red Bed"))); + itemNames.add(new ItemName(Material.valueOf("BED"), 15, langConfig.getString("item.bed.black.name", "Black Bed"))); + } else { + // Before 1.12, bed is just called "Bed" without colors + itemNames.add(new ItemName(Material.valueOf("BED"), langConfig.getString("item.bed.name", "Bed"))); + } + + // Add Enchantment Names + enchantmentNames.add(new EnchantmentName(Enchantment.ARROW_DAMAGE, langConfig.getString("enchantment.arrowDamage", "Power"))); + enchantmentNames.add(new EnchantmentName(Enchantment.ARROW_FIRE, langConfig.getString("enchantment.arrowFire", "Flame"))); + enchantmentNames.add(new EnchantmentName(Enchantment.ARROW_INFINITE, langConfig.getString("enchantment.arrowInfinite", "Infinity"))); + enchantmentNames.add(new EnchantmentName(Enchantment.ARROW_KNOCKBACK, langConfig.getString("enchantment.arrowKnockback", "Punch"))); + enchantmentNames.add(new EnchantmentName(Enchantment.DAMAGE_ALL, langConfig.getString("enchantment.damage.all", "Sharpness"))); + enchantmentNames.add(new EnchantmentName(Enchantment.DAMAGE_ARTHROPODS, langConfig.getString("enchantment.damage.arthropods", "Bane of Arthropods"))); + enchantmentNames.add(new EnchantmentName(Enchantment.DAMAGE_UNDEAD, langConfig.getString("enchantment.damage.undead", "Smite"))); + enchantmentNames.add(new EnchantmentName(Enchantment.DIG_SPEED, langConfig.getString("enchantment.digging", "Efficiency"))); + enchantmentNames.add(new EnchantmentName(Enchantment.DURABILITY, langConfig.getString("enchantment.durability", "Unbreaking"))); + enchantmentNames.add(new EnchantmentName(Enchantment.FIRE_ASPECT, langConfig.getString("enchantment.fire", "Fire Aspect"))); + enchantmentNames.add(new EnchantmentName(Enchantment.LURE, langConfig.getString("enchantment.fishingSpeed", "Lure"))); + enchantmentNames.add(new EnchantmentName(Enchantment.KNOCKBACK, langConfig.getString("enchantment.knockback", "Knockback"))); + enchantmentNames.add(new EnchantmentName(Enchantment.LOOT_BONUS_MOBS, langConfig.getString("enchantment.lootBonus", "Looting"))); + enchantmentNames.add(new EnchantmentName(Enchantment.LOOT_BONUS_BLOCKS, langConfig.getString("enchantment.lootBonusDigger", "Fortune"))); + enchantmentNames.add(new EnchantmentName(Enchantment.LUCK, langConfig.getString("enchantment.lootBonusFishing", "Luck of the Sea"))); + enchantmentNames.add(new EnchantmentName(Enchantment.OXYGEN, langConfig.getString("enchantment.oxygen", "Respiration"))); + enchantmentNames.add(new EnchantmentName(Enchantment.PROTECTION_ENVIRONMENTAL, langConfig.getString("enchantment.protect.all", "Protection"))); + enchantmentNames.add(new EnchantmentName(Enchantment.PROTECTION_EXPLOSIONS, langConfig.getString("enchantment.protect.explosion", "Blast Protection"))); + enchantmentNames.add(new EnchantmentName(Enchantment.PROTECTION_FALL, langConfig.getString("enchantment.protect.fall", "Feather Falling"))); + enchantmentNames.add(new EnchantmentName(Enchantment.PROTECTION_FIRE, langConfig.getString("enchantment.protect.fire", "Fire Protection"))); + enchantmentNames.add(new EnchantmentName(Enchantment.PROTECTION_PROJECTILE, langConfig.getString("enchantment.protect.projectile", "Projectile Protection"))); + enchantmentNames.add(new EnchantmentName(Enchantment.THORNS, langConfig.getString("enchantment.thorns", "Thorns"))); + enchantmentNames.add(new EnchantmentName(Enchantment.SILK_TOUCH, langConfig.getString("enchantment.untouching", "Silk Touch"))); + enchantmentNames.add(new EnchantmentName(Enchantment.DEPTH_STRIDER, langConfig.getString("enchantment.waterWalker", "Depth Strider"))); + enchantmentNames.add(new EnchantmentName(Enchantment.WATER_WORKER, langConfig.getString("enchantment.waterWorker", "Aqua Affinity"))); + + if (Utils.getMajorVersion() >= 9) { + // Add Enchantment Names of 1.9 + enchantmentNames.add(new EnchantmentName(Enchantment.FROST_WALKER, langConfig.getString("enchantment.frostWalker", "Frost Walker"))); + enchantmentNames.add(new EnchantmentName(Enchantment.MENDING, langConfig.getString("enchantment.mending", "Mending"))); + } + + if (Utils.getMajorVersion() >= 11) { + // Add Enchantment Names of 1.11 + enchantmentNames.add(new EnchantmentName(Enchantment.BINDING_CURSE, langConfig.getString("enchantment.binding_curse", "Curse of Binding"))); + enchantmentNames.add(new EnchantmentName(Enchantment.VANISHING_CURSE, langConfig.getString("enchantment.vanishing_curse", "Curse of Vanishing"))); + + if (Utils.getRevision() >= 2 || Utils.getMajorVersion() > 11) { + // Add Enchantment Name of 1.11.2 + enchantmentNames.add(new EnchantmentName(Enchantment.SWEEPING_EDGE, langConfig.getString("enchantment.sweeping", "Sweeping Edge"))); + } + } + + // 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"))); + enchantmentLevelNames.add(new EnchantmentName.EnchantmentLevelName(3, langConfig.getString("enchantment.level.3", "II"))); + enchantmentLevelNames.add(new EnchantmentName.EnchantmentLevelName(4, langConfig.getString("enchantment.level.4", "IV"))); + enchantmentLevelNames.add(new EnchantmentName.EnchantmentLevelName(5, langConfig.getString("enchantment.level.5", "V"))); + enchantmentLevelNames.add(new EnchantmentName.EnchantmentLevelName(6, langConfig.getString("enchantment.level.6", "VI"))); + enchantmentLevelNames.add(new EnchantmentName.EnchantmentLevelName(7, langConfig.getString("enchantment.level.7", "VII"))); + enchantmentLevelNames.add(new EnchantmentName.EnchantmentLevelName(8, langConfig.getString("enchantment.level.8", "VIII"))); + enchantmentLevelNames.add(new EnchantmentName.EnchantmentLevelName(9, langConfig.getString("enchantment.level.9", "IX"))); + enchantmentLevelNames.add(new EnchantmentName.EnchantmentLevelName(10, langConfig.getString("enchantment.level.10", "X"))); + + // Add Entity Names + String horseName = (Utils.getMajorVersion() >= 11 ? "entity.Horse.name" : "entity.EntityHorse.name"); + entityNames.add(new EntityName(EntityType.CREEPER, langConfig.getString("entity.Creeper.name", "Creeper"))); + entityNames.add(new EntityName(EntityType.SKELETON, langConfig.getString("entity.Skeleton.name", "Skeleton"))); + entityNames.add(new EntityName(EntityType.SPIDER, langConfig.getString("entity.Spider.name", "Spider"))); + entityNames.add(new EntityName(EntityType.ZOMBIE, langConfig.getString("entity.Zombie.name", "Zombie"))); + entityNames.add(new EntityName(EntityType.SLIME, langConfig.getString("entity.Slime.name", "Slime"))); + entityNames.add(new EntityName(EntityType.GHAST, langConfig.getString("entity.Ghast.name", "Ghast"))); + entityNames.add(new EntityName(EntityType.PIG_ZOMBIE, langConfig.getString("entity.PigZombie.name", "Zombie Pigman"))); + entityNames.add(new EntityName(EntityType.ENDERMAN, langConfig.getString("entity.Enderman.name", "Enderman"))); + entityNames.add(new EntityName(EntityType.CAVE_SPIDER, langConfig.getString("entity.CaveSpider.name", "Cave Spider"))); + entityNames.add(new EntityName(EntityType.SILVERFISH, langConfig.getString("entity.Silverfish.name", "Silverfish"))); + entityNames.add(new EntityName(EntityType.BLAZE, langConfig.getString("entity.Blaze.name", "Blaze"))); + entityNames.add(new EntityName(EntityType.MAGMA_CUBE, langConfig.getString("entity.LavaSlime.name", "Magma Cube"))); + entityNames.add(new EntityName(EntityType.BAT, langConfig.getString("entity.Bat.name", "Bat"))); + entityNames.add(new EntityName(EntityType.WITCH, langConfig.getString("entity.Witch.name", "Witch"))); + entityNames.add(new EntityName(EntityType.ENDERMITE, langConfig.getString("entity.Endermite.name", "Endermite"))); + entityNames.add(new EntityName(EntityType.GUARDIAN, langConfig.getString("entity.Guardian.name", "Guardian"))); + entityNames.add(new EntityName(EntityType.PIG, langConfig.getString("entity.Pig.name", "Pig"))); + entityNames.add(new EntityName(EntityType.SHEEP, langConfig.getString("entity.Sheep.name", "Sheep"))); + entityNames.add(new EntityName(EntityType.COW, langConfig.getString("entity.Cow.name", "Cow"))); + entityNames.add(new EntityName(EntityType.CHICKEN, langConfig.getString("entity.Chicken.name", "Chicken"))); + entityNames.add(new EntityName(EntityType.SQUID, langConfig.getString("entity.Squid.name", "Squid"))); + entityNames.add(new EntityName(EntityType.WOLF, langConfig.getString("entity.Wolf.name", "Wolf"))); + entityNames.add(new EntityName(EntityType.MUSHROOM_COW, langConfig.getString("entity.MushroomCow.name", "Mooshroom"))); + entityNames.add(new EntityName(EntityType.OCELOT, langConfig.getString("entity.Ozelot.name", "Ocelot"))); + entityNames.add(new EntityName(EntityType.HORSE, langConfig.getString(horseName, "Horse"))); + entityNames.add(new EntityName(EntityType.RABBIT, langConfig.getString("entity.Rabbit.name", "Rabbit"))); + entityNames.add(new EntityName(EntityType.VILLAGER, langConfig.getString("entity.Villager.name", "Villager"))); + + if (Utils.getMajorVersion() >= 9) { + // Add Entity Names of 1.9 + entityNames.add(new EntityName(EntityType.SHULKER, langConfig.getString("entity.Shulker.name", "Shulker"))); + } + + if (Utils.getMajorVersion() >= 10) { + // Add Entity Names of 1.10 + entityNames.add(new EntityName(EntityType.POLAR_BEAR, langConfig.getString("entity.PolarBear.name", "Polar Bear"))); + } + + if (Utils.getMajorVersion() >= 11) { + // Add Entity Names of 1.11 + entityNames.add(new EntityName(EntityType.ZOMBIE_VILLAGER, langConfig.getString("entity.ZombieVillager.name", "Zombie Villager"))); + entityNames.add(new EntityName(EntityType.ELDER_GUARDIAN, langConfig.getString("entity.ElderGuardian.name", "Elder Guardian"))); + entityNames.add(new EntityName(EntityType.EVOKER, langConfig.getString("entity.EvocationIllager.name", "Evoker"))); + entityNames.add(new EntityName(EntityType.VEX, langConfig.getString("entity.Vex.name", "Vex"))); + entityNames.add(new EntityName(EntityType.VINDICATOR, langConfig.getString("entity.VindicationIllager.name", "Vindicator"))); + entityNames.add(new EntityName(EntityType.LLAMA, langConfig.getString("entity.Llama.name", "Llama"))); + entityNames.add(new EntityName(EntityType.WITHER_SKELETON, langConfig.getString("entity.WitherSkeleton.name", "Wither Skeleton"))); + entityNames.add(new EntityName(EntityType.STRAY, langConfig.getString("entity.Stray.name", "Stray"))); + entityNames.add(new EntityName(EntityType.ZOMBIE_HORSE, langConfig.getString("entity.ZombieHorse.name", "Zombie Horse"))); + entityNames.add(new EntityName(EntityType.SKELETON_HORSE, langConfig.getString("entity.SkeletonHorse.name", "Skeleton Horse"))); + entityNames.add(new EntityName(EntityType.DONKEY, langConfig.getString("entity.Donkey.name", "Donkey"))); + entityNames.add(new EntityName(EntityType.MULE, langConfig.getString("entity.Mule.name", "Mule"))); + entityNames.add(new EntityName(EntityType.HUSK, langConfig.getString("entity.Husk.name", "Husk"))); + } + + if (Utils.getMajorVersion() >= 12) { + // Add Entity Names of 1.12 + entityNames.add(new EntityName(EntityType.PARROT, langConfig.getString("entity.Parrot.name", "Parrot"))); + entityNames.add(new EntityName(EntityType.ILLUSIONER, langConfig.getString("entity.IllusionIllager.name", "Illusioner"))); + } + + // Add Potion Effect Names + potionEffectNames.add(new PotionEffectName(PotionEffectType.FIRE_RESISTANCE, langConfig.getString("effect.fireResistance", "Fire Resistance"))); + potionEffectNames.add(new PotionEffectName(PotionEffectType.HARM, langConfig.getString("effect.harm", "Instant Damage"))); + potionEffectNames.add(new PotionEffectName(PotionEffectType.HEAL, langConfig.getString("effect.heal", "Instant Health"))); + potionEffectNames.add(new PotionEffectName(PotionEffectType.INVISIBILITY, langConfig.getString("effect.invisibility", "Invisibility"))); + potionEffectNames.add(new PotionEffectName(PotionEffectType.JUMP, langConfig.getString("effect.jump", "Jump Boost"))); + potionEffectNames.add(new PotionEffectName(PotionEffectType.NIGHT_VISION, langConfig.getString("effect.nightVision", "Night Vision"))); + potionEffectNames.add(new PotionEffectName(PotionEffectType.POISON, langConfig.getString("effect.poison", "Poison"))); + potionEffectNames.add(new PotionEffectName(PotionEffectType.REGENERATION, langConfig.getString("effect.regeneration", "Regeneration"))); + potionEffectNames.add(new PotionEffectName(PotionEffectType.SLOW, langConfig.getString("effect.moveSlowdown", "Slowness"))); + potionEffectNames.add(new PotionEffectName(PotionEffectType.SPEED, langConfig.getString("effect.moveSpeed", "Speed"))); + potionEffectNames.add(new PotionEffectName(PotionEffectType.INCREASE_DAMAGE, langConfig.getString("effect.damageBoost", "Strength"))); + potionEffectNames.add(new PotionEffectName(PotionEffectType.WATER_BREATHING, langConfig.getString("effect.waterBreathing", "Water Breathing"))); + potionEffectNames.add(new PotionEffectName(PotionEffectType.WEAKNESS, langConfig.getString("effect.weakness", "Weakness"))); + + if (Utils.getMajorVersion() >= 9) { + // Add Potion Effect Names of 1.9 + potionEffectNames.add(new PotionEffectName(PotionEffectType.LUCK, langConfig.getString("effect.luck", "Luck"))); + } + + // Add Potion Names + potionNames.add(new PotionName(PotionName.PotionItemType.POTION, PotionType.FIRE_RESISTANCE, langConfig.getString("potion.effect.fire_resistance", "Potion of Fire Resistance"))); + potionNames.add(new PotionName(PotionName.PotionItemType.POTION, PotionType.INSTANT_DAMAGE, langConfig.getString("potion.effect.harming", "Potion of Harming"))); + potionNames.add(new PotionName(PotionName.PotionItemType.POTION, PotionType.INSTANT_HEAL, langConfig.getString("potion.effect.healing", "Potion of Healing"))); + potionNames.add(new PotionName(PotionName.PotionItemType.POTION, PotionType.INVISIBILITY, langConfig.getString("potion.effect.invisibility", "Potion of Invisibility"))); + potionNames.add(new PotionName(PotionName.PotionItemType.POTION, PotionType.JUMP, langConfig.getString("potion.effect.leaping", "Potion of Leaping"))); + potionNames.add(new PotionName(PotionName.PotionItemType.POTION, PotionType.NIGHT_VISION, langConfig.getString("potion.effect.night_vision", "Potion of Night Vision"))); + potionNames.add(new PotionName(PotionName.PotionItemType.POTION, PotionType.POISON, langConfig.getString("potion.effect.poison", "Potion of Poison"))); + potionNames.add(new PotionName(PotionName.PotionItemType.POTION, PotionType.REGEN, langConfig.getString("potion.effect.regeneration", "Potion of Regeneration"))); + potionNames.add(new PotionName(PotionName.PotionItemType.POTION, PotionType.SLOWNESS, langConfig.getString("potion.effect.slowness", "Potion of Slowness"))); + potionNames.add(new PotionName(PotionName.PotionItemType.POTION, PotionType.SPEED, langConfig.getString("potion.effect.swiftness", "Potion of Swiftness"))); + potionNames.add(new PotionName(PotionName.PotionItemType.POTION, PotionType.STRENGTH, langConfig.getString("potion.effect.strength", "Potion of Strength"))); + potionNames.add(new PotionName(PotionName.PotionItemType.POTION, PotionType.WATER_BREATHING, langConfig.getString("potion.effect.water_breathing", "Potion of Water Breathing"))); + potionNames.add(new PotionName(PotionName.PotionItemType.POTION, PotionType.WEAKNESS, langConfig.getString("potion.effect.weakness", "Potion of Weakness"))); + potionNames.add(new PotionName(PotionName.PotionItemType.POTION, PotionType.WATER, langConfig.getString("potion.effect.water", "Water Bottle"))); + + if (Utils.getMajorVersion() >= 9) { + // Add Potion Names of 1.9 + potionNames.add(new PotionName(PotionName.PotionItemType.POTION, PotionType.AWKWARD, langConfig.getString("potion.effect.awkward", "Awkward Potion"))); + potionNames.add(new PotionName(PotionName.PotionItemType.POTION, PotionType.LUCK, langConfig.getString("potion.effect.luck", "Potion of Luck"))); + potionNames.add(new PotionName(PotionName.PotionItemType.POTION, PotionType.MUNDANE, langConfig.getString("potion.effect.mundane", "Mundane Potion"))); + potionNames.add(new PotionName(PotionName.PotionItemType.POTION, PotionType.THICK, langConfig.getString("potion.effect.thick", "Thick Potion"))); + potionNames.add(new PotionName(PotionName.PotionItemType.POTION, PotionType.UNCRAFTABLE, langConfig.getString("potion.effect.empty", "Uncraftable Potion"))); + } + + if (Utils.getMajorVersion() >= 9) { + // Add Tipped Arrow Names (implemented in Minecraft since 1.9) + potionNames.add(new PotionName(PotionName.PotionItemType.TIPPED_ARROW, PotionType.AWKWARD, langConfig.getString("tipped_arrow.effect.awkward", "Tipped Arrow"))); + potionNames.add(new PotionName(PotionName.PotionItemType.TIPPED_ARROW, PotionType.FIRE_RESISTANCE, langConfig.getString("tipped_arrow.effect.fire_resistance", "Arrow of Fire Resistance"))); + potionNames.add(new PotionName(PotionName.PotionItemType.TIPPED_ARROW, PotionType.INSTANT_DAMAGE, langConfig.getString("tipped_arrow.effect.harming", "Arrow of Harming"))); + potionNames.add(new PotionName(PotionName.PotionItemType.TIPPED_ARROW, PotionType.INSTANT_HEAL, langConfig.getString("tipped_arrow.effect.healing", "Arrow of Healing"))); + potionNames.add(new PotionName(PotionName.PotionItemType.TIPPED_ARROW, PotionType.INVISIBILITY, langConfig.getString("tipped_arrow.effect.invisibility", "Arrow of Invisibility"))); + potionNames.add(new PotionName(PotionName.PotionItemType.TIPPED_ARROW, PotionType.JUMP, langConfig.getString("tipped_arrow.effect.leaping", "Arrow of Leaping"))); + potionNames.add(new PotionName(PotionName.PotionItemType.TIPPED_ARROW, PotionType.NIGHT_VISION, langConfig.getString("tipped_arrow.effect.night_vision", "Arrow of Night Vision"))); + potionNames.add(new PotionName(PotionName.PotionItemType.TIPPED_ARROW, PotionType.POISON, langConfig.getString("tipped_arrow.effect.poison", "Arrow of Poison"))); + potionNames.add(new PotionName(PotionName.PotionItemType.TIPPED_ARROW, PotionType.REGEN, langConfig.getString("tipped_arrow.effect.regeneration", "Arrow of Regeneration"))); + potionNames.add(new PotionName(PotionName.PotionItemType.TIPPED_ARROW, PotionType.SLOWNESS, langConfig.getString("tipped_arrow.effect.slowness", "Arrow of Slowness"))); + potionNames.add(new PotionName(PotionName.PotionItemType.TIPPED_ARROW, PotionType.SPEED, langConfig.getString("tipped_arrow.effect.swiftness", "Arrow of Swiftness"))); + potionNames.add(new PotionName(PotionName.PotionItemType.TIPPED_ARROW, PotionType.STRENGTH, langConfig.getString("tipped_arrow.effect.strength", "Arrow of Strength"))); + potionNames.add(new PotionName(PotionName.PotionItemType.TIPPED_ARROW, PotionType.WATER_BREATHING, langConfig.getString("tipped_arrow.effect.water_breathing", "Arrow of Water Breathing"))); + potionNames.add(new PotionName(PotionName.PotionItemType.TIPPED_ARROW, PotionType.WEAKNESS, langConfig.getString("tipped_arrow.effect.weakness", "Arrow of Weakness"))); + potionNames.add(new PotionName(PotionName.PotionItemType.TIPPED_ARROW, PotionType.WATER, langConfig.getString("tipped_arrow.effect.water", "Arrow of Splashing"))); + potionNames.add(new PotionName(PotionName.PotionItemType.TIPPED_ARROW, PotionType.LUCK, langConfig.getString("tipped_arrow.effect.luck", "Arrow of Luck"))); + potionNames.add(new PotionName(PotionName.PotionItemType.TIPPED_ARROW, PotionType.MUNDANE, langConfig.getString("tipped_arrow.effect.mundane", "Tipped Arrow"))); + potionNames.add(new PotionName(PotionName.PotionItemType.TIPPED_ARROW, PotionType.THICK, langConfig.getString("tipped_arrow.effect.thick", "Tipped Arrow"))); + potionNames.add(new PotionName(PotionName.PotionItemType.TIPPED_ARROW, PotionType.UNCRAFTABLE, langConfig.getString("tipped_arrow.effect.empty", "Uncraftable Tipped Arrow"))); + } + + // Add Splash Potion Names + potionNames.add(new PotionName(PotionName.PotionItemType.SPLASH_POTION, PotionType.FIRE_RESISTANCE, langConfig.getString("splash_potion.effect.fire_resistance", "Splash Potion of Fire Resistance"))); + potionNames.add(new PotionName(PotionName.PotionItemType.SPLASH_POTION, PotionType.INSTANT_DAMAGE, langConfig.getString("splash_potion.effect.harming", "Splash Potion of Harming"))); + potionNames.add(new PotionName(PotionName.PotionItemType.SPLASH_POTION, PotionType.INSTANT_HEAL, langConfig.getString("splash_potion.effect.healing", "Splash Potion of Healing"))); + potionNames.add(new PotionName(PotionName.PotionItemType.SPLASH_POTION, PotionType.INVISIBILITY, langConfig.getString("splash_potion.effect.invisibility", "Splash Potion of Invisibility"))); + potionNames.add(new PotionName(PotionName.PotionItemType.SPLASH_POTION, PotionType.JUMP, langConfig.getString("splash_potion.effect.leaping", "Splash Potion of Leaping"))); + potionNames.add(new PotionName(PotionName.PotionItemType.SPLASH_POTION, PotionType.NIGHT_VISION, langConfig.getString("splash_potion.effect.night_vision", "Splash Potion of Night Vision"))); + potionNames.add(new PotionName(PotionName.PotionItemType.SPLASH_POTION, PotionType.POISON, langConfig.getString("splash_potion.effect.poison", "Splash Potion of Poison"))); + potionNames.add(new PotionName(PotionName.PotionItemType.SPLASH_POTION, PotionType.REGEN, langConfig.getString("splash_potion.effect.regeneration", "Splash Potion of Regeneration"))); + potionNames.add(new PotionName(PotionName.PotionItemType.SPLASH_POTION, PotionType.SLOWNESS, langConfig.getString("splash_potion.effect.slowness", "Splash Potion of Slowness"))); + potionNames.add(new PotionName(PotionName.PotionItemType.SPLASH_POTION, PotionType.SPEED, langConfig.getString("splash_potion.effect.swiftness", "Splash Potion of Swiftness"))); + potionNames.add(new PotionName(PotionName.PotionItemType.SPLASH_POTION, PotionType.STRENGTH, langConfig.getString("splash_potion.effect.strength", "Splash Potion of Strength"))); + potionNames.add(new PotionName(PotionName.PotionItemType.SPLASH_POTION, PotionType.WATER_BREATHING, langConfig.getString("splash_potion.effect.water_breathing", "Splash Potion of Water Breathing"))); + potionNames.add(new PotionName(PotionName.PotionItemType.SPLASH_POTION, PotionType.WEAKNESS, langConfig.getString("splash_potion.effect.weakness", "Splash Potion of Weakness"))); + potionNames.add(new PotionName(PotionName.PotionItemType.SPLASH_POTION, PotionType.WATER, langConfig.getString("splash_potion.effect.water", "Splash Water Bottle"))); + + if (Utils.getMajorVersion() >= 9) { + // Add Splash Potion Names of 1.9 + potionNames.add(new PotionName(PotionName.PotionItemType.SPLASH_POTION, PotionType.AWKWARD, langConfig.getString("splash_potion.effect.awkward", "Awkward Splash Potion"))); + potionNames.add(new PotionName(PotionName.PotionItemType.SPLASH_POTION, PotionType.LUCK, langConfig.getString("splash_potion.effect.luck", "Splash Potion of Luck"))); + potionNames.add(new PotionName(PotionName.PotionItemType.SPLASH_POTION, PotionType.MUNDANE, langConfig.getString("splash_potion.effect.mundane", "Mundane Splash Potion"))); + potionNames.add(new PotionName(PotionName.PotionItemType.SPLASH_POTION, PotionType.THICK, langConfig.getString("splash_potion.effect.thick", "Thick Splash Potion"))); + potionNames.add(new PotionName(PotionName.PotionItemType.SPLASH_POTION, PotionType.UNCRAFTABLE, langConfig.getString("splash_potion.effect.empty", "Splash Uncraftable Potion"))); + } + + if (Utils.getMajorVersion() >= 9) { + // Add Lingering Potion Names (implemented in Minecraft since 1.9) + potionNames.add(new PotionName(PotionName.PotionItemType.LINGERING_POTION, PotionType.AWKWARD, langConfig.getString("lingering_potion.effect.awkward", "Awkward Lingering Potion"))); + potionNames.add(new PotionName(PotionName.PotionItemType.LINGERING_POTION, PotionType.FIRE_RESISTANCE, langConfig.getString("lingering_potion.effect.fire_resistance", "Lingering Potion of Fire Resistance"))); + potionNames.add(new PotionName(PotionName.PotionItemType.LINGERING_POTION, PotionType.INSTANT_DAMAGE, langConfig.getString("lingering_potion.effect.harming", "Lingering Potion of Harming"))); + potionNames.add(new PotionName(PotionName.PotionItemType.LINGERING_POTION, PotionType.INSTANT_HEAL, langConfig.getString("lingering_potion.effect.healing", "Lingering Potion of Healing"))); + potionNames.add(new PotionName(PotionName.PotionItemType.LINGERING_POTION, PotionType.INVISIBILITY, langConfig.getString("lingering_potion.effect.invisibility", "Lingering Potion of Invisibility"))); + potionNames.add(new PotionName(PotionName.PotionItemType.LINGERING_POTION, PotionType.JUMP, langConfig.getString("lingering_potion.effect.leaping", "Lingering Potion of Leaping"))); + potionNames.add(new PotionName(PotionName.PotionItemType.LINGERING_POTION, PotionType.NIGHT_VISION, langConfig.getString("lingering_potion.effect.night_vision", "Lingering Potion of Night Vision"))); + potionNames.add(new PotionName(PotionName.PotionItemType.LINGERING_POTION, PotionType.POISON, langConfig.getString("lingering_potion.effect.poison", "Lingering Potion of Poison"))); + potionNames.add(new PotionName(PotionName.PotionItemType.LINGERING_POTION, PotionType.REGEN, langConfig.getString("lingering_potion.effect.regeneration", "Lingering Potion of Regeneration"))); + potionNames.add(new PotionName(PotionName.PotionItemType.LINGERING_POTION, PotionType.SLOWNESS, langConfig.getString("lingering_potion.effect.slowness", "Lingering Potion of Slowness"))); + potionNames.add(new PotionName(PotionName.PotionItemType.LINGERING_POTION, PotionType.SPEED, langConfig.getString("lingering_potion.effect.swiftness", "Lingering Potion of Swiftness"))); + potionNames.add(new PotionName(PotionName.PotionItemType.LINGERING_POTION, PotionType.STRENGTH, langConfig.getString("lingering_potion.effect.strength", "Lingering Potion of Strength"))); + potionNames.add(new PotionName(PotionName.PotionItemType.LINGERING_POTION, PotionType.WATER_BREATHING, langConfig.getString("lingering_potion.effect.water_breathing", "Lingering Potion of Water Breathing"))); + potionNames.add(new PotionName(PotionName.PotionItemType.LINGERING_POTION, PotionType.WEAKNESS, langConfig.getString("lingering_potion.effect.weakness", "Lingering Potion of Weakness"))); + potionNames.add(new PotionName(PotionName.PotionItemType.LINGERING_POTION, PotionType.WATER, langConfig.getString("lingering_potion.effect.water", "Lingering Water Bottle"))); + potionNames.add(new PotionName(PotionName.PotionItemType.LINGERING_POTION, PotionType.LUCK, langConfig.getString("lingering_potion.effect.luck", "Lingering Potion of Luck"))); + potionNames.add(new PotionName(PotionName.PotionItemType.LINGERING_POTION, PotionType.MUNDANE, langConfig.getString("lingering_potion.effect.mundane", "Mundane Lingering Potion"))); + potionNames.add(new PotionName(PotionName.PotionItemType.LINGERING_POTION, PotionType.THICK, langConfig.getString("lingering_potion.effect.thick", "Thick Lingering Potion"))); + potionNames.add(new PotionName(PotionName.PotionItemType.LINGERING_POTION, PotionType.UNCRAFTABLE, langConfig.getString("lingering_potion.effect.empty", "Lingering Uncraftable Potion"))); + } + + // Add Music Disc Titles + musicDiscNames.add(new MusicDiscName(Material.valueOf("GOLD_RECORD"), langConfig.getString("item.record.13.desc", "C418 - 13"))); + musicDiscNames.add(new MusicDiscName(Material.valueOf("GREEN_RECORD"), langConfig.getString("item.record.cat.desc", "C418 - cat"))); + musicDiscNames.add(new MusicDiscName(Material.valueOf("RECORD_3"), langConfig.getString("item.record.blocks.desc", "C418 - blocks"))); + musicDiscNames.add(new MusicDiscName(Material.valueOf("RECORD_4"), langConfig.getString("item.record.chirp.desc", "C418 - chirp"))); + musicDiscNames.add(new MusicDiscName(Material.valueOf("RECORD_5"), langConfig.getString("item.record.far.desc", "C418 - far"))); + musicDiscNames.add(new MusicDiscName(Material.valueOf("RECORD_6"), langConfig.getString("item.record.mall.desc", "C418 - mall"))); + musicDiscNames.add(new MusicDiscName(Material.valueOf("RECORD_7"), langConfig.getString("item.record.mellohi.desc", "C418 - mellohi"))); + musicDiscNames.add(new MusicDiscName(Material.valueOf("RECORD_8"), langConfig.getString("item.record.stal.desc", "C418 - stal"))); + musicDiscNames.add(new MusicDiscName(Material.valueOf("RECORD_9"), langConfig.getString("item.record.strad.desc", "C418 - strad"))); + musicDiscNames.add(new MusicDiscName(Material.valueOf("RECORD_10"), langConfig.getString("item.record.ward.desc", "C418 - ward"))); + musicDiscNames.add(new MusicDiscName(Material.valueOf("RECORD_11"), langConfig.getString("item.record.11.desc", "C418 - 11"))); + musicDiscNames.add(new MusicDiscName(Material.valueOf("RECORD_12"), langConfig.getString("item.record.wait.desc", "C418 - wait"))); + + // 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"))); + generationNames.add(new BookGenerationName(CustomBookMeta.Generation.COPY_OF_COPY, langConfig.getString("book.generation.2", "Copy of a copy"))); + generationNames.add(new BookGenerationName(CustomBookMeta.Generation.TATTERED, langConfig.getString("book.generation.3", "Tattered"))); + + loadMessages(); + } + public static void load() { langConfig = Config.langConfig; @@ -47,6 +998,11 @@ public class LanguageUtils { generationNames.clear(); messages.clear(); + if (Utils.getMajorVersion() < 13) { + loadLegacy(); + return; + } + // Add Block/Item Names itemNames.add(new ItemName(Material.AIR, langConfig.getString("block.minecraft.air", "Air"))); itemNames.add(new ItemName(Material.BARRIER, langConfig.getString("block.minecraft.barrier", "Barrier"))); @@ -1068,11 +2024,15 @@ public class LanguageUtils { musicDiscNames.add(new MusicDiscName(Material.MUSIC_DISC_WAIT, langConfig.getString("item.minecraft.music_disc_wait.desc", "C418 - wait"))); // Add Book Generation Names - generationNames.add(new BookGenerationName(BookMeta.Generation.ORIGINAL, langConfig.getString("book.generation.0", "Original"))); - generationNames.add(new BookGenerationName(BookMeta.Generation.COPY_OF_ORIGINAL, langConfig.getString("book.generation.1", "Copy of original"))); - generationNames.add(new BookGenerationName(BookMeta.Generation.COPY_OF_COPY, langConfig.getString("book.generation.2", "Copy of a copy"))); - generationNames.add(new BookGenerationName(BookMeta.Generation.TATTERED, langConfig.getString("book.generation.3", "Tattered"))); + 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"))); + generationNames.add(new BookGenerationName(CustomBookMeta.Generation.COPY_OF_COPY, langConfig.getString("book.generation.2", "Copy of a copy"))); + generationNames.add(new BookGenerationName(CustomBookMeta.Generation.TATTERED, langConfig.getString("book.generation.3", "Tattered"))); + loadMessages(); + } + + private static void loadMessages() { // Add ShopChest Messages messages.add(new LocalizedMessage(Message.SHOP_CREATED, langConfig.getString("message.shop-created", "&6You were withdrawn &c%CREATION-PRICE% &6to create this shop."))); messages.add(new LocalizedMessage(Message.ADMIN_SHOP_CREATED, langConfig.getString("message.admin-shop-created", "&6You were withdrawn &c%CREATION-PRICE% &6to create this admin shop."))); @@ -1187,7 +2147,11 @@ public class LanguageUtils { return ((BookMeta) meta).getTitle(); } else if (meta instanceof SkullMeta) { if (((SkullMeta) meta).hasOwner()) { - return String.format(langConfig.getString("block.minecraft.player_head.named", "%s's Head"), ((SkullMeta) meta).getOwningPlayer().getName()); + if (Utils.getMajorVersion() >= 13) { + return String.format(langConfig.getString("block.minecraft.player_head.named", "%s's Head"), ((SkullMeta) meta).getOwningPlayer().getName()); + } else { + return String.format(langConfig.getString("item.skull.player.name", "%s's Head"), ((SkullMeta) meta).getOwner()); + } } } } @@ -1199,33 +2163,74 @@ public class LanguageUtils { PotionType potionType; String upgradeString; - potionType = meta.getBasePotionData().getType(); - upgradeString = (meta.getBasePotionData().isUpgraded() && Config.appendPotionLevelToItemName ? " II" : ""); - + if (Utils.getMajorVersion() < 9) { + Potion potion = Potion.fromItemStack(stack); + potionType = potion.getType(); + upgradeString = potion.getLevel() == 2 && Config.appendPotionLevelToItemName ? " II" : ""; + } else { + potionType = meta.getBasePotionData().getType(); + upgradeString = (meta.getBasePotionData().isUpgraded() && Config.appendPotionLevelToItemName ? " II" : ""); + } for (PotionName potionName : potionNames) { if (material == Material.POTION) { - if (potionName.getPotionItemType() == PotionName.PotionItemType.POTION && potionName.getPotionType() == potionType) { - return potionName.getLocalizedName() + upgradeString; + if (Utils.getMajorVersion() < 9) { + if (Potion.fromItemStack(stack).isSplash()) { + if (potionName.getPotionItemType() == PotionName.PotionItemType.SPLASH_POTION && potionName.getPotionType() == potionType) { + return potionName.getLocalizedName() + upgradeString; + } + } else { + if (potionName.getPotionItemType() == PotionName.PotionItemType.POTION && potionName.getPotionType() == potionType) { + return potionName.getLocalizedName() + upgradeString; + } + } + } else { + if (potionName.getPotionItemType() == PotionName.PotionItemType.POTION && potionName.getPotionType() == potionType) { + return potionName.getLocalizedName() + upgradeString; + } } - } else if (material == Material.LINGERING_POTION) { - if (potionName.getPotionItemType() == PotionName.PotionItemType.LINGERING_POTION && potionName.getPotionType() == potionType) { - return potionName.getLocalizedName() + upgradeString; - } - } else if (material == Material.TIPPED_ARROW) { - if (potionName.getPotionItemType() == PotionName.PotionItemType.TIPPED_ARROW && potionName.getPotionType() == potionType) { - return potionName.getLocalizedName() + upgradeString; - } - } else if (material == Material.SPLASH_POTION) { - if (potionName.getPotionItemType() == PotionName.PotionItemType.SPLASH_POTION && potionName.getPotionType() == potionType) { - return potionName.getLocalizedName() + upgradeString; + } else { + if (Utils.getMajorVersion() >= 9) { + if (material == Material.LINGERING_POTION) { + if (potionName.getPotionItemType() == PotionName.PotionItemType.LINGERING_POTION && potionName.getPotionType() == potionType) { + return potionName.getLocalizedName() + upgradeString; + } + } else if (material == Material.TIPPED_ARROW) { + if (potionName.getPotionItemType() == PotionName.PotionItemType.TIPPED_ARROW && potionName.getPotionType() == potionType) { + return potionName.getLocalizedName() + upgradeString; + } + } else if (material == Material.SPLASH_POTION) { + if (potionName.getPotionItemType() == PotionName.PotionItemType.SPLASH_POTION && potionName.getPotionType() == potionType) { + return potionName.getLocalizedName() + upgradeString; + } + } } } } } for (ItemName itemName : itemNames) { - if (itemName.getMaterial() == material) { + if (itemName.getMaterial() != material) { + continue; + } + + if (Utils.getMajorVersion() < 13) { + if (material.toString().equals("MONSTER_EGG")) { + EntityType spawnedType = SpawnEggMeta.getEntityTypeFromItemStack(plugin, stack); + + for (EntityName entityName : entityNames) { + if (entityName.getEntityType() == spawnedType) { + return itemName.getLocalizedName() + " " + entityName.getLocalizedName(); + } + } + + return itemName.getLocalizedName() + " " + formatDefaultString(spawnedType.toString()); + } + + if (itemName.getSubId() == stack.getDurability()) { + return itemName.getLocalizedName(); + } + } else { return itemName.getLocalizedName(); } } @@ -1240,8 +2245,10 @@ public class LanguageUtils { */ public static String getEnchantmentName(Enchantment enchantment, int level) { if (enchantment == null) return null; - String enchantmentString = formatDefaultString(enchantment.getKey().getKey()); + String levelString = langConfig.getString("enchantment.level." + level, String.valueOf(level)); + String enchantmentString = formatDefaultString(Utils.getMajorVersion() < 13 + ? enchantment.getName() : enchantment.getKey().getKey()); for (EnchantmentName enchantmentName : enchantmentNames) { if (enchantmentName.getEnchantment().equals(enchantment)) { @@ -1293,8 +2300,14 @@ public class LanguageUtils { PotionEffectType potionEffect; boolean upgraded; - potionEffect = potionMeta.getBasePotionData().getType().getEffectType(); - upgraded = potionMeta.getBasePotionData().isUpgraded(); + if (Utils.getMajorVersion() < 9) { + Potion potion = Potion.fromItemStack(itemStack); + potionEffect = potion.getType().getEffectType(); + upgraded = potion.getLevel() == 2; + } else { + potionEffect = potionMeta.getBasePotionData().getType().getEffectType(); + upgraded = potionMeta.getBasePotionData().isUpgraded(); + } String potionEffectString = formatDefaultString(potionEffect.toString()); @@ -1332,13 +2345,18 @@ public class LanguageUtils { } BookMeta meta = (BookMeta) is.getItemMeta(); - BookMeta.Generation generation = BookMeta.Generation.ORIGINAL; + CustomBookMeta.Generation generation = null; - if (meta.hasGeneration()) { - generation = meta.getGeneration(); + if ((Utils.getMajorVersion() == 9 && Utils.getRevision() == 1) || Utils.getMajorVersion() == 8) { + generation = CustomBookMeta.getGeneration(is); + } else if (meta.getGeneration() != null) { + generation = CustomBookMeta.Generation.valueOf(meta.getGeneration().toString()); + } + + if (generation == null) { + generation = CustomBookMeta.Generation.ORIGINAL; } - if (generation == null) return null; for (BookGenerationName generationName : generationNames) { if (generation == generationName.getGeneration()) { return generationName.getLocalizedName(); diff --git a/src/main/java/de/epiceric/shopchest/listeners/ChestProtectListener.java b/src/main/java/de/epiceric/shopchest/listeners/ChestProtectListener.java index a0bed4a..8c77064 100644 --- a/src/main/java/de/epiceric/shopchest/listeners/ChestProtectListener.java +++ b/src/main/java/de/epiceric/shopchest/listeners/ChestProtectListener.java @@ -40,6 +40,7 @@ import org.bukkit.event.entity.EntityDamageEvent; import org.bukkit.event.entity.EntityExplodeEvent; import org.bukkit.event.inventory.InventoryMoveItemEvent; import org.bukkit.event.inventory.InventoryType; +import org.bukkit.inventory.InventoryHolder; import pl.islandworld.api.IslandWorldApi; import us.talabrek.ultimateskyblock.api.IslandInfo; @@ -129,142 +130,164 @@ public class ChestProtectListener implements Listener { } } - private BlockFace getNeighborFacing(Type chestType, BlockFace facing) { - switch (facing) { - case NORTH: - return chestType == Type.LEFT ? BlockFace.EAST : BlockFace.WEST; - case EAST: - return chestType == Type.LEFT ? BlockFace.SOUTH : BlockFace.NORTH; - case SOUTH: - return chestType == Type.LEFT ? BlockFace.WEST : BlockFace.EAST; - case WEST: - return chestType == Type.LEFT ? BlockFace.NORTH : BlockFace.SOUTH; - default: - return null; - } - } - @EventHandler(ignoreCancelled = true) public void onBlockPlace(BlockPlaceEvent e) { final Player p = e.getPlayer(); final Block b = e.getBlockPlaced(); - if (b.getType().equals(Material.CHEST) || b.getType().equals(Material.TRAPPED_CHEST)) { - - Chest c = (Chest) b.getState(); - org.bukkit.block.data.type.Chest data = (org.bukkit.block.data.type.Chest) c.getBlockData(); - - if (data.getType() != Type.SINGLE) { - BlockFace neighborFacing = getNeighborFacing(data.getType(), data.getFacing()); - Block b2 = b.getRelative(neighborFacing); - - if (shopUtils.isShop(b.getLocation()) || shopUtils.isShop(b2.getLocation())) { - final Shop shop = shopUtils.getShop(b2.getLocation()); - - plugin.debug(String.format("%s tries to extend %s's shop (#%d)", p.getName(), shop.getVendor().getName(), shop.getID())); - - boolean externalPluginsAllowed = true; - - if (plugin.hasWorldGuard() && Config.enableWorldGuardIntegration) { - RegionContainer container = worldGuard.getRegionContainer(); - RegionQuery query = container.createQuery(); - externalPluginsAllowed = query.testState(b.getLocation(), p, WorldGuardShopFlag.CREATE_SHOP); - } - - if (externalPluginsAllowed && plugin.hasTowny() && Config.enableTownyIntegration) { - TownBlock townBlock = TownyUniverse.getTownBlock(b.getLocation()); - if (townBlock != null) { - try { - Town town = townBlock.getTown(); - for (Resident resident : town.getResidents()) { - if (resident.getName().equals(p.getName())) { - if (resident.isMayor()) { - externalPluginsAllowed = (Config.townyShopPlotsMayor.contains(townBlock.getType().name())); - } else if (resident.isKing()) { - externalPluginsAllowed = (Config.townyShopPlotsKing.contains(townBlock.getType().name())); - } else { - externalPluginsAllowed = (Config.townyShopPlotsResidents.contains(townBlock.getType().name())); - } - break; - } - } - } catch (Exception ex) { - plugin.debug(ex); - } - } - } - - if (externalPluginsAllowed && plugin.hasPlotSquared() && Config.enablePlotsquaredIntegration) { - com.intellectualcrafters.plot.object.Location loc = - new com.intellectualcrafters.plot.object.Location(b.getWorld().getName(), b.getX(), b.getY(), b.getZ()); - - externalPluginsAllowed = Utils.isFlagAllowedOnPlot(loc.getOwnedPlot(), PlotSquaredShopFlag.CREATE_SHOP, p); - } - - if (externalPluginsAllowed && plugin.hasUSkyBlock() && Config.enableUSkyblockIntegration) { - IslandInfo islandInfo = plugin.getUSkyBlock().getIslandInfo(b.getLocation()); - if (islandInfo != null) { - externalPluginsAllowed = islandInfo.getMembers().contains(p.getName()) || islandInfo.getLeader().equals(p.getName()); - } - } - - if (externalPluginsAllowed && plugin.hasASkyBlock() && Config.enableASkyblockIntegration) { - Island island = ASkyBlockAPI.getInstance().getIslandAt(b.getLocation()); - if (island != null) { - if (island.getOwner() == null) { - externalPluginsAllowed = island.getMembers().contains(p.getUniqueId()); - } else { - externalPluginsAllowed = island.getMembers().contains(p.getUniqueId()) || island.getOwner().equals(p.getUniqueId()); - } - } - } - - if (externalPluginsAllowed && plugin.hasIslandWorld() && Config.enableIslandWorldIntegration && IslandWorldApi.isInitialized()) { - if (b.getWorld().getName().equals(IslandWorldApi.getIslandWorld().getName())) { - externalPluginsAllowed = IslandWorldApi.canBuildOnLocation(p, b.getLocation(), true); - } - } - - if (externalPluginsAllowed && plugin.hasGriefPrevention() && Config.enableGriefPreventionIntegration) { - Claim claim = plugin.getGriefPrevention().dataStore.getClaimAt(b.getLocation(), false, null); - if (claim != null) { - externalPluginsAllowed = claim.allowContainers(p) == null; - } - } - - if (externalPluginsAllowed || p.hasPermission(Permissions.EXTEND_PROTECTED)) { - if (shop.getVendor().getUniqueId().equals(p.getUniqueId()) || p.hasPermission(Permissions.EXTEND_OTHER)) { - if (b.getRelative(BlockFace.UP).getType() == Material.AIR) { - final Shop newShop = new Shop(shop.getID(), plugin, shop.getVendor(), shop.getProduct(), shop.getLocation(), shop.getBuyPrice(), shop.getSellPrice(), shop.getShopType()); - - shopUtils.removeShop(shop, true, new Callback(plugin) { - @Override - public void onResult(Void result) { - newShop.create(true); - shopUtils.addShop(newShop, true); - plugin.debug(String.format("%s extended %s's shop (#%d)", p.getName(), shop.getVendor().getName(), shop.getID())); - for (Player player : shop.getLocation().getWorld().getPlayers()) { - shopUtils.updateShops(player, true); - } - } - }); - } else { - e.setCancelled(true); - p.sendMessage(LanguageUtils.getMessage(Message.CHEST_BLOCKED)); - } - } else { - e.setCancelled(true); - p.sendMessage(LanguageUtils.getMessage(Message.NO_PERMISSION_EXTEND_OTHERS)); - } - } else { - e.setCancelled(true); - p.sendMessage(LanguageUtils.getMessage(Message.NO_PERMISSION_EXTEND_PROTECTED)); - } - - } + if (!b.getType().equals(Material.CHEST) && !b.getType().equals(Material.TRAPPED_CHEST)) { + return; + } + + Chest c = (Chest) b.getState(); + Block b2; + if (Utils.getMajorVersion() < 13) { + InventoryHolder ih = c.getInventory().getHolder(); + if (!(ih instanceof DoubleChest)) { + return; } + DoubleChest dc = (DoubleChest) ih; + Chest l = (Chest) dc.getLeftSide(); + Chest r = (Chest) dc.getRightSide(); + + if (b.getLocation().equals(l.getLocation())) { + b2 = r.getBlock(); + } else { + b2 = l.getBlock(); + } + } else { + org.bukkit.block.data.type.Chest data = (org.bukkit.block.data.type.Chest) c.getBlockData(); + + if (data.getType() == Type.SINGLE) { + return; + } + + BlockFace neighborFacing; + + switch (data.getFacing()) { + case NORTH: + neighborFacing = data.getType() == Type.LEFT ? BlockFace.EAST : BlockFace.WEST; + break; + case EAST: + neighborFacing = data.getType() == Type.LEFT ? BlockFace.SOUTH : BlockFace.NORTH; + break; + case SOUTH: + neighborFacing = data.getType() == Type.LEFT ? BlockFace.WEST : BlockFace.EAST; + break; + case WEST: + neighborFacing = data.getType() == Type.LEFT ? BlockFace.NORTH : BlockFace.SOUTH; + break; + default: + neighborFacing = null; + } + + b2 = b.getRelative(neighborFacing); + } + + if (shopUtils.isShop(b.getLocation()) || shopUtils.isShop(b2.getLocation())) { + final Shop shop = shopUtils.getShop(b2.getLocation()); + + plugin.debug(String.format("%s tries to extend %s's shop (#%d)", p.getName(), shop.getVendor().getName(), shop.getID())); + + boolean externalPluginsAllowed = true; + + if (plugin.hasWorldGuard() && Config.enableWorldGuardIntegration) { + RegionContainer container = worldGuard.getRegionContainer(); + RegionQuery query = container.createQuery(); + externalPluginsAllowed = query.testState(b.getLocation(), p, WorldGuardShopFlag.CREATE_SHOP); + } + + if (externalPluginsAllowed && plugin.hasTowny() && Config.enableTownyIntegration) { + TownBlock townBlock = TownyUniverse.getTownBlock(b.getLocation()); + if (townBlock != null) { + try { + Town town = townBlock.getTown(); + for (Resident resident : town.getResidents()) { + if (resident.getName().equals(p.getName())) { + if (resident.isMayor()) { + externalPluginsAllowed = (Config.townyShopPlotsMayor.contains(townBlock.getType().name())); + } else if (resident.isKing()) { + externalPluginsAllowed = (Config.townyShopPlotsKing.contains(townBlock.getType().name())); + } else { + externalPluginsAllowed = (Config.townyShopPlotsResidents.contains(townBlock.getType().name())); + } + break; + } + } + } catch (Exception ex) { + plugin.debug(ex); + } + } + } + + if (externalPluginsAllowed && plugin.hasPlotSquared() && Config.enablePlotsquaredIntegration) { + com.intellectualcrafters.plot.object.Location loc = + new com.intellectualcrafters.plot.object.Location(b.getWorld().getName(), b.getX(), b.getY(), b.getZ()); + + externalPluginsAllowed = Utils.isFlagAllowedOnPlot(loc.getOwnedPlot(), PlotSquaredShopFlag.CREATE_SHOP, p); + } + + if (externalPluginsAllowed && plugin.hasUSkyBlock() && Config.enableUSkyblockIntegration) { + IslandInfo islandInfo = plugin.getUSkyBlock().getIslandInfo(b.getLocation()); + if (islandInfo != null) { + externalPluginsAllowed = islandInfo.getMembers().contains(p.getName()) || islandInfo.getLeader().equals(p.getName()); + } + } + + if (externalPluginsAllowed && plugin.hasASkyBlock() && Config.enableASkyblockIntegration) { + Island island = ASkyBlockAPI.getInstance().getIslandAt(b.getLocation()); + if (island != null) { + if (island.getOwner() == null) { + externalPluginsAllowed = island.getMembers().contains(p.getUniqueId()); + } else { + externalPluginsAllowed = island.getMembers().contains(p.getUniqueId()) || island.getOwner().equals(p.getUniqueId()); + } + } + } + + if (externalPluginsAllowed && plugin.hasIslandWorld() && Config.enableIslandWorldIntegration && IslandWorldApi.isInitialized()) { + if (b.getWorld().getName().equals(IslandWorldApi.getIslandWorld().getName())) { + externalPluginsAllowed = IslandWorldApi.canBuildOnLocation(p, b.getLocation(), true); + } + } + + if (externalPluginsAllowed && plugin.hasGriefPrevention() && Config.enableGriefPreventionIntegration) { + Claim claim = plugin.getGriefPrevention().dataStore.getClaimAt(b.getLocation(), false, null); + if (claim != null) { + externalPluginsAllowed = claim.allowContainers(p) == null; + } + } + + if (externalPluginsAllowed || p.hasPermission(Permissions.EXTEND_PROTECTED)) { + if (shop.getVendor().getUniqueId().equals(p.getUniqueId()) || p.hasPermission(Permissions.EXTEND_OTHER)) { + if (b.getRelative(BlockFace.UP).getType() == Material.AIR) { + final Shop newShop = new Shop(shop.getID(), plugin, shop.getVendor(), shop.getProduct(), shop.getLocation(), shop.getBuyPrice(), shop.getSellPrice(), shop.getShopType()); + + shopUtils.removeShop(shop, true, new Callback(plugin) { + @Override + public void onResult(Void result) { + newShop.create(true); + shopUtils.addShop(newShop, true); + plugin.debug(String.format("%s extended %s's shop (#%d)", p.getName(), shop.getVendor().getName(), shop.getID())); + for (Player player : shop.getLocation().getWorld().getPlayers()) { + shopUtils.updateShops(player, true); + } + } + }); + } else { + e.setCancelled(true); + p.sendMessage(LanguageUtils.getMessage(Message.CHEST_BLOCKED)); + } + } else { + e.setCancelled(true); + p.sendMessage(LanguageUtils.getMessage(Message.NO_PERMISSION_EXTEND_OTHERS)); + } + } else { + e.setCancelled(true); + p.sendMessage(LanguageUtils.getMessage(Message.NO_PERMISSION_EXTEND_PROTECTED)); + } } } diff --git a/src/main/java/de/epiceric/shopchest/nms/ArmorStandWrapper.java b/src/main/java/de/epiceric/shopchest/nms/ArmorStandWrapper.java index b411acf..385646d 100644 --- a/src/main/java/de/epiceric/shopchest/nms/ArmorStandWrapper.java +++ b/src/main/java/de/epiceric/shopchest/nms/ArmorStandWrapper.java @@ -47,20 +47,29 @@ public class ArmorStandWrapper { .newInstance(nmsWorld, location.getX(), location.getY(), location.getZ()); if (customName != null && !customName.trim().isEmpty()) { - Object chatMessage = chatMessageClass.getConstructor(String.class, Object[].class) - .newInstance(customName, new Object[0]); + if (Utils.getMajorVersion() < 13) { + entityArmorStandClass.getMethod("setCustomName", String.class).invoke(entity, customName); + } else { + Object chatMessage = chatMessageClass.getConstructor(String.class, Object[].class) + .newInstance(customName, new Object[0]); - entityArmorStandClass.getMethod("setCustomName", iChatBaseComponentClass).invoke(entity, chatMessage); + entityArmorStandClass.getMethod("setCustomName", iChatBaseComponentClass).invoke(entity, chatMessage); + } entityArmorStandClass.getMethod("setCustomNameVisible", boolean.class).invoke(entity, true); } - entityArmorStandClass.getMethod("setNoGravity", boolean.class).invoke(entity, true); + if (Utils.getMajorVersion() < 10) { + entityArmorStandClass.getMethod("setGravity", boolean.class).invoke(entity, false); + } else { + entityArmorStandClass.getMethod("setNoGravity", boolean.class).invoke(entity, true); + } + entityArmorStandClass.getMethod("setInvisible", boolean.class).invoke(entity, true); // Adds the entity to some lists so it can call interact events // It will also automatically load/unload it when far away if (interactable) { - Method addEntityMethod = worldServerClass.getDeclaredMethod("b", entityClass); + Method addEntityMethod = worldServerClass.getDeclaredMethod(Utils.getMajorVersion() == 8 ? "a" : "b", entityClass); addEntityMethod.setAccessible(true); addEntityMethod.invoke(worldServerClass.cast(nmsWorld), entity); } @@ -117,13 +126,24 @@ public class ArmorStandWrapper { try { if (customName != null && !customName.isEmpty()) { - Object chatMessage = chatMessageClass.getConstructor(String.class, Object[].class) - .newInstance(customName, new Object[0]); + if (Utils.getMajorVersion() < 13) { + entityClass.getMethod("setCustomName", String.class).invoke(entity, customName); + } else { + Object chatMessage = chatMessageClass.getConstructor(String.class, Object[].class) + .newInstance(customName, new Object[0]); - entityClass.getMethod("setCustomName", iChatBaseComponentClass).invoke(entity, chatMessage); + entityClass.getMethod("setCustomName", iChatBaseComponentClass).invoke(entity, chatMessage); + } entityClass.getMethod("setCustomNameVisible", boolean.class).invoke(entity, true); } else { - entityClass.getMethod("setCustomName", String.class).invoke(entity, ""); + if (Utils.getMajorVersion() < 13) { + entityClass.getMethod("setCustomName", String.class).invoke(entity, ""); + } else { + Object chatMessage = chatMessageClass.getConstructor(String.class, Object[].class) + .newInstance("", new Object[0]); + + entityClass.getMethod("setCustomName", iChatBaseComponentClass).invoke(entity, chatMessage); + } entityClass.getMethod("setCustomNameVisible", boolean.class).invoke(entity, false); } @@ -150,7 +170,7 @@ public class ArmorStandWrapper { try { // Removes the entity from the lists it was added to for interaction - Method addEntityMethod = worldServerClass.getDeclaredMethod("c", entityClass); + Method addEntityMethod = worldServerClass.getDeclaredMethod(Utils.getMajorVersion() == 8 ? "b" : "c", entityClass); addEntityMethod.setAccessible(true); addEntityMethod.invoke(worldServerClass.cast(nmsWorld), entity); } catch (ReflectiveOperationException e) { diff --git a/src/main/java/de/epiceric/shopchest/nms/CustomBookMeta.java b/src/main/java/de/epiceric/shopchest/nms/CustomBookMeta.java new file mode 100644 index 0000000..e21b8a1 --- /dev/null +++ b/src/main/java/de/epiceric/shopchest/nms/CustomBookMeta.java @@ -0,0 +1,90 @@ +package de.epiceric.shopchest.nms; + +import de.epiceric.shopchest.ShopChest; +import de.epiceric.shopchest.utils.Utils; +import org.bukkit.inventory.ItemStack; + +import java.lang.reflect.InvocationTargetException; + +// For versions below 1.9.4, since Bukkit's BookMeta +// didn't have generations in those versions + +public class CustomBookMeta { + + public enum Generation { + ORIGINAL, + COPY_OF_ORIGINAL, + COPY_OF_COPY, + TATTERED + } + + public static Generation getGeneration(ItemStack book) { + try { + Class craftItemStackClass = Utils.getCraftClass("inventory.CraftItemStack"); + + if (craftItemStackClass == null) { + ShopChest.getInstance().debug("Failed to get NBTGeneration: Could not find CraftItemStack class"); + return null; + } + + Object nmsStack = craftItemStackClass.getMethod("asNMSCopy", ItemStack.class).invoke(null, book); + + Object nbtTagCompound = nmsStack.getClass().getMethod("getTag").invoke(nmsStack); + if (nbtTagCompound == null) { + ShopChest.getInstance().debug("Failed to get NBTGeneration: getTag returned null"); + return null; + } + + Object generationObject = nbtTagCompound.getClass().getMethod("getInt", String.class).invoke(nbtTagCompound, "generation"); + if (generationObject == null) { + ShopChest.getInstance().debug("Failed to get NBTGeneration: getInt returned null"); + return null; + } + + if (generationObject instanceof Integer) { + int generation = (Integer) generationObject; + + if (generation > 3) generation = 3; + + return Generation.values()[generation]; + } + + } catch (NoSuchMethodException | IllegalAccessException | InvocationTargetException e) { + ShopChest.getInstance().getLogger().severe("Failed to get NBTEntityID with reflection"); + ShopChest.getInstance().debug("Failed to get NBTEntityID with reflection"); + ShopChest.getInstance().debug(e); + } + + return null; + } + + public static void setGeneration(ItemStack book, Generation generation) { + try { + Class craftItemStackClass = Utils.getCraftClass("inventory.CraftItemStack"); + + if (craftItemStackClass == null) { + ShopChest.getInstance().debug("Failed to get NBTGeneration: Could not find CraftItemStack class"); + return; + } + + Object nmsStack = craftItemStackClass.getMethod("asNMSCopy", ItemStack.class).invoke(null, book); + + Object nbtTagCompound = nmsStack.getClass().getMethod("getTag").invoke(nmsStack); + if (nbtTagCompound == null) { + ShopChest.getInstance().debug("Failed to get NBTGeneration: getTag returned null"); + return; + } + + nbtTagCompound.getClass().getMethod("setInt", String.class, int.class) + .invoke(nbtTagCompound, "generation", generation.ordinal()); + + nmsStack.getClass().getMethod("setTag", nbtTagCompound.getClass()).invoke(nmsStack, nbtTagCompound); + + } catch (NoSuchMethodException | IllegalAccessException | InvocationTargetException e) { + ShopChest.getInstance().getLogger().severe("Failed to get NBTEntityID with reflection"); + ShopChest.getInstance().debug("Failed to get NBTEntityID with reflection"); + ShopChest.getInstance().debug(e); + } + } + +} \ No newline at end of file diff --git a/src/main/java/de/epiceric/shopchest/nms/JsonBuilder.java b/src/main/java/de/epiceric/shopchest/nms/JsonBuilder.java index 705e569..88253d8 100644 --- a/src/main/java/de/epiceric/shopchest/nms/JsonBuilder.java +++ b/src/main/java/de/epiceric/shopchest/nms/JsonBuilder.java @@ -17,11 +17,17 @@ public class JsonBuilder { private Class iChatBaseComponentClass = Utils.getNMSClass("IChatBaseComponent"); private Class packetPlayOutChatClass = Utils.getNMSClass("PacketPlayOutChat"); - private Class chatSerializerClass = Utils.getNMSClass("IChatBaseComponent$ChatSerializer");; + private Class chatSerializerClass; public JsonBuilder(ShopChest plugin, String text, String hoverText, String downloadLink) { this.plugin = plugin; + if (Utils.getServerVersion().equals("v1_8_R1")) { + chatSerializerClass = Utils.getNMSClass("ChatSerializer"); + } else { + chatSerializerClass = Utils.getNMSClass("IChatBaseComponent$ChatSerializer"); + } + Class[] requiredClasses = new Class[] { iChatBaseComponentClass, packetPlayOutChatClass, chatSerializerClass }; diff --git a/src/main/java/de/epiceric/shopchest/nms/SpawnEggMeta.java b/src/main/java/de/epiceric/shopchest/nms/SpawnEggMeta.java new file mode 100644 index 0000000..6a00b14 --- /dev/null +++ b/src/main/java/de/epiceric/shopchest/nms/SpawnEggMeta.java @@ -0,0 +1,89 @@ +package de.epiceric.shopchest.nms; + +import de.epiceric.shopchest.ShopChest; +import de.epiceric.shopchest.utils.Utils; +import org.bukkit.entity.EntityType; +import org.bukkit.inventory.ItemStack; + +import java.lang.reflect.InvocationTargetException; + +public class SpawnEggMeta { + + private static String getNBTEntityID(ShopChest plugin, ItemStack stack) { + try { + Class craftItemStackClass = Utils.getCraftClass("inventory.CraftItemStack"); + + if (craftItemStackClass == null) { + plugin.debug("Failed to get NBTEntityID: Could not find CraftItemStack class"); + return null; + } + + Object nmsStack = craftItemStackClass.getMethod("asNMSCopy", ItemStack.class).invoke(null, stack); + + Object nbtTagCompound = nmsStack.getClass().getMethod("getTag").invoke(nmsStack); + if (nbtTagCompound == null) return null; + + Object entityTagCompound = nbtTagCompound.getClass().getMethod("getCompound", String.class).invoke(nbtTagCompound, "EntityTag"); + if (entityTagCompound == null) return null; + + Object id = entityTagCompound.getClass().getMethod("getString", String.class).invoke(entityTagCompound, "id"); + if (id instanceof String) return (String) id; + + } catch (NoSuchMethodException | IllegalAccessException | InvocationTargetException e) { + plugin.getLogger().severe("Failed to get NBTEntityID with reflection"); + plugin.debug("Failed to get NBTEntityID with reflection"); + plugin.debug(e); + } + + return null; + } + + /** + * @param stack {@link ItemStack} (Spawn Egg) of which the Entity should be gotten + * @return The {@link EntityType} the Spawn Egg will spawn or null if nbtEntityID is null + */ + public static EntityType getEntityTypeFromItemStack(ShopChest plugin, ItemStack stack) { + if (Utils.getMajorVersion() == 8) { + EntityType type = null; + + for (EntityType entityType : EntityType.values()) { + if (entityType.getTypeId() == stack.getDurability()) { + type = entityType; + break; + } + } + + return type; + } + + String nbtEntityID = getNBTEntityID(plugin, stack); + + if (nbtEntityID == null) return null; + + if (Utils.getMajorVersion() >= 11) { + if (nbtEntityID.contains(":")) nbtEntityID = nbtEntityID.split(":")[1]; + return EntityType.fromName(nbtEntityID); + } + + switch (nbtEntityID) { + case "PigZombie": + return EntityType.PIG_ZOMBIE; + case "CaveSpider": + return EntityType.CAVE_SPIDER; + case "LavaSlime": + return EntityType.MAGMA_CUBE; + case "MushroomCow": + return EntityType.MUSHROOM_COW; + case "EntityHorse": + return EntityType.HORSE; + case "PolarBear": + return EntityType.POLAR_BEAR; + case "Ozelot": + return EntityType.OCELOT; + default: + return EntityType.valueOf(nbtEntityID.toUpperCase()); + + } + } + +} \ No newline at end of file diff --git a/src/main/java/de/epiceric/shopchest/shop/Shop.java b/src/main/java/de/epiceric/shopchest/shop/Shop.java index a27d106..b2186c8 100644 --- a/src/main/java/de/epiceric/shopchest/shop/Shop.java +++ b/src/main/java/de/epiceric/shopchest/shop/Shop.java @@ -182,7 +182,11 @@ public class Shop { doubleChest = false; } - face = ((Directional) chests[0].getBlockData()).getFacing(); + if (Utils.getMajorVersion() < 13) { + face = ((org.bukkit.material.Directional) chests[0].getData()).getFacing(); + } else { + face = ((Directional) chests[0].getBlockData()).getFacing(); + } String[] holoText = getHologramText(); Location holoLocation = getHologramLocation(doubleChest, chests, face); diff --git a/src/main/java/de/epiceric/shopchest/utils/ItemUtils.java b/src/main/java/de/epiceric/shopchest/utils/ItemUtils.java index eab3e60..4e747f9 100644 --- a/src/main/java/de/epiceric/shopchest/utils/ItemUtils.java +++ b/src/main/java/de/epiceric/shopchest/utils/ItemUtils.java @@ -5,6 +5,7 @@ import org.bukkit.enchantments.Enchantment; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.EnchantmentStorageMeta; import org.bukkit.inventory.meta.PotionMeta; +import org.bukkit.potion.Potion; import org.bukkit.potion.PotionType; import java.util.Map; @@ -22,7 +23,11 @@ public class ItemUtils { public static PotionType getPotionEffect(ItemStack itemStack) { if (itemStack.getItemMeta() instanceof PotionMeta) { - return ((PotionMeta) itemStack.getItemMeta()).getBasePotionData().getType(); + if (Utils.getMajorVersion() < 9) { + return Potion.fromItemStack(itemStack).getType(); + } else { + return ((PotionMeta) itemStack.getItemMeta()).getBasePotionData().getType(); + } } return null; @@ -30,8 +35,11 @@ public class ItemUtils { public static boolean isExtendedPotion(ItemStack itemStack) { if (itemStack.getItemMeta() instanceof PotionMeta) { - PotionMeta potionMeta = (PotionMeta) itemStack.getItemMeta(); - return potionMeta.getBasePotionData().isExtended(); + if (Utils.getMajorVersion() < 9) { + return Potion.fromItemStack(itemStack).hasExtendedDuration(); + } else { + return ((PotionMeta) itemStack.getItemMeta()).getBasePotionData().isExtended(); + } } return false; diff --git a/src/main/java/de/epiceric/shopchest/utils/Utils.java b/src/main/java/de/epiceric/shopchest/utils/Utils.java index 7ae3d90..991769c 100644 --- a/src/main/java/de/epiceric/shopchest/utils/Utils.java +++ b/src/main/java/de/epiceric/shopchest/utils/Utils.java @@ -4,6 +4,8 @@ import com.intellectualcrafters.plot.flag.Flag; import com.intellectualcrafters.plot.object.Plot; import de.epiceric.shopchest.ShopChest; import de.epiceric.shopchest.external.PlotSquaredShopFlag; +import de.epiceric.shopchest.nms.CustomBookMeta; + import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.configuration.InvalidConfigurationException; @@ -42,8 +44,16 @@ public class Utils { BookMeta bookMeta1 = (BookMeta) itemStack1.getItemMeta(); BookMeta bookMeta2 = (BookMeta) itemStack2.getItemMeta(); - if (bookMeta1.getGeneration() == null) bookMeta1.setGeneration(BookMeta.Generation.ORIGINAL); - if (bookMeta2.getGeneration() == null) bookMeta2.setGeneration(BookMeta.Generation.ORIGINAL); + if ((getMajorVersion() == 9 && getRevision() == 1) || getMajorVersion() == 8) { + CustomBookMeta.Generation generation1 = CustomBookMeta.getGeneration(itemStack1); + CustomBookMeta.Generation generation2 = CustomBookMeta.getGeneration(itemStack2); + + if (generation1 == null) CustomBookMeta.setGeneration(itemStack1, CustomBookMeta.Generation.ORIGINAL); + if (generation2 == null) CustomBookMeta.setGeneration(itemStack2, CustomBookMeta.Generation.ORIGINAL); + } else { + if (bookMeta1.getGeneration() == null) bookMeta1.setGeneration(BookMeta.Generation.ORIGINAL); + if (bookMeta2.getGeneration() == null) bookMeta2.setGeneration(BookMeta.Generation.ORIGINAL); + } itemStack1.setItemMeta(bookMeta1); itemStack2.setItemMeta(bookMeta2); @@ -66,7 +76,12 @@ public class Utils { if (inventory instanceof PlayerInventory) { for (int i = 0; i < 37; i++) { - if (i == 36) i = 40; + if (i == 36) { + if (getMajorVersion() < 9) { + break; + } + i = 40; + } inventoryItems.add(inventory.getItem(i)); } } else { @@ -96,7 +111,12 @@ public class Utils { if (inventory instanceof PlayerInventory) { for (int i = 0; i < 37; i++) { - if (i == 36) i = 40; + if (i == 36) { + if (getMajorVersion() < 9) { + break; + } + i = 40; + } ItemStack item = inventory.getItem(i); if (item == null || item.getType() == Material.AIR) { @@ -137,6 +157,13 @@ public class Utils { * @return {@link ItemStack} in his main hand, or {@code null} if he doesn't hold one */ public static ItemStack getItemInMainHand(Player p) { + if (getMajorVersion() < 9) { + if (p.getItemInHand().getType() == Material.AIR) + return null; + else + return p.getItemInHand(); + } + if (p.getInventory().getItemInMainHand().getType() == Material.AIR) return null; else @@ -148,7 +175,9 @@ public class Utils { * @return {@link ItemStack} in his off hand, or {@code null} if he doesn't hold one or the server version is below 1.9 */ public static ItemStack getItemInOffHand(Player p) { - if (p.getInventory().getItemInOffHand().getType() == Material.AIR) + if (getMajorVersion() < 9) + return null; + else if (p.getInventory().getItemInOffHand().getType() == Material.AIR) return null; else return p.getInventory().getItemInOffHand(); @@ -160,7 +189,9 @@ public class Utils { * if he doesn't have one in both hands */ public static ItemStack getPreferredItemInHand(Player p) { - if (getItemInMainHand(p) != null) + if (getMajorVersion() < 9) + return getItemInMainHand(p); + else if (getItemInMainHand(p) != null) return getItemInMainHand(p); else return getItemInOffHand(p); @@ -171,14 +202,18 @@ public class Utils { * @return Whether a player has an axe in one of his hands */ public static boolean hasAxeInHand(Player p) { - List axes = Arrays.asList(Material.WOODEN_AXE, Material.STONE_AXE, Material.IRON_AXE, Material.GOLDEN_AXE, Material.DIAMOND_AXE); + List axes; + if (Utils.getMajorVersion() < 13) + axes = Arrays.asList("WOOD_AXE", "STONE_AXE", "IRON_AXE", "GOLD_AXE", "DIAMOND_AXE"); + else + axes = Arrays.asList("WOODEN_AXE", "STONE_AXE", "IRON_AXE", "GOLDEN_AXE", "DIAMOND_AXE"); ItemStack item = getItemInMainHand(p); - if (item == null || !axes.contains(item.getType())) { + if (item == null || !axes.contains(item.getType().toString())) { item = getItemInOffHand(p); } - return item != null && axes.contains(item.getType()); + return item != null && axes.contains(item.getType().toString()); } /** diff --git a/src/main/resources/lang/de_DE-legacy.lang b/src/main/resources/lang/de_DE-legacy.lang new file mode 100644 index 0000000..f6ec092 --- /dev/null +++ b/src/main/resources/lang/de_DE-legacy.lang @@ -0,0 +1,1045 @@ +message.shop-created=&6Dir wurden &c%CREATION-PRICE% abgenommen, um diesen Shop zu erstellen. +message.admin-shop-created=&6Dir wurden &c%CREATION-PRICE% abgenommen, um diesen Admin Shop zu erstellen. +message.chest-already-shop=&cTruhe ist bereits ein Shop. +message.chest-blocked=&cÜber der Truhe ist kein Platz. +message.double-chest-blocked=&cÜber der Truhe ist kein Platz. +message.shop-removed=&6Shop entfernt. +message.all-shops-removed=&6Alle (&c%AMOUNT%&6) Shop/s von &c%VENDOR%&6 wurden entfernt. +message.chest-no-shop=&cTruhe ist kein Shop. +message.shop-create-not-enough-money=&cNicht genug Geld. Du brauchst &6%CREATION-PRICE% &cum einen Shop zu erstellen. +message.shopInfo.vendor=&6Verkäufer: &e%VENDOR% +message.shopInfo.product=&6Produkt: &e%AMOUNT% x %ITEMNAME% +message.shopInfo.stock=&6Auf Lager: &e%STOCK% +message.shopInfo.enchantments=&6Verzauberungen: &e%ENCHANTMENT% +message.shopInfo.potion-effect=&6Trank-Effekte: &e%POTION-EFFECT% %EXTENDED% +message.shopInfo.music-disc-title=&6Schallplattentitel: &e%MUSIC-TITLE% +message.shopInfo.book-generation=&6Generation: &e%GENERATION% +message.shopInfo.none=&7Keine +message.shopInfo.price=&6Preis: Kauf: &e%BUY-PRICE%&6 Verkauf: &e%SELL-PRICE% +message.shopInfo.disabled=&7Deaktiviert +message.shopInfo.is-normal=&6Typ: &eNormal +message.shopInfo.is-admin=&6Typ: &eAdmin +message.shopInfo.extended=(Verlängert) +message.buy-and-sell-disabled=&cDu kannst keinen Shop ohne Kauf- und Verkaufspreis erstellen. +message.buy-success=&aDu hast &6%AMOUNT% x %ITEMNAME%&a für &6%BUY-PRICE%&a von &6%VENDOR% &agekauft. +message.buy-success-admin=&aDu hast &6%AMOUNT% x %ITEMNAME%&a für &6%BUY-PRICE% &agekauft. +message.sell-success=&aDu hast &6%AMOUNT% x %ITEMNAME%&a für &6%SELL-PRICE%&a an &6%VENDOR% &averkauft. +message.sell-success-admin=&aDu hast &6%AMOUNT% x %ITEMNAME%&a für &6%SELL-PRICE% &averkauft. +message.someone-bought=&6%PLAYER% &ahat &6%AMOUNT% x %ITEMNAME%&a für &6%BUY-PRICE%&a von deinem Shop gekauft. +message.someone-sold=&6%PLAYER% &ahat &6%AMOUNT% x %ITEMNAME%&a für &6%SELL-PRICE%&a an deinen Shop verkauft. +message.revenue-while-offline=&6Während du offline warst, haben deine Shops einen Umsatz von &c%REVENUE%&6 gemacht. +message.not-enough-inventory-space=&cNicht genug Platz im Inventar. +message.chest-not-enough-inventory-space=&cShop ist voll. +message.not-enough-money=&cNicht genug Geld. +message.not-enough-items=&cNicht genug Items. +message.vendor-not-enough-money=&cVerkäufer hat nicht genug Geld. +message.out-of-stock=&cShop ausverkauft. +message.vendor-out-of-stock=&cDein Shop, der &6%AMOUNT% x %ITEMNAME% &cverkauft, ist ausverkauft. +message.error-occurred=&cEin Fehler ist aufgetreten: %ERROR% +message.amount-and-price-not-number=&cAnzahl und Preise müssen Zahlen sein. +message.amount-is-zero=&cAnzahl muss größer als 0 sein. +message.prices-contain-decimals=&cPreise dürfen keine Dezimalen enthalten. +message.no-item-in-hand=&cKein Item in der Hand. +message.click-chest-to-create-shop=&aKlicke innerhalb von 15 Sekunden auf eine Truhe, um einen Shop zu erstellen. +message.click-chest-to-remove-shop=&aKlicke innerhalb von 15 Sekunden auf einen Shop, um ihn zu entfernen. +message.click-chest-for-info=&aKlicke innerhalb von 15 Sekunden auf einen Shop, um Informationen über ihn zu bekommen. +message.click-chest-to-open-shop=&Klicke innerhalb von 15 Sekunden auf einen Shop, um ihn zu öffnen. +message.click-to-confirm=&aKlicke noch einmal zum Bestätigen. +message.opened-shop=&aDu hast &6%VENDOR%&as Shop geöffnet. +message.cannot-break-shop=&cDu kannst einen Shop nicht zerstören. +message.cannot-sell-broken-item=&cDu kannst kein kaputtes Artikel verkaufen. +message.buy-price-too-low=&cDer Kaufpreis muss höher sein als %MIN-PRICE%. +message.sell-price-too-low=&cDer Verkaufspreis muss höher sein als %MIN-PRICE%. +message.buy-price-too-high=&cDer Kaufpreis muss geringer sein als %MAX-PRICE%. +message.sell-price-too-high=&cDer Verkaufspreis muss geringer sein als %MAX-PRICE%. +message.buying-disabled=&cKaufen ist an diesem Shop nicht möglich. +message.selling-disabled=&cVerkaufen ist an diesem Shop nicht möglich. +message.reloaded-shops=&a%AMOUNT% Shop/s wurden erfolgreich neu geladen. +message.shop-limit-reached=&cDu hast dein Limit von &6%LIMIT% &cShop/s erreicht. +message.occupied-shop-slots=&6Du hast &c%AMOUNT%/%LIMIT% &6Shop Slot/s benutzt. +message.cannot-sell-item=&cDu kannst für diesen Artikel keinen Shop erstellen. +message.use-in-creative=&cDu kannst im Kreativ-Modus keine Shops benutzen. +message.update.update-available=&6&lVersion &c%VERSION% &6von &cShopChest &6ist verfügbar. +message.update.click-to-download=Klicke hier zum Herunterladen +message.update.no-update=&6&lKeine neue Aktualisierung verfügbar. +message.update.checking=&6&lSuche nach Aktualisierungen... +message.update.error=&c&lFehler beim Suchen nach Aktualisierungen. +message.noPermission.create=&cDu hast keine Berechtigung einen Shop zu erstellen. +message.noPermission.create-admin=&cDu hast keine Berechtigung einen Admin-Shop zu erstellen. +message.noPermission.create-protected=&cDu hast keine Berechtigung hier einen Shop zu erstellen. +message.noPermission.open-others=&cDu hast keine Berechtigung diesen Shop zu öffnen. +message.noPermission.buy=&cDu hast keine Berechtigung etwas zu kaufen. +message.noPermission.sell=&cDu hast keine Berechtigung etwas zu verkaufen. +message.noPermission.buy-here=&cDu hast keine Berechtigung hier etwas zu kaufen. +message.noPermission.sell-here=&cDu hast keine Berechtigung hier etwas zu verkaufen. +message.noPermission.remove-others=&cDu hast keine Berechtigung diesen Shop zu entfernen. +message.noPermission.remove-admin=&cDu hast keine Berechtigung einen Admin Shop zu entfernen. +message.noPermission.reload=&cDu hast keine Berechtigung die Shops neu zu laden. +message.noPermission.update=&cDu hast keine Berechtigung nach Aktualisierungen zu suchen. +message.noPermission.config=&cDu hast keine Berechtigung Konfigurationswerte zu verändern. +message.noPermission.extend-others=&cDu hast keine Berechtigung diesen Shop zu erweitern. +message.noPermission.extend-protected=&cDu hast keine Berechtigung diesen Shop nach hier zu erweitern. +message.commandDescription.header=&6==== &c/%COMMAND% &6Hilfe +message.commandDescription.footer=&6==== Ende +message.commandDescription.create=&a/%COMMAND% create - Erstelle einen Shop. +message.commandDescription.create-admin=&a/%COMMAND% create [normal|admin] - Erstelle einen Shop. +message.commandDescription.remove=&a/%COMMAND% remove - Entferne einen Shop. +message.commandDescription.info=&a/%COMMAND% info - Rufe Informationen über den Shop ab. +message.commandDescription.removeall=&a/%COMMAND% removeall - Entferne alle Shops eines Spielers. +message.commandDescription.reload=&a/%COMMAND% reload - Lade die Shops neu. +message.commandDescription.update=&a/%COMMAND% update - Suche nach Aktualisierungen. +message.commandDescription.limits=&a/%COMMAND% limits - Betrachte die Shop Limits. +message.commandDescription.open=&a/%COMMAND% open - Öffne einen Shop. +message.commandDescription.config=&a/%COMMAND% config - Verändere Konfigurationswerte. +message.config.set=&6Eigenschaft &a%PROPERTY% &6wurde auf &a%VALUE% &6gesetzt. +message.config.added=&6Wert &a%VALUE% &6wurde zu &a%PROPERTY% &6hinzugefügt. +message.config.removed=&6Wert &a%VALUE% &6wurde aus &a%PROPERTY% &6entfernt. + +book.generation.0=Original +book.generation.1=Kopie des Originals +book.generation.2=Kopie einer Kopie +book.generation.3=Zerrissen + +effect.absorption=Absorption +effect.blindness=Blindheit +effect.confusion=Übelkeit +effect.damageBoost=Stärke +effect.digSlowDown=Abbaulähmung +effect.digSpeed=Eile +effect.fireResistance=Feuerschutz +effect.glowing=Leuchten +effect.harm=Direktschaden +effect.heal=Direktheilung +effect.healthBoost=Extraenergie +effect.hunger=Hunger +effect.invisibility=Unsichtbarkeit +effect.jump=Sprungkraft +effect.levitation=Schwebekraft +effect.luck=Glück +effect.moveSlowdown=Langsamkeit +effect.moveSpeed=Schnelligkeit +effect.nightVision=Nachtsicht +effect.none=Wirkungslos +effect.poison=Vergiftung +effect.regeneration=Regeneration +effect.resistance=Resistenz +effect.saturation=Sättigung +effect.unluck=Pech +effect.waterBreathing=Unterwasseratem +effect.weakness=Schwäche +effect.wither=Ausdörrung + +enchantment.arrowDamage=Stärke +enchantment.arrowFire=Flamme +enchantment.arrowInfinite=Unendlich +enchantment.arrowKnockback=Schlag +enchantment.binding_curse=Fluch der Bindung +enchantment.damage.all=Schärfe +enchantment.damage.arthropods=Nemesis der Gliederfüßer +enchantment.damage.undead=Bann +enchantment.digging=Effizienz +enchantment.durability=Haltbarkeit +enchantment.fire=Verbrennung +enchantment.fishingSpeed=Köder +enchantment.frostWalker=Eisläufer +enchantment.knockback=Rückstoß +enchantment.level.1=I +enchantment.level.10=X +enchantment.level.2=II +enchantment.level.3=III +enchantment.level.4=IV +enchantment.level.5=V +enchantment.level.6=VI +enchantment.level.7=VII +enchantment.level.8=VIII +enchantment.level.9=IX +enchantment.lootBonus=Plünderung +enchantment.lootBonusDigger=Glück +enchantment.lootBonusFishing=Glück des Meeres +enchantment.mending=Reparatur +enchantment.oxygen=Atmung +enchantment.protect.all=Schutz +enchantment.protect.explosion=Explosionsschutz +enchantment.protect.fall=Federfall +enchantment.protect.fire=Feuerschutz +enchantment.protect.projectile=Schusssicher +enchantment.thorns=Dornen +enchantment.untouching=Behutsamkeit +enchantment.vanishing_curse=Fluch des Verschwindens +enchantment.waterWalker=Wasserläufer +enchantment.waterWorker=Wasseraffinität + +entity.Bat.name=Fledermaus +entity.Blaze.name=Lohe +entity.CaveSpider.name=Höhlenspinne +entity.Chicken.name=Huhn +entity.Cow.name=Kuh +entity.Creeper.name=Creeper +entity.Donkey.name=Esel +entity.ElderGuardian.name=Großer Wächter +entity.Enderman.name=Enderman +entity.Endermite.name=Endermite +entity.EvocationIllager.name=Magier +entity.Ghast.name=Ghast +entity.Giant.name=Riese +entity.Guardian.name=Wächter +entity.Horse.name=Pferd +entity.Husk.name=Wüstenzombie +entity.IllusionIllager.name=Illusionist +entity.KillerBunny.name=Das Killer-Kaninchen +entity.LavaSlime.name=Magmawürfel +entity.Llama.name=Lama +entity.Mule.name=Maultier +entity.MushroomCow.name=Mooshroom +entity.Ozelot.name=Ozelot +entity.Parrot.name=Papagei +entity.Pig.name=Schwein +entity.PigZombie.name=Schweinezombie +entity.PolarBear.name=Eisbär +entity.Rabbit.name=Kaninchen +entity.Sheep.name=Schaf +entity.Shulker.name=Shulker +entity.Silverfish.name=Silberfischchen +entity.Skeleton.name=Skelett +entity.SkeletonHorse.name=Skelettpferd +entity.Slime.name=Schleim +entity.SnowMan.name=Schneegolem +entity.Snowball.name=Schneeball +entity.Spider.name=Spinne +entity.Squid.name=Tintenfisch +entity.Stray.name=Eiswanderer +entity.Vex.name=Plagegeist +entity.Villager.name=Dorfbewohner +entity.VindicationIllager.name=Diener +entity.Witch.name=Hexe +entity.WitherSkeleton.name=Witherskelett +entity.Wolf.name=Wolf +entity.Zombie.name=Zombie +entity.ZombieHorse.name=Zombiepferd +entity.ZombieVillager.name=Dorfbewohnerzombie + +item.apple.name=Apfel +item.appleGold.name=Goldener Apfel +item.armorStand.name=Rüstungsständer +item.arrow.name=Pfeil +item.banner.black.name=Schwarzes Banner +item.banner.blue.name=Blaues Banner +item.banner.brown.name=Braunes Banner +item.banner.cyan.name=Türkises Banner +item.banner.gray.name=Graues Banner +item.banner.green.name=Grünes Banner +item.banner.lightBlue.name=Hellblaues Banner +item.banner.lime.name=Hellgrünes Banner +item.banner.magenta.name=Magenta Banner +item.banner.orange.name=Oranges Banner +item.banner.pink.name=Rosa Banner +item.banner.purple.name=Violettes Banner +item.banner.red.name=Rotes Banner +item.banner.silver.name=Hellgraues Banner +item.banner.white.name=Weißes Banner +item.banner.yellow.name=Gelbes Banner +item.bed.name=Bett +item.bed.black.name=Schwarzes Bett +item.bed.blue.name=Blaues Bett +item.bed.brown.name=Braunes Bett +item.bed.cyan.name=Türkises Bett +item.bed.gray.name=Graues Bett +item.bed.green.name=Grünes Bett +item.bed.lightBlue.name=Hellblaues Bett +item.bed.lime.name=Hellgrünes Bett +item.bed.magenta.name=Magenta Bett +item.bed.orange.name=Oranges Bett +item.bed.pink.name=Rosa Bett +item.bed.purple.name=Violettes Bett +item.bed.red.name=Rotes Bett +item.bed.silver.name=Hellgraues Bett +item.bed.white.name=Weißes Bett +item.bed.yellow.name=Gelbes Bett +item.beefCooked.name=Steak +item.beefRaw.name=Rohes Rindfleisch +item.beetroot.name=Rote Bete +item.beetroot_seeds.name=Rote-Bete-Samen +item.beetroot_soup.name=Borschtsch +item.blazePowder.name=Lohenstaub +item.blazeRod.name=Lohenrute +item.boat.acacia.name=Akazienholzboot +item.boat.birch.name=Birkenholzboot +item.boat.dark_oak.name=Schwarzeichenholzboot +item.boat.jungle.name=Tropenholzboot +item.boat.oak.name=Eichenholzboot +item.boat.spruce.name=Fichtenholzboot +item.bone.name=Knochen +item.book.name=Buch +item.bootsChain.name=Kettenstiefel +item.bootsCloth.name=Lederstiefel +item.bootsDiamond.name=Diamantstiefel +item.bootsGold.name=Goldstiefel +item.bootsIron.name=Eisenstiefel +item.bow.name=Bogen +item.bowl.name=Schüssel +item.bread.name=Brot +item.brewingStand.name=Braustand +item.brick.name=Ziegel +item.bucket.name=Eimer +item.bucketLava.name=Lavaeimer +item.bucketWater.name=Wassereimer +item.cake.name=Kuchen +item.canBreak=Kann abbauen: +item.canPlace=Kann platziert werden auf: +item.carrotGolden.name=Goldene Karotte +item.carrotOnAStick.name=Karottenrute +item.carrots.name=Karotte +item.cauldron.name=Kessel +item.charcoal.name=Holzkohle +item.chestplateChain.name=Kettenhemd +item.chestplateCloth.name=Lederjacke +item.chestplateDiamond.name=Diamantharnisch +item.chestplateGold.name=Goldharnisch +item.chestplateIron.name=Eisenharnisch +item.chickenCooked.name=Gebratenes Hühnchen +item.chickenRaw.name=Rohes Hühnchen +item.chorusFruit.name=Chorusfrucht +item.chorusFruitPopped.name=Geplatzte Chorusfrucht +item.clay.name=Tonklumpen +item.clock.name=Uhr +item.coal.name=Kohle +item.comparator.name=Redstone-Komparator +item.compass.name=Kompass +item.cookie.name=Keks +item.diamond.name=Diamant +item.diode.name=Redstone-Verstärker +item.doorAcacia.name=Akazienholztür +item.doorBirch.name=Birkenholztür +item.doorDarkOak.name=Schwarzeichenholztür +item.doorIron.name=Eisentür +item.doorJungle.name=Tropenholztür +item.doorOak.name=Eichenholztür +item.doorSpruce.name=Fichtenholztür +item.dragon_breath.name=Drachenatem +item.dyePowder.black.name=Tintenbeutel +item.dyePowder.blue.name=Lapislazuli +item.dyePowder.brown.name=Kakaobohnen +item.dyePowder.cyan.name=Türkiser Farbstoff +item.dyePowder.gray.name=Grauer Farbstoff +item.dyePowder.green.name=Kaktusgrün +item.dyePowder.lightBlue.name=Hellblauer Farbstoff +item.dyePowder.lime.name=Hellgrüner Farbstoff +item.dyePowder.magenta.name=Magenta Farbstoff +item.dyePowder.orange.name=Oranger Farbstoff +item.dyePowder.pink.name=Rosa Farbstoff +item.dyePowder.purple.name=Violetter Farbstoff +item.dyePowder.red.name=Roter Farbstoff +item.dyePowder.silver.name=Hellgrauer Farbstoff +item.dyePowder.white.name=Knochenmehl +item.dyePowder.yellow.name=Gelber Farbstoff +item.dyed=Gefärbt +item.egg.name=Ei +item.elytra.name=Elytren +item.emerald.name=Smaragd +item.emptyMap.name=Leere Karte +item.enchantedBook.name=Verzaubertes Buch +item.end_crystal.name=Enderkristall +item.enderPearl.name=Enderperle +item.expBottle.name=Erfahrungsfläschchen +item.eyeOfEnder.name=Enderauge +item.feather.name=Feder +item.fermentedSpiderEye.name=Fermentiertes Spinnenauge +item.fireball.name=Feuerkugel +item.fireworks.flight=Flugdauer: +item.fireworks.name=Feuerwerksrakete +item.fireworksCharge.black=Schwarz +item.fireworksCharge.blue=Blau +item.fireworksCharge.brown=Braun +item.fireworksCharge.customColor=Benutzerdefiniert +item.fireworksCharge.cyan=Türkis +item.fireworksCharge.fadeTo=Übergang zu +item.fireworksCharge.flicker=Funkeln +item.fireworksCharge.gray=Grau +item.fireworksCharge.green=Grün +item.fireworksCharge.lightBlue=Hellblau +item.fireworksCharge.lime=Hellgrün +item.fireworksCharge.magenta=Magenta +item.fireworksCharge.name=Feuerwerksstern +item.fireworksCharge.orange=Orange +item.fireworksCharge.pink=Rosa +item.fireworksCharge.purple=Violett +item.fireworksCharge.red=Rot +item.fireworksCharge.silver=Hellgrau +item.fireworksCharge.trail=Schweif +item.fireworksCharge.type=Unbekannte Form +item.fireworksCharge.type.0=Kleine Kugel +item.fireworksCharge.type.1=Große Kugel +item.fireworksCharge.type.2=Sternförmig +item.fireworksCharge.type.3=Creeperförmig +item.fireworksCharge.type.4=Explosion +item.fireworksCharge.white=Weiß +item.fireworksCharge.yellow=Gelb +item.fish.clownfish.raw.name=Clownfisch +item.fish.cod.cooked.name=Gebratener Kabeljau +item.fish.cod.raw.name=Roher Kabeljau +item.fish.pufferfish.raw.name=Kugelfisch +item.fish.salmon.cooked.name=Gebratener Lachs +item.fish.salmon.raw.name=Roher Lachs +item.fishingRod.name=Angel +item.flint.name=Feuerstein +item.flintAndSteel.name=Feuerzeug +item.flowerPot.name=Blumentopf +item.frame.name=Rahmen +item.ghastTear.name=Ghastträne +item.glassBottle.name=Glasflasche +item.goldNugget.name=Goldklumpen +item.hatchetDiamond.name=Diamantaxt +item.hatchetGold.name=Goldaxt +item.hatchetIron.name=Eisenaxt +item.hatchetStone.name=Steinaxt +item.hatchetWood.name=Holzaxt +item.helmetChain.name=Kettenhaube +item.helmetCloth.name=Lederkappe +item.helmetDiamond.name=Diamanthelm +item.helmetGold.name=Goldhelm +item.helmetIron.name=Eisenhelm +item.hoeDiamond.name=Diamanthacke +item.hoeGold.name=Goldhacke +item.hoeIron.name=Eisenhacke +item.hoeStone.name=Steinhacke +item.hoeWood.name=Holzhacke +item.horsearmordiamond.name=Diamantene Pferderüstung +item.horsearmorgold.name=Goldene Pferderüstung +item.horsearmormetal.name=Eiserne Pferderüstung +item.ingotGold.name=Goldbarren +item.ingotIron.name=Eisenbarren +item.ironNugget.name=Eisenklumpen +item.knowledgeBook.name=Buch des Wissens +item.leash.name=Leine +item.leather.name=Leder +item.leaves.name=Laub +item.leggingsChain.name=Kettenhose +item.leggingsCloth.name=Lederhose +item.leggingsDiamond.name=Diamantbeinschutz +item.leggingsGold.name=Goldbeinschutz +item.leggingsIron.name=Eisenbeinschutz +item.magmaCream.name=Magmacreme +item.map.name=Karte +item.melon.name=Melonenscheibe +item.milk.name=Milch +item.minecart.name=Lore +item.minecartChest.name=Güterlore +item.minecartCommandBlock.name=Befehlsblocklore +item.minecartFurnace.name=Antriebslore +item.minecartHopper.name=Trichterlore +item.minecartTnt.name=TNT-Lore +item.modifiers.chest=Am Körper: +item.modifiers.feet=An den Füßen: +item.modifiers.head=Auf dem Kopf: +item.modifiers.legs=An den Beinen: +item.modifiers.mainhand=In der Haupthand: +item.modifiers.offhand=In der Zweithand: +item.monsterPlacer.name=Erschaffe +item.mushroomStew.name=Pilzsuppe +item.muttonCooked.name=Gebratenes Hammelfleisch +item.muttonRaw.name=Rohes Hammelfleisch +item.nameTag.name=Namensschild +item.netherStalkSeeds.name=Netherwarze +item.netherStar.name=Netherstern +item.netherbrick.name=Netherziegel +item.netherquartz.name=Netherquarz +item.painting.name=Gemälde +item.paper.name=Papier +item.pickaxeDiamond.name=Diamantspitzhacke +item.pickaxeGold.name=Goldspitzhacke +item.pickaxeIron.name=Eisenspitzhacke +item.pickaxeStone.name=Steinspitzhacke +item.pickaxeWood.name=Holzspitzhacke +item.porkchopCooked.name=Gebratenes Schweinefleisch +item.porkchopRaw.name=Rohes Schweinefleisch +item.potato.name=Kartoffel +item.potatoBaked.name=Ofenkartoffel +item.potatoPoisonous.name=Giftige Kartoffel +item.potion.name=Trank +item.prismarineCrystals.name=Prismarinkristalle +item.prismarineShard.name=Prismarinscherbe +item.pumpkinPie.name=Kürbiskuchen +item.rabbitCooked.name=Gebratenes Kaninchen +item.rabbitFoot.name=Hasenpfote +item.rabbitHide.name=Kaninchenfell +item.rabbitRaw.name=Rohes Kaninchen +item.rabbitStew.name=Kaninchenragout +item.record.11.desc=C418 - 11 +item.record.13.desc=C418 - 13 +item.record.blocks.desc=C418 - Blocks +item.record.cat.desc=C418 - Cat +item.record.chirp.desc=C418 - Chirp +item.record.far.desc=C418 - Far +item.record.mall.desc=C418 - Mall +item.record.mellohi.desc=C418 - Mellohi +item.record.name=Schallplatte +item.record.stal.desc=C418 - Stal +item.record.strad.desc=C418 - Strad +item.record.wait.desc=C418 - Wait +item.record.ward.desc=C418 - Ward +item.redstone.name=Redstone +item.reeds.name=Zuckerrohr +item.rottenFlesh.name=Verrottetes Fleisch +item.saddle.name=Sattel +item.seeds.name=Weizenkörner +item.seeds_melon.name=Melonenkerne +item.seeds_pumpkin.name=Kürbiskerne +item.shears.name=Schere +item.shield.black.name=Schwarzer Schild +item.shield.blue.name=Blauer Schild +item.shield.brown.name=Brauner Schild +item.shield.cyan.name=Türkiser Schild +item.shield.gray.name=Grauer Schild +item.shield.green.name=Grüner Schild +item.shield.lightBlue.name=Hellblauer Schild +item.shield.lime.name=Hellgrüner Schild +item.shield.magenta.name=Magenta Schild +item.shield.name=Schild +item.shield.orange.name=Oranger Schild +item.shield.pink.name=Rosa Schild +item.shield.purple.name=Violetter Schild +item.shield.red.name=Roter Schild +item.shield.silver.name=Hellgrauer Schild +item.shield.white.name=Weißer Schild +item.shield.yellow.name=Gelber Schild +item.shovelDiamond.name=Diamantschaufel +item.shovelGold.name=Goldschaufel +item.shovelIron.name=Eisenschaufel +item.shovelStone.name=Steinschaufel +item.shovelWood.name=Holzschaufel +item.shulkerShell.name=Shulkerschale +item.sign.name=Schild +item.skull.char.name=Kopf +item.skull.creeper.name=Creeperkopf +item.skull.dragon.name=Drachenkopf +item.skull.player.name=Kopf von %s +item.skull.skeleton.name=Skelettschädel +item.skull.wither.name=Witherskelettschädel +item.skull.zombie.name=Zombiekopf +item.slimeball.name=Schleimball +item.snowball.name=Schneeball +item.speckledMelon.name=Glitzernde Melonenscheibe +item.spectral_arrow.name=Spektralpfeil +item.spiderEye.name=Spinnenauge +item.stick.name=Stock +item.string.name=Faden +item.sugar.name=Zucker +item.sulphur.name=Schwarzpulver +item.swordDiamond.name=Diamantschwert +item.swordGold.name=Goldschwert +item.swordIron.name=Eisenschwert +item.swordStone.name=Steinschwert +item.swordWood.name=Holzschwert +item.tipped_arrow.name=Getränkter Pfeil +item.totem.name=Totem der Unsterblichkeit +item.unbreakable=Unzerstörbar +item.wheat.name=Weizen +item.writingBook.name=Buch und Feder +item.writtenBook.name=Beschriebenes Buch +item.yellowDust.name=Glowstonestaub + +tile.acaciaFence.name=Akazienholzzaun +tile.acaciaFenceGate.name=Akazienholzzauntor +tile.activatorRail.name=Aktivierungsschiene +tile.anvil.intact.name=Amboss +tile.anvil.name=Amboss +tile.anvil.slightlyDamaged.name=Leicht beschädigter Amboss +tile.anvil.veryDamaged.name=Stark beschädigter Amboss +tile.barrier.name=Barriere +tile.beacon.name=Leuchtfeuer +tile.beacon.primary=Primäre Kraft +tile.beacon.secondary=Sekundäre Kraft +tile.bed.name=Bett +tile.bedrock.name=Grundgestein +tile.beetroots.name=Rote Bete +tile.birchFence.name=Birkenholzzaun +tile.birchFenceGate.name=Birkenholzzauntor +tile.blockCoal.name=Kohleblock +tile.blockDiamond.name=Diamantblock +tile.blockEmerald.name=Smaragdblock +tile.blockGold.name=Goldblock +tile.blockIron.name=Eisenblock +tile.blockLapis.name=Lapislazuliblock +tile.blockRedstone.name=Redstone-Block +tile.boneBlock.name=Knochenblock +tile.bookshelf.name=Bücherregal +tile.brick.name=Ziegelsteine +tile.button.name=Knopf +tile.cactus.name=Kaktus +tile.cake.name=Kuchen +tile.carrots.name=Karotten +tile.cauldron.name=Kessel +tile.chainCommandBlock.name=Ketten-Befehlsblock +tile.chest.name=Truhe +tile.chestTrap.name=Redstone-Truhe +tile.chorusFlower.name=Chorusblüte +tile.chorusPlant.name=Choruspflanze +tile.clay.name=Ton +tile.clayHardened.name=Keramik +tile.clayHardenedStained.black.name=Schwarze Keramik +tile.clayHardenedStained.blue.name=Blaue Keramik +tile.clayHardenedStained.brown.name=Braune Keramik +tile.clayHardenedStained.cyan.name=Türkise Keramik +tile.clayHardenedStained.gray.name=Graue Keramik +tile.clayHardenedStained.green.name=Grüne Keramik +tile.clayHardenedStained.lightBlue.name=Hellblaue Keramik +tile.clayHardenedStained.lime.name=Hellgrüne Keramik +tile.clayHardenedStained.magenta.name=Magenta Keramik +tile.clayHardenedStained.name=Gefärbte Keramik +tile.clayHardenedStained.orange.name=Orange Keramik +tile.clayHardenedStained.pink.name=Rosa Keramik +tile.clayHardenedStained.purple.name=Violette Keramik +tile.clayHardenedStained.red.name=Rote Keramik +tile.clayHardenedStained.silver.name=Hellgraue Keramik +tile.clayHardenedStained.white.name=Weiße Keramik +tile.clayHardenedStained.yellow.name=Gelbe Keramik +tile.cloth.black.name=Schwarze Wolle +tile.cloth.blue.name=Blaue Wolle +tile.cloth.brown.name=Braune Wolle +tile.cloth.cyan.name=Türkise Wolle +tile.cloth.gray.name=Graue Wolle +tile.cloth.green.name=Grüne Wolle +tile.cloth.lightBlue.name=Hellblaue Wolle +tile.cloth.lime.name=Hellgrüne Wolle +tile.cloth.magenta.name=Magenta Wolle +tile.cloth.name=Wolle +tile.cloth.orange.name=Orange Wolle +tile.cloth.pink.name=Rosa Wolle +tile.cloth.purple.name=Violette Wolle +tile.cloth.red.name=Rote Wolle +tile.cloth.silver.name=Hellgraue Wolle +tile.cloth.white.name=Weiße Wolle +tile.cloth.yellow.name=Gelbe Wolle +tile.cobbleWall.mossy.name=Bemooste Bruchsteinmauer +tile.cobbleWall.normal.name=Bruchsteinmauer +tile.cocoa.name=Kakao +tile.commandBlock.name=Befehlsblock +tile.concrete.black.name=Schwarzer Beton +tile.concrete.blue.name=Blauer Beton +tile.concrete.brown.name=Brauner Beton +tile.concrete.cyan.name=Türkiser Beton +tile.concrete.gray.name=Grauer Beton +tile.concrete.green.name=Grüner Beton +tile.concrete.lightBlue.name=Hellblauer Beton +tile.concrete.lime.name=Hellgrüner Beton +tile.concrete.magenta.name=Magenta Beton +tile.concrete.orange.name=Oranger Beton +tile.concrete.pink.name=Rosa Beton +tile.concrete.purple.name=Violetter Beton +tile.concrete.red.name=Roter Beton +tile.concrete.silver.name=Hellgrauer Beton +tile.concrete.white.name=Weißer Beton +tile.concrete.yellow.name=Gelber Beton +tile.concretePowder.black.name=Schwarzer Trockenbeton +tile.concretePowder.blue.name=Blauer Trockenbeton +tile.concretePowder.brown.name=Brauner Trockenbeton +tile.concretePowder.cyan.name=Türkiser Trockenbeton +tile.concretePowder.gray.name=Grauer Trockenbeton +tile.concretePowder.green.name=Grüner Trockenbeton +tile.concretePowder.lightBlue.name=Hellblauer Trockenbeton +tile.concretePowder.lime.name=Hellgrüner Trockenbeton +tile.concretePowder.magenta.name=Magenta Trockenbeton +tile.concretePowder.orange.name=Oranger Trockenbeton +tile.concretePowder.pink.name=Rosa Trockenbeton +tile.concretePowder.purple.name=Violetter Trockenbeton +tile.concretePowder.red.name=Roter Trockenbeton +tile.concretePowder.silver.name=Hellgrauer Trockenbeton +tile.concretePowder.white.name=Weißer Trockenbeton +tile.concretePowder.yellow.name=Gelber Trockenbeton +tile.crops.name=Getreide +tile.darkOakFence.name=Schwarzeichenholzzaun +tile.darkOakFenceGate.name=Schwarzeichenholzzauntor +tile.daylightDetector.name=Tageslichtsensor +tile.deadbush.name=Toter Busch +tile.detectorRail.name=Sensorschiene +tile.dirt.coarse.name=Grobe Erde +tile.dirt.default.name=Erde +tile.dirt.name=Erde +tile.dirt.podzol.name=Podsol +tile.dispenser.name=Werfer +tile.doorIron.name=Eisentür +tile.doorWood.name=Holztür +tile.doublePlant.fern.name=Großer Farn +tile.doublePlant.grass.name=Hohes Gras +tile.doublePlant.name=Pflanze +tile.doublePlant.paeonia.name=Pfingstrose +tile.doublePlant.rose.name=Rosenstrauch +tile.doublePlant.sunflower.name=Sonnenblume +tile.doublePlant.syringa.name=Flieder +tile.dragonEgg.name=Drachenei +tile.dropper.name=Spender +tile.enchantmentTable.name=Zaubertisch +tile.endBricks.name=Endsteinziegel +tile.endPortalFrame.name=Endportalrahmen +tile.endRod.name=Endstab +tile.enderChest.name=Endertruhe +tile.farmland.name=Ackerboden +tile.fence.name=Eichenholzzaun +tile.fenceGate.name=Eichenholzzauntor +tile.fenceIron.name=Eisengitter +tile.fire.name=Feuer +tile.flower1.dandelion.name=Löwenzahn +tile.flower1.name=Blume +tile.flower2.allium.name=Sternlauch +tile.flower2.blueOrchid.name=Blaue Orchidee +tile.flower2.houstonia.name=Porzellansternchen +tile.flower2.name=Blume +tile.flower2.oxeyeDaisy.name=Margerite +tile.flower2.poppy.name=Mohn +tile.flower2.tulipOrange.name=Orange Tulpe +tile.flower2.tulipPink.name=Rosa Tulpe +tile.flower2.tulipRed.name=Rote Tulpe +tile.flower2.tulipWhite.name=Weiße Tulpe +tile.frostedIce.name=Brüchiges Eis +tile.furnace.name=Ofen +tile.glass.name=Glas +tile.glazedTerracottaBlack.name=Schwarze glasierte Keramik +tile.glazedTerracottaBlue.name=Blaue glasierte Keramik +tile.glazedTerracottaBrown.name=Braune glasierte Keramik +tile.glazedTerracottaCyan.name=Türkise glasierte Keramik +tile.glazedTerracottaGray.name=Graue glasierte Keramik +tile.glazedTerracottaGreen.name=Grüne glasierte Keramik +tile.glazedTerracottaLightBlue.name=Hellblaue glasierte Keramik +tile.glazedTerracottaLime.name=Hellgrüne glasierte Keramik +tile.glazedTerracottaMagenta.name=Magenta glasierte Keramik +tile.glazedTerracottaOrange.name=Orange glasierte Keramik +tile.glazedTerracottaPink.name=Rosa glasierte Keramik +tile.glazedTerracottaPurple.name=Violette glasierte Keramik +tile.glazedTerracottaRed.name=Rote glasierte Keramik +tile.glazedTerracottaSilver.name=Hellgraue glasierte Keramik +tile.glazedTerracottaWhite.name=Weiße glasierte Keramik +tile.glazedTerracottaYellow.name=Gelbe glasierte Keramik +tile.goldenRail.name=Antriebsschiene +tile.grass.name=Grasblock +tile.grassPath.name=Trampelpfad +tile.gravel.name=Kies +tile.hayBlock.name=Strohballen +tile.hellrock.name=Netherrack +tile.hellsand.name=Seelensand +tile.hopper.name=Trichter +tile.ice.name=Eis +tile.icePacked.name=Packeis +tile.ironTrapdoor.name=Eisenfalltür +tile.jukebox.name=Plattenspieler +tile.jungleFence.name=Tropenholzzaun +tile.jungleFenceGate.name=Tropenholzzauntor +tile.ladder.name=Leiter +tile.lava.name=Lava +tile.leaves.acacia.name=Akazienlaub +tile.leaves.big_oak.name=Schwarzeichenlaub +tile.leaves.birch.name=Birkenlaub +tile.leaves.jungle.name=Tropenbaumlaub +tile.leaves.name=Laub +tile.leaves.oak.name=Eichenlaub +tile.leaves.spruce.name=Fichtennadeln +tile.lever.name=Hebel +tile.lightgem.name=Glowstone +tile.litpumpkin.name=Kürbislaterne +tile.lockedchest.name=Verschlossene Truhe +tile.log.acacia.name=Akazienholz +tile.log.big_oak.name=Schwarzeichenholz +tile.log.birch.name=Birkenholz +tile.log.jungle.name=Tropenholz +tile.log.name=Holz +tile.log.oak.name=Eichenholz +tile.log.spruce.name=Fichtenholz +tile.magma.name=Magmablock +tile.melon.name=Melone +tile.mobSpawner.name=Monsterspawner +tile.monsterStoneEgg.brick.name=Steinziegel (Silberfischchen) +tile.monsterStoneEgg.chiseledbrick.name=Gemeißelte Steinziegel (Silberfischchen) +tile.monsterStoneEgg.cobble.name=Bruchstein (Silberfischchen) +tile.monsterStoneEgg.crackedbrick.name=Rissige Steinziegel (Silberfischchen) +tile.monsterStoneEgg.mossybrick.name=Bemooste Steinziegel (Silberfischchen) +tile.monsterStoneEgg.name=Stein (Silberfischchen) +tile.monsterStoneEgg.stone.name=Stein (Silberfischchen) +tile.mushroom.name=Pilz +tile.musicBlock.name=Notenblock +tile.mycel.name=Myzel +tile.netherBrick.name=Netherziegel +tile.netherFence.name=Netherziegelzaun +tile.netherStalk.name=Netherwarze +tile.netherWartBlock.name=Netherwarzenblock +tile.netherquartz.name=Netherquarzerz +tile.notGate.name=Redstone-Fackel +tile.observer.name=Beobachter +tile.obsidian.name=Obsidian +tile.oreCoal.name=Steinkohle +tile.oreDiamond.name=Diamanterz +tile.oreEmerald.name=Smaragderz +tile.oreGold.name=Golderz +tile.oreIron.name=Eisenerz +tile.oreLapis.name=Lapislazulierz +tile.oreRedstone.name=Redstone-Erz +tile.pistonBase.name=Kolben +tile.pistonStickyBase.name=Klebriger Kolben +tile.portal.name=Portal +tile.potatoes.name=Kartoffeln +tile.pressurePlateStone.name=Steindruckplatte +tile.pressurePlateWood.name=Holzdruckplatte +tile.prismarine.bricks.name=Prismarinziegel +tile.prismarine.dark.name=Dunkler Prismarin +tile.prismarine.rough.name=Prismarin +tile.pumpkin.name=Kürbis +tile.pumpkinStem.name=Kürbispflanze +tile.purpurBlock.name=Purpurblock +tile.purpurPillar.name=Purpursäule +tile.purpurSlab.name=Purpurstufe +tile.quartzBlock.chiseled.name=Gemeißelter Quarzblock +tile.quartzBlock.default.name=Quarzblock +tile.quartzBlock.lines.name=Quarzsäule +tile.quartzBlock.name=Quarzblock +tile.rail.name=Schiene +tile.redNetherBrick.name=Rote Netherziegel +tile.redSandStone.chiseled.name=Gemeißelter roter Sandstein +tile.redSandStone.default.name=Roter Sandstein +tile.redSandStone.name=Roter Sandstein +tile.redSandStone.smooth.name=Glatter roter Sandstein +tile.redstoneDust.name=Redstone-Staub +tile.redstoneLight.name=Redstone-Lampe +tile.reeds.name=Zuckerrohr +tile.repeatingCommandBlock.name=Wiederhol-Befehlsblock +tile.sand.default.name=Sand +tile.sand.name=Sand +tile.sand.red.name=Roter Sand +tile.sandStone.chiseled.name=Gemeißelter Sandstein +tile.sandStone.default.name=Sandstein +tile.sandStone.name=Sandstein +tile.sandStone.smooth.name=Glatter Sandstein +tile.sapling.acacia.name=Akaziensetzling +tile.sapling.big_oak.name=Schwarzeichensetzling +tile.sapling.birch.name=Birkensetzling +tile.sapling.jungle.name=Tropenbaumsetzling +tile.sapling.oak.name=Eichensetzling +tile.sapling.spruce.name=Fichtensetzling +tile.seaLantern.name=Seelaterne +tile.shulkerBoxBlack.name=Schwarze Shulkerkiste +tile.shulkerBoxBlue.name=Blaue Shulkerkiste +tile.shulkerBoxBrown.name=Braune Shulkerkiste +tile.shulkerBoxCyan.name=Türkise Shulkerkiste +tile.shulkerBoxGray.name=Graue Shulkerkiste +tile.shulkerBoxGreen.name=Grüne Shulkerkiste +tile.shulkerBoxLightBlue.name=Hellblaue Shulkerkiste +tile.shulkerBoxLime.name=Hellgrüne Shulkerkiste +tile.shulkerBoxMagenta.name=Magenta Shulkerkiste +tile.shulkerBoxOrange.name=Orange Shulkerkiste +tile.shulkerBoxPink.name=Rosa Shulkerkiste +tile.shulkerBoxPurple.name=Violette Shulkerkiste +tile.shulkerBoxRed.name=Rote Shulkerkiste +tile.shulkerBoxSilver.name=Hellgraue Shulkerkiste +tile.shulkerBoxWhite.name=Weiße Shulkerkiste +tile.shulkerBoxYellow.name=Gelbe Shulkerkiste +tile.sign.name=Schild +tile.slime.name=Schleimblock +tile.snow.name=Schnee +tile.sponge.dry.name=Schwamm +tile.sponge.wet.name=Nasser Schwamm +tile.spruceFence.name=Fichtenholzzaun +tile.spruceFenceGate.name=Fichtenholzzauntor +tile.stainedGlass.black.name=Schwarzes Glas +tile.stainedGlass.blue.name=Blaues Glas +tile.stainedGlass.brown.name=Braunes Glas +tile.stainedGlass.cyan.name=Türkises Glas +tile.stainedGlass.gray.name=Graues Glas +tile.stainedGlass.green.name=Grünes Glas +tile.stainedGlass.lightBlue.name=Hellblaues Glas +tile.stainedGlass.lime.name=Hellgrünes Glas +tile.stainedGlass.magenta.name=Magenta Glas +tile.stainedGlass.name=Gefärbtes Glas +tile.stainedGlass.orange.name=Oranges Glas +tile.stainedGlass.pink.name=Rosa Glas +tile.stainedGlass.purple.name=Violettes Glas +tile.stainedGlass.red.name=Rotes Glas +tile.stainedGlass.silver.name=Hellgraues Glas +tile.stainedGlass.white.name=Weißes Glas +tile.stainedGlass.yellow.name=Gelbes Glas +tile.stairsBrick.name=Ziegeltreppe +tile.stairsNetherBrick.name=Netherziegeltreppe +tile.stairsPurpur.name=Purpurtreppe +tile.stairsQuartz.name=Quarztreppe +tile.stairsRedSandStone.name=Rote Sandsteintreppe +tile.stairsSandStone.name=Sandsteintreppe +tile.stairsStone.name=Bruchsteintreppe +tile.stairsStoneBrickSmooth.name=Steinziegeltreppe +tile.stairsWood.name=Eichenholztreppe +tile.stairsWoodAcacia.name=Akazienholztreppe +tile.stairsWoodBirch.name=Birkenholztreppe +tile.stairsWoodDarkOak.name=Schwarzeichenholztreppe +tile.stairsWoodJungle.name=Tropenholztreppe +tile.stairsWoodSpruce.name=Fichtenholztreppe +tile.stone.andesite.name=Andesit +tile.stone.andesiteSmooth.name=Polierter Andesit +tile.stone.diorite.name=Diorit +tile.stone.dioriteSmooth.name=Polierter Diorit +tile.stone.granite.name=Granit +tile.stone.graniteSmooth.name=Polierter Granit +tile.stone.stone.name=Stein +tile.stoneMoss.name=Bemooster Bruchstein +tile.stoneSlab.brick.name=Ziegelstufe +tile.stoneSlab.cobble.name=Bruchsteinstufe +tile.stoneSlab.name=Steinstufe +tile.stoneSlab.netherBrick.name=Netherziegelstufe +tile.stoneSlab.quartz.name=Quarzstufe +tile.stoneSlab.sand.name=Sandsteinstufe +tile.stoneSlab.smoothStoneBrick.name=Steinziegelstufe +tile.stoneSlab.stone.name=Steinstufe +tile.stoneSlab.wood.name=Holzstufe +tile.stoneSlab2.red_sandstone.name=Rote Sandsteinstufe +tile.stonebrick.name=Bruchstein +tile.stonebricksmooth.chiseled.name=Gemeißelte Steinziegel +tile.stonebricksmooth.cracked.name=Rissige Steinziegel +tile.stonebricksmooth.default.name=Steinziegel +tile.stonebricksmooth.mossy.name=Bemooste Steinziegel +tile.stonebricksmooth.name=Steinziegel +tile.structureBlock.name=Konstruktionsblock +tile.structureVoid.name=Konstruktionsleere +tile.tallgrass.fern.name=Farn +tile.tallgrass.grass.name=Gras +tile.tallgrass.name=Gras +tile.tallgrass.shrub.name=Busch +tile.thinGlass.name=Glasscheibe +tile.thinStainedGlass.black.name=Schwarze Glasscheibe +tile.thinStainedGlass.blue.name=Blaue Glasscheibe +tile.thinStainedGlass.brown.name=Braune Glasscheibe +tile.thinStainedGlass.cyan.name=Türkise Glasscheibe +tile.thinStainedGlass.gray.name=Graue Glasscheibe +tile.thinStainedGlass.green.name=Grüne Glasscheibe +tile.thinStainedGlass.lightBlue.name=Hellblaue Glasscheibe +tile.thinStainedGlass.lime.name=Hellgrüne Glasscheibe +tile.thinStainedGlass.magenta.name=Magenta Glasscheibe +tile.thinStainedGlass.name=Gefärbte Glasscheibe +tile.thinStainedGlass.orange.name=Orange Glasscheibe +tile.thinStainedGlass.pink.name=Rosa Glasscheibe +tile.thinStainedGlass.purple.name=Violette Glasscheibe +tile.thinStainedGlass.red.name=Rote Glasscheibe +tile.thinStainedGlass.silver.name=Hellgraue Glasscheibe +tile.thinStainedGlass.white.name=Weiße Glasscheibe +tile.thinStainedGlass.yellow.name=Gelbe Glasscheibe +tile.tnt.name=TNT +tile.torch.name=Fackel +tile.trapdoor.name=Holzfalltür +tile.tripWire.name=Stolperdraht +tile.tripWireSource.name=Haken +tile.vine.name=Ranken +tile.water.name=Wasser +tile.waterlily.name=Seerosenblatt +tile.web.name=Spinnennetz +tile.weightedPlate_heavy.name=Wägeplatte (hohe Gewichte) +tile.weightedPlate_light.name=Wägeplatte (niedrige Gewichte) +tile.whiteStone.name=Endstein +tile.wood.acacia.name=Akazienholzbretter +tile.wood.big_oak.name=Schwarzeichenholzbretter +tile.wood.birch.name=Birkenholzbretter +tile.wood.jungle.name=Tropenholzbretter +tile.wood.name=Holzbretter +tile.wood.oak.name=Eichenholzbretter +tile.wood.spruce.name=Fichtenholzbretter +tile.woodSlab.acacia.name=Akazienholzstufe +tile.woodSlab.big_oak.name=Schwarzeichenholzstufe +tile.woodSlab.birch.name=Birkenholzstufe +tile.woodSlab.jungle.name=Tropenholzstufe +tile.woodSlab.name=Holzstufe +tile.woodSlab.oak.name=Eichenholzstufe +tile.woodSlab.spruce.name=Fichtenholzstufe +tile.woolCarpet.black.name=Schwarzer Teppich +tile.woolCarpet.blue.name=Blauer Teppich +tile.woolCarpet.brown.name=Brauner Teppich +tile.woolCarpet.cyan.name=Türkiser Teppich +tile.woolCarpet.gray.name=Grauer Teppich +tile.woolCarpet.green.name=Grüner Teppich +tile.woolCarpet.lightBlue.name=Hellblauer Teppich +tile.woolCarpet.lime.name=Hellgrüner Teppich +tile.woolCarpet.magenta.name=Magenta Teppich +tile.woolCarpet.name=Teppich +tile.woolCarpet.orange.name=Oranger Teppich +tile.woolCarpet.pink.name=Rosa Teppich +tile.woolCarpet.purple.name=Violetter Teppich +tile.woolCarpet.red.name=Roter Teppich +tile.woolCarpet.silver.name=Hellgrauer Teppich +tile.woolCarpet.white.name=Weißer Teppich +tile.woolCarpet.yellow.name=Gelber Teppich +tile.workbench.name=Werkbank + +lingering_potion.effect.awkward=Seltsamer Verweiltrank +lingering_potion.effect.empty=Nicht braubarer Verweiltrank +lingering_potion.effect.fire_resistance=Verweiltrank der Feuerresistenz +lingering_potion.effect.harming=Verweiltrank des Schadens +lingering_potion.effect.healing=Verweiltrank der Heilung +lingering_potion.effect.invisibility=Verweiltrank der Unsichtbarkeit +lingering_potion.effect.leaping=Verweiltrank der Sprungkraft +lingering_potion.effect.levitation=Verweiltrank der Schwebekraft +lingering_potion.effect.luck=Verweiltrank des Glücks +lingering_potion.effect.mundane=Gewöhnlicher Verweiltrank +lingering_potion.effect.night_vision=Verweiltrank der Nachtsicht +lingering_potion.effect.poison=Verweiltrank der Vergiftung +lingering_potion.effect.regeneration=Verweiltrank der Regeneration +lingering_potion.effect.slowness=Verweiltrank der Langsamkeit +lingering_potion.effect.strength=Verweiltrank der Stärke +lingering_potion.effect.swiftness=Verweiltrank der Schnelligkeit +lingering_potion.effect.thick=Dickflüssiger Verweiltrank +lingering_potion.effect.water=Verweilende Wasserflasche +lingering_potion.effect.water_breathing=Verweiltrank der Unterwasseratmung +lingering_potion.effect.weakness=Verweiltrank der Schwäche + +potion.effect.awkward=Seltsamer Trank +potion.effect.empty=Nicht braubarer Trank +potion.effect.fire_resistance=Trank der Feuerresistenz +potion.effect.harming=Trank des Schadens +potion.effect.healing=Trank der Heilung +potion.effect.invisibility=Trank der Unsichtbarkeit +potion.effect.leaping=Trank der Sprungkraft +potion.effect.levitation=Trank der Schwebekraft +potion.effect.luck=Trank des Glücks +potion.effect.mundane=Gewöhnlicher Trank +potion.effect.night_vision=Trank der Nachtsicht +potion.effect.poison=Trank der Vergiftung +potion.effect.regeneration=Trank der Regeneration +potion.effect.slowness=Trank der Langsamkeit +potion.effect.strength=Trank der Stärke +potion.effect.swiftness=Trank der Schnelligkeit +potion.effect.thick=Dickflüssiger Trank +potion.effect.water=Wasserflasche +potion.effect.water_breathing=Trank der Unterwasseratmung +potion.effect.weakness=Trank der Schwäche + +splash_potion.effect.awkward=Seltsamer Wurftrank +splash_potion.effect.empty=Nicht braubarer Wurftrank +splash_potion.effect.fire_resistance=Wurftrank der Feuerresistenz +splash_potion.effect.harming=Wurftrank des Schadens +splash_potion.effect.healing=Wurftrank der Heilung +splash_potion.effect.invisibility=Wurftrank der Unsichtbarkeit +splash_potion.effect.leaping=Wurftrank der Sprungkraft +splash_potion.effect.levitation=Wurftrank der Schwebekraft +splash_potion.effect.luck=Wurftrank des Glücks +splash_potion.effect.mundane=Gewöhnlicher Wurftrank +splash_potion.effect.night_vision=Wurftrank der Nachtsicht +splash_potion.effect.poison=Wurftrank der Vergiftung +splash_potion.effect.regeneration=Wurftrank der Regeneration +splash_potion.effect.slowness=Wurftrank der Langsamkeit +splash_potion.effect.strength=Wurftrank der Stärke +splash_potion.effect.swiftness=Wurftrank der Schnelligkeit +splash_potion.effect.thick=Dickflüssiger Wurftrank +splash_potion.effect.water=Werfbare Wasserflasche +splash_potion.effect.water_breathing=Wurftrank der Unterwasseratmung +splash_potion.effect.weakness=Wurftrank der Schwäche + +tipped_arrow.effect.awkward=Getränkter Pfeil +tipped_arrow.effect.empty=Nicht herstellbarer getränkter Pfeil +tipped_arrow.effect.fire_resistance=Pfeil der Feuerresistenz +tipped_arrow.effect.harming=Pfeil des Schadens +tipped_arrow.effect.healing=Pfeil der Heilung +tipped_arrow.effect.invisibility=Pfeil der Unsichtbarkeit +tipped_arrow.effect.leaping=Pfeil der Sprungkraft +tipped_arrow.effect.levitation=Pfeil der Schwebekraft +tipped_arrow.effect.luck=Pfeil des Glücks +tipped_arrow.effect.mundane=Getränkter Pfeil +tipped_arrow.effect.night_vision=Pfeil der Nachtsicht +tipped_arrow.effect.poison=Pfeil der Vergiftung +tipped_arrow.effect.regeneration=Pfeil der Regeneration +tipped_arrow.effect.slowness=Pfeil der Langsamkeit +tipped_arrow.effect.strength=Pfeil der Stärke +tipped_arrow.effect.swiftness=Pfeil der Schnelligkeit +tipped_arrow.effect.thick=Getränkter Pfeil +tipped_arrow.effect.water=Nasser Pfeil +tipped_arrow.effect.water_breathing=Pfeil der Unterwasseratmung +tipped_arrow.effect.weakness=Pfeil der Schwäche \ No newline at end of file diff --git a/src/main/resources/lang/en_US-legacy.lang b/src/main/resources/lang/en_US-legacy.lang new file mode 100644 index 0000000..ec790b0 --- /dev/null +++ b/src/main/resources/lang/en_US-legacy.lang @@ -0,0 +1,1292 @@ +# ============================================================================= +# = THIS LANGAUGE FILE IS ONLY FOR MINECRAFT VERSIONS BELOW 1.13! = +# = IF YOU TRANSLATE THIS, YOU HAVE TO APPEND "-legacy" TO THE FILE NAME = +# = OR IT WILL THROW A LOT OF ERRORS! = +# ============================================================================= + + +# Set the message when a shop is created at the clicked chest. +# Usable Placeholders: %CREATION-PRICE% +message.shop-created=&6You were withdrawn &c%CREATION-PRICE% &6to create this shop. + +# Set the message when an admin shop is created at the clicked chest. +# Usable Placeholders: %CREATION-PRICE% +message.admin-shop-created=&6You were withdrawn &c%CREATION-PRICE% &6to create this admin shop. + +# Set the message when the clicked chest already is a shop. +message.chest-already-shop=&cChest already is shop. + +# Set the message when there is a block above the clicked chest. +message.chest-blocked=&cThere must not be a block above the chest. + +# Set the message when a player tries to place a chest next to a shop's chest +# to create a double chest shop, but there is a block above the placed chest. +message.double-chest-blocked=&cThere must not be a block above the chest. + +# Set the message when the clicked shop is removed. +message.shop-removed=&6Shop removed. + +# Set the message when all shops of a player were removed. +# Usable Placeholders: %AMOUNT%, %VENDOR% +message.all-shops-removed=&6Removed all (&c%AMOUNT%&6) shop/s of &c%VENDOR%&6. + +# Set the message when the clicked chest is not a shop. +message.chest-no-shop=&cChest is not a shop. + +# Set the message when the player doesn't have enough money to create a shop +# Usable Placeholders: %CREATION-PRICE% +message.shop-create-not-enough-money=&cNot enough money. You need &6%CREATION-PRICE% &cto create a shop. + +# Set the vendor message the player gets after entering '/shop info'. +# Usable Placeholders: %VENDOR% +message.shopInfo.vendor=&6Vendor: &e%VENDOR% + +# Set the product message the player gets after entering '/shop info'. +# Usable Placeholders: %AMOUNT%, %ITEMNAME% +message.shopInfo.product=&6Product: &e%AMOUNT% x %ITEMNAME% + +# Set the in-stock message the player after entering '/shop info'. +# Usable Placeholders=%STOCK% +message.shopInfo.stock=&6In Stock: &e%STOCK% + +# Set the enchantments message the player gets after entering '/shop info' if the product is enchanted +# Usable Placeholders: %ENCHANTMENT% +message.shopInfo.enchantments=&6Enchantments: &e%ENCHANTMENT% + +# Set the potion effect message the player gets after entering '/shop info' if the product has a potion effect +# Usable Placeholders: %POTION-EFFECT%, %EXTENDED% +message.shopInfo.potion-effect=&6Potion Effect: &e%POTION-EFFECT% %EXTENDED% + +# Set the music disc title message the player gets after entering '/shop info' if the product is a music disc +# Usable Placeholders: %MUSIC-TITLE% +message.shopInfo.music-disc-title=&6Music Disc Title: &e%MUSIC-TITLE% + +# Set the generation message the player gets after entering '/shop info' if the product is a written book +# Usable Placeholders: %GENERATION% +message.shopInfo.book-generation=&6Generation: &e%GENERATION% + +# If the product is a tipped arrow but it doesn't have an effect, this gets displayed instead of the arrow effect +message.shopInfo.none=&7None + +# Set the price message the player gets after entering '/shop info'. +# Usable Placeholders: %BUY-PRICE%, %SELL-PRICE% +message.shopInfo.price=&6Price: Buy: &e%BUY-PRICE%&6 Sell: &e%SELL-PRICE% + +# If the sell price or buy price is disabled, this message will be displayed instead of the price in the message above. +message.shopInfo.disabled=&7Disabled + +# Set the type message the player gets after entering '/shop info' ... +# ... when the shop is normal. +message.shopInfo.is-normal=&6Type: &eNormal + +# ... when the shop is an admin shop. +message.shopInfo.is-admin=&6Type: &eAdmin + +# If the potion effect it extended, %EXTENDED% will be replaced by this. +# If not, this will be empty. +message.shopInfo.extended=(Extended) + +# Set the message when the player tries to create a shop with sell price and buy price set to 0 +message.buy-and-sell-disabled=&cYou can't create a shop with buying and selling disabled. + +# Set the message when the player successfully bought something. +# Usable Placeholders: %AMOUNT%, %ITEMNAME%, %BUY-PRICE%, %VENDOR% +message.buy-success=&aYou bought &6%AMOUNT% x %ITEMNAME%&a for &6%BUY-PRICE%&a from &6%VENDOR%&a. + +# Set the message when the player successfully bought something from an admin shop. +# Usable Placeholders: %AMOUNT%, %ITEMNAME%, %BUY-PRICE% +message.buy-success-admin=&aYou bought &6%AMOUNT% x %ITEMNAME%&a for &6%BUY-PRICE%&a. + +# Set the message when the player successfully sold something. +# Usable Placeholders: %AMOUNT%, %ITEMNAME%, %SELL-PRICE%, %VENDOR% +message.sell-success=&aYou sold &6%AMOUNT% x %ITEMNAME%&a for &6%SELL-PRICE%&a to &6%VENDOR%&a. + +# Set the message when the player successfully sold something to an admin shop. +# Usable Placeholders: %AMOUNT%, %ITEMNAME%, %SELL-PRICE% +message.sell-success-admin=&aYou sold &6%AMOUNT% x %ITEMNAME%&a for &6%SELL-PRICE%&a. + +# Set the message when a player bought something from the player's shop. +# Usable Placeholders: %AMOUNT%, %ITEMNAME%, %BUY-PRICE%, %PLAYER% +message.someone-bought=&6%PLAYER% &abought &6%AMOUNT% x %ITEMNAME%&a for &6%BUY-PRICE%&a from your shop. + +# Set the message when a player sold something to the player's shop. +# Usable Placeholders: %AMOUNT%, %ITEMNAME%, %SELL-PRICE%, %PLAYER% +message.someone-sold=&6%PLAYER% &asold &6%AMOUNT% x %ITEMNAME%&a for &6%SELL-PRICE%&a to your shop. + +# Set the message when a player joins and made a revenue while he was offline. +# Usable Placeholders: %REVENUE% +message.revenue-while-offline=&6While you were offline, your shops have made a revenue of &c%REVENUE%&6. + +# Set the message when the inventory is full when the player is buying something. +message.not-enough-inventory-space=&cNot enough space in inventory. + +# Set the message when the shop's inventory is full when the player is selling something. +message.chest-not-enough-inventory-space=&cShop is full. + +# Set the message when the player doesn't have enough money to buy something. +message.not-enough-money=&cNot enough money. + +# Set the message when the player doesn't have enough items to sell. +message.not-enough-items=&cNot enough items. + +# Set the message when the vendor doesn't have enough money to buy something from the player +message.vendor-not-enough-money=&cVendor has not enough money. + +# Set the message when the shop is out of stock. +message.out-of-stock=&cShop out of stock. + +# Set the message the vendor gets when his shop is out of stock +# Usable Placeholders: %AMOUNT%, %ITEMNAME% +message.vendor-out-of-stock=&cYour shop that sells &6%AMOUNT% x %ITEMNAME% &cis out of stock. + +# Set the message when an error occurred. +# Usable Placeholders: %ERROR% +message.error-occurred=&cAn error occurred: %ERROR% + +# Set the message when the arguments , and/or of '/shop create' are not a number. +message.amount-and-price-not-number=&cAmount and prices must be numbers. + +# Set the message when the argument is zero +message.amount-is-zero=&cAmount must be greater than 0. + +# Set the message when the config value "allow-decimals-in-prices" is set to false +# and a player enters a price with decimals +message.prices-contain-decimals=&cPrices must not contain decimals. + +# Set the message when the player doesn't hold an item in the hand. +message.no-item-in-hand=&cNo item in hand + +# Set the message when the player must click a chest to create a shop. +message.click-chest-to-create-shop=&aClick a chest within 15 seconds to create a shop. + +# Set the message when the player must click a shop to remove it. +message.click-chest-to-remove-shop=&aClick a shop within 15 seconds to remove it. + +# Set the message when the player must click a shop to retrieve information. +message.click-chest-for-info=&aClick a shop within 15 seconds to retrieve information. + +# Set the message when the player must click a shop to open it. +message.click-chest-to-open-shop=&aClick a shop within 15 seconds to open it. + +# Set the message when the player must click the shop again to confirm the buy/sell. +message.click-to-confirm=&aClick again to confirm. + +# Set the message when the player opened a shop. +# Usable Placeholders: %VENDOR% +message.opened-shop=&aYou opened %VENDOR%'s shop. + +# Set the message when the player tries to break a shop. +message.cannot-break-shop=&cYou can't break a shop. + +# Set the message when the player tries to sell a broken item. +message.cannot-sell-broken-item=&cYou can't sell a broken item. + +# Set the message when the entered buy price is below the minimum price. +# Usable Placeholders: %MIN-PRICE% +message.buy-price-too-low=&cThe buy price must be higher than %MIN-PRICE%. + +# Set the message when the entered sell price is below the minimum price. +# Usable Placeholders: %MIN-PRICE% +message.sell-price-too-low=&cThe sell price must be higher than %MIN-PRICE%. + +# Set the message when the entered buy price is below the maximum price. +# Usable Placeholders: %MAX-PRICE% +message.buy-price-too-high=&cThe buy price must be lower than %MAX-PRICE%. + +# Set the message when the entered sell price is below the maximum price. +# Usable Placeholders: %MAX-PRICE% +message.sell-price-too-high=&cThe sell price must be lower than %MAX-PRICE%. + +# Set the message when buying is disabled at the shop. +message.buying-disabled=&cBuying is disabled at this shop. + +# Set the message when selling is disabled at the shop. +message.selling-disabled=&cSelling is disabled at this shop. + +# Set the message when reloading is done. +# Usable Placeholders: %AMOUNT% (Amount of shops) +message.reloaded-shops=&aSuccessfully reloaded %AMOUNT% shop/s. + +# Set the message when the player's shop limit is reached. +# Usable Placeholders: %LIMIT% +message.shop-limit-reached=&cYou reached your limit of &6%LIMIT% &cshop/s. + +# Set the message that shows the player how many shop slots of his shop limit he has occupied. +# Usable Placeholders: %LIMIT%, %AMOUNT% (Amount of shops) +message.occupied-shop-slots=&6You have &c%AMOUNT%/%LIMIT% &6shop slot/s occupied. + +# Set the message when the player tries to create a shop with an item which is listed in the blacklist. +message.cannot-sell-item=&cYou cannot create a shop with this item. + +# Set the message when the player tries to use a shop in creative mode. +message.use-in-creative=&cYou cannot use a shop in creative mode. + +# Set the message when an update is available. +# Usable Placeholders: %VERSION% +message.update.update-available=&6&lVersion &c%VERSION% &6of &cShopChest &6is available &chere. + +# Set the message you get when hovering over the available message. +message.update.click-to-download=Click to download + +# Set the message when no update is available. +message.update.no-update=&6&lNo new update available. + +# Set the message when the update checker is started. +message.update.checking=&6&lChecking for updates... + +# Set the message when an error occurs while checking for updates. +message.update.error=&c&lError while checking for updates. + +# Set the message when a not permitted player tries to create a shop. +message.noPermission.create=&cYou don't have permission to create a shop. + +# Set the message when a not permitted player tries to create an admin shop. +message.noPermission.create-admin=&cYou don't have permission to create an admin shop. + +# Set the message when a not permitted player tries to create a shop on a protected chest. +message.noPermission.create-protected=&cYou don't have permission to create a shop here. + +# Set the message when a not permitted player tries to open another player's shop. +message.noPermission.open-others=&cYou don't have permission to open this chest. + +# Set the message when a not permitted player tries to buy something. +message.noPermission.buy=&cYou don't have permission to buy something. + +# Set the message when a not permitted player tries to sell something. +message.noPermission.sell=&cYou don't have permission to sell something. + +# Set the message when a player tries to buy something in a region/plot that denied shop use. +message.noPermission.buy-here=&cYou don't have permission to buy something here. + +# Set the message when a player tries to sell something in a region/plot region that denied shop use. +message.noPermission.sell-here=&cYou don't have permission to sell something here. + +# Set the message when a not permitted player tries to remove another player's shop. +message.noPermission.remove-others=&cYou don't have permission to remove this shop. + +# Set the message when a not permitted player tries to remove an admin shop. +message.noPermission.remove-admin=&cYou don't have permission to remove an admin shop. + +# Set the message when a not permitted player tries to reload the shops. +message.noPermission.reload=&cYou don't have permission to reload the shops. + +# Set the message when a not permitted player tries to check for updates. +message.noPermission.update=&cYou don't have permission to check for updates. + +# Set the message when a not permitted player tries to change configuration values. +message.noPermission.config=&cYou don't have permission to change configuration values. + +# Set the message when a not permitted player tries to extend another player's shop's chest. +message.noPermission.extend-others=&cYou don't have permission to extend this chest. + +# Set the message when a not permitted player tries to extend a chest into a protected region/plot (e.g. WorldGuard/Towny). +message.noPermission.extend-protected=&cYou don't have permission to extend this chest to here. + +# Set the header of the help message the player gets after entering '/shop' or an invalid command. +# Usable Placeholders: %COMMAND% +message.commandDescription.header=&6==== &c/%COMMAND% &6Help + +# Set the footer of the help message the player gets after entering '/shop' or an invalid command. +# Usable Placeholders: %COMMAND% +message.commandDescription.footer=&6==== End + +# Set the command description message for '/shop create' when you type '/shop'. +# Usable Placeholders: %COMMAND% +message.commandDescription.create=&a/%COMMAND% create - Create a shop. + +# Set the command description message for '/shop create' when you type '/shop' and have permission "shopchest.create.admin" +# Usable Placeholders: %COMMAND% +message.commandDescription.create-admin=&a/%COMMAND% create [normal|admin] - Create a shop. + +# Set the command description message for '/shop remove' when you type '/shop'. +# Usable Placeholders: %COMMAND% +message.commandDescription.remove=&a/%COMMAND% remove - Remove a shop. + +# Set the command description message for '/shop info' when you type '/shop'. +# Usable Placeholders: %COMMAND% +message.commandDescription.info=&a/%COMMAND% info - Retrieve shop information. + +# Set the command description message for '/shop removeall' when you type '/shop'. +# Usable Placeholders: %COMMAND% +message.commandDescription.removeall=&a/%COMMAND% removeall - Remove all shops of a player. + +# Set the command description message for '/shop reload' when you type '/shop'. +# Usable Placeholders: %COMMAND% +message.commandDescription.reload=&a/%COMMAND% reload - Reload shops. + +# Set the command description message for '/shop update' when you type '/shop'. +# Usable Placeholders: %COMMAND% +message.commandDescription.update=&a/%COMMAND% update - Check for Updates. + +# Set the command description message for '/shop limits' when you type '/shop'. +# Usable Placeholders: %COMMAND% +message.commandDescription.limits=&a/%COMMAND% limits - View shop limits. + +# Set the command description message for '/shop open' when you type '/shop'. +# Usable Placeholders: %COMMAND% +message.commandDescription.open=&a/%COMMAND% open - Open a shop. + +# Set the command description message for '/shop config' when you type '/shop'. +# Usable Placeholders: %COMMAND% +message.commandDescription.config=&a/%COMMAND% config - Change configuration values. + +# Set the message a player gets after setting a configuration value per command +# Usable Placeholders: %PROPERTY%, %VALUE% +message.config.set=&6Changed &a%PROPERTY% &6to &a%VALUE%&6. + +# Set the message a player gets after adding a value to a list in the configuration per command +# Usable Placeholders: %PROPERTY%, %VALUE% +message.config.added=&6Added &a%VALUE% &6to &a%PROPERTY%&6. + +# Set the message a player gets after removing a value from a list in the configuration per command +# Usable Placeholders: %PROPERTY%, %VALUE% +message.config.removed=&6Removed &a%VALUE% &6from &a%PROPERTY%&6. + +# Effect names that will be displayed in the place of %POTION-EFFECT% +effect.none=No Effects +effect.moveSpeed=Speed +effect.moveSlowdown=Slowness +effect.digSpeed=Haste +effect.digSlowDown=Mining Fatigue +effect.damageBoost=Strength +effect.heal=Instant Health +effect.harm=Instant Damage +effect.jump=Jump Boost +effect.confusion=Nausea +effect.regeneration=Regeneration +effect.resistance=Resistance +effect.fireResistance=Fire Resistance +effect.waterBreathing=Water Breathing +effect.invisibility=Invisibility +effect.blindness=Blindness +effect.nightVision=Night Vision +effect.hunger=Hunger +effect.weakness=Weakness +effect.poison=Poison +effect.wither=Wither +effect.healthBoost=Health Boost +effect.absorption=Absorption +effect.saturation=Saturation +effect.glowing=Glowing +effect.luck=Luck +effect.unluck=Bad Luck +effect.levitation=Levitation + +# Item names of a tipped arrow +tipped_arrow.effect.empty=Uncraftable Tipped Arrow +tipped_arrow.effect.water=Tipped Arrow +tipped_arrow.effect.mundane=Tipped Arrow +tipped_arrow.effect.thick=Tipped Arrow +tipped_arrow.effect.awkward=Tipped Arrow +tipped_arrow.effect.night_vision=Arrow of Night Vision +tipped_arrow.effect.invisibility=Arrow of Invisibility +tipped_arrow.effect.leaping=Arrow of Leaping +tipped_arrow.effect.fire_resistance=Arrow of Fire Resistance +tipped_arrow.effect.swiftness=Arrow of Swiftness +tipped_arrow.effect.slowness=Arrow of Slowness +tipped_arrow.effect.water=Arrow of Splashing +tipped_arrow.effect.water_breathing=Arrow of Water Breathing +tipped_arrow.effect.healing=Arrow of Healing +tipped_arrow.effect.harming=Arrow of Harming +tipped_arrow.effect.poison=Arrow of Poison +tipped_arrow.effect.regeneration=Arrow of Regeneration +tipped_arrow.effect.strength=Arrow of Strength +tipped_arrow.effect.weakness=Arrow of Weakness +tipped_arrow.effect.levitation=Arrow of Levitation +tipped_arrow.effect.luck=Arrow of Luck + +# Item names of a normal potion +potion.effect.empty=Uncraftable Potion +potion.effect.water=Water Bottle +potion.effect.mundane=Mundane Potion +potion.effect.thick=Thick Potion +potion.effect.awkward=Awkward Potion +potion.effect.night_vision=Potion of Night Vision +potion.effect.invisibility=Potion of Invisibility +potion.effect.leaping=Potion of Leaping +potion.effect.fire_resistance=Potion of Fire Resistance +potion.effect.swiftness=Potion of Swiftness +potion.effect.slowness=Potion of Slowness +potion.effect.water_breathing=Potion of Water Breathing +potion.effect.healing=Potion of Healing +potion.effect.harming=Potion of Harming +potion.effect.poison=Potion of Poison +potion.effect.regeneration=Potion of Regeneration +potion.effect.strength=Potion of Strength +potion.effect.weakness=Potion of Weakness +potion.effect.levitation=Potion of Levitation +potion.effect.luck=Potion of Luck + +# Item names of a splash potion +splash_potion.effect.empty=Splash Uncraftable Potion +splash_potion.effect.water=Splash Water Bottle +splash_potion.effect.mundane=Mundane Splash Potion +splash_potion.effect.thick=Thick Splash Potion +splash_potion.effect.awkward=Awkward Splash Potion +splash_potion.effect.night_vision=Splash Potion of Night Vision +splash_potion.effect.invisibility=Splash Potion of Invisibility +splash_potion.effect.leaping=Splash Potion of Leaping +splash_potion.effect.fire_resistance=Splash Potion of Fire Resistance +splash_potion.effect.swiftness=Splash Potion of Swiftness +splash_potion.effect.slowness=Splash Potion of Slowness +splash_potion.effect.water_breathing=Splash Potion of Water Breathing +splash_potion.effect.healing=Splash Potion of Healing +splash_potion.effect.harming=Splash Potion of Harming +splash_potion.effect.poison=Splash Potion of Poison +splash_potion.effect.regeneration=Splash Potion of Regeneration +splash_potion.effect.strength=Splash Potion of Strength +splash_potion.effect.weakness=Splash Potion of Weakness +splash_potion.effect.levitation=Splash Potion of Levitation +splash_potion.effect.luck=Splash Potion of Luck + +# Item names of a lingering potion +lingering_potion.effect.empty=Lingering Uncraftable Potion +lingering_potion.effect.water=Lingering Water Bottle +lingering_potion.effect.mundane=Mundane Lingering Potion +lingering_potion.effect.thick=Thick Lingering Potion +lingering_potion.effect.awkward=Awkward Lingering Potion +lingering_potion.effect.night_vision=Lingering Potion of Night Vision +lingering_potion.effect.invisibility=Lingering Potion of Invisibility +lingering_potion.effect.leaping=Lingering Potion of Leaping +lingering_potion.effect.fire_resistance=Lingering Potion of Fire Resistance +lingering_potion.effect.swiftness=Lingering Potion of Swiftness +lingering_potion.effect.slowness=Lingering Potion of Slowness +lingering_potion.effect.water_breathing=Lingering Potion of Water Breathing +lingering_potion.effect.healing=Lingering Potion of Healing +lingering_potion.effect.harming=Lingering Potion of Harming +lingering_potion.effect.poison=Lingering Potion of Poison +lingering_potion.effect.regeneration=Lingering Potion of Regeneration +lingering_potion.effect.strength=Lingering Potion of Strength +lingering_potion.effect.weakness=Lingering Potion of Weakness +lingering_potion.effect.levitation=Lingering Potion of Levitation +lingering_potion.effect.luck=Lingering Potion of Luck + +# Enchantment name that will be displayed instead of %ENCHANTMENT% +enchantment.damage.all=Sharpness +enchantment.damage.undead=Smite +enchantment.damage.arthropods=Bane of Arthropods +enchantment.knockback=Knockback +enchantment.fire=Fire Aspect +enchantment.protect.all=Protection +enchantment.protect.fire=Fire Protection +enchantment.protect.fall=Feather Falling +enchantment.protect.explosion=Blast Protection +enchantment.protect.projectile=Projectile Protection +enchantment.oxygen=Respiration +enchantment.waterWorker=Aqua Affinity +enchantment.waterWalker=Depth Strider +enchantment.frostWalker=Frost Walker +enchantment.digging=Efficiency +enchantment.untouching=Silk Touch +enchantment.durability=Unbreaking +enchantment.lootBonus=Looting +enchantment.lootBonusDigger=Fortune +enchantment.lootBonusFishing=Luck of the Sea +enchantment.fishingSpeed=Lure +enchantment.arrowDamage=Power +enchantment.arrowFire=Flame +enchantment.arrowKnockback=Punch +enchantment.arrowInfinite=Infinity +enchantment.thorns=Thorns +enchantment.mending=Mending +enchantment.binding_curse=Curse of Binding +enchantment.vanishing_curse=Curse of Vanishing +enchantment.sweeping=Sweeping Edge +enchantment.level.1=I +enchantment.level.2=II +enchantment.level.3=III +enchantment.level.4=IV +enchantment.level.5=V +enchantment.level.6=VI +enchantment.level.7=VII +enchantment.level.8=VIII +enchantment.level.9=IX +enchantment.level.10=X + +# If the product is a written book, this will be displayed instead of %GENERATION% +book.generation.0=Original +book.generation.1=Copy of original +book.generation.2=Copy of a copy +book.generation.3=Tattered + +# If the product is a spawn egg, this will be displayed after 'item.monsterPlacer.name' +entity.Creeper.name=Creeper +entity.Skeleton.name=Skeleton +entity.WitherSkeleton.name=Wither Skeleton +entity.Stray.name=Stray +entity.Spider.name=Spider +entity.Giant.name=Giant +entity.Zombie.name=Zombie +entity.Husk.name=Husk +entity.Slime.name=Slime +entity.Ghast.name=Ghast +entity.PigZombie.name=Zombie Pigman +entity.Enderman.name=Enderman +entity.Endermite.name=Endermite +entity.Silverfish.name=Silverfish +entity.CaveSpider.name=Cave Spider +entity.Blaze.name=Blaze +entity.LavaSlime.name=Magma Cube +entity.MushroomCow.name=Mooshroom +entity.Villager.name=Villager +entity.ZombieVillager.name=Zombie Villager +entity.SnowMan.name=Snow Golem +entity.Witch.name=Witch +entity.Guardian.name=Guardian +entity.ElderGuardian.name=Elder Guardian +entity.Shulker.name=Shulker +entity.PolarBear.name=Polar Bear +entity.EvocationIllager.name=Evoker +entity.Vex.name=Vex +entity.VindicationIllager.name=Vindicator +entity.Pig.name=Pig +entity.Sheep.name=Sheep +entity.Cow.name=Cow +entity.Chicken.name=Chicken +entity.Squid.name=Squid +entity.Wolf.name=Wolf +entity.Ozelot.name=Ocelot +entity.Cat.name=Cat +entity.Bat.name=Bat +entity.Horse.name=Horse +entity.Donkey.name=Donkey +entity.Mule.name=Mule +entity.SkeletonHorse.name=Skeleton Horse +entity.ZombieHorse.name=Zombie Horse +entity.Rabbit.name=Rabbit +entity.KillerBunny.name=The Killer Bunny +entity.Llama.name=Llama +entity.Parrot.name=Parrot +entity.IllusionIllager.name=Illusioner + +# Item names that will be displayed in the hologram +item.nameTag.name=Name Tag +item.leash.name=Lead +item.shovelIron.name=Iron Shovel +item.pickaxeIron.name=Iron Pickaxe +item.hatchetIron.name=Iron Axe +item.flintAndSteel.name=Flint and Steel +item.apple.name=Apple +item.cookie.name=Cookie +item.bow.name=Bow +item.arrow.name=Arrow +item.spectral_arrow.name=Spectral Arrow +item.tipped_arrow.name=Tipped Arrow +item.coal.name=Coal +item.charcoal.name=Charcoal +item.diamond.name=Diamond +item.emerald.name=Emerald +item.ingotIron.name=Iron Ingot +item.ingotGold.name=Gold Ingot +item.swordIron.name=Iron Sword +item.swordWood.name=Wooden Sword +item.shovelWood.name=Wooden Shovel +item.pickaxeWood.name=Wooden Pickaxe +item.hatchetWood.name=Wooden Axe +item.swordStone.name=Stone Sword +item.shovelStone.name=Stone Shovel +item.pickaxeStone.name=Stone Pickaxe +item.hatchetStone.name=Stone Axe +item.swordDiamond.name=Diamond Sword +item.shovelDiamond.name=Diamond Shovel +item.pickaxeDiamond.name=Diamond Pickaxe +item.hatchetDiamond.name=Diamond Axe +item.stick.name=Stick +item.bowl.name=Bowl +item.mushroomStew.name=Mushroom Stew +item.swordGold.name=Golden Sword +item.shovelGold.name=Golden Shovel +item.pickaxeGold.name=Golden Pickaxe +item.hatchetGold.name=Golden Axe +item.string.name=String +item.feather.name=Feather +item.sulphur.name=Gunpowder +item.hoeWood.name=Wooden Hoe +item.hoeStone.name=Stone Hoe +item.hoeIron.name=Iron Hoe +item.hoeDiamond.name=Diamond Hoe +item.hoeGold.name=Golden Hoe +item.seeds.name=Seeds +item.seeds_pumpkin.name=Pumpkin Seeds +item.seeds_melon.name=Melon Seeds +item.melon.name=Melon +item.wheat.name=Wheat +item.bread.name=Bread +item.helmetCloth.name=Leather Cap +item.chestplateCloth.name=Leather Tunic +item.leggingsCloth.name=Leather Pants +item.bootsCloth.name=Leather Boots +item.helmetChain.name=Chain Helmet +item.chestplateChain.name=Chain Chestplate +item.leggingsChain.name=Chain Leggings +item.bootsChain.name=Chain Boots +item.helmetIron.name=Iron Helmet +item.chestplateIron.name=Iron Chestplate +item.leggingsIron.name=Iron Leggings +item.bootsIron.name=Iron Boots +item.helmetDiamond.name=Diamond Helmet +item.chestplateDiamond.name=Diamond Chestplate +item.leggingsDiamond.name=Diamond Leggings +item.bootsDiamond.name=Diamond Boots +item.helmetGold.name=Golden Helmet +item.chestplateGold.name=Golden Chestplate +item.leggingsGold.name=Golden Leggings +item.bootsGold.name=Golden Boots +item.flint.name=Flint +item.porkchopRaw.name=Raw Porkchop +item.porkchopCooked.name=Cooked Porkchop +item.chickenRaw.name=Raw Chicken +item.chickenCooked.name=Cooked Chicken +item.muttonRaw.name=Raw Mutton +item.muttonCooked.name=Cooked Mutton +item.rabbitRaw.name=Raw Rabbit +item.rabbitCooked.name=Cooked Rabbit +item.rabbitStew.name=Rabbit Stew +item.rabbitFoot.name=Rabbit's Foot +item.rabbitHide.name=Rabbit Hide +item.beefRaw.name=Raw Beef +item.beefCooked.name=Steak +item.painting.name=Painting +item.frame.name=Item Frame +item.appleGold.name=Golden Apple +item.sign.name=Sign +item.doorOak.name=Oak Door +item.doorSpruce.name=Spruce Door +item.doorBirch.name=Birch Door +item.doorJungle.name=Jungle Door +item.doorAcacia.name=Acacia Door +item.doorDarkOak.name=Dark Oak Door +item.bucket.name=Bucket +item.bucketWater.name=Water Bucket +item.bucketLava.name=Lava Bucket +item.minecart.name=Minecart +item.saddle.name=Saddle +item.doorIron.name=Iron Door +item.redstone.name=Redstone +item.snowball.name=Snowball +item.boat.oak.name=Oak Boat +item.boat.spruce.name=Spruce Boat +item.boat.birch.name=Birch Boat +item.boat.jungle.name=Jungle Boat +item.boat.acacia.name=Acacia Boat +item.boat.dark_oak.name=Dark Oak Boat +item.leather.name=Leather +item.milk.name=Milk +item.brick.name=Brick +item.clay.name=Clay +item.reeds.name=Sugar Canes +item.paper.name=Paper +item.book.name=Book +item.slimeball.name=Slimeball +item.minecartChest.name=Minecart with Chest +item.minecartFurnace.name=Minecart with Furnace +item.minecartTnt.name=Minecart with TNT +item.minecartHopper.name=Minecart with Hopper +item.minecartCommandBlock.name=Minecart with Command Block +item.egg.name=Egg +item.compass.name=Compass +item.fishingRod.name=Fishing Rod +item.clock.name=Clock +item.yellowDust.name=Glowstone Dust +item.fish.cod.raw.name=Raw Fish +item.fish.salmon.raw.name=Raw Salmon +item.fish.pufferfish.raw.name=Pufferfish +item.fish.clownfish.raw.name=Clownfish +item.fish.cod.cooked.name=Cooked Fish +item.fish.salmon.cooked.name=Cooked Salmon +item.record.name=Music Disc +item.record.13.desc=C418 - 13 +item.record.cat.desc=C418 - cat +item.record.blocks.desc=C418 - blocks +item.record.chirp.desc=C418 - chirp +item.record.far.desc=C418 - far +item.record.mall.desc=C418 - mall +item.record.mellohi.desc=C418 - mellohi +item.record.stal.desc=C418 - stal +item.record.strad.desc=C418 - strad +item.record.ward.desc=C418 - ward +item.record.11.desc=C418 - 11 +item.record.wait.desc=C418 - wait +item.bone.name=Bone +item.dyePowder.black.name=Ink Sac +item.dyePowder.red.name=Rose Red +item.dyePowder.green.name=Cactus Green +item.dyePowder.brown.name=Cocoa Beans +item.dyePowder.blue.name=Lapis Lazuli +item.dyePowder.purple.name=Purple Dye +item.dyePowder.cyan.name=Cyan Dye +item.dyePowder.silver.name=Light Gray Dye +item.dyePowder.gray.name=Gray Dye +item.dyePowder.pink.name=Pink Dye +item.dyePowder.lime.name=Lime Dye +item.dyePowder.yellow.name=Dandelion Yellow +item.dyePowder.lightBlue.name=Light Blue Dye +item.dyePowder.magenta.name=Magenta Dye +item.dyePowder.orange.name=Orange Dye +item.dyePowder.white.name=Bone Meal +item.sugar.name=Sugar +item.cake.name=Cake +item.bed.name=Bed +item.bed.black.name=Black Bed +item.bed.red.name=Red Bed +item.bed.green.name=Green Bed +item.bed.brown.name=Brown Bed +item.bed.blue.name=Blue Bed +item.bed.purple.name=Purple Bed +item.bed.cyan.name=Cyan Bed +item.bed.silver.name=Light Gray Bed +item.bed.gray.name=Gray Bed +item.bed.pink.name=Pink Bed +item.bed.lime.name=Lime Bed +item.bed.yellow.name=Yellow Bed +item.bed.lightBlue.name=Light Blue Bed +item.bed.magenta.name=Magenta Bed +item.bed.orange.name=Orange Bed +item.bed.white.name=White Bed +item.diode.name=Redstone Repeater +item.comparator.name=Redstone Comparator +item.map.name=Map +item.leaves.name=Leaves +item.shears.name=Shears +item.rottenFlesh.name=Rotten Flesh +item.enderPearl.name=Ender Pearl +item.blazeRod.name=Blaze Rod +item.ghastTear.name=Ghast Tear +item.netherStalkSeeds.name=Nether Wart +item.potion.name=Potion +item.end_crystal.name=End Crystal +item.goldNugget.name=Gold Nugget +item.glassBottle.name=Glass Bottle +item.spiderEye.name=Spider Eye +item.fermentedSpiderEye.name=Fermented Spider Eye +item.blazePowder.name=Blaze Powder +item.magmaCream.name=Magma Cream +item.cauldron.name=Cauldron +item.brewingStand.name=Brewing Stand +item.eyeOfEnder.name=Eye of Ender +item.speckledMelon.name=Glistering Melon +item.monsterPlacer.name=Spawn +item.expBottle.name=Bottle o' Enchanting +item.fireball.name=Fire Charge +item.writingBook.name=Book and Quill +item.writtenBook.name=Written Book +item.flowerPot.name=Flower Pot +item.emptyMap.name=Empty Map +item.carrots.name=Carrot +item.carrotGolden.name=Golden Carrot +item.potato.name=Potato +item.potatoBaked.name=Baked Potato +item.potatoPoisonous.name=Poisonous Potato +item.skull.skeleton.name=Skeleton Skull +item.skull.wither.name=Wither Skeleton Skull +item.skull.zombie.name=Zombie Head +item.skull.char.name=Head +item.skull.player.name=%s's Head +item.skull.creeper.name=Creeper Head +item.skull.dragon.name=Dragon Head +item.carrotOnAStick.name=Carrot on a Stick +item.netherStar.name=Nether Star +item.pumpkinPie.name=Pumpkin Pie +item.enchantedBook.name=Enchanted Book +item.fireworks.name=Firework Rocket +item.fireworks.flight=Flight Duration: +item.fireworksCharge.name=Firework Star +item.fireworksCharge.black=Black +item.fireworksCharge.red=Red +item.fireworksCharge.green=Green +item.fireworksCharge.brown=Brown +item.fireworksCharge.blue=Blue +item.fireworksCharge.purple=Purple +item.fireworksCharge.cyan=Cyan +item.fireworksCharge.silver=Light Gray +item.fireworksCharge.gray=Gray +item.fireworksCharge.pink=Pink +item.fireworksCharge.lime=Lime +item.fireworksCharge.yellow=Yellow +item.fireworksCharge.lightBlue=Light Blue +item.fireworksCharge.magenta=Magenta +item.fireworksCharge.orange=Orange +item.fireworksCharge.white=White +item.fireworksCharge.customColor=Custom +item.fireworksCharge.fadeTo=Fade to +item.fireworksCharge.flicker=Twinkle +item.fireworksCharge.trail=Trail +item.fireworksCharge.type.0=Small Ball +item.fireworksCharge.type.1=Large Ball +item.fireworksCharge.type.2=Star-shaped +item.fireworksCharge.type.3=Creeper-shaped +item.fireworksCharge.type.4=Burst +item.fireworksCharge.type=Unknown Shape +item.netherbrick.name=Nether Brick +item.netherquartz.name=Nether Quartz +item.armorStand.name=Armor Stand +item.horsearmormetal.name=Iron Horse Armor +item.horsearmorgold.name=Gold Horse Armor +item.horsearmordiamond.name=Diamond Horse Armor +item.prismarineShard.name=Prismarine Shard +item.prismarineCrystals.name=Prismarine Crystals +item.chorusFruit.name=Chorus Fruit +item.chorusFruitPopped.name=Popped Chorus Fruit +item.beetroot.name=Beetroot +item.beetroot_seeds.name=Beetroot Seeds +item.beetroot_soup.name=Beetroot Soup +item.dragon_breath.name=Dragon's Breath +item.elytra.name=Elytra +item.shield.name=Shield +item.shield.black.name=Black Shield +item.shield.red.name=Red Shield +item.shield.green.name=Green Shield +item.shield.brown.name=Brown Shield +item.shield.blue.name=Blue Shield +item.shield.purple.name=Purple Shield +item.shield.cyan.name=Cyan Shield +item.shield.silver.name=Light Gray Shield +item.shield.gray.name=Gray Shield +item.shield.pink.name=Pink Shield +item.shield.lime.name=Lime Shield +item.shield.yellow.name=Yellow Shield +item.shield.lightBlue.name=Light Blue Shield +item.shield.magenta.name=Magenta Shield +item.shield.orange.name=Orange Shield +item.shield.white.name=White Shield +item.banner.black.name=Black Banner +item.banner.red.name=Red Banner +item.banner.green.name=Green Banner +item.banner.brown.name=Brown Banner +item.banner.blue.name=Blue Banner +item.banner.purple.name=Purple Banner +item.banner.cyan.name=Cyan Banner +item.banner.silver.name=Light Gray Banner +item.banner.gray.name=Gray Banner +item.banner.pink.name=Pink Banner +item.banner.lime.name=Lime Banner +item.banner.yellow.name=Yellow Banner +item.banner.lightBlue.name=Light Blue Banner +item.banner.magenta.name=Magenta Banner +item.banner.orange.name=Orange Banner +item.banner.white.name=White Banner +item.totem.name=Totem of Undying +item.shulkerShell.name=Shulker Shell +item.ironNugget.name=Iron Nugget +item.knowledgeBook.name=Knowledge Book + +# Block names that will be displayed in the hologram +tile.barrier.name=Barrier +tile.stone.stone.name=Stone +tile.stone.granite.name=Granite +tile.stone.graniteSmooth.name=Polished Granite +tile.stone.diorite.name=Diorite +tile.stone.dioriteSmooth.name=Polished Diorite +tile.stone.andesite.name=Andesite +tile.stone.andesiteSmooth.name=Polished Andesite +tile.hayBlock.name=Hay Bale +tile.grass.name=Grass Block +tile.dirt.name=Dirt +tile.dirt.default.name=Dirt +tile.dirt.coarse.name=Coarse Dirt +tile.dirt.podzol.name=Podzol +tile.stonebrick.name=Cobblestone +tile.wood.name=Wooden Planks +tile.wood.oak.name=Oak Wood Planks +tile.wood.spruce.name=Spruce Wood Planks +tile.wood.birch.name=Birch Wood Planks +tile.wood.jungle.name=Jungle Wood Planks +tile.wood.acacia.name=Acacia Wood Planks +tile.wood.big_oak.name=Dark Oak Wood Planks +tile.sapling.oak.name=Oak Sapling +tile.sapling.spruce.name=Spruce Sapling +tile.sapling.birch.name=Birch Sapling +tile.sapling.jungle.name=Jungle Sapling +tile.sapling.acacia.name=Acacia Sapling +tile.sapling.big_oak.name=Dark Oak Sapling +tile.deadbush.name=Dead Bush +tile.bedrock.name=Bedrock +tile.water.name=Water +tile.lava.name=Lava +tile.sand.name=Sand +tile.sand.default.name=Sand +tile.sand.red.name=Red Sand +tile.sandStone.name=Sandstone +tile.sandStone.default.name=Sandstone +tile.sandStone.chiseled.name=Chiseled Sandstone +tile.sandStone.smooth.name=Smooth Sandstone +tile.redSandStone.name=Red Sandstone +tile.redSandStone.default.name=Red Sandstone +tile.redSandStone.chiseled.name=Chiseled Red Sandstone +tile.redSandStone.smooth.name=Smooth Red Sandstone +tile.gravel.name=Gravel +tile.oreGold.name=Gold Ore +tile.oreIron.name=Iron Ore +tile.oreCoal.name=Coal Ore +tile.log.name=Wood +tile.log.oak.name=Oak Wood +tile.log.spruce.name=Spruce Wood +tile.log.birch.name=Birch Wood +tile.log.jungle.name=Jungle Wood +tile.log.acacia.name=Acacia Wood +tile.log.big_oak.name=Dark Oak Wood +tile.leaves.name=Leaves +tile.leaves.oak.name=Oak Leaves +tile.leaves.spruce.name=Spruce Leaves +tile.leaves.birch.name=Birch Leaves +tile.leaves.jungle.name=Jungle Leaves +tile.leaves.acacia.name=Acacia Leaves +tile.leaves.big_oak.name=Dark Oak Leaves +tile.tallgrass.name=Grass +tile.tallgrass.shrub.name=Shrub +tile.tallgrass.grass.name=Grass +tile.tallgrass.fern.name=Fern +tile.sponge.dry.name=Sponge +tile.sponge.wet.name=Wet Sponge +tile.glass.name=Glass +tile.stainedGlass.name=Stained Glass +tile.stainedGlass.black.name=Black Stained Glass +tile.stainedGlass.red.name=Red Stained Glass +tile.stainedGlass.green.name=Green Stained Glass +tile.stainedGlass.brown.name=Brown Stained Glass +tile.stainedGlass.blue.name=Blue Stained Glass +tile.stainedGlass.purple.name=Purple Stained Glass +tile.stainedGlass.cyan.name=Cyan Stained Glass +tile.stainedGlass.silver.name=Light Gray Stained Glass +tile.stainedGlass.gray.name=Gray Stained Glass +tile.stainedGlass.pink.name=Pink Stained Glass +tile.stainedGlass.lime.name=Lime Stained Glass +tile.stainedGlass.yellow.name=Yellow Stained Glass +tile.stainedGlass.lightBlue.name=Light Blue Stained Glass +tile.stainedGlass.magenta.name=Magenta Stained Glass +tile.stainedGlass.orange.name=Orange Stained Glass +tile.stainedGlass.white.name=White Stained Glass +tile.thinStainedGlass.name=Stained Glass Pane +tile.thinStainedGlass.black.name=Black Stained Glass Pane +tile.thinStainedGlass.red.name=Red Stained Glass Pane +tile.thinStainedGlass.green.name=Green Stained Glass Pane +tile.thinStainedGlass.brown.name=Brown Stained Glass Pane +tile.thinStainedGlass.blue.name=Blue Stained Glass Pane +tile.thinStainedGlass.purple.name=Purple Stained Glass Pane +tile.thinStainedGlass.cyan.name=Cyan Stained Glass Pane +tile.thinStainedGlass.silver.name=Light Gray Stained Glass Pane +tile.thinStainedGlass.gray.name=Gray Stained Glass Pane +tile.thinStainedGlass.pink.name=Pink Stained Glass Pane +tile.thinStainedGlass.lime.name=Lime Stained Glass Pane +tile.thinStainedGlass.yellow.name=Yellow Stained Glass Pane +tile.thinStainedGlass.lightBlue.name=Light Blue Stained Glass Pane +tile.thinStainedGlass.magenta.name=Magenta Stained Glass Pane +tile.thinStainedGlass.orange.name=Orange Stained Glass Pane +tile.thinStainedGlass.white.name=White Stained Glass Pane +tile.thinGlass.name=Glass Pane +tile.cloth.name=Wool +tile.flower1.name=Flower +tile.flower1.dandelion.name=Dandelion +tile.flower2.name=Flower +tile.flower2.poppy.name=Poppy +tile.flower2.blueOrchid.name=Blue Orchid +tile.flower2.allium.name=Allium +tile.flower2.houstonia.name=Azure Bluet +tile.flower2.tulipRed.name=Red Tulip +tile.flower2.tulipOrange.name=Orange Tulip +tile.flower2.tulipWhite.name=White Tulip +tile.flower2.tulipPink.name=Pink Tulip +tile.flower2.oxeyeDaisy.name=Oxeye Daisy +tile.doublePlant.name=Plant +tile.doublePlant.sunflower.name=Sunflower +tile.doublePlant.syringa.name=Lilac +tile.doublePlant.grass.name=Double Tallgrass +tile.doublePlant.fern.name=Large Fern +tile.doublePlant.rose.name=Rose Bush +tile.doublePlant.paeonia.name=Peony +tile.mushroom.name=Mushroom +tile.blockGold.name=Block of Gold +tile.blockIron.name=Block of Iron +tile.stoneSlab.name=Stone Slab +tile.stoneSlab.stone.name=Stone Slab +tile.stoneSlab.sand.name=Sandstone Slab +tile.stoneSlab.wood.name=Wooden Slab +tile.stoneSlab.cobble.name=Cobblestone Slab +tile.stoneSlab.brick.name=Bricks Slab +tile.stoneSlab.smoothStoneBrick.name=Stone Bricks Slab +tile.stoneSlab.netherBrick.name=Nether Brick Slab +tile.stoneSlab.quartz.name=Quartz Slab +tile.stoneSlab2.red_sandstone.name=Red Sandstone Slab +tile.woodSlab.name=Wood Slab +tile.woodSlab.oak.name=Oak Wood Slab +tile.woodSlab.spruce.name=Spruce Wood Slab +tile.woodSlab.birch.name=Birch Wood Slab +tile.woodSlab.jungle.name=Jungle Wood Slab +tile.woodSlab.acacia.name=Acacia Wood Slab +tile.woodSlab.big_oak.name=Dark Oak Wood Slab +tile.brick.name=Bricks +tile.tnt.name=TNT +tile.bookshelf.name=Bookshelf +tile.stoneMoss.name=Moss Stone +tile.obsidian.name=Obsidian +tile.torch.name=Torch +tile.fire.name=Fire +tile.mobSpawner.name=Monster Spawner +tile.stairsWood.name=Oak Wood Stairs +tile.stairsWoodSpruce.name=Spruce Wood Stairs +tile.stairsWoodBirch.name=Birch Wood Stairs +tile.stairsWoodJungle.name=Jungle Wood Stairs +tile.stairsWoodAcacia.name=Acacia Wood Stairs +tile.stairsWoodDarkOak.name=Dark Oak Wood Stairs +tile.chest.name=Chest +tile.chestTrap.name=Trapped Chest +tile.redstoneDust.name=Redstone Dust +tile.oreDiamond.name=Diamond Ore +tile.blockCoal.name=Block of Coal +tile.blockDiamond.name=Block of Diamond +tile.workbench.name=Crafting Table +tile.crops.name=Crops +tile.farmland.name=Farmland +tile.furnace.name=Furnace +tile.sign.name=Sign +tile.doorWood.name=Wooden Door +tile.ladder.name=Ladder +tile.rail.name=Rail +tile.goldenRail.name=Powered Rail +tile.activatorRail.name=Activator Rail +tile.detectorRail.name=Detector Rail +tile.stairsStone.name=Cobblestone Stairs +tile.stairsSandStone.name=Sandstone Stairs +tile.stairsRedSandStone.name=Red Sandstone Stairs +tile.lever.name=Lever +tile.pressurePlateStone.name=Stone Pressure Plate +tile.pressurePlateWood.name=Wooden Pressure Plate +tile.weightedPlate_light.name=Weighted Pressure Plate (Light) +tile.weightedPlate_heavy.name=Weighted Pressure Plate (Heavy) +tile.doorIron.name=Iron Door +tile.oreRedstone.name=Redstone Ore +tile.notGate.name=Redstone Torch +tile.button.name=Button +tile.snow.name=Snow +tile.woolCarpet.name=Carpet +tile.woolCarpet.black.name=Black Carpet +tile.woolCarpet.red.name=Red Carpet +tile.woolCarpet.green.name=Green Carpet +tile.woolCarpet.brown.name=Brown Carpet +tile.woolCarpet.blue.name=Blue Carpet +tile.woolCarpet.purple.name=Purple Carpet +tile.woolCarpet.cyan.name=Cyan Carpet +tile.woolCarpet.silver.name=Light Gray Carpet +tile.woolCarpet.gray.name=Gray Carpet +tile.woolCarpet.pink.name=Pink Carpet +tile.woolCarpet.lime.name=Lime Carpet +tile.woolCarpet.yellow.name=Yellow Carpet +tile.woolCarpet.lightBlue.name=Light Blue Carpet +tile.woolCarpet.magenta.name=Magenta Carpet +tile.woolCarpet.orange.name=Orange Carpet +tile.woolCarpet.white.name=White Carpet +tile.ice.name=Ice +tile.frostedIce.name=Frosted Ice +tile.icePacked.name=Packed Ice +tile.cactus.name=Cactus +tile.clay.name=Clay +tile.clayHardenedStained.name=Stained Terracotta +tile.clayHardenedStained.black.name=Black Terracotta +tile.clayHardenedStained.red.name=Red Terracotta +tile.clayHardenedStained.green.name=Green Terracotta +tile.clayHardenedStained.brown.name=Brown Terracotta +tile.clayHardenedStained.blue.name=Blue Terracotta +tile.clayHardenedStained.purple.name=Purple Terracotta +tile.clayHardenedStained.cyan.name=Cyan Terracotta +tile.clayHardenedStained.silver.name=Light Gray Terracotta +tile.clayHardenedStained.gray.name=Gray Terracotta +tile.clayHardenedStained.pink.name=Pink Terracotta +tile.clayHardenedStained.lime.name=Lime Terracotta +tile.clayHardenedStained.yellow.name=Yellow Terracotta +tile.clayHardenedStained.lightBlue.name=Light Blue Terracotta +tile.clayHardenedStained.magenta.name=Magenta Terracotta +tile.clayHardenedStained.orange.name=Orange Terracotta +tile.clayHardenedStained.white.name=White Terracotta +tile.clayHardened.name=Terracotta +tile.reeds.name=Sugar cane +tile.jukebox.name=Jukebox +tile.fence.name=Oak Fence +tile.spruceFence.name=Spruce Fence +tile.birchFence.name=Birch Fence +tile.jungleFence.name=Jungle Fence +tile.darkOakFence.name=Dark Oak Fence +tile.acaciaFence.name=Acacia Fence +tile.fenceGate.name=Oak Fence Gate +tile.spruceFenceGate.name=Spruce Fence Gate +tile.birchFenceGate.name=Birch Fence Gate +tile.jungleFenceGate.name=Jungle Fence Gate +tile.darkOakFenceGate.name=Dark Oak Fence Gate +tile.acaciaFenceGate.name=Acacia Fence Gate +tile.pumpkinStem.name=Pumpkin Stem +tile.pumpkin.name=Pumpkin +tile.litpumpkin.name=Jack o'Lantern +tile.hellrock.name=Netherrack +tile.hellsand.name=Soul Sand +tile.lightgem.name=Glowstone +tile.portal.name=Portal +tile.cloth.black.name=Black Wool +tile.cloth.red.name=Red Wool +tile.cloth.green.name=Green Wool +tile.cloth.brown.name=Brown Wool +tile.cloth.blue.name=Blue Wool +tile.cloth.purple.name=Purple Wool +tile.cloth.cyan.name=Cyan Wool +tile.cloth.silver.name=Light Gray Wool +tile.cloth.gray.name=Gray Wool +tile.cloth.pink.name=Pink Wool +tile.cloth.lime.name=Lime Wool +tile.cloth.yellow.name=Yellow Wool +tile.cloth.lightBlue.name=Light Blue Wool +tile.cloth.magenta.name=Magenta Wool +tile.cloth.orange.name=Orange Wool +tile.cloth.white.name=White Wool +tile.oreLapis.name=Lapis Lazuli Ore +tile.blockLapis.name=Lapis Lazuli Block +tile.dispenser.name=Dispenser +tile.dropper.name=Dropper +tile.musicBlock.name=Note Block +tile.cake.name=Cake +tile.bed.name=Bed +tile.lockedchest.name=Locked chest +tile.trapdoor.name=Wooden Trapdoor +tile.ironTrapdoor.name=Iron Trapdoor +tile.web.name=Cobweb +tile.stonebricksmooth.name=Stone Bricks +tile.stonebricksmooth.default.name=Stone Bricks +tile.stonebricksmooth.mossy.name=Mossy Stone Bricks +tile.stonebricksmooth.cracked.name=Cracked Stone Bricks +tile.stonebricksmooth.chiseled.name=Chiseled Stone Bricks +tile.monsterStoneEgg.name=Stone Monster Egg +tile.monsterStoneEgg.stone.name=Stone Monster Egg +tile.monsterStoneEgg.cobble.name=Cobblestone Monster Egg +tile.monsterStoneEgg.brick.name=Stone Brick Monster Egg +tile.monsterStoneEgg.mossybrick.name=Mossy Stone Brick Monster Egg +tile.monsterStoneEgg.crackedbrick.name=Cracked Stone Brick Monster Egg +tile.monsterStoneEgg.chiseledbrick.name=Chiseled Stone Brick Monster Egg +tile.pistonBase.name=Piston +tile.pistonStickyBase.name=Sticky Piston +tile.fenceIron.name=Iron Bars +tile.melon.name=Melon +tile.stairsBrick.name=Brick Stairs +tile.stairsStoneBrickSmooth.name=Stone Brick Stairs +tile.vine.name=Vines +tile.netherBrick.name=Nether Brick +tile.netherFence.name=Nether Brick Fence +tile.stairsNetherBrick.name=Nether Brick Stairs +tile.netherStalk.name=Nether Wart +tile.cauldron.name=Cauldron +tile.enchantmentTable.name=Enchantment Table +tile.anvil.name=Anvil +tile.anvil.intact.name=Anvil +tile.anvil.slightlyDamaged.name=Slightly Damaged Anvil +tile.anvil.veryDamaged.name=Very Damaged Anvil +tile.whiteStone.name=End Stone +tile.endPortalFrame.name=End Portal +tile.mycel.name=Mycelium +tile.waterlily.name=Lily Pad +tile.dragonEgg.name=Dragon Egg +tile.redstoneLight.name=Redstone Lamp +tile.cocoa.name=Cocoa +tile.enderChest.name=Ender Chest +tile.oreEmerald.name=Emerald Ore +tile.blockEmerald.name=Block of Emerald +tile.blockRedstone.name=Block of Redstone +tile.tripWire.name=Tripwire +tile.tripWireSource.name=Tripwire Hook +tile.commandBlock.name=Command Block +tile.repeatingCommandBlock.name=Repeating Command Block +tile.chainCommandBlock.name=Chain Command Block +tile.beacon.name=Beacon +tile.cobbleWall.normal.name=Cobblestone Wall +tile.cobbleWall.mossy.name=Mossy Cobblestone Wall +tile.carrots.name=Carrots +tile.potatoes.name=Potatoes +tile.daylightDetector.name=Daylight Sensor +tile.netherquartz.name=Nether Quartz Ore +tile.hopper.name=Hopper +tile.quartzBlock.name=Block of Quartz +tile.quartzBlock.default.name=Block of Quartz +tile.quartzBlock.chiseled.name=Chiseled Quartz Block +tile.quartzBlock.lines.name=Pillar Quartz Block +tile.stairsQuartz.name=Quartz Stairs +tile.slime.name=Slime Block +tile.prismarine.rough.name=Prismarine +tile.prismarine.bricks.name=Prismarine Bricks +tile.prismarine.dark.name=Dark Prismarine +tile.seaLantern.name=Sea Lantern +tile.endRod.name=End Rod +tile.chorusPlant.name=Chorus Plant +tile.chorusFlower.name=Chorus Flower +tile.purpurBlock.name=Purpur Block +tile.purpurPillar.name=Purpur Pillar +tile.stairsPurpur.name=Purpur Stairs +tile.purpurSlab.name=Purpur Slab +tile.endBricks.name=End Stone Bricks +tile.beetroots.name=Beetroots +tile.grassPath.name=Grass Path +tile.magma.name=Magma Block +tile.netherWartBlock.name=Nether Wart Block +tile.redNetherBrick.name=Red Nether Brick +tile.boneBlock.name=Bone Block +tile.observer.name=Observer +tile.shulkerBoxWhite.name=White Shulker Box +tile.shulkerBoxOrange.name=Orange Shulker Box +tile.shulkerBoxMagenta.name=Magenta Shulker Box +tile.shulkerBoxLightBlue.name=Light Blue Shulker Box +tile.shulkerBoxYellow.name=Yellow Shulker Box +tile.shulkerBoxLime.name=Lime Shulker Box +tile.shulkerBoxPink.name=Pink Shulker Box +tile.shulkerBoxGray.name=Gray Shulker Box +tile.shulkerBoxSilver.name=Light Gray Shulker Box +tile.shulkerBoxCyan.name=Cyan Shulker Box +tile.shulkerBoxPurple.name=Purple Shulker Box +tile.shulkerBoxBlue.name=Blue Shulker Box +tile.shulkerBoxBrown.name=Brown Shulker Box +tile.shulkerBoxGreen.name=Green Shulker Box +tile.shulkerBoxRed.name=Red Shulker Box +tile.shulkerBoxBlack.name=Black Shulker Box +tile.glazedTerracottaWhite.name=White Glazed Terracotta +tile.glazedTerracottaOrange.name=Orange Glazed Terracotta +tile.glazedTerracottaMagenta.name=Magenta Glazed Terracotta +tile.glazedTerracottaLightBlue.name=Light Blue Glazed Terracotta +tile.glazedTerracottaYellow.name=Yellow Glazed Terracotta +tile.glazedTerracottaLime.name=Lime Glazed Terracotta +tile.glazedTerracottaPink.name=Pink Glazed Terracotta +tile.glazedTerracottaGray.name=Gray Glazed Terracotta +tile.glazedTerracottaSilver.name=Light Gray Glazed Terracotta +tile.glazedTerracottaCyan.name=Cyan Glazed Terracotta +tile.glazedTerracottaPurple.name=Purple Glazed Terracotta +tile.glazedTerracottaBlue.name=Blue Glazed Terracotta +tile.glazedTerracottaBrown.name=Brown Glazed Terracotta +tile.glazedTerracottaGreen.name=Green Glazed Terracotta +tile.glazedTerracottaRed.name=Red Glazed Terracotta +tile.glazedTerracottaBlack.name=Black Glazed Terracotta +tile.concrete.black.name=Black Concrete +tile.concrete.red.name=Red Concrete +tile.concrete.green.name=Green Concrete +tile.concrete.brown.name=Brown Concrete +tile.concrete.blue.name=Blue Concrete +tile.concrete.purple.name=Purple Concrete +tile.concrete.cyan.name=Cyan Concrete +tile.concrete.silver.name=Light Gray Concrete +tile.concrete.gray.name=Gray Concrete +tile.concrete.pink.name=Pink Concrete +tile.concrete.lime.name=Lime Concrete +tile.concrete.yellow.name=Yellow Concrete +tile.concrete.lightBlue.name=Light Blue Concrete +tile.concrete.magenta.name=Magenta Concrete +tile.concrete.orange.name=Orange Concrete +tile.concrete.white.name=White Concrete +tile.concretePowder.black.name=Black Concrete Powder +tile.concretePowder.red.name=Red Concrete Powder +tile.concretePowder.green.name=Green Concrete Powder +tile.concretePowder.brown.name=Brown Concrete Powder +tile.concretePowder.blue.name=Blue Concrete Powder +tile.concretePowder.purple.name=Purple Concrete Powder +tile.concretePowder.cyan.name=Cyan Concrete Powder +tile.concretePowder.silver.name=Light Gray Concrete Powder +tile.concretePowder.gray.name=Gray Concrete Powder +tile.concretePowder.pink.name=Pink Concrete Powder +tile.concretePowder.lime.name=Lime Concrete Powder +tile.concretePowder.yellow.name=Yellow Concrete Powder +tile.concretePowder.lightBlue.name=Light Blue Concrete Powder +tile.concretePowder.magenta.name=Magenta Concrete Powder +tile.concretePowder.orange.name=Orange Concrete Powder +tile.concretePowder.white.name=White Concrete Powder +tile.structureVoid.name=Structure Void +tile.structureBlock.name=Structure Block \ No newline at end of file