private static Map<String, List<Material>> initSynonyms() { Map<String, List<Material>> result = new HashMap<String, List<Material>>(); // Blocks result.put("ANY_FURNACE", Arrays.asList(Material.FURNACE, Material.BURNING_FURNACE)); result.put("ANY_SIGN", Arrays.asList(Material.SIGN, Material.SIGN_POST, Material.WALL_SIGN)); result.put( "ANY_REDSTONE_ORE", Arrays.asList(Material.REDSTONE_ORE, Material.GLOWING_REDSTONE_ORE)); result.put( "ANY_REDSTONE_TORCH", Arrays.asList(Material.REDSTONE_TORCH_OFF, Material.REDSTONE_TORCH_ON)); result.put("ANY_DIODE_BLOCK", Arrays.asList(Material.DIODE_BLOCK_OFF, Material.DIODE_BLOCK_ON)); // Tools result.put( "ANY_SPADE", Arrays.asList( Material.WOOD_SPADE, Material.STONE_SPADE, Material.GOLD_SPADE, Material.IRON_SPADE, Material.DIAMOND_SPADE)); result.put( "ANY_AXE", Arrays.asList( Material.WOOD_AXE, Material.STONE_AXE, Material.GOLD_AXE, Material.IRON_AXE, Material.DIAMOND_AXE)); result.put( "ANY_HOE", Arrays.asList( Material.WOOD_HOE, Material.STONE_HOE, Material.GOLD_HOE, Material.IRON_HOE, Material.DIAMOND_HOE)); result.put( "ANY_PICKAXE", Arrays.asList( Material.WOOD_PICKAXE, Material.STONE_PICKAXE, Material.GOLD_PICKAXE, Material.IRON_PICKAXE, Material.DIAMOND_PICKAXE)); result.put( "ANY_SWORD", Arrays.asList( Material.WOOD_SWORD, Material.STONE_SWORD, Material.GOLD_SWORD, Material.IRON_SWORD, Material.DIAMOND_SWORD)); result.put( "ANY_BUCKET", Arrays.asList( Material.BUCKET, Material.LAVA_BUCKET, Material.WATER_BUCKET, Material.MILK_BUCKET)); // Armour result.put( "ANY_HELMET", Arrays.asList( Material.LEATHER_HELMET, Material.CHAINMAIL_HELMET, Material.GOLD_HELMET, Material.IRON_HELMET, Material.DIAMOND_HELMET)); result.put( "ANY_CHESTPLATE", Arrays.asList( Material.LEATHER_CHESTPLATE, Material.CHAINMAIL_CHESTPLATE, Material.GOLD_CHESTPLATE, Material.IRON_CHESTPLATE, Material.DIAMOND_CHESTPLATE)); result.put( "ANY_LEGGINGS", Arrays.asList( Material.LEATHER_LEGGINGS, Material.CHAINMAIL_LEGGINGS, Material.GOLD_LEGGINGS, Material.IRON_LEGGINGS, Material.DIAMOND_LEGGINGS)); result.put( "ANY_BOOTS", Arrays.asList( Material.LEATHER_BOOTS, Material.CHAINMAIL_BOOTS, Material.GOLD_BOOTS, Material.IRON_BOOTS, Material.DIAMOND_BOOTS)); // Minecarts result.put( "ANY_MINECART", Arrays.asList(Material.MINECART, Material.POWERED_MINECART, Material.STORAGE_MINECART)); result.put( "ANY_RAIL", Arrays.asList(Material.RAILS, Material.POWERED_RAIL, Material.DETECTOR_RAIL)); // Wildcards List<Material> merger; merger = new ArrayList<Material>(); merger.addAll(result.get("ANY_SPADE")); merger.addAll(result.get("ANY_AXE")); merger.addAll(result.get("ANY_HOE")); merger.addAll(result.get("ANY_PICKAXE")); merger.addAll(result.get("ANY_SWORD")); merger.addAll(result.get("ANY_BUCKET")); merger.addAll( Arrays.asList( Material.FLINT_AND_STEEL, Material.FISHING_ROD, Material.SADDLE, Material.BOW)); result.put("ANY_TOOL", merger); merger = new ArrayList<Material>(); merger.addAll(result.get("ANY_SWORD")); merger.addAll(Arrays.asList(Material.BOW, Material.ARROW)); result.put("ANY_WEAPON", merger); merger = new ArrayList<Material>(); merger.addAll(result.get("ANY_HELMET")); merger.addAll(result.get("ANY_CHESTPLATE")); merger.addAll(result.get("ANY_LEGGINGS")); merger.addAll(result.get("ANY_BOOTS")); result.put("ANY_ARMOR", merger); merger = new ArrayList<Material>(); merger.addAll(Arrays.asList(Material.values())); result.put("ANY_OBJECT", merger); merger = new ArrayList<Material>(); merger.addAll(Arrays.asList(Material.values())); for (int i = 0; i < merger.size(); i++) { if (!merger.get(i).isBlock()) merger.set(i, null); } while (merger.indexOf(null) >= 0) merger.remove(null); result.put("ANY_BLOCK", merger); merger = new ArrayList<Material>(); merger.addAll(Arrays.asList(Material.values())); for (int i = 0; i < merger.size(); i++) { if (merger.get(i).isBlock()) merger.set(i, null); } while (merger.indexOf(null) >= 0) merger.remove(null); result.put("ANY_ITEM", merger); return Collections.unmodifiableMap(result); }