123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535 |
- package com.gmail.nossr50.util;
- import org.bukkit.Material;
- import java.util.HashSet;
- import java.util.Locale;
- /**
- * Stores hash tables for item and block names
- * This allows for better support across multiple versions of Minecraft
- *
- * This is a temporary class, mcMMO is spaghetti and I'l clean it up later
- *
- */
- public class MaterialMapStore {
- private HashSet<String> abilityBlackList;
- private HashSet<String> toolBlackList;
- private HashSet<String> mossyWhiteList;
- private HashSet<String> leavesWhiteList;
- private HashSet<String> herbalismAbilityBlackList;
- private HashSet<String> blockCrackerWhiteList;
- private HashSet<String> canMakeShroomyWhiteList;
- private HashSet<String> multiBlockPlant;
- private HashSet<String> foodItemWhiteList;
- private HashSet<String> glassBlocks;
- private HashSet<String> netherriteArmor;
- private HashSet<String> netherriteTools;
- public MaterialMapStore()
- {
- abilityBlackList = new HashSet<>();
- toolBlackList = new HashSet<>();
- mossyWhiteList = new HashSet<>();
- leavesWhiteList = new HashSet<>();
- herbalismAbilityBlackList = new HashSet<>();
- blockCrackerWhiteList = new HashSet<>();
- canMakeShroomyWhiteList = new HashSet<>();
- multiBlockPlant = new HashSet<>();
- foodItemWhiteList = new HashSet<>();
- glassBlocks = new HashSet<>();
- netherriteArmor = new HashSet<>();
- netherriteTools = new HashSet<>();
- fillHardcodedHashSets();
- }
- public boolean isMultiBlockPlant(Material material)
- {
- return multiBlockPlant.contains(material.getKey().getKey());
- }
- public boolean isAbilityActivationBlackListed(Material material)
- {
- return abilityBlackList.contains(material.getKey().getKey());
- }
- public boolean isToolActivationBlackListed(Material material)
- {
- return toolBlackList.contains(material.getKey().getKey());
- }
- public boolean isMossyWhiteListed(Material material)
- {
- return mossyWhiteList.contains(material.getKey().getKey());
- }
- public boolean isLeavesWhiteListed(Material material)
- {
- return leavesWhiteList.contains(material.getKey().getKey());
- }
- public boolean isHerbalismAbilityWhiteListed(Material material)
- {
- return herbalismAbilityBlackList.contains(material.getKey().getKey());
- }
- public boolean isBlockCrackerWhiteListed(Material material)
- {
- return blockCrackerWhiteList.contains(material.getKey().getKey());
- }
- public boolean isShroomyWhiteListed(Material material)
- {
- return canMakeShroomyWhiteList.contains(material.getKey().getKey());
- }
- private void fillHardcodedHashSets()
- {
- fillAbilityBlackList();
- fillToolBlackList();
- fillMossyWhiteList();
- fillLeavesWhiteList();
- fillHerbalismAbilityBlackList();
- fillBlockCrackerWhiteList();
- fillShroomyWhiteList();
- fillMultiBlockPlantSet();
- fillFoodWhiteList();
- fillGlassBlockWhiteList();
- fillNetherriteWhiteList();
- }
- private void fillNetherriteWhiteList() {
- netherriteTools.add("netherrite_sword");
- netherriteTools.add("netherrite_axe");
- netherriteTools.add("netherrite_hoe");
- netherriteTools.add("netherrite_pickaxe");
- netherriteTools.add("netherrite_shovel");
- netherriteArmor.add("netherrite_helmet");
- netherriteArmor.add("netherrite_chestplate");
- netherriteArmor.add("netherrite_leggings");
- netherriteArmor.add("netherrite_boots");
- }
- private void fillGlassBlockWhiteList() {
- glassBlocks.add("glass");
- glassBlocks.add("glass_pane");
- glassBlocks.add("black_stained_glass");
- glassBlocks.add("black_stained_glass_pane");
- glassBlocks.add("blue_stained_glass");
- glassBlocks.add("blue_stained_glass_pane");
- glassBlocks.add("brown_stained_glass");
- glassBlocks.add("brown_stained_glass_pane");
- glassBlocks.add("cyan_stained_glass");
- glassBlocks.add("cyan_stained_glass_pane");
- glassBlocks.add("gray_stained_glass");
- glassBlocks.add("gray_stained_glass_pane");
- glassBlocks.add("green_stained_glass");
- glassBlocks.add("green_stained_glass_pane");
- glassBlocks.add("light_blue_stained_glass");
- glassBlocks.add("light_blue_stained_glass_pane");
- glassBlocks.add("light_gray_stained_glass");
- glassBlocks.add("light_gray_stained_glass_pane");
- glassBlocks.add("lime_stained_glass");
- glassBlocks.add("lime_stained_glass_pane");
- glassBlocks.add("magenta_stained_glass");
- glassBlocks.add("magenta_stained_glass_pane");
- glassBlocks.add("orange_stained_glass");
- glassBlocks.add("orange_stained_glass_pane");
- glassBlocks.add("pink_stained_glass");
- glassBlocks.add("pink_stained_glass_pane");
- glassBlocks.add("purple_stained_glass");
- glassBlocks.add("purple_stained_glass_pane");
- glassBlocks.add("red_stained_glass");
- glassBlocks.add("red_stained_glass_pane");
- glassBlocks.add("white_stained_glass");
- glassBlocks.add("white_stained_glass_pane");
- glassBlocks.add("yellow_stained_glass");
- glassBlocks.add("yellow_stained_glass_pane");
- }
- private void fillFoodWhiteList() {
- foodItemWhiteList.add("apple");
- foodItemWhiteList.add("baked_potato");
- foodItemWhiteList.add("beetroot");
- foodItemWhiteList.add("beetroot_soup");
- foodItemWhiteList.add("bread");
- foodItemWhiteList.add("cake");
- foodItemWhiteList.add("carrot");
- foodItemWhiteList.add("chorus_fruit");
- foodItemWhiteList.add("cooked_chicken");
- foodItemWhiteList.add("cooked_cod");
- foodItemWhiteList.add("cooked_mutton");
- foodItemWhiteList.add("cooked_porkchop");
- foodItemWhiteList.add("cooked_rabbit");
- foodItemWhiteList.add("cooked_salmon");
- foodItemWhiteList.add("cookie");
- foodItemWhiteList.add("dried_kelp");
- foodItemWhiteList.add("golden_apple");
- foodItemWhiteList.add("enchanted_golden_apple");
- foodItemWhiteList.add("golden_carrot");
- foodItemWhiteList.add("melon_slice");
- foodItemWhiteList.add("mushroom_stew");
- foodItemWhiteList.add("poisonous_potato");
- foodItemWhiteList.add("potato");
- foodItemWhiteList.add("pumpkin_pie");
- foodItemWhiteList.add("rabbit_stew");
- foodItemWhiteList.add("raw_beef");
- foodItemWhiteList.add("raw_chicken");
- foodItemWhiteList.add("raw_cod");
- foodItemWhiteList.add("raw_mutton");
- foodItemWhiteList.add("raw_porkchop");
- foodItemWhiteList.add("raw_rabbit");
- foodItemWhiteList.add("raw_salmon");
- foodItemWhiteList.add("rotten_flesh");
- foodItemWhiteList.add("suspicious_stew");
- foodItemWhiteList.add("sweet_berries");
- foodItemWhiteList.add("tropical_fish");
- }
- public boolean isNetherriteArmor(Material material) {
- return netherriteArmor.contains(material.getKey().getKey());
- }
- public boolean isNetherriteTool(Material material) {
- return netherriteTools.contains(material.getKey().getKey());
- }
- public boolean isGlass(Material material) {
- return glassBlocks.contains(material.getKey().getKey());
- }
- public boolean isFood(Material material) {
- return foodItemWhiteList.contains(material.getKey().getKey());
- }
- private void fillMultiBlockPlantSet()
- {
- //Single Block Plants
- // plantBlockSet.add("melon");
- // plantBlockSet.add("pumpkin");
- // plantBlockSet.add("potatoes");
- // plantBlockSet.add("carrots");
- // plantBlockSet.add("beetroots");
- // plantBlockSet.add("nether_wart");
- // plantBlockSet.add("grass");
- // plantBlockSet.add("fern");
- // plantBlockSet.add("large_fern");
- //Multi-Block Plants
- multiBlockPlant.add("cactus");
- multiBlockPlant.add("chorus_plant");
- multiBlockPlant.add("chorus_flower");
- multiBlockPlant.add("sugar_cane");
- multiBlockPlant.add("kelp_plant");
- multiBlockPlant.add("kelp");
- multiBlockPlant.add("tall_seagrass");
- multiBlockPlant.add("large_fern");
- multiBlockPlant.add("tall_grass");
- multiBlockPlant.add("bamboo");
- }
- private void fillShroomyWhiteList()
- {
- canMakeShroomyWhiteList.add("dirt");
- canMakeShroomyWhiteList.add("grass");
- canMakeShroomyWhiteList.add("grass_path");
- }
- private void fillBlockCrackerWhiteList()
- {
- blockCrackerWhiteList.add("stone_bricks");
- blockCrackerWhiteList.add("infested_stone_bricks");
- }
- private void fillHerbalismAbilityBlackList()
- {
- herbalismAbilityBlackList.add("dirt");
- herbalismAbilityBlackList.add("grass");
- herbalismAbilityBlackList.add("grass_path");
- herbalismAbilityBlackList.add("farmland");
- }
- private void fillLeavesWhiteList()
- {
- leavesWhiteList.add("oak_leaves");
- leavesWhiteList.add("acacia_leaves");
- leavesWhiteList.add("birch_leaves");
- leavesWhiteList.add("dark_oak_leaves");
- leavesWhiteList.add("jungle_leaves");
- leavesWhiteList.add("spruce_leaves");
- }
- private void fillMossyWhiteList()
- {
- mossyWhiteList.add("cobblestone");
- mossyWhiteList.add("dirt");
- mossyWhiteList.add("grass_path");
- mossyWhiteList.add("stone_bricks");
- mossyWhiteList.add("cobblestone_wall");
- }
- private void fillAbilityBlackList()
- {
- abilityBlackList.add("black_bed");
- abilityBlackList.add("blue_bed");
- abilityBlackList.add("brown_bed");
- abilityBlackList.add("cyan_bed");
- abilityBlackList.add("gray_bed");
- abilityBlackList.add("green_bed");
- abilityBlackList.add("light_blue_bed");
- abilityBlackList.add("light_gray_bed");
- abilityBlackList.add("lime_bed");
- abilityBlackList.add("magenta_bed");
- abilityBlackList.add("orange_bed");
- abilityBlackList.add("pink_bed");
- abilityBlackList.add("purple_bed");
- abilityBlackList.add("red_bed");
- abilityBlackList.add("white_bed");
- abilityBlackList.add("yellow_bed");
- abilityBlackList.add("brewing_stand");
- abilityBlackList.add("bookshelf");
- abilityBlackList.add("cake");
- abilityBlackList.add("chest");
- abilityBlackList.add("dispenser");
- abilityBlackList.add("enchanting_table");
- abilityBlackList.add("ender_chest");
- abilityBlackList.add("oak_fence_gate");
- abilityBlackList.add("acacia_fence_gate");
- abilityBlackList.add("dark_oak_fence_gate");
- abilityBlackList.add("spruce_fence_gate");
- abilityBlackList.add("birch_fence_gate");
- abilityBlackList.add("jungle_fence_gate");
- abilityBlackList.add("furnace");
- abilityBlackList.add("jukebox");
- abilityBlackList.add("lever");
- abilityBlackList.add("note_block");
- abilityBlackList.add("stone_button");
- abilityBlackList.add("oak_button");
- abilityBlackList.add("birch_button");
- abilityBlackList.add("acacia_button");
- abilityBlackList.add("dark_oak_button");
- abilityBlackList.add("jungle_button");
- abilityBlackList.add("spruce_button");
- abilityBlackList.add("acacia_trapdoor");
- abilityBlackList.add("birch_trapdoor");
- abilityBlackList.add("dark_oak_trapdoor");
- abilityBlackList.add("jungle_trapdoor");
- abilityBlackList.add("oak_trapdoor");
- abilityBlackList.add("spruce_trapdoor");
- abilityBlackList.add("acacia_sign");
- abilityBlackList.add("acacia_wall_sign");
- abilityBlackList.add("birch_sign");
- abilityBlackList.add("birch_wall_sign");
- abilityBlackList.add("dark_oak_sign");
- abilityBlackList.add("dark_oak_wall_sign");
- abilityBlackList.add("jungle_sign");
- abilityBlackList.add("jungle_wall_sign");
- abilityBlackList.add("spruce_sign");
- abilityBlackList.add("spruce_wall_sign");
- abilityBlackList.add("oak_sign");
- abilityBlackList.add("oak_wall_sign");
- abilityBlackList.add("crafting_table");
- abilityBlackList.add("beacon");
- abilityBlackList.add("anvil");
- abilityBlackList.add("dropper");
- abilityBlackList.add("hopper");
- abilityBlackList.add("trapped_chest");
- abilityBlackList.add("iron_door");
- abilityBlackList.add("iron_trapdoor");
- abilityBlackList.add("oak_door");
- abilityBlackList.add("acacia_door");
- abilityBlackList.add("spruce_door");
- abilityBlackList.add("birch_door");
- abilityBlackList.add("jungle_door");
- abilityBlackList.add("dark_oak_door");
- abilityBlackList.add("oak_fence");
- abilityBlackList.add("acacia_fence");
- abilityBlackList.add("dark_oak_fence");
- abilityBlackList.add("birch_fence");
- abilityBlackList.add("jungle_fence");
- abilityBlackList.add("spruce_fence");
- abilityBlackList.add("armor_stand");
- abilityBlackList.add("black_shulker_box");
- abilityBlackList.add("blue_shulker_box");
- abilityBlackList.add("brown_shulker_box");
- abilityBlackList.add("cyan_shulker_box");
- abilityBlackList.add("gray_shulker_box");
- abilityBlackList.add("green_shulker_box");
- abilityBlackList.add("light_blue_shulker_box");
- abilityBlackList.add("lime_shulker_box");
- abilityBlackList.add("magenta_shulker_box");
- abilityBlackList.add("orange_shulker_box");
- abilityBlackList.add("pink_shulker_box");
- abilityBlackList.add("purple_shulker_box");
- abilityBlackList.add("red_shulker_box");
- abilityBlackList.add("light_gray_shulker_box");
- abilityBlackList.add("white_shulker_box");
- abilityBlackList.add("yellow_shulker_box");
- abilityBlackList.add("shulker_box");
- abilityBlackList.add("wall_sign"); //1.13 and lower?
- abilityBlackList.add("sign"); //1.13 and lower?
- abilityBlackList.add("cartography_table");
- abilityBlackList.add("grindstone");
- abilityBlackList.add("lectern");
- abilityBlackList.add("loom");
- abilityBlackList.add("scaffolding");
- abilityBlackList.add("smoker");
- abilityBlackList.add("stonecutter");
- abilityBlackList.add("sweet_berry_bush");
- abilityBlackList.add("iron_block");
- abilityBlackList.add("gold_block");
- abilityBlackList.add("bell");
- abilityBlackList.add("barrel");
- abilityBlackList.add("blast_furnace");
- abilityBlackList.add("campfire");
- abilityBlackList.add("composter");
- }
-
- private void fillToolBlackList()
- {
- //TODO: Add anvils / missing logs
- //TODO: Reorganize this list, can we also dynamically populate some of this?
- toolBlackList.add("black_bed");
- toolBlackList.add("blue_bed");
- toolBlackList.add("brown_bed");
- toolBlackList.add("cyan_bed");
- toolBlackList.add("gray_bed");
- toolBlackList.add("green_bed");
- toolBlackList.add("light_blue_bed");
- toolBlackList.add("light_gray_bed");
- toolBlackList.add("lime_bed");
- toolBlackList.add("magenta_bed");
- toolBlackList.add("orange_bed");
- toolBlackList.add("pink_bed");
- toolBlackList.add("purple_bed");
- toolBlackList.add("red_bed");
- toolBlackList.add("white_bed");
- toolBlackList.add("yellow_bed");
- toolBlackList.add("brewing_stand");
- toolBlackList.add("bookshelf");
- toolBlackList.add("cake");
- toolBlackList.add("chest");
- toolBlackList.add("dispenser");
- toolBlackList.add("enchanting_table");
- toolBlackList.add("ender_chest");
- toolBlackList.add("oak_fence_gate");
- toolBlackList.add("acacia_fence_gate");
- toolBlackList.add("dark_oak_fence_gate");
- toolBlackList.add("spruce_fence_gate");
- toolBlackList.add("birch_fence_gate");
- toolBlackList.add("jungle_fence_gate");
- toolBlackList.add("furnace");
- toolBlackList.add("jukebox");
- toolBlackList.add("lever");
- toolBlackList.add("note_block");
- toolBlackList.add("stone_button");
- toolBlackList.add("oak_button");
- toolBlackList.add("birch_button");
- toolBlackList.add("acacia_button");
- toolBlackList.add("dark_oak_button");
- toolBlackList.add("jungle_button");
- toolBlackList.add("spruce_button");
- toolBlackList.add("acacia_trapdoor");
- toolBlackList.add("birch_trapdoor");
- toolBlackList.add("dark_oak_trapdoor");
- toolBlackList.add("jungle_trapdoor");
- toolBlackList.add("oak_trapdoor");
- toolBlackList.add("spruce_trapdoor");
- toolBlackList.add("crafting_table");
- toolBlackList.add("beacon");
- toolBlackList.add("anvil");
- toolBlackList.add("dropper");
- toolBlackList.add("hopper");
- toolBlackList.add("trapped_chest");
- toolBlackList.add("iron_door");
- toolBlackList.add("iron_trapdoor");
- toolBlackList.add("oak_door");
- toolBlackList.add("acacia_door");
- toolBlackList.add("spruce_door");
- toolBlackList.add("birch_door");
- toolBlackList.add("jungle_door");
- toolBlackList.add("dark_oak_door");
- toolBlackList.add("oak_fence");
- toolBlackList.add("acacia_fence");
- toolBlackList.add("dark_oak_fence");
- toolBlackList.add("birch_fence");
- toolBlackList.add("jungle_fence");
- toolBlackList.add("spruce_fence");
- toolBlackList.add("armor_stand");
- toolBlackList.add("black_shulker_box");
- toolBlackList.add("blue_shulker_box");
- toolBlackList.add("brown_shulker_box");
- toolBlackList.add("cyan_shulker_box");
- toolBlackList.add("gray_shulker_box");
- toolBlackList.add("green_shulker_box");
- toolBlackList.add("light_blue_shulker_box");
- toolBlackList.add("lime_shulker_box");
- toolBlackList.add("magenta_shulker_box");
- toolBlackList.add("orange_shulker_box");
- toolBlackList.add("pink_shulker_box");
- toolBlackList.add("purple_shulker_box");
- toolBlackList.add("red_shulker_box");
- toolBlackList.add("light_gray_shulker_box");
- toolBlackList.add("white_shulker_box");
- toolBlackList.add("yellow_shulker_box");
- toolBlackList.add("shulker_box");
- toolBlackList.add("acacia_sign");
- toolBlackList.add("acacia_wall_sign");
- toolBlackList.add("birch_sign");
- toolBlackList.add("birch_wall_sign");
- toolBlackList.add("dark_oak_sign");
- toolBlackList.add("dark_oak_wall_sign");
- toolBlackList.add("jungle_sign");
- toolBlackList.add("jungle_wall_sign");
- toolBlackList.add("spruce_sign");
- toolBlackList.add("spruce_wall_sign");
- toolBlackList.add("oak_sign");
- toolBlackList.add("oak_wall_sign");
- toolBlackList.add("stripped_acacia_log");
- toolBlackList.add("stripped_acacia_wood");
- toolBlackList.add("stripped_birch_log");
- toolBlackList.add("stripped_birch_wood");
- toolBlackList.add("stripped_dark_oak_log");
- toolBlackList.add("stripped_dark_oak_wood");
- toolBlackList.add("stripped_jungle_log");
- toolBlackList.add("stripped_jungle_wood");
- toolBlackList.add("stripped_oak_log");
- toolBlackList.add("stripped_oak_wood");
- toolBlackList.add("stripped_spruce_log");
- toolBlackList.add("stripped_spruce_wood");
- toolBlackList.add("acacia_log");
- toolBlackList.add("acacia_wood");
- toolBlackList.add("birch_log");
- toolBlackList.add("birch_wood");
- toolBlackList.add("dark_oak_log");
- toolBlackList.add("dark_oak_wood");
- toolBlackList.add("jungle_log");
- toolBlackList.add("jungle_wood");
- toolBlackList.add("oak_log");
- toolBlackList.add("oak_wood");
- toolBlackList.add("spruce_log");
- toolBlackList.add("iron_block");
- toolBlackList.add("gold_block");
- toolBlackList.add("bell");
- toolBlackList.add("barrel");
- toolBlackList.add("blast_furnace");
- toolBlackList.add("campfire");
- toolBlackList.add("cartography_table");
- toolBlackList.add("composter");
- toolBlackList.add("grindstone");
- toolBlackList.add("lectern");
- toolBlackList.add("loom");
- toolBlackList.add("smoker");
- toolBlackList.add("stonecutter");
- }
- private void addToHashSet(String string, HashSet<String> stringHashSet)
- {
- stringHashSet.add(string.toLowerCase(Locale.ENGLISH));
- }
- }
|