
walkmc.Materials.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of walk-server Show documentation
Show all versions of walk-server Show documentation
A spigot fork to kotlin structure and news.
package walkmc
import com.google.common.collect.*
import org.bukkit.*
import org.bukkit.material.*
import walkmc.extensions.*
import java.util.*
typealias MaterialPair = Pair
/**
* Represents a more useful material enum type.
*/
enum class Materials(val type: Material, val subdata: Int = 0) {
AIR(Material.AIR),
STONE(Material.STONE),
GRANITE(Material.STONE, 1),
POLISHED_GRANITE(Material.STONE, 2),
DIORITE(Material.STONE, 3),
POLISHED_DIORITE(Material.STONE, 4),
ANDESITE(Material.STONE, 5),
POLISHED_ANDESITE(Material.STONE, 6),
GRASS(Material.GRASS),
DIRT(Material.DIRT),
COARSE_DIRT(Material.DIRT, 1),
PODZOL(Material.DIRT, 2),
COBBLESTONE(Material.COBBLESTONE),
OAK_PLANK(Material.WOOD),
SPRUCE_PLANK(Material.WOOD, 1),
BIRCH_PLANK(Material.WOOD, 2),
JUNGLE_PLANK(Material.WOOD, 3),
ACACIA_PLANK(Material.WOOD, 4),
DARK_OAK_PLANK(Material.WOOD, 5),
OAK_SAPLING(Material.SAPLING),
SPRUCE_SAPLING(Material.SAPLING, 1),
BIRCH_SAPLING(Material.SAPLING, 2),
JUNGLE_SAPLING(Material.SAPLING, 3),
ACACIA_SAPLING(Material.SAPLING, 4),
DARK_OAK_SAPLING(Material.SAPLING, 5),
BEDROCK(Material.BEDROCK),
WATER(Material.WATER),
STATIONARY_WATER(Material.STATIONARY_WATER),
LAVA(Material.LAVA),
STATIONARY_LAVA(Material.STATIONARY_LAVA),
SAND(Material.SAND),
RED_SAND(Material.SAND, 1),
GRAVEL(Material.GRAVEL),
GOLD_ORE(Material.GOLD_ORE),
IRON_ORE(Material.IRON_ORE),
COAL_ORE(Material.COAL_ORE),
OAK_WOOD(Material.LOG),
SPRUCE_WOOD(Material.LOG, 1),
BIRCH_WOOD(Material.LOG, 2),
JUNGLE_WOOD(Material.LOG, 3),
OAK_BARK(Material.LOG, 12),
SPRUCE_BARK(Material.LOG, 13),
BIRCH_BARK(Material.LOG, 14),
JUNGLE_BARK(Material.LOG, 15),
OAK_LEAVES(Material.LEAVES),
SPRUCE_LEAVES(Material.LEAVES, 1),
BIRCH_LEAVES(Material.LEAVES, 2),
JUNGLE_LEAVES(Material.LEAVES, 3),
OAK_BARK_LEAVES(Material.LEAVES, 12),
SPRUCE_BARK_LEAVES(Material.LEAVES, 13),
BIRCH_BARK_LEAVES(Material.LEAVES, 14),
JUNGLE_BARK_LEAVES(Material.LEAVES, 15),
SPONGE(Material.SPONGE),
WET_SPONGE(Material.SPONGE, 1),
GLASS(Material.GLASS),
LAPIS_ORE(Material.LAPIS_ORE),
LAPIS_BLOCK(Material.LAPIS_BLOCK),
DISPENSER(Material.DISPENSER),
SANDSTONE(Material.SANDSTONE),
CHISELED_SANDSTONE(Material.SANDSTONE, 1),
SMOOTH_SANDSTONE(Material.SANDSTONE, 2),
NOTE_BLOCK(Material.NOTE_BLOCK),
BED_BLOCK(Material.BED_BLOCK),
POWERED_RAIL(Material.POWERED_RAIL),
DETECTOR_RAIL(Material.DETECTOR_RAIL),
PISTON_STICKY_BASE(Material.PISTON_STICKY_BASE),
WEB(Material.WEB),
DEAD_GRASS(Material.LONG_GRASS),
TALL_GRASS(Material.LONG_GRASS, 1),
FERN(Material.LONG_GRASS, 2),
DEAD_BUSH(Material.DEAD_BUSH),
// piston section
PISTON(Material.PISTON_BASE),
PISTON_UP(Material.PISTON_BASE, 1),
PISTON_NORTH(Material.PISTON_BASE, 2),
PISTON_SOUTH(Material.PISTON_BASE, 3),
PISTON_WEST(Material.PISTON_BASE, 4),
PISTON_EAST(Material.PISTON_BASE, 5),
PISTON_BASE(Material.PISTON_BASE, 8),
PISTON_BASE_UP(Material.PISTON_BASE, 9),
PISTON_BASE_NORTH(Material.PISTON_BASE, 10),
PISTON_BASE_SOUTH(Material.PISTON_BASE, 11),
PISTON_BASE_WEST(Material.PISTON_BASE, 12),
PISTON_BASE_EAST(Material.PISTON_BASE, 13),
PISTON_EXTENSION(Material.PISTON_EXTENSION),
PISTON_EXTENSION_UP(Material.PISTON_EXTENSION, 1),
PISTON_EXTENSION_NORTH(Material.PISTON_EXTENSION, 2),
PISTON_EXTENSION_SOUTH(Material.PISTON_EXTENSION, 3),
PISTON_EXTENSION_WEST(Material.PISTON_EXTENSION, 4),
PISTON_EXTENSION_EAST(Material.PISTON_EXTENSION, 5),
STICKY_PISTON_EXTENSION(Material.PISTON_EXTENSION, 8),
STICKY_PISTON_EXTENSION_UP(Material.PISTON_EXTENSION, 9),
STICKY_PISTON_EXTENSION_NORTH(Material.PISTON_EXTENSION, 10),
STICKY_PISTON_EXTENSION_SOUTH(Material.PISTON_EXTENSION, 11),
STICKY_PISTON_EXTENSION_WEST(Material.PISTON_EXTENSION, 12),
STICKY_PISTON_EXTENSION_EAST(Material.PISTON_EXTENSION, 13),
WHITE_WOOL(Material.WOOL),
ORANGE_WOOL(Material.WOOL, 1),
MAGENTA_WOOL(Material.WOOL, 2),
LIGHT_BLUE_WOOL(Material.WOOL, 3),
YELLOW_WOOL(Material.WOOL, 4),
LIME_WOOL(Material.WOOL, 5),
PINK_WOOL(Material.WOOL, 6),
GRAY_WOOL(Material.WOOL, 7),
LIGHT_GRAY_WOOL(Material.WOOL, 8),
CYAN_WOOL(Material.WOOL, 9),
PURPLE_WOOL(Material.WOOL, 10),
BLUE_WOOL(Material.WOOL, 11),
BROWN_WOOL(Material.WOOL, 12),
GREEN_WOOL(Material.WOOL, 13),
RED_WOOL(Material.WOOL, 14),
BLACK_WOOL(Material.WOOL, 15),
YELLOW_FLOWER(Material.YELLOW_FLOWER),
RED_ROSE(Material.RED_ROSE),
BLUE_ORCHID(Material.RED_ROSE, 1),
ALLIUM(Material.RED_ROSE, 2),
AZURE_BLUET(Material.RED_ROSE, 3),
RED_TULIP(Material.RED_ROSE, 4),
ORANGE_TULIP(Material.RED_ROSE, 5),
WHITE_TULIP(Material.RED_ROSE, 6),
PINK_TULIP(Material.RED_ROSE, 7),
OXEYE_DAISY(Material.RED_ROSE, 8),
BROWN_MUSHROOM(Material.BROWN_MUSHROOM),
RED_MUSHROOM(Material.RED_MUSHROOM),
GOLD_BLOCK(Material.GOLD_BLOCK),
IRON_BLOCK(Material.IRON_BLOCK),
DOUBLE_STONE_SLAB(Material.DOUBLE_STEP),
DOUBLE_SANDSTONE_SLAB(Material.DOUBLE_STEP, 1),
DOUBLE_PLANKS_SLAB(Material.DOUBLE_STEP, 2),
DOUBLE_COBBLESTONE_SLAB(Material.DOUBLE_STEP, 3),
DOUBLE_BRICKS_SLAB(Material.DOUBLE_STEP, 4),
DOUBLE_STONE_BRICKS_SLAB(Material.DOUBLE_STEP, 5),
DOUBLE_NETHER_BRICKS_SLAB(Material.DOUBLE_STEP, 6),
DOUBLE_QUARTZ_SLAB(Material.DOUBLE_STEP, 7),
STONE_SLAB(Material.STEP),
SANDSTONE_SLAB(Material.STEP, 1),
PLANKS_SLAB(Material.STEP, 2),
COBBLESTONE_SLAB(Material.STEP, 3),
BRICKS_SLAB(Material.STEP, 4),
STONE_BRICKS_SLAB(Material.STEP, 5),
NETHER_BRICKS_SLAB(Material.STEP, 6),
QUARTZ_SLAB(Material.STEP, 7),
BRICKS(Material.BRICK),
TNT(Material.TNT),
BOOKSHELF(Material.BOOKSHELF),
MOSSY_COBBLESTONE(Material.MOSSY_COBBLESTONE),
OBSIDIAN(Material.OBSIDIAN),
TORCH(Material.TORCH),
FIRE(Material.FIRE),
MOB_SPAWNER(Material.MOB_SPAWNER),
OAK_WOOD_STAIRS(Material.WOOD_STAIRS),
CHEST(Material.CHEST),
REDSTONE_WIRE(Material.REDSTONE_WIRE),
DIAMOND_ORE(Material.DIAMOND_ORE),
DIAMOND_BLOCK(Material.DIAMOND_BLOCK),
CRAFTING_TABLE(Material.WORKBENCH),
WHEAT_CROPS(Material.CROPS),
FARMLAND(Material.SOIL),
FURNACE(Material.FURNACE),
BURNING_FURNACE(Material.BURNING_FURNACE),
SIGN_BLOCK(Material.SIGN_POST),
OAK_DOOR(Material.WOODEN_DOOR),
LADDER(Material.LADDER),
RAIL(Material.RAILS),
COBBLESTONE_STAIRS(Material.COBBLESTONE_STAIRS),
WALL_SIGN(Material.WALL_SIGN),
LEVER(Material.LEVER),
STONE_PLATE(Material.STONE_PLATE),
IRON_DOOR_BLOCK(Material.IRON_DOOR_BLOCK),
WOOD_PLATE(Material.WOOD_PLATE),
REDSTONE_ORE(Material.REDSTONE_ORE),
GLOWING_REDSTONE_ORE(Material.GLOWING_REDSTONE_ORE),
REDSTONE_TORCH_OFF(Material.REDSTONE_TORCH_OFF),
REDSTONE_TORCH_ON(Material.REDSTONE_TORCH_ON),
STONE_BUTTON(Material.STONE_BUTTON),
SNOW(Material.SNOW),
ICE(Material.ICE),
SNOW_BLOCK(Material.SNOW_BLOCK),
CACTUS(Material.CACTUS),
CLAY_BLOCK(Material.CLAY),
SUGAR_CANE_BLOCK(Material.SUGAR_CANE_BLOCK),
JUKEBOX(Material.JUKEBOX),
OAK_FENCE(Material.FENCE),
PUMPKIN(Material.PUMPKIN),
NETHERRACK(Material.NETHERRACK),
SOUL_SAND(Material.SOUL_SAND),
GLOWSTONE(Material.GLOWSTONE),
NETHER_PORTAL(Material.PORTAL),
JACK_O_LANTERN(Material.JACK_O_LANTERN),
CAKE_BLOCK(Material.CAKE_BLOCK),
REPEATER_BLOCK_OFF(Material.DIODE_BLOCK_OFF),
REPEATER_BLOCK_ON(Material.DIODE_BLOCK_ON),
WHITE_GLASS(Material.STAINED_GLASS),
ORANGE_GLASS(Material.STAINED_GLASS, 1),
MAGENTA_GLASS(Material.STAINED_GLASS, 2),
LIGHT_BLUE_GLASS(Material.STAINED_GLASS, 3),
YELLOW_GLASS(Material.STAINED_GLASS, 4),
LIME_GLASS(Material.STAINED_GLASS, 5),
PINK_GLASS(Material.STAINED_GLASS, 6),
GRAY_GLASS(Material.STAINED_GLASS, 7),
LIGHT_GRAY_GLASS(Material.STAINED_GLASS, 8),
CYAN_GLASS(Material.STAINED_GLASS, 9),
PURPLE_GLASS(Material.STAINED_GLASS, 10),
BLUE_GLASS(Material.STAINED_GLASS, 11),
BROWN_GLASS(Material.STAINED_GLASS, 12),
GREEN_GLASS(Material.STAINED_GLASS, 13),
RED_GLASS(Material.STAINED_GLASS, 14),
BLACK_GLASS(Material.STAINED_GLASS, 15),
TRAPDOOR(Material.TRAP_DOOR),
STONE_MONSTER_EGG(Material.MONSTER_EGGS),
COBBLESTONE_MONSTER_EGG(Material.MONSTER_EGGS, 1),
STONE_BRICKS_MONSTER_EGG(Material.MONSTER_EGGS, 2),
MOSSY_STONE_MONSTER_EGG(Material.MONSTER_EGGS, 3),
CRACKED_STONE_MONSTER_EGG(Material.MONSTER_EGGS, 4),
CHISELED_STONE_MONSTER_EGG(Material.MONSTER_EGGS, 5),
STONE_BRICKS(Material.SMOOTH_BRICK),
MOSSY_STONE_BRICKS(Material.SMOOTH_BRICK, 1),
CRACKED_STONE_BRICKS(Material.SMOOTH_BRICK, 2),
CHISELED_STONE_BRICKS(Material.SMOOTH_BRICK, 3),
BROWN_MUSHROOM_BLOCK(Material.HUGE_MUSHROOM_1),
BROWN_MUSHROOM_FULL(Material.HUGE_MUSHROOM_1, 14),
RED_MUSHROOM_BLOCK(Material.HUGE_MUSHROOM_2),
RED_MUSHROOM_FULL(Material.HUGE_MUSHROOM_2, 14),
MUSHROOM_STEM_FULL(Material.HUGE_MUSHROOM_1, 15),
MUSHROOM_STEM_PILLAR(Material.HUGE_MUSHROOM_1, 10),
IRON_BAR(Material.IRON_FENCE),
GLASS_PANE(Material.THIN_GLASS),
MELON_BLOCK(Material.MELON_BLOCK),
PUMPKIN_CROPS(Material.PUMPKIN_STEM),
MELON_CROPS(Material.MELON_STEM),
VINES(Material.VINE),
OAK_FENCE_GATE(Material.FENCE_GATE),
BRICK_STAIRS(Material.BRICK_STAIRS),
STONE_BRICK_STAIRS(Material.SMOOTH_STAIRS),
MYCELIUM(Material.MYCEL),
LILYPAD(Material.WATER_LILY),
NETHER_BRICK(Material.NETHER_BRICK),
NETHER_BRICK_FENCE(Material.NETHER_FENCE),
NETHER_BRICK_STAIRS(Material.NETHER_BRICK_STAIRS),
NETHER_WART_CROPS(Material.NETHER_WARTS),
ENCHANTMENT_TABLE(Material.ENCHANTMENT_TABLE),
BREWING_STAND(Material.BREWING_STAND),
CAULDRON(Material.CAULDRON),
ENDER_PORTAL(Material.ENDER_PORTAL),
ENDER_PORTAL_FRAME(Material.ENDER_PORTAL_FRAME),
END_STONE(Material.ENDER_STONE),
DRAGON_EGG(Material.DRAGON_EGG),
REDSTONE_LAMP_OFF(Material.REDSTONE_LAMP_OFF),
REDSTONE_LAMP_ON(Material.REDSTONE_LAMP_ON),
DOUBLE_OAK_SLAB(Material.WOOD_DOUBLE_STEP),
DOUBLE_SPRUCE_SLAB(Material.WOOD_DOUBLE_STEP, 1),
DOUBLE_BIRCH_SLAB(Material.WOOD_DOUBLE_STEP, 2),
DOUBLE_JUNGLE_SLAB(Material.WOOD_DOUBLE_STEP, 3),
DOUBLE_ACACIA_SLAB(Material.WOOD_DOUBLE_STEP, 4),
DOUBLE_DARK_OAK_SLAB(Material.WOOD_DOUBLE_STEP, 5),
OAK_SLAB(Material.WOOD_STEP),
SPRUCE_SLAB(Material.WOOD_STEP, 1),
BIRCH_SLAB(Material.WOOD_STEP, 2),
JUNGLE_SLAB(Material.WOOD_STEP, 3),
ACACIA_SLAB(Material.WOOD_STEP, 4),
DARK_OAK_SLAB(Material.WOOD_STEP, 5),
COCOA_BLOCK(Material.COCOA),
SANDSTONE_STAIRS(Material.SANDSTONE_STAIRS),
EMERALD_ORE(Material.EMERALD_ORE),
ENDER_CHEST(Material.ENDER_CHEST),
TRIPWIRE_HOOK(Material.TRIPWIRE_HOOK),
TRIPWIRE(Material.TRIPWIRE),
EMERALD_BLOCK(Material.EMERALD_BLOCK),
SPRUCE_STAIRS(Material.SPRUCE_WOOD_STAIRS),
BIRCH_STAIRS(Material.BIRCH_WOOD_STAIRS),
JUNGLE_STAIRS(Material.JUNGLE_WOOD_STAIRS),
COMMAND_BLOCK(Material.COMMAND),
BEACON(Material.BEACON),
COBBLESTONE_WALL(Material.COBBLE_WALL),
FLOWER_POT(Material.FLOWER_POT),
CARROT_CROPS(Material.CARROT),
POTATO_CROPS(Material.POTATO),
WOODEN_BUTTON(Material.WOOD_BUTTON),
SKULL(Material.SKULL),
ANVIL(Material.ANVIL),
TRAPPED_CHEST(Material.TRAPPED_CHEST),
GOLD_PLATE(Material.GOLD_PLATE),
IRON_PLATE(Material.IRON_PLATE),
COMPARATOR_BLOCK_OFF(Material.REDSTONE_COMPARATOR_OFF),
COMPARATOR_BLOCK_ON(Material.REDSTONE_COMPARATOR_ON),
DAYLIGHT_SENSOR(Material.DAYLIGHT_DETECTOR),
REDSTONE_BLOCK(Material.REDSTONE_BLOCK),
QUARTZ_ORE(Material.QUARTZ_ORE),
HOPPER(Material.HOPPER),
QUARTZ_BLOCK(Material.QUARTZ_BLOCK),
CHISELED_QUARTZ_BLOCK(Material.QUARTZ_BLOCK, 1),
PILLAR_QUARTZ_BLOCK(Material.QUARTZ_BLOCK, 2),
QUARTZ_STAIRS(Material.QUARTZ_STAIRS),
ACTIVATOR_RAIL(Material.ACTIVATOR_RAIL),
DROPPER(Material.DROPPER),
WHITE_CLAY(Material.STAINED_CLAY),
ORANGE_CLAY(Material.STAINED_CLAY, 1),
MAGENTA_CLAY(Material.STAINED_CLAY, 2),
LIGHT_BLUE_CLAY(Material.STAINED_CLAY, 3),
YELLOW_CLAY(Material.STAINED_CLAY, 4),
LIME_CLAY(Material.STAINED_CLAY, 5),
PINK_CLAY(Material.STAINED_CLAY, 6),
GRAY_CLAY(Material.STAINED_CLAY, 7),
LIGHT_GRAY_CLAY(Material.STAINED_CLAY, 8),
CYAN_CLAY(Material.STAINED_CLAY, 9),
PURPLE_CLAY(Material.STAINED_CLAY, 10),
BLUE_CLAY(Material.STAINED_CLAY, 11),
BROWN_CLAY(Material.STAINED_CLAY, 12),
GREEN_CLAY(Material.STAINED_CLAY, 13),
RED_CLAY(Material.STAINED_CLAY, 14),
BLACK_CLAY(Material.STAINED_CLAY, 15),
WHITE_GLASS_PANE(Material.STAINED_GLASS_PANE),
ORANGE_GLASS_PANE(Material.STAINED_GLASS_PANE, 1),
MAGENTA_GLASS_PANE(Material.STAINED_GLASS_PANE, 2),
LIGHT_BLUE_GLASS_PANE(Material.STAINED_GLASS_PANE, 3),
YELLOW_GLASS_PANE(Material.STAINED_GLASS_PANE, 4),
LIME_GLASS_PANE(Material.STAINED_GLASS_PANE, 5),
PINK_GLASS_PANE(Material.STAINED_GLASS_PANE, 6),
GRAY_GLASS_PANE(Material.STAINED_GLASS_PANE, 7),
LIGHT_GRAY_GLASS_PANE(Material.STAINED_GLASS_PANE, 8),
CYAN_GLASS_PANE(Material.STAINED_GLASS_PANE, 9),
PURPLE_GLASS_PANE(Material.STAINED_GLASS_PANE, 10),
BLUE_GLASS_PANE(Material.STAINED_GLASS_PANE, 11),
BROWN_GLASS_PANE(Material.STAINED_GLASS_PANE, 12),
GREEN_GLASS_PANE(Material.STAINED_GLASS_PANE, 13),
RED_GLASS_PANE(Material.STAINED_GLASS_PANE, 14),
BLACK_GLASS_PANE(Material.STAINED_GLASS_PANE, 15),
ACACIA_LEAVES(Material.LEAVES_2),
DARK_OAK_LEAVES(Material.LEAVES_2, 1),
ACACIA_WOOD(Material.LOG_2),
DARK_OAK_WOOD(Material.LOG_2, 1),
ACACIA_BARK(Material.LOG_2, 12),
DARK_OAK_BARK(Material.LOG_2, 13),
ACACIA_STAIRS(Material.ACACIA_STAIRS),
DARK_OAK_STAIRS(Material.DARK_OAK_STAIRS),
SLIME_BLOCK(Material.SLIME_BLOCK),
BARRIER(Material.BARRIER),
IRON_TRAPDOOR(Material.IRON_TRAPDOOR),
PRISMARINE(Material.PRISMARINE),
PRISMARINE_BRICKS(Material.PRISMARINE, 1),
DARK_PRISMARINE(Material.PRISMARINE, 2),
SEA_LANTERN(Material.SEA_LANTERN),
HAY_BLOCK(Material.HAY_BLOCK),
WHITE_CARPET(Material.CARPET),
ORANGE_CARPET(Material.CARPET, 1),
MAGENTA_CARPET(Material.CARPET, 2),
LIGHT_BLUE_CARPET(Material.CARPET, 3),
YELLOW_CARPET(Material.CARPET, 4),
LIME_CARPET(Material.CARPET, 5),
PINK_CARPET(Material.CARPET, 6),
GRAY_CARPET(Material.CARPET, 7),
LIGHT_GRAY_CARPET(Material.CARPET, 8),
CYAN_CARPET(Material.CARPET, 9),
PURPLE_CARPET(Material.CARPET, 10),
BLUE_CARPET(Material.CARPET, 11),
BROWN_CARPET(Material.CARPET, 12),
GREEN_CARPET(Material.CARPET, 13),
RED_CARPET(Material.CARPET, 14),
BLACK_CARPET(Material.CARPET, 15),
HARDENED_CLAY(Material.HARD_CLAY),
COAL_BLOCK(Material.COAL_BLOCK),
SUNFLOWER(Material.DOUBLE_PLANT),
LILAC(Material.DOUBLE_PLANT, 1),
LARGE_GRASS(Material.DOUBLE_PLANT, 2),
LARGE_FERN(Material.DOUBLE_PLANT, 3),
ROSE_BUSH(Material.DOUBLE_PLANT, 4),
PEONY(Material.DOUBLE_PLANT, 5),
STANDING_BANNER(Material.STANDING_BANNER),
WALL_BANNER(Material.WALL_BANNER),
NIGHTLIGHT_SENSOR(Material.DAYLIGHT_DETECTOR_INVERTED),
RED_SANDSTONE(Material.RED_SANDSTONE),
CHISELED_RED_SANDSTONE(Material.RED_SANDSTONE, 1),
SMOOTH_RED_SANDSTONE(Material.RED_SANDSTONE, 2),
RED_SANDSTONE_STAIRS(Material.RED_SANDSTONE_STAIRS),
DOUBLE_RED_SANDSTONE_SLAB(Material.DOUBLE_STONE_SLAB2),
RED_SANDSTONE_SLAB(Material.STONE_SLAB2),
SPRUCE_FENCE_GATE(Material.SPRUCE_FENCE_GATE),
BIRCH_FENCE_GATE(Material.BIRCH_FENCE_GATE),
JUNGLE_FENCE_GATE(Material.JUNGLE_FENCE_GATE),
DARK_OAK_FENCE_GATE(Material.DARK_OAK_FENCE_GATE),
ACACIA_FENCE_GATE(Material.ACACIA_FENCE_GATE),
SPRUCE_FENCE(Material.SPRUCE_FENCE),
BIRCH_FENCE(Material.BIRCH_FENCE),
JUNGLE_FENCE(Material.JUNGLE_FENCE),
DARK_OAK_FENCE(Material.DARK_OAK_FENCE),
ACACIA_FENCE(Material.ACACIA_FENCE),
SPRUCE_DOOR(Material.SPRUCE_DOOR),
BIRCH_DOOR(Material.BIRCH_DOOR),
JUNGLE_DOOR(Material.JUNGLE_DOOR),
ACACIA_DOOR(Material.ACACIA_DOOR),
DARK_OAK_DOOR(Material.DARK_OAK_DOOR),
// Item section
IRON_SHOVEL(Material.IRON_SPADE),
IRON_PICKAXE(Material.IRON_PICKAXE),
IRON_AXE(Material.IRON_AXE),
FLINT_AND_STEEL(Material.FLINT_AND_STEEL),
APPLE(Material.APPLE),
BOW(Material.BOW),
ARROW(Material.ARROW),
COAL(Material.COAL),
CHARCOAL(Material.COAL, 1),
DIAMOND(Material.DIAMOND),
IRON_INGOT(Material.IRON_INGOT),
GOLD_INGOT(Material.GOLD_INGOT),
IRON_SWORD(Material.IRON_SWORD),
WOOD_SWORD(Material.WOOD_SWORD),
WOOD_SHOVEL(Material.WOOD_SPADE),
WOOD_PICKAXE(Material.WOOD_PICKAXE),
WOOD_AXE(Material.WOOD_AXE),
STONE_SWORD(Material.STONE_SWORD),
STONE_SHOVEL(Material.STONE_SPADE),
STONE_PICKAXE(Material.STONE_PICKAXE),
STONE_AXE(Material.STONE_AXE),
DIAMOND_SWORD(Material.DIAMOND_SWORD),
DIAMOND_SHOVEL(Material.DIAMOND_SPADE),
DIAMOND_PICKAXE(Material.DIAMOND_PICKAXE),
DIAMOND_AXE(Material.DIAMOND_AXE),
STICK(Material.STICK),
BOWL(Material.BOWL),
MUSHROOM_SOUP(Material.MUSHROOM_SOUP),
GOLD_SWORD(Material.GOLD_SWORD),
GOLD_SHOVEL(Material.GOLD_SPADE),
GOLD_PICKAXE(Material.GOLD_PICKAXE),
GOLD_AXE(Material.GOLD_AXE),
STRING(Material.STRING),
FEATHER(Material.FEATHER),
GUNPOWDER(Material.SULPHUR),
WOOD_HOE(Material.WOOD_HOE),
STONE_HOE(Material.STONE_HOE),
IRON_HOE(Material.IRON_HOE),
DIAMOND_HOE(Material.DIAMOND_HOE),
GOLD_HOE(Material.GOLD_HOE),
WHEAT_SEEDS(Material.SEEDS),
WHEAT(Material.WHEAT),
BREAD(Material.BREAD),
LEATHER_HELMET(Material.LEATHER_HELMET),
LEATHER_CHESTPLATE(Material.LEATHER_CHESTPLATE),
LEATHER_LEGGINGS(Material.LEATHER_LEGGINGS),
LEATHER_BOOTS(Material.LEATHER_BOOTS),
CHAINMAIL_HELMET(Material.CHAINMAIL_HELMET),
CHAINMAIL_CHESTPLATE(Material.CHAINMAIL_CHESTPLATE),
CHAINMAIL_LEGGINGS(Material.CHAINMAIL_LEGGINGS),
CHAINMAIL_BOOTS(Material.CHAINMAIL_BOOTS),
IRON_HELMET(Material.IRON_HELMET),
IRON_CHESTPLATE(Material.IRON_CHESTPLATE),
IRON_LEGGINGS(Material.IRON_LEGGINGS),
IRON_BOOTS(Material.IRON_BOOTS),
DIAMOND_HELMET(Material.DIAMOND_HELMET),
DIAMOND_CHESTPLATE(Material.DIAMOND_CHESTPLATE),
DIAMOND_LEGGINGS(Material.DIAMOND_LEGGINGS),
DIAMOND_BOOTS(Material.DIAMOND_BOOTS),
GOLD_HELMET(Material.GOLD_HELMET),
GOLD_CHESTPLATE(Material.GOLD_CHESTPLATE),
GOLD_LEGGINGS(Material.GOLD_LEGGINGS),
GOLD_BOOTS(Material.GOLD_BOOTS),
FLINT(Material.FLINT),
RAW_PORK(Material.PORK),
COOKED_PORK(Material.GRILLED_PORK),
PAINTING(Material.PAINTING),
GOLDEN_APPLE(Material.GOLDEN_APPLE),
ENCHANTED_GOLDEN_APPLE(Material.GOLDEN_APPLE, 1),
SIGN(Material.SIGN),
WOOD_DOOR(Material.WOOD_DOOR),
BUCKET(Material.BUCKET),
WATER_BUCKET(Material.WATER_BUCKET),
LAVA_BUCKET(Material.LAVA_BUCKET),
MINECART(Material.MINECART),
SADDLE(Material.SADDLE),
IRON_DOOR(Material.IRON_DOOR),
REDSTONE(Material.REDSTONE),
SNOW_BALL(Material.SNOW_BALL),
BOAT(Material.BOAT),
LEATHER(Material.LEATHER),
MILK_BUCKET(Material.MILK_BUCKET),
CLAY_BRICK(Material.CLAY_BRICK),
CLAY_BALL(Material.CLAY_BALL),
SUGAR_CANE(Material.SUGAR_CANE),
PAPER(Material.PAPER),
BOOK(Material.BOOK),
SLIME_BALL(Material.SLIME_BALL),
CHEST_MINECART(Material.STORAGE_MINECART),
FURNACE_MINECART(Material.POWERED_MINECART),
EGG(Material.EGG),
COMPASS(Material.COMPASS),
FISHING_ROD(Material.FISHING_ROD),
CLOCK(Material.WATCH),
GLOWSTONE_DUST(Material.GLOWSTONE_DUST),
RAW_FISH(Material.RAW_FISH),
RAW_SALMON(Material.RAW_FISH, 1),
CLOWNFISH(Material.RAW_FISH, 2),
PUFFERFISH(Material.RAW_FISH, 3),
COOKED_FISH(Material.COOKED_FISH),
COOKED_SALMON(Material.COOKED_FISH, 1),
INK_SACK(Material.INK_SACK),
RED_DYE(Material.INK_SACK, 1),
GREEN_DYE(Material.INK_SACK, 2),
COCOA_BEANS(Material.INK_SACK, 3),
LAPIS_LAZULLI(Material.INK_SACK, 4),
PURPLE_DYE(Material.INK_SACK, 5),
CYAN_DYE(Material.INK_SACK, 6),
LIGHT_GRAY_DYE(Material.INK_SACK, 7),
GRAY_DYE(Material.INK_SACK, 8),
PINK_DYE(Material.INK_SACK, 9),
LIME_DYE(Material.INK_SACK, 10),
YELLOW_DYE(Material.INK_SACK, 11),
LIGHT_BLUE_DYE(Material.INK_SACK, 12),
MAGENTA_DYE(Material.INK_SACK, 13),
ORANGE_DYE(Material.INK_SACK, 14),
BONE_MEAL(Material.INK_SACK, 15),
BONE(Material.BONE),
SUGAR(Material.SUGAR),
CAKE(Material.CAKE),
BED(Material.BED),
REPEATER(Material.DIODE),
COOKIE(Material.COOKIE),
MAP(Material.MAP),
SHEARS(Material.SHEARS),
MELON(Material.MELON),
PUMPKIN_SEEDS(Material.PUMPKIN_SEEDS),
MELON_SEEDS(Material.MELON_SEEDS),
RAW_BEEF(Material.RAW_BEEF),
COOKED_BEEF(Material.COOKED_BEEF),
RAW_CHICKEN(Material.RAW_CHICKEN),
COOKED_CHICKEN(Material.COOKED_CHICKEN),
ROTTEN_FLESH(Material.ROTTEN_FLESH),
ENDER_PEARL(Material.ENDER_PEARL),
BLAZE_ROD(Material.BLAZE_ROD),
GHAST_TEAR(Material.GHAST_TEAR),
GOLD_NUGGET(Material.GOLD_NUGGET),
NETHER_WART(Material.NETHER_STALK),
POTION(Material.POTION),
GLASS_BOTTLE(Material.GLASS_BOTTLE),
SPIDER_EYE(Material.SPIDER_EYE),
FERMENTED_SPIDER_EYE(Material.FERMENTED_SPIDER_EYE),
BLAZE_POWDER(Material.BLAZE_POWDER),
MAGMA_CREAM(Material.MAGMA_CREAM),
BREWING_STAND_ITEM(Material.BREWING_STAND_ITEM),
CAULDRON_ITEM(Material.CAULDRON_ITEM),
ENDER_EYE(Material.EYE_OF_ENDER),
SHINY_MELON(Material.SPECKLED_MELON),
// Monsters eggs section
MONSTER_EGG(Material.MONSTER_EGG),
CREEPER_EGG(Material.MONSTER_EGG, 50),
SKELETON_EGG(Material.MONSTER_EGG, 51),
SPIDER_EGG(Material.MONSTER_EGG, 52),
ZOMBIE_EGG(Material.MONSTER_EGG, 54),
SLIME_EGG(Material.MONSTER_EGG, 55),
GHAST_EGG(Material.MONSTER_EGG, 56),
PIGMAN_EGG(Material.MONSTER_EGG, 57),
ENDERMAN_EGG(Material.MONSTER_EGG, 58),
CAVE_SPIDER_EGG(Material.MONSTER_EGG, 59),
SILVERFISH_EGG(Material.MONSTER_EGG, 60),
BLAZE_EGG(Material.MONSTER_EGG, 61),
MAGMA_CUBE_EGG(Material.MONSTER_EGG, 62),
BAT_EGG(Material.MONSTER_EGG, 65),
WITCH_EGG(Material.MONSTER_EGG, 66),
ENDERMITE_EGG(Material.MONSTER_EGG, 67),
GUARDIAN_EGG(Material.MONSTER_EGG, 68),
PIG_EGG(Material.MONSTER_EGG, 90),
SHEEP_EGG(Material.MONSTER_EGG, 91),
COW_EGG(Material.MONSTER_EGG, 92),
CHICKEN_EGG(Material.MONSTER_EGG, 93),
SQUID_EGG(Material.MONSTER_EGG, 94),
WOLF_EGG(Material.MONSTER_EGG, 95),
MUSHROOM_COW_EGG(Material.MONSTER_EGG, 96),
OCELOT_EGG(Material.MONSTER_EGG, 98),
HORSE_EGG(Material.MONSTER_EGG, 100),
RABBIT_EGG(Material.MONSTER_EGG, 101),
VILLAGER_EGG(Material.MONSTER_EGG, 120),
EXP_BOTTLE(Material.EXP_BOTTLE),
FIREBALL(Material.FIREBALL),
BOOK_AND_QUILL(Material.BOOK_AND_QUILL),
WRITTEN_BOOK(Material.WRITTEN_BOOK),
EMERALD(Material.EMERALD),
ITEM_FRAME(Material.ITEM_FRAME),
FLOWER_POT_ITEM(Material.FLOWER_POT_ITEM),
CARROT(Material.CARROT_ITEM),
POTATO(Material.POTATO_ITEM),
BAKED_POTATO(Material.BAKED_POTATO),
POISONOUS_POTATO(Material.POISONOUS_POTATO),
EMPTY_MAP(Material.EMPTY_MAP),
GOLDEN_CARROT(Material.GOLDEN_CARROT),
SKELETON_SKULL(Material.SKULL_ITEM),
WITHER_SKELETON_SKULL(Material.SKULL_ITEM, 1),
ZOMBIE_SKULL(Material.SKULL_ITEM, 2),
PLAYER_SKULL(Material.SKULL_ITEM, 3),
CREEPER_SKULL(Material.SKULL_ITEM, 4),
CARROT_ON_STICK(Material.CARROT_STICK),
NETHER_STAR(Material.NETHER_STAR),
PUMPKIN_PIE(Material.PUMPKIN_PIE),
FIREWORK(Material.FIREWORK),
FIREWORK_CHARGE(Material.FIREWORK_CHARGE),
ENCHANTED_BOOK(Material.ENCHANTED_BOOK),
COMPARATOR(Material.REDSTONE_COMPARATOR),
NETHER_BRICK_ITEM(Material.NETHER_BRICK_ITEM),
QUARTZ(Material.QUARTZ),
TNT_MINECART(Material.EXPLOSIVE_MINECART),
HOPPER_MINECART(Material.HOPPER_MINECART),
PRISMARINE_SHARD(Material.PRISMARINE_SHARD),
PRISMARINE_CRYSTALS(Material.PRISMARINE_CRYSTALS),
RAW_RABBIT(Material.RABBIT),
COOKED_RABBIT(Material.COOKED_RABBIT),
RABBIT_STEW(Material.RABBIT_STEW),
RABBIT_FOOT(Material.RABBIT_FOOT),
RABBIT_HIDE(Material.RABBIT_HIDE),
ARMOR_STAND(Material.ARMOR_STAND),
IRON_HORSE_ARMOR(Material.IRON_BARDING),
GOLD_HORSE_ARMOR(Material.GOLD_BARDING),
DIAMOND_HORSE_ARMOR(Material.DIAMOND_BARDING),
LEASH(Material.LEASH),
NAMETAG(Material.NAME_TAG),
COMMAND_BLOCK_MINECART(Material.COMMAND_MINECART),
RAW_MUTTON(Material.MUTTON),
COOKED_MUTTON(Material.COOKED_MUTTON),
WHITE_BANNER(Material.BANNER, 15),
ORANGE_BANNER(Material.BANNER, 14),
MAGENTA_BANNER(Material.BANNER, 13),
LIGHT_BLUE_BANNER(Material.BANNER, 12),
YELLOW_BANNER(Material.BANNER, 11),
LIME_BANNER(Material.BANNER, 10),
PINK_BANNER(Material.BANNER, 9),
GRAY_BANNER(Material.BANNER, 8),
LIGHT_GRAY_BANNER(Material.BANNER, 7),
CYAN_BANNER(Material.BANNER, 6),
PURPLE_BANNER(Material.BANNER, 5),
BLUE_BANNER(Material.BANNER, 4),
BROWN_BANNER(Material.BANNER, 3),
GREEN_BANNER(Material.BANNER, 2),
RED_BANNER(Material.BANNER, 1),
BLACK_BANNER(Material.BANNER, 0),
SPRUCE_DOOR_ITEM(Material.SPRUCE_DOOR_ITEM),
BIRCH_DOOR_ITEM(Material.BIRCH_DOOR_ITEM),
JUNGLE_DOOR_ITEM(Material.JUNGLE_DOOR_ITEM),
ACACIA_DOOR_ITEM(Material.ACACIA_DOOR_ITEM),
DARK_OAK_DOOR_ITEM(Material.DARK_OAK_DOOR_ITEM),
RECORD_13(Material.GOLD_RECORD),
CAT_RECORD(Material.GREEN_RECORD),
BLOCKS_RECORD(Material.RECORD_3),
CHIRP_RECORD(Material.RECORD_4),
FAR_RECORD(Material.RECORD_5),
MALL_RECORD(Material.RECORD_7),
MELLOHI_RECORD(Material.RECORD_8),
STAL_RECORD(Material.RECORD_9),
STRAD_RECORD(Material.RECORD_10),
WARD_RECORD(Material.RECORD_11),
RECORD_11(Material.RECORD_12);
/**
* Returns the id value of this material object.
*/
val id = type.id
/**
* Returns the material data of this material object.
*/
val data = newData(type, subdata)
/**
* Returns the max stack size of this material object.
*/
val maxStack = type.maxStackSize
/**
* Returns the max durability of this material object.
*/
val durability = type.maxDurability.toInt()
/**
* Returns if this material object contains subdata.
*/
val hasSubdata get() = subdata != 0
/**
* Verify if this material object is a plantation
*/
val isPlantation get() = name.endsWith("CROPS")
/**
* Verify if this material object is a monster egg
*/
val isMonsterEgg get() = id == 383
/**
* Verify if this material object is a block
*/
val isBlock get() = type.isBlock
/**
* Verify if this material object is a item
*/
val isItem get() = !isBlock
/**
* Verify if this material object is burnable
*/
val isBurnable get() = type.isBurnable
/**
* Verify if this material object is edible
*/
val isEdible get() = type.isEdible
/**
* Verify if this material object is flammable
*/
val isFlammable get() = type.isFlammable
/**
* Verify if this material object is a record
*/
val isRecord get() = type.isRecord
/**
* Verify if this material object is solid
*/
val isSolid get() = type.isSolid
/**
* Verify if this material object is occluding
*/
val isOccluding get() = type.isOccluding
/**
* Verify if this material object is transparent
*/
val isTransparent get() = type.isTransparent
/**
* Verify if this material object has gravity
*/
val hasGravity get() = type.hasGravity()
/**
* Converts this material object to a item stack with the specified [amount].
*/
fun toItem(amount: Int = 1) = newItem(data, amount)
override fun toString(): String = "($name) $id:$subdata"
companion object : Set by EnumSet.allOf(Materials::class.java) {
internal val BY_DATA: BiMap = EnumHashBiMap.create(Materials::class.java)
init {
for (value in values()) {
BY_DATA[value] = value.id to value.subdata
}
}
/**
* Gets a material object from the specified [data].
*/
@JvmStatic
fun from(data: MaterialData): Materials = from(data.itemTypeId, data.data.toInt())
/**
* Gets a material object from the specified [material] and [data].
*/
@JvmStatic
fun from(material: Material, data: Int): Materials = from(material.id, data)
/**
* Gets a material object from the specified [id] and [data].
*/
@JvmStatic
fun from(id: Int, data: Int): Materials = BY_DATA.inverse()[id to data] ?: AIR
/**
* Parses the given string to a material object or [AIR] if no material has found with the given string.
*/
fun parse(value: String): Materials {
if (value.isBlank())
return AIR
// can be material name, id or material data representation
// example: "STONE" or "1:0"
return runCatching { valueOf(value) }.recoverCatching {
val split = value.split(':', limit = 2)
from(split[0].toInt(), split[1].toInt())
}.getOrDefault(AIR)
}
/**
* Parses the given string to a material object or nulls if no material has found with the given string.
*/
fun parseOrNull(value: String): Materials? {
if (value.isBlank())
return null
return runCatching { valueOf(value) }.recoverCatching {
val split = value.split(':', limit = 2)
from(split[0].toInt(), split[1].toInt())
}.getOrNull()
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy