3287 lines
98 KiB
Java
3287 lines
98 KiB
Java
package com.songoda.core.compatibility;
|
|
|
|
import org.bukkit.Material;
|
|
import org.bukkit.block.Block;
|
|
import org.bukkit.entity.EntityType;
|
|
import org.bukkit.entity.FallingBlock;
|
|
import org.bukkit.inventory.ItemStack;
|
|
import org.jetbrains.annotations.Contract;
|
|
|
|
import java.lang.reflect.InvocationTargetException;
|
|
import java.lang.reflect.Method;
|
|
import java.util.Collections;
|
|
import java.util.HashMap;
|
|
import java.util.LinkedHashSet;
|
|
import java.util.Map;
|
|
import java.util.Set;
|
|
|
|
/**
|
|
* Items that are compatible with server versions 1.7+
|
|
*/
|
|
public enum CompatibleMaterial {
|
|
/*
|
|
TODO: add another handler for getBlockItem() for materials and fallback materials
|
|
|
|
Legacy has some values not used in modern, eg:
|
|
|
|
DIODE_BLOCK_OFF(93, Diode.class),
|
|
DIODE_BLOCK_ON(94, Diode.class),
|
|
SPRUCE_DOOR_ITEM(427),
|
|
BIRCH_DOOR_ITEM(428),
|
|
JUNGLE_DOOR_ITEM(429),
|
|
ACACIA_DOOR_ITEM(430),
|
|
DARK_OAK_DOOR_ITEM(431),
|
|
*/
|
|
|
|
/* 1.19.3 */
|
|
ENDER_DRAGON_SPAWN_EGG(),
|
|
IRON_GOLEM_SPAWN_EGG(),
|
|
SNOW_GOLEM_SPAWN_EGG(),
|
|
WITHER_SPAWN_EGG(),
|
|
|
|
/* 1.19 */
|
|
ACACIA_CHEST_BOAT(),
|
|
ALLAY_SPAWN_EGG(),
|
|
BIRCH_CHEST_BOAT(),
|
|
DARK_OAK_CHEST_BOAT(),
|
|
DISC_FRAGMENT_5(),
|
|
ECHO_SHARD(),
|
|
FROGSPAWN(),
|
|
FROG_SPAWN_EGG(),
|
|
GOAT_HORN(),
|
|
JUNGLE_CHEST_BOAT(),
|
|
MANGROVE_BOAT(),
|
|
MANGROVE_BUTTON(),
|
|
MANGROVE_CHEST_BOAT(),
|
|
MANGROVE_DOOR(),
|
|
MANGROVE_FENCE(),
|
|
MANGROVE_FENCE_GATE(),
|
|
MANGROVE_LEAVES(),
|
|
MANGROVE_LOG(),
|
|
MANGROVE_PLANKS(),
|
|
MANGROVE_PRESSURE_PLATE(),
|
|
MANGROVE_PROPAGULE(),
|
|
MANGROVE_ROOTS(),
|
|
MANGROVE_SIGN(),
|
|
MANGROVE_SLAB(),
|
|
MANGROVE_STAIRS(),
|
|
MANGROVE_TRAPDOOR(),
|
|
MANGROVE_WALL_SIGN(),
|
|
MANGROVE_WOOD(),
|
|
MUD(),
|
|
MUDDY_MANGROVE_ROOTS(),
|
|
MUD_BRICKS(),
|
|
MUD_BRICK_SLAB(),
|
|
MUD_BRICK_STAIRS(),
|
|
MUD_BRICK_WALL(),
|
|
MUSIC_DISC_5(),
|
|
OAK_CHEST_BOAT(),
|
|
OCHRE_FROGLIGHT(),
|
|
PACKED_MUD(),
|
|
PEARLESCENT_FROGLIGHT(),
|
|
POTTED_MANGROVE_PROPAGULE(),
|
|
RECOVERY_COMPASS(),
|
|
REINFORCED_DEEPSLATE(),
|
|
SCULK(),
|
|
SCULK_CATALYST(),
|
|
SCULK_SHRIEKER(),
|
|
SCULK_VEIN(),
|
|
SPRUCE_CHEST_BOAT(),
|
|
STRIPPED_MANGROVE_LOG(),
|
|
STRIPPED_MANGROVE_WOOD(),
|
|
TADPOLE_BUCKET(),
|
|
TADPOLE_SPAWN_EGG(),
|
|
VERDANT_FROGLIGHT(),
|
|
WARDEN_SPAWN_EGG(),
|
|
|
|
/* 1.18 */
|
|
MUSIC_DISC_OTHERSIDE(),
|
|
|
|
/* 1.17 */
|
|
AMETHYST_BLOCK(),
|
|
AMETHYST_CLUSTER(),
|
|
AMETHYST_SHARD(),
|
|
AXOLOTL_BUCKET(),
|
|
AXOLOTL_SPAWN_EGG(),
|
|
AZALEA(),
|
|
AZALEA_LEAVES(),
|
|
BIG_DRIPLEAF(),
|
|
BIG_DRIPLEAF_STEM(),
|
|
BLACK_CANDLE(),
|
|
BLACK_CANDLE_CAKE(),
|
|
BLUE_CANDLE(),
|
|
BLUE_CANDLE_CAKE(),
|
|
BROWN_CANDLE(),
|
|
BROWN_CANDLE_CAKE(),
|
|
BUDDING_AMETHYST(),
|
|
BUNDLE(),
|
|
CALCITE(),
|
|
CANDLE(),
|
|
CANDLE_CAKE(),
|
|
CAVE_VINES(),
|
|
CAVE_VINES_PLANT(),
|
|
CHISELED_DEEPSLATE(),
|
|
COBBLED_DEEPSLATE(),
|
|
COBBLED_DEEPSLATE_SLAB(),
|
|
COBBLED_DEEPSLATE_STAIRS(),
|
|
COBBLED_DEEPSLATE_WALL(),
|
|
COPPER_BLOCK(),
|
|
COPPER_INGOT(),
|
|
COPPER_ORE(),
|
|
CRACKED_DEEPSLATE_BRICKS(),
|
|
CRACKED_DEEPSLATE_TILES(),
|
|
CUT_COPPER(),
|
|
CUT_COPPER_SLAB(),
|
|
CUT_COPPER_STAIRS(),
|
|
CYAN_CANDLE(),
|
|
CYAN_CANDLE_CAKE(),
|
|
DEEPSLATE(),
|
|
DEEPSLATE_BRICKS(),
|
|
DEEPSLATE_BRICK_SLAB(),
|
|
DEEPSLATE_BRICK_STAIRS(),
|
|
DEEPSLATE_BRICK_WALL(),
|
|
DEEPSLATE_COAL_ORE(),
|
|
DEEPSLATE_COPPER_ORE(),
|
|
DEEPSLATE_DIAMOND_ORE(),
|
|
DEEPSLATE_EMERALD_ORE(),
|
|
DEEPSLATE_GOLD_ORE(),
|
|
DEEPSLATE_IRON_ORE(),
|
|
DEEPSLATE_LAPIS_ORE(),
|
|
DEEPSLATE_REDSTONE_ORE(),
|
|
DEEPSLATE_TILES(),
|
|
DEEPSLATE_TILE_SLAB(),
|
|
DEEPSLATE_TILE_STAIRS(),
|
|
DEEPSLATE_TILE_WALL(),
|
|
DRIPSTONE_BLOCK(),
|
|
EXPOSED_COPPER(),
|
|
EXPOSED_CUT_COPPER(),
|
|
EXPOSED_CUT_COPPER_SLAB(),
|
|
EXPOSED_CUT_COPPER_STAIRS(),
|
|
FLOWERING_AZALEA(),
|
|
FLOWERING_AZALEA_LEAVES(),
|
|
GLOW_BERRIES(),
|
|
GLOW_INK_SAC(),
|
|
GLOW_ITEM_FRAME(),
|
|
GLOW_LICHEN(),
|
|
GLOW_SQUID_SPAWN_EGG(),
|
|
GOAT_SPAWN_EGG(),
|
|
GRAY_CANDLE(),
|
|
GRAY_CANDLE_CAKE(),
|
|
GREEN_CANDLE(),
|
|
GREEN_CANDLE_CAKE(),
|
|
HANGING_ROOTS(),
|
|
INFESTED_DEEPSLATE(),
|
|
LARGE_AMETHYST_BUD(),
|
|
LAVA_CAULDRON(),
|
|
LIGHT(),
|
|
LIGHTNING_ROD(),
|
|
LIGHT_BLUE_CANDLE(),
|
|
LIGHT_BLUE_CANDLE_CAKE(),
|
|
LIGHT_GRAY_CANDLE(),
|
|
LIGHT_GRAY_CANDLE_CAKE(),
|
|
LIME_CANDLE(),
|
|
LIME_CANDLE_CAKE(),
|
|
MAGENTA_CANDLE(),
|
|
MAGENTA_CANDLE_CAKE(),
|
|
MEDIUM_AMETHYST_BUD(),
|
|
MOSS_BLOCK(),
|
|
MOSS_CARPET(),
|
|
ORANGE_CANDLE(),
|
|
ORANGE_CANDLE_CAKE(),
|
|
OXIDIZED_COPPER(),
|
|
OXIDIZED_CUT_COPPER(),
|
|
OXIDIZED_CUT_COPPER_SLAB(),
|
|
OXIDIZED_CUT_COPPER_STAIRS(),
|
|
PINK_CANDLE(),
|
|
PINK_CANDLE_CAKE(),
|
|
POINTED_DRIPSTONE(),
|
|
POLISHED_DEEPSLATE(),
|
|
POLISHED_DEEPSLATE_SLAB(),
|
|
POLISHED_DEEPSLATE_STAIRS(),
|
|
POLISHED_DEEPSLATE_WALL(),
|
|
POTTED_AZALEA_BUSH(),
|
|
POTTED_FLOWERING_AZALEA_BUSH(),
|
|
POWDER_SNOW(),
|
|
POWDER_SNOW_BUCKET(),
|
|
POWDER_SNOW_CAULDRON(),
|
|
PURPLE_CANDLE(),
|
|
PURPLE_CANDLE_CAKE(),
|
|
RAW_COPPER(),
|
|
RAW_COPPER_BLOCK(),
|
|
RAW_GOLD(),
|
|
RAW_GOLD_BLOCK(),
|
|
RAW_IRON(),
|
|
RAW_IRON_BLOCK(),
|
|
RED_CANDLE(),
|
|
RED_CANDLE_CAKE(),
|
|
ROOTED_DIRT(),
|
|
SCULK_SENSOR(),
|
|
SMALL_AMETHYST_BUD(),
|
|
SMALL_DRIPLEAF(),
|
|
SMOOTH_BASALT(),
|
|
SPORE_BLOSSOM(),
|
|
SPYGLASS(),
|
|
TINTED_GLASS(),
|
|
TUFF(),
|
|
WATER_CAULDRON(),
|
|
WAXED_COPPER_BLOCK(),
|
|
WAXED_CUT_COPPER(),
|
|
WAXED_CUT_COPPER_SLAB(),
|
|
WAXED_CUT_COPPER_STAIRS(),
|
|
WAXED_EXPOSED_COPPER(),
|
|
WAXED_EXPOSED_CUT_COPPER(),
|
|
WAXED_EXPOSED_CUT_COPPER_SLAB(),
|
|
WAXED_EXPOSED_CUT_COPPER_STAIRS(),
|
|
WAXED_OXIDIZED_COPPER(),
|
|
WAXED_OXIDIZED_CUT_COPPER(),
|
|
WAXED_OXIDIZED_CUT_COPPER_SLAB(),
|
|
WAXED_OXIDIZED_CUT_COPPER_STAIRS(),
|
|
WAXED_WEATHERED_COPPER(),
|
|
WAXED_WEATHERED_CUT_COPPER(),
|
|
WAXED_WEATHERED_CUT_COPPER_SLAB(),
|
|
WAXED_WEATHERED_CUT_COPPER_STAIRS(),
|
|
WEATHERED_COPPER(),
|
|
WEATHERED_CUT_COPPER(),
|
|
WEATHERED_CUT_COPPER_SLAB(),
|
|
WEATHERED_CUT_COPPER_STAIRS(),
|
|
WHITE_CANDLE(),
|
|
WHITE_CANDLE_CAKE(),
|
|
YELLOW_CANDLE(),
|
|
YELLOW_CANDLE_CAKE(),
|
|
|
|
/* 1.16.2 */
|
|
PIGLIN_BRUTE_SPAWN_EGG(),
|
|
|
|
/* 1.16 */
|
|
ANCIENT_DEBRIS(),
|
|
BASALT(),
|
|
BLACKSTONE(),
|
|
BLACKSTONE_STAIRS(),
|
|
BLACKSTONE_WALL(),
|
|
BLACKSTONE_SLAB(),
|
|
BLASTSTONE_SLAB(),
|
|
CHAIN(),
|
|
CHISELED_NETHER_BRICKS(),
|
|
CHISELED_POLISHED_BLACKSTONE(),
|
|
CRACKED_NETHER_BRICKS(),
|
|
CRACKED_POLISHED_BLACKSTONE_BRICKS(),
|
|
CRIMSON_BUTTON(),
|
|
CRIMSON_DOOR(),
|
|
CRIMSON_FENCE(),
|
|
CRIMSON_FENCE_GATE(),
|
|
CRIMSON_FUNGUS(),
|
|
CRIMSON_HYPHAE(),
|
|
CRIMSON_NYLIUM(),
|
|
CRIMSON_PLANKS(),
|
|
CRIMSON_PRESSURE_PLATE(),
|
|
CRIMSON_ROOTS(),
|
|
CRIMSON_SIGN(),
|
|
CRIMSON_SLAB(),
|
|
CRIMSON_STAIRS(),
|
|
CRIMSON_STEM(),
|
|
CRIMSON_TRAPDOOR(),
|
|
CRIMSON_WALL_SIGN(),
|
|
CRYING_OBSIDIAN(),
|
|
GILDED_BLACKSTONE(),
|
|
HOGLIN_SPAWN_EGG(),
|
|
LODESTONE(),
|
|
MUSIC_DISC_PIGSTEP(),
|
|
NETHERITE_AXE(),
|
|
NETHERITE_BLOCK(),
|
|
NETHERITE_BOOTS(),
|
|
NETHERITE_CHESTPLATE(),
|
|
NETHERITE_HELMET(),
|
|
NETHERITE_HOE(),
|
|
NETHERITE_INGOT(),
|
|
NETHERITE_LEGGINGS(),
|
|
NETHERITE_PICKAXE(),
|
|
NETHERITE_SCRAP(),
|
|
NETHERITE_SHOVEL(),
|
|
NETHERITE_SWORD(),
|
|
NETHER_GOLD_ORE(),
|
|
NETHER_SPROUTS(),
|
|
PIGLIN_BANNER_PATTERN(),
|
|
PIGLIN_SPAWN_EGG(),
|
|
POLISHED_BASALT(),
|
|
POLISHED_BLACKSTONE(),
|
|
POLISHED_BLACKSTONE_BRICKS(),
|
|
POLISHED_BLACKSTONE_BRICK_SLAB(),
|
|
POLISHED_BLACKSTONE_BRICK_STAIRS(),
|
|
POLISHED_BLACKSTONE_BRICK_WALL(),
|
|
POLISHED_BLACKSTONE_BUTTON(),
|
|
POLISHED_BLACKSTONE_PRESSURE_PLATE(),
|
|
POLISHED_BLACKSTONE_SLAB(),
|
|
POLISHED_BLACKSTONE_STAIRS(),
|
|
POLISHED_BLACKSTONE_WALL(),
|
|
POTTED_CRIMSON_FUNGUS(),
|
|
POTTED_CRIMSON_ROOTS(),
|
|
POTTED_WARPED_FUNGUS(),
|
|
POTTED_WARPED_ROOTS(),
|
|
QUARTZ_BRICKS(),
|
|
RESPAWN_ANCHOR(),
|
|
SHROOMLIGHT(),
|
|
SOUL_CAMPFIRE(),
|
|
SOUL_FIRE(),
|
|
SOUL_LANTERN(),
|
|
SOUL_SOIL(),
|
|
SOUL_TORCH(),
|
|
SOUL_WALL_TORCH(),
|
|
STRIDER_SPAWN_EGG(),
|
|
STRIPPED_CRIMSON_HYPHAE(),
|
|
STRIPPED_CRIMSON_STEM(),
|
|
STRIPPED_WARPED_HYPHAE(),
|
|
STRIPPED_WARPED_STEM(),
|
|
TARGET(),
|
|
TWISTING_VINES(),
|
|
TWISTING_VINES_PLANT(),
|
|
WARPED_BUTTON(),
|
|
WARPED_DOOR(),
|
|
WARPED_FENCE(),
|
|
WARPED_FENCE_GATE(),
|
|
WARPED_FUNGUS(),
|
|
WARPED_FUNGUS_ON_A_STICK(),
|
|
WARPED_HYPHAE(),
|
|
WARPED_NYLIUM(),
|
|
WARPED_PLANKS(),
|
|
WARPED_PRESSURE_PLATE(),
|
|
WARPED_ROOTS(),
|
|
WARPED_SIGN(),
|
|
WARPED_SLAB(),
|
|
WARPED_STAIRS(),
|
|
WARPED_STEM(),
|
|
WARPED_TRAPDOOR(),
|
|
WARPED_WALL_SIGN(),
|
|
WARPED_WART_BLOCK(),
|
|
WEEPING_VINES(),
|
|
WEEPING_VINES_PLANT(),
|
|
ZOGLIN_SPAWN_EGG(),
|
|
ZOMBIFIED_PIGLIN_SPAWN_EGG(),
|
|
|
|
/* 1.15 */
|
|
BEE_SPAWN_EGG(),
|
|
BEE_NEST(),
|
|
BEEHIVE(),
|
|
HONEY_BLOCK(),
|
|
HONEY_BOTTLE(),
|
|
HONEYCOMB(),
|
|
HONEYCOMB_BLOCK(),
|
|
|
|
ACACIA_BOAT("BOAT_ACACIA"),
|
|
ACACIA_BUTTON(),
|
|
ACACIA_DOOR("ACACIA_DOOR_ITEM"),
|
|
ACACIA_FENCE(),
|
|
ACACIA_FENCE_GATE(),
|
|
ACACIA_LEAVES("LEAVES_2", (byte) 0),
|
|
ACACIA_LOG("LOG_2", (byte) 0),
|
|
ACACIA_PLANKS("WOOD", (byte) 4),
|
|
ACACIA_PRESSURE_PLATE(),
|
|
ACACIA_SAPLING("SAPLING", (byte) 4),
|
|
ACACIA_SIGN(ServerVersion.V1_14, null),
|
|
ACACIA_SLAB("WOOD_STEP", (byte) 4),
|
|
ACACIA_STAIRS,
|
|
ACACIA_TRAPDOOR(),
|
|
ACACIA_WALL_SIGN(),
|
|
ACACIA_WOOD("LOG_2", (byte) 12),
|
|
ACTIVATOR_RAIL,
|
|
AIR,
|
|
ALLIUM("RED_ROSE", (byte) 2),
|
|
ANDESITE("STONE", (byte) 5),
|
|
ANDESITE_SLAB(),
|
|
ANDESITE_STAIRS(),
|
|
ANDESITE_WALL(),
|
|
ANVIL("ANVIL", (byte) 0),
|
|
APPLE,
|
|
ARMOR_STAND(ServerVersion.V1_8, null),
|
|
ARROW,
|
|
ATTACHED_MELON_STEM("MELON_STEM"),
|
|
ATTACHED_PUMPKIN_STEM("PUMPKIN_STEM"),
|
|
AZURE_BLUET("RED_ROSE", (byte) 3),
|
|
BAKED_POTATO("BAKED_POTATO"),
|
|
BAMBOO(),
|
|
BAMBOO_SAPLING(),
|
|
BARREL(),
|
|
BARRIER(),
|
|
BAT_SPAWN_EGG("MONSTER_EGG", (byte) 65),
|
|
BEACON,
|
|
BEDROCK,
|
|
BEEF("RAW_BEEF"),
|
|
BEETROOT(), // the item
|
|
BEETROOTS("BEETROOT_BLOCK"), // the crop
|
|
BEETROOT_SEEDS(),
|
|
BEETROOT_SOUP(),
|
|
BELL(),
|
|
BIRCH_BOAT("BOAT_BIRCH"),
|
|
BIRCH_BUTTON(),
|
|
BIRCH_DOOR("BIRCH_DOOR_ITEM"),
|
|
BIRCH_FENCE(),
|
|
BIRCH_FENCE_GATE(),
|
|
BIRCH_LEAVES("LEAVES", (byte) 2),
|
|
BIRCH_LOG("LOG", (byte) 2),
|
|
BIRCH_PLANKS("WOOD", (byte) 2),
|
|
BIRCH_PRESSURE_PLATE(),
|
|
BIRCH_SAPLING("SAPLING", (byte) 2),
|
|
BIRCH_SIGN(),
|
|
BIRCH_SLAB("WOOD_STEP", (byte) 2),
|
|
BIRCH_STAIRS(),
|
|
BIRCH_TRAPDOOR(),
|
|
BIRCH_WALL_SIGN(),
|
|
BIRCH_WOOD("LOG", (byte) 14),
|
|
BLACK_BANNER("BANNER", (byte) 0),
|
|
BLACK_BED("BED", (byte) 15),
|
|
BLACK_CARPET("CARPET", (byte) 15),
|
|
BLACK_CONCRETE("CONCRETE", (byte) 15),
|
|
BLACK_CONCRETE_POWDER("CONCRETE_POWDER", (byte) 15),
|
|
BLACK_DYE(),
|
|
BLACK_GLAZED_TERRACOTTA(),
|
|
BLACK_SHULKER_BOX(),
|
|
BLACK_STAINED_GLASS("STAINED_GLASS", (byte) 15),
|
|
BLACK_STAINED_GLASS_PANE("STAINED_GLASS_PANE", (byte) 15),
|
|
BLACK_TERRACOTTA("STAINED_CLAY", (byte) 15),
|
|
BLACK_WALL_BANNER("WALL_BANNER", (byte) 0),
|
|
BLACK_WOOL("WOOL", (byte) 15),
|
|
BLAST_FURNACE,
|
|
BLAZE_POWDER,
|
|
BLAZE_ROD,
|
|
BLAZE_SPAWN_EGG("MONSTER_EGG", (byte) 61),
|
|
BLUE_BANNER("BANNER", (byte) 4),
|
|
BLUE_BED("BED", (byte) 11),
|
|
BLUE_CARPET("CARPET", (byte) 11),
|
|
BLUE_CONCRETE("CONCRETE", (byte) 11),
|
|
BLUE_CONCRETE_POWDER("CONCRETE_POWDER", (byte) 11),
|
|
BLUE_DYE(),
|
|
BLUE_GLAZED_TERRACOTTA(),
|
|
BLUE_ICE,
|
|
BLUE_ORCHID("RED_ROSE", (byte) 1),
|
|
BLUE_SHULKER_BOX(),
|
|
BLUE_STAINED_GLASS("STAINED_GLASS", (byte) 11),
|
|
BLUE_STAINED_GLASS_PANE("STAINED_GLASS_PANE", (byte) 11),
|
|
BLUE_TERRACOTTA("STAINED_CLAY", (byte) 11),
|
|
BLUE_WALL_BANNER("WALL_BANNER", (byte) 4),
|
|
BLUE_WOOL("WOOL", (byte) 11),
|
|
BONE,
|
|
BONE_BLOCK,
|
|
BONE_MEAL("INK_SACK", (byte) 15),
|
|
BOOK,
|
|
BOOKSHELF,
|
|
BOW,
|
|
BOWL,
|
|
BRAIN_CORAL,
|
|
BRAIN_CORAL_BLOCK,
|
|
BRAIN_CORAL_FAN,
|
|
BRAIN_CORAL_WALL_FAN,
|
|
BREAD,
|
|
BREWING_STAND("BREWING_STAND_ITEM"),
|
|
/**
|
|
* minecraft:brick (item)
|
|
*/
|
|
BRICK("CLAY_BRICK"),
|
|
/**
|
|
* minecraft:brick_block (block)
|
|
*/
|
|
BRICKS("BRICK"),
|
|
BRICK_SLAB("STEP", (byte) 4),
|
|
BRICK_STAIRS,
|
|
BRICK_WALL,
|
|
BROWN_BANNER("BANNER", (byte) 3),
|
|
BROWN_BED("BED", (byte) 12),
|
|
BROWN_CARPET("CARPET", (byte) 12),
|
|
BROWN_CONCRETE("CONCRETE", (byte) 12),
|
|
BROWN_CONCRETE_POWDER("CONCRETE_POWDER", (byte) 12),
|
|
BROWN_DYE(),
|
|
BROWN_GLAZED_TERRACOTTA(),
|
|
BROWN_MUSHROOM,
|
|
BROWN_MUSHROOM_BLOCK("HUGE_MUSHROOM_1"),
|
|
BROWN_SHULKER_BOX(),
|
|
BROWN_STAINED_GLASS("STAINED_GLASS", (byte) 12),
|
|
BROWN_STAINED_GLASS_PANE("STAINED_GLASS_PANE", (byte) 12),
|
|
BROWN_TERRACOTTA("STAINED_CLAY", (byte) 12),
|
|
BROWN_WALL_BANNER("WALL_BANNER", (byte) 3),
|
|
BROWN_WOOL("WOOL", (byte) 12),
|
|
BUBBLE_COLUMN,
|
|
BUBBLE_CORAL,
|
|
BUBBLE_CORAL_BLOCK,
|
|
BUBBLE_CORAL_FAN,
|
|
BUBBLE_CORAL_WALL_FAN,
|
|
BUCKET,
|
|
CACTUS,
|
|
CAKE,
|
|
CAMPFIRE,
|
|
CARROT("CARROT_ITEM"),
|
|
CARROTS("CARROT"), // totally makes sense, lol
|
|
CARROT_ON_A_STICK("CARROT_STICK"),
|
|
CARTOGRAPHY_TABLE,
|
|
CARVED_PUMPKIN("JACK_O_LANTERN"),
|
|
CAT_SPAWN_EGG(),
|
|
CAULDRON("CAULDRON_ITEM"),
|
|
CAVE_AIR(),
|
|
CAVE_SPIDER_SPAWN_EGG("MONSTER_EGG", (byte) 59),
|
|
CHAINMAIL_BOOTS,
|
|
CHAINMAIL_CHESTPLATE,
|
|
CHAINMAIL_HELMET,
|
|
CHAINMAIL_LEGGINGS,
|
|
CHAIN_COMMAND_BLOCK("COMMAND_CHAIN"),
|
|
CHARCOAL("COAL", (byte) 1),
|
|
CHEST,
|
|
CHEST_MINECART("STORAGE_MINECART"),
|
|
CHICKEN("RAW_CHICKEN"),
|
|
CHICKEN_SPAWN_EGG("MONSTER_EGG", (byte) 93),
|
|
CHIPPED_ANVIL("ANVIL", (byte) 1),
|
|
CHISELED_QUARTZ_BLOCK("QUARTZ_BLOCK", (byte) 1),
|
|
CHISELED_RED_SANDSTONE("RED_SANDSTONE", (byte) 1),
|
|
CHISELED_SANDSTONE("SANDSTONE", (byte) 1),
|
|
CHISELED_STONE_BRICKS("SMOOTH_BRICK", (byte) 3),
|
|
CHORUS_FLOWER,
|
|
CHORUS_FRUIT,
|
|
CHORUS_PLANT,
|
|
CLAY,
|
|
CLAY_BALL,
|
|
CLOCK("WATCH"),
|
|
COAL,
|
|
COAL_BLOCK,
|
|
COAL_ORE,
|
|
COARSE_DIRT("DIRT", (byte) 1),
|
|
COBBLESTONE,
|
|
COBBLESTONE_SLAB("STEP", (byte) 3),
|
|
COBBLESTONE_STAIRS,
|
|
COBBLESTONE_WALL("COBBLE_WALL"),
|
|
COBWEB("WEB"),
|
|
COCOA,
|
|
COCOA_BEANS("INK_SACK", (byte) 3),
|
|
COD("RAW_FISH", (byte) 0),
|
|
COD_BUCKET,
|
|
COD_SPAWN_EGG(),
|
|
COMMAND_BLOCK("COMMAND"),
|
|
COMMAND_BLOCK_MINECART("COMMAND_MINECART"),
|
|
COMPARATOR("REDSTONE_COMPARATOR"),
|
|
COMPASS,
|
|
COMPOSTER,
|
|
CONDUIT,
|
|
COOKED_BEEF,
|
|
COOKED_CHICKEN,
|
|
COOKED_COD("COOKED_FISH", (byte) 0),
|
|
COOKED_MUTTON,
|
|
COOKED_PORKCHOP("GRILLED_PORK"),
|
|
COOKED_RABBIT,
|
|
COOKED_SALMON("COOKED_FISH", (byte) 1),
|
|
COOKIE,
|
|
CORNFLOWER,
|
|
COW_SPAWN_EGG("MONSTER_EGG", (byte) 92),
|
|
CRACKED_STONE_BRICKS("SMOOTH_BRICK", (byte) 2),
|
|
CRAFTING_TABLE("WORKBENCH"),
|
|
CREEPER_BANNER_PATTERN,
|
|
CREEPER_HEAD("SKULL_ITEM", (byte) 4),
|
|
CREEPER_SPAWN_EGG("MONSTER_EGG", (byte) 50),
|
|
CREEPER_WALL_HEAD("SKULL", (byte) 4),
|
|
CROSSBOW,
|
|
CUT_RED_SANDSTONE,
|
|
CUT_RED_SANDSTONE_SLAB(),
|
|
CUT_SANDSTONE,
|
|
CUT_SANDSTONE_SLAB(),
|
|
CYAN_BANNER("BANNER", (byte) 6),
|
|
CYAN_BED("BED", (byte) 9),
|
|
CYAN_CARPET("CARPET", (byte) 9),
|
|
CYAN_CONCRETE("CONCRETE", (byte) 9),
|
|
CYAN_CONCRETE_POWDER("CONCRETE_POWDER", (byte) 9),
|
|
CYAN_DYE("INK_SACK", (byte) 6),
|
|
CYAN_GLAZED_TERRACOTTA(),
|
|
CYAN_SHULKER_BOX(),
|
|
CYAN_STAINED_GLASS("STAINED_GLASS", (byte) 9),
|
|
CYAN_STAINED_GLASS_PANE("STAINED_GLASS_PANE", (byte) 9),
|
|
CYAN_TERRACOTTA("STAINED_CLAY", (byte) 9),
|
|
CYAN_WALL_BANNER("WALL_BANNER", (byte) 6),
|
|
CYAN_WOOL("WOOL", (byte) 9),
|
|
DAMAGED_ANVIL("ANVIL", (byte) 2),
|
|
DANDELION("YELLOW_FLOWER"),
|
|
DARK_OAK_BOAT("BOAT_DARK_OAK"),
|
|
DARK_OAK_BUTTON(),
|
|
DARK_OAK_DOOR("DARK_OAK_DOOR_ITEM"),
|
|
DARK_OAK_FENCE(),
|
|
DARK_OAK_FENCE_GATE(),
|
|
DARK_OAK_LEAVES("LEAVES_2", (byte) 1),
|
|
DARK_OAK_LOG("LOG_2", (byte) 1),
|
|
DARK_OAK_PLANKS("WOOD", (byte) 5),
|
|
DARK_OAK_PRESSURE_PLATE(),
|
|
DARK_OAK_SAPLING("SAPLING", (byte) 5),
|
|
DARK_OAK_SIGN(),
|
|
DARK_OAK_SLAB("WOOD_STEP", (byte) 5),
|
|
DARK_OAK_STAIRS,
|
|
DARK_OAK_TRAPDOOR(),
|
|
DARK_OAK_WALL_SIGN(),
|
|
DARK_OAK_WOOD("LOG_2", (byte) 13),
|
|
DARK_PRISMARINE("PRISMARINE", (byte) 2),
|
|
DARK_PRISMARINE_SLAB(),
|
|
DARK_PRISMARINE_STAIRS,
|
|
DAYLIGHT_DETECTOR,
|
|
DEAD_BRAIN_CORAL,
|
|
DEAD_BRAIN_CORAL_BLOCK,
|
|
DEAD_BRAIN_CORAL_FAN,
|
|
DEAD_BRAIN_CORAL_WALL_FAN,
|
|
DEAD_BUBBLE_CORAL,
|
|
DEAD_BUBBLE_CORAL_BLOCK,
|
|
DEAD_BUBBLE_CORAL_FAN,
|
|
DEAD_BUBBLE_CORAL_WALL_FAN,
|
|
DEAD_BUSH("LONG_GRASS", (byte) 0),
|
|
DEAD_FIRE_CORAL,
|
|
DEAD_FIRE_CORAL_BLOCK,
|
|
DEAD_FIRE_CORAL_FAN,
|
|
DEAD_FIRE_CORAL_WALL_FAN,
|
|
DEAD_HORN_CORAL,
|
|
DEAD_HORN_CORAL_BLOCK,
|
|
DEAD_HORN_CORAL_FAN,
|
|
DEAD_HORN_CORAL_WALL_FAN,
|
|
DEAD_TUBE_CORAL,
|
|
DEAD_TUBE_CORAL_BLOCK,
|
|
DEAD_TUBE_CORAL_FAN,
|
|
DEAD_TUBE_CORAL_WALL_FAN,
|
|
DEBUG_STICK,
|
|
DETECTOR_RAIL,
|
|
DIAMOND,
|
|
DIAMOND_AXE,
|
|
DIAMOND_BLOCK,
|
|
DIAMOND_BOOTS,
|
|
DIAMOND_CHESTPLATE,
|
|
DIAMOND_HELMET,
|
|
DIAMOND_HOE,
|
|
DIAMOND_HORSE_ARMOR("DIAMOND_BARDING"),
|
|
DIAMOND_LEGGINGS,
|
|
DIAMOND_ORE,
|
|
DIAMOND_PICKAXE,
|
|
DIAMOND_SHOVEL("DIAMOND_SPADE"),
|
|
DIAMOND_SWORD,
|
|
DIORITE("STONE", (byte) 3),
|
|
DIORITE_SLAB(),
|
|
DIORITE_STAIRS,
|
|
DIORITE_WALL,
|
|
DIRT("DIRT", (byte) 0),
|
|
DISPENSER,
|
|
DOLPHIN_SPAWN_EGG(),
|
|
DONKEY_SPAWN_EGG(),
|
|
DRAGON_BREATH,
|
|
DRAGON_EGG,
|
|
DRAGON_HEAD("SKULL_ITEM", (byte) 5),
|
|
DRAGON_WALL_HEAD("SKULL", (byte) 5),
|
|
DRIED_KELP(),
|
|
DRIED_KELP_BLOCK(),
|
|
DROPPER,
|
|
DROWNED_SPAWN_EGG(),
|
|
EGG,
|
|
ELDER_GUARDIAN_SPAWN_EGG("MONSTER_EGG", (byte) 4),
|
|
ELYTRA,
|
|
EMERALD,
|
|
EMERALD_BLOCK,
|
|
EMERALD_ORE,
|
|
ENCHANTED_BOOK,
|
|
ENCHANTED_GOLDEN_APPLE("GOLDEN_APPLE", (byte) 1),
|
|
ENCHANTING_TABLE("ENCHANTMENT_TABLE"),
|
|
ENDERMAN_SPAWN_EGG("MONSTER_EGG", (byte) 58),
|
|
ENDERMITE_SPAWN_EGG("MONSTER_EGG", (byte) 67),
|
|
ENDER_CHEST,
|
|
ENDER_EYE("EYE_OF_ENDER"),
|
|
ENDER_PEARL,
|
|
END_CRYSTAL,
|
|
END_GATEWAY,
|
|
END_PORTAL("ENDER_PORTAL"),
|
|
END_PORTAL_FRAME("ENDER_PORTAL_FRAME"),
|
|
END_ROD,
|
|
END_STONE("ENDER_STONE"),
|
|
END_STONE_BRICKS("END_BRICKS"),
|
|
END_STONE_BRICK_SLAB(),
|
|
END_STONE_BRICK_STAIRS,
|
|
END_STONE_BRICK_WALL,
|
|
EVOKER_SPAWN_EGG("MONSTER_EGG", (byte) 34),
|
|
EXPERIENCE_BOTTLE("EXP_BOTTLE"),
|
|
FARMLAND("SOIL"),
|
|
FEATHER,
|
|
FERMENTED_SPIDER_EYE,
|
|
FERN("LONG_GRASS", (byte) 2),
|
|
FILLED_MAP,
|
|
FIRE,
|
|
FIREWORK_ROCKET("FIREWORK"),
|
|
FIREWORK_STAR("FIREWORK_CHARGE"),
|
|
FIRE_CHARGE("FIREBALL"),
|
|
FIRE_CORAL,
|
|
FIRE_CORAL_BLOCK,
|
|
FIRE_CORAL_FAN,
|
|
FIRE_CORAL_WALL_FAN,
|
|
FISHING_ROD,
|
|
FLETCHING_TABLE,
|
|
FLINT,
|
|
FLINT_AND_STEEL,
|
|
FLOWER_BANNER_PATTERN,
|
|
FLOWER_POT("FLOWER_POT_ITEM"),
|
|
FOX_SPAWN_EGG(),
|
|
FROSTED_ICE,
|
|
FURNACE,
|
|
FURNACE_MINECART("POWERED_MINECART"),
|
|
GHAST_SPAWN_EGG("MONSTER_EGG", (byte) 56),
|
|
GHAST_TEAR,
|
|
GLASS,
|
|
GLASS_BOTTLE,
|
|
GLASS_PANE("THIN_GLASS"),
|
|
GLISTERING_MELON_SLICE("SPECKLED_MELON"),
|
|
GLOBE_BANNER_PATTERN,
|
|
GLOWSTONE,
|
|
GLOWSTONE_DUST,
|
|
GOLDEN_APPLE,
|
|
GOLDEN_AXE("GOLD_AXE"),
|
|
GOLDEN_BOOTS("GOLD_BOOTS"),
|
|
GOLDEN_CARROT,
|
|
GOLDEN_CHESTPLATE("GOLD_CHESTPLATE"),
|
|
GOLDEN_HELMET("GOLD_HELMET"),
|
|
GOLDEN_HOE("GOLD_HOE"),
|
|
GOLDEN_HORSE_ARMOR("GOLD_BARDING"),
|
|
GOLDEN_LEGGINGS("GOLD_LEGGINGS"),
|
|
GOLDEN_PICKAXE("GOLD_PICKAXE"),
|
|
GOLDEN_SHOVEL("GOLD_SPADE"),
|
|
GOLDEN_SWORD("GOLD_SWORD"),
|
|
GOLD_BLOCK,
|
|
GOLD_INGOT,
|
|
GOLD_NUGGET,
|
|
GOLD_ORE,
|
|
GRANITE("STONE", (byte) 1),
|
|
GRANITE_SLAB(),
|
|
GRANITE_STAIRS,
|
|
GRANITE_WALL,
|
|
GRASS("LONG_GRASS", (byte) 1),
|
|
GRASS_BLOCK("GRASS"),
|
|
DIRT_PATH("GRASS_PATH"),
|
|
GRAVEL,
|
|
GRAY_BANNER("BANNER", (byte) 8),
|
|
GRAY_BED("BED", (byte) 7),
|
|
GRAY_CARPET("CARPET", (byte) 7),
|
|
GRAY_CONCRETE("CONCRETE", (byte) 7),
|
|
GRAY_CONCRETE_POWDER("CONCRETE_POWDER", (byte) 7),
|
|
GRAY_DYE("INK_SACK", (byte) 8),
|
|
GRAY_GLAZED_TERRACOTTA(),
|
|
GRAY_SHULKER_BOX(),
|
|
GRAY_STAINED_GLASS("STAINED_GLASS", (byte) 7),
|
|
GRAY_STAINED_GLASS_PANE("STAINED_GLASS_PANE", (byte) 7),
|
|
GRAY_TERRACOTTA("STAINED_CLAY", (byte) 7),
|
|
GRAY_WALL_BANNER("WALL_BANNER", (byte) 8),
|
|
GRAY_WOOL("WOOL", (byte) 7),
|
|
GREEN_BANNER("BANNER", (byte) 2),
|
|
GREEN_BED("BED", (byte) 13),
|
|
GREEN_CARPET("CARPET", (byte) 13),
|
|
GREEN_CONCRETE(ServerVersion.V1_13, "CONCRETE", (byte) 13),
|
|
GREEN_CONCRETE_POWDER(ServerVersion.V1_13, "CONCRETE_POWDER", (byte) 13),
|
|
GREEN_DYE(ServerVersion.V1_14, "CACTUS_GREEN", ServerVersion.V1_13, "INK_SACK", (byte) 2),
|
|
GREEN_GLAZED_TERRACOTTA(),
|
|
GREEN_SHULKER_BOX(),
|
|
GREEN_STAINED_GLASS("STAINED_GLASS", (byte) 13),
|
|
GREEN_STAINED_GLASS_PANE("STAINED_GLASS_PANE", (byte) 13),
|
|
GREEN_TERRACOTTA("STAINED_CLAY", (byte) 13),
|
|
GREEN_WALL_BANNER(ServerVersion.V1_13, "WALL_BANNER", (byte) 2),
|
|
GREEN_WOOL("WOOL", (byte) 13),
|
|
GRINDSTONE,
|
|
GUARDIAN_SPAWN_EGG("MONSTER_EGG", (byte) 68),
|
|
GUNPOWDER("SULPHUR"),
|
|
HAY_BLOCK,
|
|
HEART_OF_THE_SEA,
|
|
HEAVY_WEIGHTED_PRESSURE_PLATE("IRON_PLATE"),
|
|
HOPPER,
|
|
HOPPER_MINECART("HOPPER_MINECART"),
|
|
HORN_CORAL,
|
|
HORN_CORAL_BLOCK,
|
|
HORN_CORAL_FAN,
|
|
HORN_CORAL_WALL_FAN,
|
|
HORSE_SPAWN_EGG("MONSTER_EGG", (byte) 100),
|
|
HUSK_SPAWN_EGG("MONSTER_EGG", (byte) 23),
|
|
ICE,
|
|
INFESTED_CHISELED_STONE_BRICKS("MONSTER_EGGS", (byte) 5),
|
|
INFESTED_COBBLESTONE("MONSTER_EGGS", (byte) 1),
|
|
INFESTED_CRACKED_STONE_BRICKS("MONSTER_EGGS", (byte) 4),
|
|
INFESTED_MOSSY_STONE_BRICKS("MONSTER_EGGS", (byte) 3),
|
|
INFESTED_STONE("MONSTER_EGGS", (byte) 0),
|
|
INFESTED_STONE_BRICKS("MONSTER_EGGS", (byte) 2),
|
|
INK_SAC("INK_SACK", (byte) 0),
|
|
IRON_AXE,
|
|
IRON_BARS("IRON_FENCE"),
|
|
IRON_BLOCK,
|
|
IRON_BOOTS,
|
|
IRON_CHESTPLATE,
|
|
IRON_DOOR,
|
|
IRON_HELMET,
|
|
IRON_HOE,
|
|
IRON_HORSE_ARMOR("IRON_BARDING"),
|
|
IRON_INGOT,
|
|
IRON_LEGGINGS,
|
|
IRON_NUGGET,
|
|
IRON_ORE,
|
|
IRON_PICKAXE,
|
|
IRON_SHOVEL("IRON_SPADE"),
|
|
IRON_SWORD,
|
|
IRON_TRAPDOOR(),
|
|
ITEM_FRAME,
|
|
JACK_O_LANTERN,
|
|
JIGSAW,
|
|
JUKEBOX,
|
|
JUNGLE_BOAT("BOAT_JUNGLE"),
|
|
JUNGLE_BUTTON(),
|
|
JUNGLE_DOOR("JUNGLE_DOOR_ITEM"),
|
|
JUNGLE_FENCE(),
|
|
JUNGLE_FENCE_GATE(),
|
|
JUNGLE_LEAVES("LEAVES", (byte) 3),
|
|
JUNGLE_LOG("LOG", (byte) 3),
|
|
JUNGLE_PLANKS("WOOD", (byte) 3),
|
|
JUNGLE_PRESSURE_PLATE(),
|
|
JUNGLE_SAPLING("SAPLING", (byte) 3),
|
|
JUNGLE_SIGN(),
|
|
JUNGLE_SLAB("WOOD_STEP", (byte) 3),
|
|
JUNGLE_STAIRS("JUNGLE_WOOD_STAIRS"),
|
|
JUNGLE_TRAPDOOR(),
|
|
JUNGLE_WALL_SIGN(),
|
|
JUNGLE_WOOD("LOG", (byte) 15),
|
|
KELP,
|
|
KELP_PLANT,
|
|
KNOWLEDGE_BOOK,
|
|
LADDER,
|
|
LANTERN,
|
|
LAPIS_BLOCK,
|
|
LAPIS_LAZULI("INK_SACK", (byte) 4),
|
|
LAPIS_ORE,
|
|
LARGE_FERN("DOUBLE_PLANT", (byte) 3),
|
|
LAVA,
|
|
LAVA_BUCKET,
|
|
LEAD("LEASH"),
|
|
LEATHER,
|
|
LEATHER_BOOTS,
|
|
LEATHER_CHESTPLATE,
|
|
LEATHER_HELMET,
|
|
LEATHER_HORSE_ARMOR(),
|
|
LEATHER_LEGGINGS,
|
|
LECTERN,
|
|
LEVER,
|
|
LIGHT_BLUE_BANNER("BANNER", (byte) 12),
|
|
LIGHT_BLUE_BED("BED", (byte) 3),
|
|
LIGHT_BLUE_CARPET("CARPET", (byte) 3),
|
|
LIGHT_BLUE_CONCRETE("CONCRETE", (byte) 3),
|
|
LIGHT_BLUE_CONCRETE_POWDER("CONCRETE_POWDER", (byte) 3),
|
|
LIGHT_BLUE_DYE("INK_SACK", (byte) 12),
|
|
LIGHT_BLUE_GLAZED_TERRACOTTA(),
|
|
LIGHT_BLUE_SHULKER_BOX(),
|
|
LIGHT_BLUE_STAINED_GLASS("STAINED_GLASS", (byte) 3),
|
|
LIGHT_BLUE_STAINED_GLASS_PANE("STAINED_GLASS_PANE", (byte) 3),
|
|
LIGHT_BLUE_TERRACOTTA("STAINED_CLAY", (byte) 3),
|
|
LIGHT_BLUE_WALL_BANNER("WALL_BANNER", (byte) 12),
|
|
LIGHT_BLUE_WOOL("WOOL", (byte) 3),
|
|
LIGHT_GRAY_BANNER("BANNER", (byte) 7),
|
|
LIGHT_GRAY_BED("BED", (byte) 8),
|
|
LIGHT_GRAY_CARPET("CARPET", (byte) 8),
|
|
LIGHT_GRAY_CONCRETE("CONCRETE", (byte) 8),
|
|
LIGHT_GRAY_CONCRETE_POWDER("CONCRETE_POWDER", (byte) 8),
|
|
LIGHT_GRAY_DYE("INK_SACK", (byte) 7),
|
|
LIGHT_GRAY_GLAZED_TERRACOTTA("SILVER_GLAZED_TERRACOTTA"),
|
|
LIGHT_GRAY_SHULKER_BOX(ServerVersion.V1_11, "SILVER_SHULKER_BOX"),
|
|
LIGHT_GRAY_STAINED_GLASS("STAINED_GLASS", (byte) 8),
|
|
LIGHT_GRAY_STAINED_GLASS_PANE("STAINED_GLASS_PANE", (byte) 8), // this is nearly invisible in a chest, lol
|
|
LIGHT_GRAY_TERRACOTTA("STAINED_CLAY", (byte) 8),
|
|
LIGHT_GRAY_WALL_BANNER("WALL_BANNER", (byte) 7),
|
|
LIGHT_GRAY_WOOL("WOOL", (byte) 8),
|
|
LIGHT_WEIGHTED_PRESSURE_PLATE("GOLD_PLATE"),
|
|
LILAC("LONG_GRASS", (byte) 1),
|
|
LILY_OF_THE_VALLEY,
|
|
LILY_PAD("WATER_LILY"),
|
|
LIME_BANNER("BANNER", (byte) 10),
|
|
LIME_BED("BED", (byte) 5),
|
|
LIME_CARPET("CARPET", (byte) 5),
|
|
LIME_CONCRETE("CONCRETE", (byte) 5),
|
|
LIME_CONCRETE_POWDER("CONCRETE_POWDER", (byte) 5),
|
|
LIME_DYE("INK_SACK", (byte) 10),
|
|
LIME_GLAZED_TERRACOTTA(),
|
|
LIME_SHULKER_BOX(),
|
|
LIME_STAINED_GLASS("STAINED_GLASS", (byte) 5),
|
|
LIME_STAINED_GLASS_PANE("STAINED_GLASS_PANE", (byte) 5),
|
|
LIME_TERRACOTTA("STAINED_CLAY", (byte) 5),
|
|
LIME_WALL_BANNER("WALL_BANNER", (byte) 10),
|
|
LIME_WOOL("WOOL", (byte) 5),
|
|
LINGERING_POTION,
|
|
LLAMA_SPAWN_EGG("MONSTER_EGG", (byte) 103),
|
|
LOOM,
|
|
MAGENTA_BANNER("BANNER", (byte) 13),
|
|
MAGENTA_BED("BED", (byte) 2),
|
|
MAGENTA_CARPET("CARPET", (byte) 2),
|
|
MAGENTA_CONCRETE("CONCRETE", (byte) 2),
|
|
MAGENTA_CONCRETE_POWDER("CONCRETE_POWDER", (byte) 2),
|
|
MAGENTA_DYE("INK_SACK", (byte) 13),
|
|
MAGENTA_GLAZED_TERRACOTTA(),
|
|
MAGENTA_SHULKER_BOX(),
|
|
MAGENTA_STAINED_GLASS("STAINED_GLASS", (byte) 2),
|
|
MAGENTA_STAINED_GLASS_PANE("STAINED_GLASS_PANE", (byte) 2),
|
|
MAGENTA_TERRACOTTA("STAINED_CLAY", (byte) 2),
|
|
MAGENTA_WALL_BANNER("WALL_BANNER", (byte) 13),
|
|
MAGENTA_WOOL("WOOL", (byte) 2),
|
|
MAGMA_BLOCK("MAGMA"),
|
|
MAGMA_CREAM,
|
|
MAGMA_CUBE_SPAWN_EGG("MONSTER_EGG", (byte) 62),
|
|
MAP,
|
|
MELON("MELON_BLOCK"),
|
|
MELON_SEEDS,
|
|
MELON_SLICE("MELON"),
|
|
MELON_STEM,
|
|
MILK_BUCKET,
|
|
MINECART,
|
|
MOJANG_BANNER_PATTERN,
|
|
MOOSHROOM_SPAWN_EGG("MONSTER_EGG", (byte) 96),
|
|
MOSSY_COBBLESTONE,
|
|
MOSSY_COBBLESTONE_SLAB(),
|
|
MOSSY_COBBLESTONE_STAIRS,
|
|
MOSSY_COBBLESTONE_WALL,
|
|
MOSSY_STONE_BRICKS("SMOOTH_BRICK", (byte) 1),
|
|
MOSSY_STONE_BRICK_SLAB(),
|
|
MOSSY_STONE_BRICK_STAIRS,
|
|
MOSSY_STONE_BRICK_WALL,
|
|
MOVING_PISTON("PISTON_MOVING_PIECE"),
|
|
MULE_SPAWN_EGG("MONSTER_EGG", (byte) 32),
|
|
MUSHROOM_STEM("HUGE_MUSHROOM_1", (byte) 10), // also ("HUGE_MUSHROOM_2", (byte) 10)
|
|
MUSHROOM_STEW("MUSHROOM_SOUP"),
|
|
MUSIC_DISC_11("RECORD_11"),
|
|
MUSIC_DISC_13("GOLD_RECORD"),
|
|
MUSIC_DISC_BLOCKS("RECORD_3"),
|
|
MUSIC_DISC_CAT("GREEN_RECORD"),
|
|
MUSIC_DISC_CHIRP("RECORD_4"),
|
|
MUSIC_DISC_FAR("RECORD_5"),
|
|
MUSIC_DISC_MALL("RECORD_6"),
|
|
MUSIC_DISC_MELLOHI("RECORD_7"),
|
|
MUSIC_DISC_STAL("RECORD_8"),
|
|
MUSIC_DISC_STRAD("RECORD_9"),
|
|
MUSIC_DISC_WAIT("RECORD_12"),
|
|
MUSIC_DISC_WARD("RECORD_10"),
|
|
MUTTON,
|
|
MYCELIUM("MYCEL"),
|
|
NAME_TAG,
|
|
NAUTILUS_SHELL,
|
|
NETHERRACK,
|
|
NETHER_BRICK("NETHER_BRICK_ITEM"),
|
|
NETHER_BRICKS("NETHER_BRICK"),
|
|
NETHER_BRICK_FENCE("NETHER_FENCE"),
|
|
NETHER_BRICK_SLAB("STEP", (byte) 6),
|
|
NETHER_BRICK_STAIRS,
|
|
NETHER_BRICK_WALL,
|
|
NETHER_PORTAL("PORTAL"),
|
|
NETHER_QUARTZ_ORE("QUARTZ_ORE"),
|
|
NETHER_STAR,
|
|
NETHER_WART("NETHER_STALK"),
|
|
NETHER_WART_BLOCK,
|
|
NOTE_BLOCK,
|
|
OAK_BOAT("BOAT"),
|
|
OAK_BUTTON("WOOD_BUTTON"),
|
|
OAK_DOOR("WOOD_DOOR"), // TODO: legacy block id is WOODEN_DOOR
|
|
OAK_FENCE("FENCE"),
|
|
OAK_FENCE_GATE("FENCE_GATE"),
|
|
OAK_LEAVES("LEAVES", (byte) 0),
|
|
OAK_LOG("LOG", (byte) 0),
|
|
OAK_PLANKS("WOOD", (byte) 0),
|
|
OAK_PRESSURE_PLATE("WOOD_PLATE"),
|
|
OAK_SAPLING("SAPLING", (byte) 0),
|
|
OAK_SIGN(ServerVersion.V1_14, "SIGN"),
|
|
OAK_SLAB("WOOD_STEP", (byte) 0),
|
|
OAK_STAIRS("WOOD_STAIRS"),
|
|
OAK_TRAPDOOR("TRAP_DOOR"),
|
|
OAK_WALL_SIGN(ServerVersion.V1_14, "WALL_SIGN"),
|
|
OAK_WOOD("LOG", (byte) 12),
|
|
OBSERVER,
|
|
OBSIDIAN,
|
|
OCELOT_SPAWN_EGG("MONSTER_EGG", (byte) 98),
|
|
ORANGE_BANNER("BANNER", (byte) 14),
|
|
ORANGE_BED("BED", (byte) 1),
|
|
ORANGE_CARPET("CARPET", (byte) 1),
|
|
ORANGE_CONCRETE("CONCRETE", (byte) 1),
|
|
ORANGE_CONCRETE_POWDER("CONCRETE_POWDER", (byte) 1),
|
|
ORANGE_DYE("INK_SACK", (byte) 14),
|
|
ORANGE_GLAZED_TERRACOTTA(),
|
|
ORANGE_SHULKER_BOX(),
|
|
ORANGE_STAINED_GLASS("STAINED_GLASS", (byte) 1),
|
|
ORANGE_STAINED_GLASS_PANE("STAINED_GLASS_PANE", (byte) 1),
|
|
ORANGE_TERRACOTTA("STAINED_CLAY", (byte) 1),
|
|
ORANGE_TULIP("RED_ROSE", (byte) 5),
|
|
ORANGE_WALL_BANNER("WALL_BANNER", (byte) 14),
|
|
ORANGE_WOOL("WOOL", (byte) 1),
|
|
OXEYE_DAISY("RED_ROSE", (byte) 8),
|
|
PACKED_ICE,
|
|
PAINTING,
|
|
PANDA_SPAWN_EGG(),
|
|
PAPER,
|
|
PARROT_SPAWN_EGG("MONSTER_EGG", (byte) 105),
|
|
PEONY("DOUBLE_PLANT", (byte) 5),
|
|
PETRIFIED_OAK_SLAB("WOOD_STEP", (byte) 0),
|
|
PHANTOM_MEMBRANE(),
|
|
PHANTOM_SPAWN_EGG(),
|
|
PIG_SPAWN_EGG("MONSTER_EGG", (byte) 90),
|
|
PILLAGER_SPAWN_EGG(),
|
|
PINK_BANNER("BANNER", (byte) 9),
|
|
PINK_BED("BED", (byte) 6),
|
|
PINK_CARPET("CARPET", (byte) 6),
|
|
PINK_CONCRETE("CONCRETE", (byte) 6),
|
|
PINK_CONCRETE_POWDER("CONCRETE_POWDER", (byte) 6),
|
|
PINK_DYE("INK_SACK", (byte) 9),
|
|
PINK_GLAZED_TERRACOTTA(),
|
|
PINK_SHULKER_BOX(),
|
|
PINK_STAINED_GLASS("STAINED_GLASS", (byte) 6),
|
|
PINK_STAINED_GLASS_PANE("STAINED_GLASS_PANE", (byte) 6),
|
|
PINK_TERRACOTTA("STAINED_CLAY", (byte) 6),
|
|
PINK_TULIP("RED_ROSE", (byte) 7),
|
|
PINK_WALL_BANNER("WALL_BANNER", (byte) 9),
|
|
PINK_WOOL("WOOL", (byte) 6),
|
|
PISTON("PISTON_BASE"),
|
|
PISTON_HEAD("PISTON_EXTENSION"),
|
|
PLAYER_HEAD("SKULL_ITEM", (byte) 3),
|
|
PLAYER_WALL_HEAD("SKULL", (byte) 3),
|
|
PODZOL("DIRT", (byte) 2),
|
|
POISONOUS_POTATO,
|
|
POLAR_BEAR_SPAWN_EGG("MONSTER_EGG", (byte) 102),
|
|
POLISHED_ANDESITE("STONE", (byte) 6),
|
|
POLISHED_ANDESITE_SLAB(),
|
|
POLISHED_ANDESITE_STAIRS,
|
|
POLISHED_DIORITE("STONE", (byte) 4),
|
|
POLISHED_DIORITE_SLAB(),
|
|
POLISHED_DIORITE_STAIRS,
|
|
POLISHED_GRANITE("STONE", (byte) 2),
|
|
POLISHED_GRANITE_SLAB(),
|
|
POLISHED_GRANITE_STAIRS,
|
|
POPPED_CHORUS_FRUIT,
|
|
POPPY("RED_ROSE", (byte) 0),
|
|
PORKCHOP("PORK"),
|
|
POTATO("POTATO_ITEM"),
|
|
POTATOES("POTATO"),
|
|
POTION,
|
|
POTTED_ACACIA_SAPLING,
|
|
POTTED_ALLIUM,
|
|
POTTED_AZURE_BLUET,
|
|
POTTED_BAMBOO,
|
|
POTTED_BIRCH_SAPLING,
|
|
POTTED_BLUE_ORCHID,
|
|
POTTED_BROWN_MUSHROOM,
|
|
POTTED_CACTUS,
|
|
POTTED_CORNFLOWER,
|
|
POTTED_DANDELION,
|
|
POTTED_DARK_OAK_SAPLING,
|
|
POTTED_DEAD_BUSH,
|
|
POTTED_FERN,
|
|
POTTED_JUNGLE_SAPLING,
|
|
POTTED_LILY_OF_THE_VALLEY,
|
|
POTTED_OAK_SAPLING,
|
|
POTTED_ORANGE_TULIP,
|
|
POTTED_OXEYE_DAISY,
|
|
POTTED_PINK_TULIP,
|
|
POTTED_POPPY,
|
|
POTTED_RED_MUSHROOM,
|
|
POTTED_RED_TULIP,
|
|
POTTED_SPRUCE_SAPLING,
|
|
POTTED_WHITE_TULIP,
|
|
POTTED_WITHER_ROSE,
|
|
POWERED_RAIL,
|
|
PRISMARINE("PRISMARINE", (byte) 0),
|
|
PRISMARINE_BRICKS("PRISMARINE", (byte) 1),
|
|
PRISMARINE_BRICK_SLAB(),
|
|
PRISMARINE_BRICK_STAIRS,
|
|
PRISMARINE_CRYSTALS,
|
|
PRISMARINE_SHARD,
|
|
PRISMARINE_SLAB(),
|
|
PRISMARINE_STAIRS,
|
|
PRISMARINE_WALL,
|
|
PUFFERFISH("RAW_FISH", (byte) 3),
|
|
PUFFERFISH_BUCKET,
|
|
PUFFERFISH_SPAWN_EGG(),
|
|
PUMPKIN,
|
|
PUMPKIN_PIE,
|
|
PUMPKIN_SEEDS,
|
|
PUMPKIN_STEM,
|
|
PURPLE_BANNER("BANNER", (byte) 5),
|
|
PURPLE_BED("BED", (byte) 10),
|
|
PURPLE_CARPET("CARPET", (byte) 10),
|
|
PURPLE_CONCRETE("CONCRETE", (byte) 10),
|
|
PURPLE_CONCRETE_POWDER("CONCRETE_POWDER", (byte) 10),
|
|
PURPLE_DYE("INK_SACK", (byte) 5),
|
|
PURPLE_GLAZED_TERRACOTTA(),
|
|
PURPLE_SHULKER_BOX(),
|
|
PURPLE_STAINED_GLASS("STAINED_GLASS", (byte) 10),
|
|
PURPLE_STAINED_GLASS_PANE("STAINED_GLASS_PANE", (byte) 10),
|
|
PURPLE_TERRACOTTA("STAINED_CLAY", (byte) 10),
|
|
PURPLE_WALL_BANNER("WALL_BANNER", (byte) 5),
|
|
PURPLE_WOOL("WOOL", (byte) 10),
|
|
PURPUR_BLOCK,
|
|
PURPUR_PILLAR,
|
|
PURPUR_SLAB(),
|
|
PURPUR_STAIRS,
|
|
QUARTZ,
|
|
QUARTZ_BLOCK("QUARTZ_BLOCK", (byte) 0),
|
|
QUARTZ_PILLAR("QUARTZ_BLOCK", (byte) 2),
|
|
QUARTZ_SLAB("STEP", (byte) 7),
|
|
QUARTZ_STAIRS,
|
|
RABBIT,
|
|
RABBIT_FOOT,
|
|
RABBIT_HIDE,
|
|
RABBIT_SPAWN_EGG("MONSTER_EGG", (byte) 101),
|
|
RABBIT_STEW,
|
|
RAIL("RAILS"),
|
|
RAVAGER_SPAWN_EGG(),
|
|
REDSTONE,
|
|
REDSTONE_BLOCK,
|
|
REDSTONE_LAMP("REDSTONE_LAMP_OFF"),
|
|
REDSTONE_ORE,
|
|
REDSTONE_TORCH("REDSTONE_TORCH_ON"),
|
|
REDSTONE_WALL_TORCH,
|
|
REDSTONE_WIRE,
|
|
RED_BANNER("BANNER", (byte) 1),
|
|
RED_BED("BED", (byte) 14),
|
|
RED_CARPET("CARPET", (byte) 14),
|
|
RED_CONCRETE("CONCRETE", (byte) 14),
|
|
RED_CONCRETE_POWDER("CONCRETE_POWDER", (byte) 14),
|
|
RED_DYE(ServerVersion.V1_14, "ROSE_RED", ServerVersion.V1_13, "INK_SACK", (byte) 1),
|
|
RED_GLAZED_TERRACOTTA(),
|
|
RED_MUSHROOM,
|
|
RED_MUSHROOM_BLOCK("HUGE_MUSHROOM_2"),
|
|
RED_NETHER_BRICKS("RED_NETHER_BRICK"),
|
|
RED_NETHER_BRICK_SLAB(),
|
|
RED_NETHER_BRICK_STAIRS,
|
|
RED_NETHER_BRICK_WALL,
|
|
RED_SAND("SAND", (byte) 1),
|
|
RED_SANDSTONE("RED_SANDSTONE", (byte) 0),
|
|
RED_SANDSTONE_SLAB("STONE_SLAB2", (byte) 0),
|
|
RED_SANDSTONE_STAIRS,
|
|
RED_SANDSTONE_WALL,
|
|
RED_SHULKER_BOX(),
|
|
RED_STAINED_GLASS("STAINED_GLASS", (byte) 14),
|
|
RED_STAINED_GLASS_PANE("STAINED_GLASS_PANE", (byte) 14),
|
|
RED_TERRACOTTA("STAINED_CLAY", (byte) 14),
|
|
RED_TULIP("RED_ROSE", (byte) 4),
|
|
RED_WALL_BANNER("WALL_BANNER", (byte) 1),
|
|
RED_WOOL("WOOL", (byte) 14),
|
|
REPEATER("DIODE"),
|
|
REPEATING_COMMAND_BLOCK("COMMAND_REPEATING"),
|
|
ROSE_BUSH("DOUBLE_PLANT", (byte) 4),
|
|
ROTTEN_FLESH,
|
|
SADDLE,
|
|
SALMON("RAW_FISH", (byte) 1),
|
|
SALMON_BUCKET,
|
|
SALMON_SPAWN_EGG(),
|
|
SAND("SAND", (byte) 0),
|
|
SANDSTONE("SANDSTONE", (byte) 0),
|
|
SANDSTONE_SLAB("STEP", (byte) 1),
|
|
SANDSTONE_STAIRS,
|
|
SANDSTONE_WALL,
|
|
SCAFFOLDING,
|
|
SCUTE,
|
|
SEAGRASS,
|
|
SEA_LANTERN,
|
|
SEA_PICKLE,
|
|
SHEARS,
|
|
SHEEP_SPAWN_EGG("MONSTER_EGG", (byte) 91),
|
|
SHIELD,
|
|
SHULKER_BOX(),
|
|
SHULKER_SHELL(),
|
|
SHULKER_SPAWN_EGG("MONSTER_EGG", (byte) 69),
|
|
SILVERFISH_SPAWN_EGG("MONSTER_EGG", (byte) 60),
|
|
SKELETON_HORSE_SPAWN_EGG("MONSTER_EGG", (byte) 28),
|
|
SKELETON_SKULL("SKULL_ITEM", (byte) 0),
|
|
SKELETON_SPAWN_EGG("MONSTER_EGG", (byte) 51),
|
|
SKELETON_WALL_SKULL("SKULL", (byte) 0),
|
|
SKULL_BANNER_PATTERN,
|
|
SLIME_BALL,
|
|
SLIME_BLOCK,
|
|
SLIME_SPAWN_EGG("MONSTER_EGG", (byte) 55),
|
|
SMITHING_TABLE,
|
|
SMOKER,
|
|
SMOOTH_QUARTZ,
|
|
SMOOTH_QUARTZ_SLAB(),
|
|
SMOOTH_QUARTZ_STAIRS,
|
|
SMOOTH_RED_SANDSTONE("RED_SANDSTONE", (byte) 2),
|
|
SMOOTH_RED_SANDSTONE_SLAB("STONE_SLAB2", (byte) 0),
|
|
SMOOTH_RED_SANDSTONE_STAIRS,
|
|
SMOOTH_SANDSTONE("SANDSTONE", (byte) 2),
|
|
SMOOTH_SANDSTONE_SLAB(),
|
|
SMOOTH_SANDSTONE_STAIRS,
|
|
SMOOTH_STONE,
|
|
SMOOTH_STONE_SLAB(),
|
|
SNOW,
|
|
SNOWBALL("SNOW_BALL"),
|
|
SNOW_BLOCK,
|
|
SOUL_SAND,
|
|
SPAWNER("MOB_SPAWNER"),
|
|
SPECTRAL_ARROW,
|
|
SPIDER_EYE,
|
|
SPIDER_SPAWN_EGG("MONSTER_EGG", (byte) 52),
|
|
SPLASH_POTION("POTION"), // legacy uses data to make the specific potions and splash variants
|
|
SPONGE("SPONGE", (byte) 0),
|
|
SPRUCE_BOAT("BOAT_SPRUCE"),
|
|
SPRUCE_BUTTON(),
|
|
SPRUCE_DOOR("SPRUCE_DOOR_ITEM"),
|
|
SPRUCE_FENCE(),
|
|
SPRUCE_FENCE_GATE(),
|
|
SPRUCE_LEAVES("LEAVES", (byte) 1),
|
|
SPRUCE_LOG("LOG", (byte) 1),
|
|
SPRUCE_PLANKS("WOOD", (byte) 1),
|
|
SPRUCE_PRESSURE_PLATE(),
|
|
SPRUCE_SAPLING("SAPLING", (byte) 1),
|
|
SPRUCE_SIGN(),
|
|
SPRUCE_SLAB("WOOD_STEP", (byte) 1),
|
|
SPRUCE_STAIRS("SPRUCE_WOOD_STAIRS"),
|
|
SPRUCE_TRAPDOOR(),
|
|
SPRUCE_WALL_SIGN(),
|
|
SPRUCE_WOOD("LOG", (byte) 13),
|
|
SQUID_SPAWN_EGG("MONSTER_EGG", (byte) 94),
|
|
STICK,
|
|
STICKY_PISTON("PISTON_STICKY_BASE"),
|
|
STONE(),
|
|
STONECUTTER,
|
|
STONE_AXE,
|
|
/**
|
|
* minecraft:stonebrick
|
|
*/
|
|
STONE_BRICKS("SMOOTH_BRICK", (byte) 0),
|
|
STONE_BRICK_SLAB("STEP", (byte) 5),
|
|
STONE_BRICK_STAIRS("SMOOTH_STAIRS"),
|
|
STONE_BRICK_WALL(),
|
|
STONE_BUTTON,
|
|
STONE_HOE,
|
|
STONE_PICKAXE,
|
|
STONE_PRESSURE_PLATE("STONE_PLATE"),
|
|
STONE_SHOVEL("STONE_SPADE"),
|
|
STONE_SLAB("STEP", (byte) 0),
|
|
STONE_STAIRS(),
|
|
STONE_SWORD,
|
|
STRAY_SPAWN_EGG("MONSTER_EGG", (byte) 6),
|
|
STRING,
|
|
STRIPPED_ACACIA_LOG,
|
|
STRIPPED_ACACIA_WOOD,
|
|
STRIPPED_BIRCH_LOG,
|
|
STRIPPED_BIRCH_WOOD,
|
|
STRIPPED_DARK_OAK_LOG,
|
|
STRIPPED_DARK_OAK_WOOD,
|
|
STRIPPED_JUNGLE_LOG,
|
|
STRIPPED_JUNGLE_WOOD,
|
|
STRIPPED_OAK_LOG,
|
|
STRIPPED_OAK_WOOD,
|
|
STRIPPED_SPRUCE_LOG,
|
|
STRIPPED_SPRUCE_WOOD,
|
|
STRUCTURE_BLOCK,
|
|
STRUCTURE_VOID,
|
|
SUGAR,
|
|
SUGAR_CANE,
|
|
SUNFLOWER("DOUBLE_PLANT", (byte) 0),
|
|
SUSPICIOUS_STEW,
|
|
SWEET_BERRIES,
|
|
SWEET_BERRY_BUSH,
|
|
TALL_GRASS("DOUBLE_PLANT", (byte) 2),
|
|
TALL_SEAGRASS,
|
|
TERRACOTTA("HARD_CLAY"),
|
|
TIPPED_ARROW,
|
|
TNT,
|
|
TNT_MINECART("EXPLOSIVE_MINECART"),
|
|
TORCH,
|
|
TOTEM_OF_UNDYING("TOTEM"),
|
|
TRADER_LLAMA_SPAWN_EGG(),
|
|
TRAPPED_CHEST,
|
|
TRIDENT,
|
|
TRIPWIRE,
|
|
TRIPWIRE_HOOK,
|
|
TROPICAL_FISH("RAW_FISH", (byte) 2), // (aka clownfish)
|
|
TROPICAL_FISH_BUCKET,
|
|
TROPICAL_FISH_SPAWN_EGG(),
|
|
TUBE_CORAL,
|
|
TUBE_CORAL_BLOCK,
|
|
TUBE_CORAL_FAN,
|
|
TUBE_CORAL_WALL_FAN,
|
|
TURTLE_EGG,
|
|
TURTLE_HELMET,
|
|
TURTLE_SPAWN_EGG(),
|
|
VEX_SPAWN_EGG("MONSTER_EGG", (byte) 35),
|
|
VILLAGER_SPAWN_EGG("MONSTER_EGG", (byte) 120),
|
|
VINDICATOR_SPAWN_EGG("MONSTER_EGG", (byte) 36),
|
|
VINE,
|
|
VOID_AIR,
|
|
WALL_TORCH,
|
|
WANDERING_TRADER_SPAWN_EGG(),
|
|
WATER,
|
|
WATER_BUCKET,
|
|
WET_SPONGE("SPONGE", (byte) 1),
|
|
WHEAT,
|
|
WHEAT_SEEDS("SEEDS"),
|
|
WHITE_BANNER("BANNER", (byte) 15),
|
|
WHITE_BED("BED", (byte) 0),
|
|
WHITE_CARPET("CARPET", (byte) 0),
|
|
WHITE_CONCRETE("CONCRETE", (byte) 0),
|
|
WHITE_CONCRETE_POWDER("CONCRETE", (byte) 0),
|
|
WHITE_DYE("INK_SACK", (byte) 15),
|
|
WHITE_GLAZED_TERRACOTTA(),
|
|
WHITE_SHULKER_BOX(),
|
|
WHITE_STAINED_GLASS("STAINED_GLASS", (byte) 0),
|
|
WHITE_STAINED_GLASS_PANE("STAINED_GLASS_PANE", (byte) 0),
|
|
WHITE_TERRACOTTA("STAINED_CLAY", (byte) 0),
|
|
WHITE_TULIP("RED_ROSE", (byte) 6),
|
|
WHITE_WALL_BANNER("WALL_BANNER", (byte) 15),
|
|
WHITE_WOOL("WOOL", (byte) 0),
|
|
WITCH_SPAWN_EGG("MONSTER_EGG", (byte) 66),
|
|
WITHER_ROSE,
|
|
WITHER_SKELETON_SKULL("SKULL_ITEM", (byte) 1),
|
|
WITHER_SKELETON_SPAWN_EGG("MONSTER_EGG", (byte) 5),
|
|
WITHER_SKELETON_WALL_SKULL("SKULL", (byte) 1),
|
|
WOLF_SPAWN_EGG("MONSTER_EGG", (byte) 95),
|
|
WOODEN_AXE("WOOD_AXE"),
|
|
WOODEN_HOE("WOOD_HOE"),
|
|
WOODEN_PICKAXE("WOOD_PICKAXE"),
|
|
WOODEN_SHOVEL("WOOD_SPADE"),
|
|
WOODEN_SWORD("WOOD_SWORD"),
|
|
WRITABLE_BOOK("BOOK_AND_QUILL"),
|
|
WRITTEN_BOOK,
|
|
YELLOW_BANNER("BANNER", (byte) 11),
|
|
YELLOW_BED("BED", (byte) 4),
|
|
YELLOW_CARPET("CARPET", (byte) 4),
|
|
YELLOW_CONCRETE("CONCRETE", (byte) 4),
|
|
YELLOW_CONCRETE_POWDER("CONCRETE", (byte) 4),
|
|
YELLOW_DYE(ServerVersion.V1_14, "DANDELION_YELLOW", ServerVersion.V1_13, "INK_SACK", (byte) 11),
|
|
YELLOW_GLAZED_TERRACOTTA(),
|
|
YELLOW_SHULKER_BOX(),
|
|
YELLOW_STAINED_GLASS("STAINED_GLASS", (byte) 4),
|
|
YELLOW_STAINED_GLASS_PANE("STAINED_GLASS_PANE", (byte) 4),
|
|
YELLOW_TERRACOTTA("STAINED_CLAY", (byte) 4),
|
|
YELLOW_WALL_BANNER("WALL_BANNER", (byte) 11),
|
|
YELLOW_WOOL("WOOL", (byte) 4),
|
|
ZOMBIE_HEAD("SKULL_ITEM", (byte) 2),
|
|
ZOMBIE_HORSE_SPAWN_EGG("MONSTER_EGG", (byte) 29),
|
|
ZOMBIE_PIGMAN_SPAWN_EGG("MONSTER_EGG", (byte) 57), // FIXME: The name changed in newer versions (nether update maybe?)
|
|
ZOMBIE_SPAWN_EGG("MONSTER_EGG", (byte) 54),
|
|
ZOMBIE_VILLAGER_SPAWN_EGG("MONSTER_EGG", (byte) 27),
|
|
ZOMBIE_WALL_HEAD("SKULL", (byte) 2),
|
|
;
|
|
|
|
private final String modern, modern2, legacy;
|
|
private final LegacyMaterialAnalouge compatibleMaterial;
|
|
private final LegacyMaterialBlockType legacyBlockMaterial;
|
|
private final boolean legacyRequiresData;
|
|
// some materials (I'm looking at you, GREEN_DYE) have changed ID more than once
|
|
// minVersion is the min for modern, and minVersion2 is min to use legacyCompat1
|
|
private final ServerVersion minVersion, minVersion2;
|
|
private final byte legacyData;
|
|
private final Material material;
|
|
private final Byte data;
|
|
// quick test to see if our version is < 1.13
|
|
protected static final boolean useLegacy = ServerVersion.isServerVersionBelow(ServerVersion.V1_13);
|
|
// map to speed up name->material lookups
|
|
private static final Map<String, CompatibleMaterial> lookupMap = new HashMap<>();
|
|
|
|
static {
|
|
for (CompatibleMaterial m : values()) {
|
|
if (m.isRecycled()) {
|
|
lookupMap.put(m.legacy, m);
|
|
continue;
|
|
}
|
|
|
|
lookupMap.put(m.name(), m);
|
|
if (!m.usesCompatibility()) {
|
|
lookupMap.put(m.material + ":" + (m.data == null ? "" : m.data), m);
|
|
}
|
|
}
|
|
|
|
for (CompatibleMaterial m : values()) {
|
|
if (!m.usesCompatibility()) {
|
|
if (m.legacy != null && !lookupMap.containsKey(m.legacy)) {
|
|
lookupMap.put(m.legacy, m);
|
|
}
|
|
|
|
if (m.modern2 != null && !lookupMap.containsKey(m.modern2)) {
|
|
lookupMap.put(m.modern2, m);
|
|
}
|
|
|
|
if (m.legacyBlockMaterial != null && !lookupMap.containsKey(m.legacyBlockMaterial.blockMaterialName)) {
|
|
lookupMap.put(m.legacyBlockMaterial.blockMaterialName, m);
|
|
}
|
|
|
|
if (m.legacyBlockMaterial != null && !lookupMap.containsKey(m.legacyBlockMaterial.alternateBlockMaterialName)) {
|
|
lookupMap.put(m.legacyBlockMaterial.alternateBlockMaterialName, m);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
CompatibleMaterial() {
|
|
this(ServerVersion.UNKNOWN, null, null);
|
|
}
|
|
|
|
CompatibleMaterial(String legacy) {
|
|
this(ServerVersion.V1_13, null, null, legacy, null);
|
|
}
|
|
|
|
CompatibleMaterial(String legacy, byte legacyData) {
|
|
this(ServerVersion.V1_13, null, null, legacy, legacyData);
|
|
}
|
|
|
|
CompatibleMaterial(ServerVersion modernMinimum, String legacy) {
|
|
this(modernMinimum, null, null, legacy, null);
|
|
}
|
|
|
|
CompatibleMaterial(ServerVersion modernMinimum, String legacy, Byte legacyData) {
|
|
this(modernMinimum, null, null, legacy, legacyData);
|
|
}
|
|
|
|
CompatibleMaterial(ServerVersion modernMinimum, String modern2, ServerVersion modern2Minimum, String legacyMaterial, Byte legacyData) {
|
|
this.modern = name();
|
|
this.modern2 = modern2;
|
|
this.minVersion = modernMinimum;
|
|
this.minVersion2 = modern2Minimum;
|
|
this.legacy = legacyMaterial;
|
|
this.legacyData = legacyData == null ? 0 : legacyData;
|
|
this.legacyRequiresData = legacyData != null;
|
|
this.compatibleMaterial = LegacyMaterialAnalouge.lookupAnalouge(modern);
|
|
|
|
if (compatibleMaterial != null && ServerVersion.isServerVersionBelow(compatibleMaterial.versionLessThan)) {
|
|
// server older than this item: use a proxy
|
|
material = compatibleMaterial.material;
|
|
data = compatibleMaterial.data;
|
|
} else if (ServerVersion.isServerVersionAtLeast(minVersion)) {
|
|
material = Material.getMaterial(modern);
|
|
data = null;
|
|
} else if (modern2 != null && ServerVersion.isServerVersionAtLeast(minVersion2)) {
|
|
material = Material.getMaterial(modern2);
|
|
data = null;
|
|
} else if (legacyMaterial != null && (compatibleMaterial == null || ServerVersion.isServerVersionAtLeast(compatibleMaterial.versionLessThan))) {
|
|
// we're using a server that has the legacy value available
|
|
material = Material.getMaterial(legacyMaterial);
|
|
data = legacyRequiresData ? this.legacyData : null;
|
|
} else if (compatibleMaterial != null) {
|
|
// no match: use a proxy
|
|
material = compatibleMaterial.material;
|
|
data = compatibleMaterial.data;
|
|
} else {
|
|
material = null;
|
|
data = null;
|
|
}
|
|
|
|
if (material != null && ServerVersion.isServerVersionBelow(ServerVersion.V1_13) && (compatibleMaterial == null || material != compatibleMaterial.material)) {
|
|
legacyBlockMaterial = LegacyMaterialBlockType.getMaterial(this.modern);
|
|
} else {
|
|
legacyBlockMaterial = null;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @return the Bukkit Material for this material
|
|
*/
|
|
public Material getMaterial() {
|
|
return material;
|
|
}
|
|
|
|
/**
|
|
* @return the Bukkit Material required to create a block
|
|
*/
|
|
public Material getBlockMaterial() {
|
|
return legacyBlockMaterial != null ? legacyBlockMaterial.getBlockMaterial() : (isBlock() ? material : AIR.material);
|
|
}
|
|
|
|
/**
|
|
* @return an item that resembles this material for the current server version
|
|
*/
|
|
public ItemStack getItem() {
|
|
return getItem(1);
|
|
}
|
|
|
|
/**
|
|
* @param amount the amount to return
|
|
*
|
|
* @return an item that resembles this material for the current server version
|
|
*/
|
|
public ItemStack getItem(int amount) {
|
|
if (usesCompatibility()) {
|
|
return compatibleMaterial.getItem();
|
|
}
|
|
|
|
return data != null ? new ItemStack(material, amount, data) : new ItemStack(material);
|
|
}
|
|
|
|
/**
|
|
* Does this material need to use a legacy fallback?
|
|
*/
|
|
public boolean usesLegacy() {
|
|
return legacy != null && ServerVersion.isServerVersionBelow(minVersion);
|
|
}
|
|
|
|
/**
|
|
* Does this material need to use a fallback item on this server?
|
|
*/
|
|
public boolean usesCompatibility() {
|
|
return compatibleMaterial != null && material == compatibleMaterial.material;
|
|
//return compatibleMaterial != null && ServerVersion.isServerVersionBelow(compatibleMaterial.versionLessThan);
|
|
}
|
|
|
|
/**
|
|
* Is this item reused in later versions of Minecraft?
|
|
*/
|
|
public boolean isRecycled() {
|
|
return usesLegacy() && this == CompatibleMaterial.GRASS;
|
|
}
|
|
|
|
/**
|
|
* Get the legacy data value for this material if there is one, or -1 if none
|
|
*/
|
|
public byte getData() {
|
|
return data != null ? data : -1;
|
|
}
|
|
|
|
/**
|
|
* Check if current material requires a data value.
|
|
*
|
|
* @return true if server is legacy and this item requires data to be defined.
|
|
*/
|
|
public boolean usesData() {
|
|
return data != null;
|
|
}
|
|
|
|
/**
|
|
* Lookup a Material by its modern id name. <br />
|
|
* This also can grab materials by their legacy, but only if there is no
|
|
* modern material by that name.
|
|
*
|
|
* @param name item to lookup
|
|
*
|
|
* @return LegacyMaterial or null if none found
|
|
*/
|
|
public static CompatibleMaterial getMaterial(String name) {
|
|
return getMaterial(name, null);
|
|
}
|
|
|
|
/**
|
|
* Lookup a Material by its modern id name. <br />
|
|
* This also can grab materials by their legacy, but only if there is no
|
|
* modern material by that name.
|
|
*
|
|
* @param name item to lookup
|
|
* @param def default item if this is not a valid material
|
|
*
|
|
* @return LegacyMaterial or null if none found
|
|
*/
|
|
@Contract("_, !null -> !null")
|
|
public static CompatibleMaterial getMaterial(String name, CompatibleMaterial def) {
|
|
return name == null ? def : lookupMap.getOrDefault(name.toUpperCase(), def);
|
|
}
|
|
|
|
/**
|
|
* Lookup a Material by bukkit material.
|
|
*
|
|
* @param mat item to lookup
|
|
*
|
|
* @return LegacyMaterial or null if none found
|
|
*/
|
|
public static CompatibleMaterial getMaterial(Material mat) {
|
|
if (mat == null) {
|
|
return null;
|
|
}
|
|
|
|
if (useLegacy) {
|
|
CompatibleMaterial compatibleMaterial = lookupMap.get(mat.name() + ":0");
|
|
if (compatibleMaterial != null) {
|
|
return compatibleMaterial;
|
|
}
|
|
}
|
|
|
|
return lookupMap.get(mat.name());
|
|
}
|
|
|
|
/**
|
|
* Lookup a Material by ItemStack.
|
|
*
|
|
* @param item item to lookup
|
|
*
|
|
* @return LegacyMaterial or null if none found
|
|
*/
|
|
public static CompatibleMaterial getMaterial(ItemStack item) {
|
|
if (item == null) {
|
|
return null;
|
|
}
|
|
|
|
String key = item.getType() + ":";
|
|
CompatibleMaterial m = lookupMap.get(key);
|
|
return m != null ? m : lookupMap.get(key + item.getDurability());
|
|
}
|
|
|
|
/**
|
|
* Lookup a Material by Block, corrected for legacy
|
|
*
|
|
* @param block block to check
|
|
*
|
|
* @return LegacyMaterial or null if none found
|
|
*/
|
|
public static CompatibleMaterial getMaterial(Block block) {
|
|
if (ServerVersion.isServerVersionAtLeast(ServerVersion.V1_13)) { // Flattening
|
|
return CompatibleMaterial.getMaterialFromNewBlock(block);
|
|
} else { // Pre-Flattening
|
|
if (block != null) {
|
|
if (block.getData() != 0) {
|
|
for (CompatibleMaterial cm : CompatibleMaterial.values()) {
|
|
if (cm.isValidItem() && !cm.usesCompatibility() && cm.getMaterial() != null && cm.getMaterial().equals(block.getType())) {
|
|
if (cm.getData() == block.getData()) {
|
|
return cm;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return CompatibleMaterial.getMaterialFromNewBlock(block);
|
|
}
|
|
}
|
|
return null;
|
|
}
|
|
|
|
private static Method methodGetBlockData;
|
|
|
|
static {
|
|
if (ServerVersion.isServerVersionAtOrBelow(ServerVersion.V1_12)) {
|
|
try {
|
|
methodGetBlockData = FallingBlock.class.getDeclaredMethod("getBlockData");
|
|
} catch (NoSuchMethodException ex) {
|
|
ex.printStackTrace();
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Lookup a Material by FallingBlock, corrected for legacy
|
|
*
|
|
* @param block falling block to check
|
|
*
|
|
* @return LegacyMaterial or null if none found
|
|
*/
|
|
public static CompatibleMaterial getMaterial(FallingBlock block) {
|
|
if (block == null) {
|
|
return null;
|
|
}
|
|
|
|
if (ServerVersion.isServerVersionAtLeast(ServerVersion.V1_13)) {
|
|
return getMaterial(block.getBlockData().getMaterial());
|
|
}
|
|
|
|
try {
|
|
return getMaterial(block.getMaterial(), (byte) methodGetBlockData.invoke(block));
|
|
} catch (IllegalAccessException | InvocationTargetException ex) {
|
|
ex.printStackTrace();
|
|
}
|
|
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
* Lookup a Material by Material and data, corrected for legacy
|
|
*
|
|
* @param mat material to check
|
|
* @param data data of the block
|
|
*
|
|
* @return LegacyMaterial or null if none found
|
|
*/
|
|
public static CompatibleMaterial getMaterial(Material mat, byte data) {
|
|
if (ServerVersion.isServerVersionAtLeast(ServerVersion.V1_13)) { // Flattening
|
|
return CompatibleMaterial.getMaterial(mat);
|
|
}
|
|
|
|
// Pre-Flattening
|
|
if (mat != null) {
|
|
if (data != 0) {
|
|
for (CompatibleMaterial cm : CompatibleMaterial.values()) {
|
|
if (cm.getMaterial() != null && cm.getMaterial().equals(mat) && cm.getData() == data) {
|
|
return cm;
|
|
}
|
|
}
|
|
}
|
|
|
|
return CompatibleMaterial.getMaterial(mat);
|
|
}
|
|
|
|
return null;
|
|
}
|
|
|
|
private static CompatibleMaterial getMaterialFromNewBlock(Block block) {
|
|
if (block == null) {
|
|
return null;
|
|
}
|
|
|
|
Material mat = block.getType();
|
|
|
|
if (useLegacy) {
|
|
LegacyMaterialBlockType legacyBlock = LegacyMaterialBlockType.getFromLegacy(mat.name(), block.getData());
|
|
if (legacyBlock != null) {
|
|
return lookupMap.get(legacyBlock.name());
|
|
}
|
|
|
|
CompatibleMaterial withData = lookupMap.get(mat.name() + ":" + block.getData());
|
|
return withData == null ? lookupMap.get(mat.name()) : withData;
|
|
}
|
|
|
|
return lookupMap.get(mat.name());
|
|
}
|
|
|
|
/**
|
|
* Lookup a Block Material by its modern id name. <br />
|
|
* This also can grab materials by their legacy, but only if there is no
|
|
* modern material by that name.
|
|
*
|
|
* @param name item to lookup
|
|
*
|
|
* @return LegacyMaterial or null if none found
|
|
*/
|
|
public static CompatibleMaterial getBlockMaterial(String name) {
|
|
if (name == null) {
|
|
return null;
|
|
}
|
|
|
|
if (useLegacy) {
|
|
LegacyMaterialBlockType legacyBlock = LegacyMaterialBlockType.getFromLegacy(name.toUpperCase());
|
|
|
|
if (legacyBlock != null) {
|
|
return lookupMap.get(legacyBlock.name());
|
|
}
|
|
}
|
|
|
|
return lookupMap.get(name.toUpperCase());
|
|
}
|
|
|
|
/**
|
|
* Lookup a Block Material by its modern id name. <br />
|
|
* This also can grab materials by their legacy, but only if there is no
|
|
* modern material by that name.
|
|
*
|
|
* @param name item to lookup
|
|
* @param def default item if this is not a valid material
|
|
*
|
|
* @return LegacyMaterial or null if none found
|
|
*/
|
|
public static CompatibleMaterial getBlockMaterial(String name, CompatibleMaterial def) {
|
|
if (name == null) {
|
|
return def;
|
|
}
|
|
|
|
if (useLegacy) {
|
|
LegacyMaterialBlockType legacyBlock = LegacyMaterialBlockType.getFromLegacy(name.toUpperCase());
|
|
|
|
if (legacyBlock != null) {
|
|
return lookupMap.get(legacyBlock.name());
|
|
}
|
|
}
|
|
|
|
return lookupMap.getOrDefault(name.toUpperCase(), def);
|
|
}
|
|
|
|
/**
|
|
* Lookup a Block Material by bukkit material.
|
|
*
|
|
* @param mat item to lookup
|
|
*
|
|
* @return LegacyMaterial or null if none found
|
|
*/
|
|
public static CompatibleMaterial getBlockMaterial(Material mat) {
|
|
if (mat == null) {
|
|
return null;
|
|
}
|
|
|
|
if (useLegacy) {
|
|
LegacyMaterialBlockType legacyBlock = LegacyMaterialBlockType.getFromLegacy(mat.name());
|
|
|
|
if (legacyBlock != null) {
|
|
return lookupMap.get(legacyBlock.name());
|
|
}
|
|
}
|
|
|
|
return lookupMap.get(mat.name());
|
|
}
|
|
|
|
static LinkedHashSet<CompatibleMaterial> all = null;
|
|
|
|
public static Set<CompatibleMaterial> getAllValidItemMaterials() {
|
|
if (all == null) {
|
|
all = new LinkedHashSet<>();
|
|
|
|
for (CompatibleMaterial mat : values()) {
|
|
if (mat.isValidItem() && !mat.usesCompatibility()) {
|
|
all.add(mat);
|
|
}
|
|
}
|
|
}
|
|
|
|
return Collections.unmodifiableSet(all);
|
|
}
|
|
|
|
/**
|
|
* Lookup a Legacy Material by its modern id name and return its associated
|
|
* Item. <br />
|
|
* This also can grab materials by their legacy, but only if there is no
|
|
* modern material by that name.
|
|
*
|
|
* @param name item to lookup
|
|
*
|
|
* @return ItemStack for this material, or null if none found
|
|
*/
|
|
public static ItemStack getItem(String name) {
|
|
if (name == null) {
|
|
return null;
|
|
}
|
|
|
|
CompatibleMaterial m = lookupMap.get(name.toUpperCase());
|
|
if (m != null) {
|
|
return m.getItem();
|
|
}
|
|
|
|
Material mat = Material.getMaterial(name);
|
|
return mat != null ? new ItemStack(mat) : null;
|
|
}
|
|
|
|
private static Method methodSetData;
|
|
|
|
static {
|
|
if (ServerVersion.isServerVersionAtOrBelow(ServerVersion.V1_12)) {
|
|
try {
|
|
methodSetData = Block.class.getDeclaredMethod("setData", byte.class);
|
|
} catch (NoSuchMethodException ex) {
|
|
ex.printStackTrace();
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Apply the current material to a block.
|
|
*
|
|
* @param block the block to apply the material to.
|
|
*/
|
|
public void applyToBlock(Block block) {
|
|
if (block == null) return;
|
|
|
|
block.setType(material);
|
|
|
|
if (data != null && data != -1 && ServerVersion.isServerVersionAtOrBelow(ServerVersion.V1_12)) {
|
|
try {
|
|
methodSetData.invoke(block, data);
|
|
} catch (IllegalAccessException | InvocationTargetException ex) {
|
|
ex.printStackTrace();
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Check to see if an item matches this specific material type
|
|
*
|
|
* @param item Item to check
|
|
*
|
|
* @return true if material of the ItemStack matches this item, corrected for legacy data
|
|
*/
|
|
public boolean matches(ItemStack item) {
|
|
return item != null &&
|
|
!usesCompatibility() && item.getType() == material &&
|
|
// eons ago, ItemStack.getData() would return a byte. 1.7 doesn't, though.
|
|
(data == null || item.getDurability() == data);
|
|
}
|
|
|
|
/**
|
|
* Some blocks change to other materials when placed down. This checks to
|
|
* see if this one is one of those.
|
|
*/
|
|
public boolean hasDifferentBlockItem() {
|
|
switch (this) {
|
|
case STRING:
|
|
return true;
|
|
|
|
case ACACIA_DOOR:
|
|
case BIRCH_DOOR:
|
|
case DARK_OAK_DOOR:
|
|
case JUNGLE_DOOR:
|
|
case SPRUCE_DOOR:
|
|
case IRON_DOOR:
|
|
case OAK_DOOR:
|
|
case ACACIA_SIGN:
|
|
case BIRCH_SIGN:
|
|
case DARK_OAK_SIGN:
|
|
case JUNGLE_SIGN:
|
|
case OAK_SIGN:
|
|
case SPRUCE_SIGN:
|
|
case BLACK_BANNER:
|
|
case BLUE_BANNER:
|
|
case BROWN_BANNER:
|
|
case CYAN_BANNER:
|
|
case GRAY_BANNER:
|
|
case GREEN_BANNER:
|
|
case LIGHT_BLUE_BANNER:
|
|
case LIGHT_GRAY_BANNER:
|
|
case LIME_BANNER:
|
|
case MAGENTA_BANNER:
|
|
case ORANGE_BANNER:
|
|
case PINK_BANNER:
|
|
case PURPLE_BANNER:
|
|
case RED_BANNER:
|
|
case WHITE_BANNER:
|
|
case YELLOW_BANNER:
|
|
case BLACK_BED:
|
|
case BLUE_BED:
|
|
case BROWN_BED:
|
|
case CYAN_BED:
|
|
case GRAY_BED:
|
|
case GREEN_BED:
|
|
case LIGHT_BLUE_BED:
|
|
case LIGHT_GRAY_BED:
|
|
case LIME_BED:
|
|
case MAGENTA_BED:
|
|
case ORANGE_BED:
|
|
case PINK_BED:
|
|
case PURPLE_BED:
|
|
case RED_BED:
|
|
case WHITE_BED:
|
|
case YELLOW_BED:
|
|
case REDSTONE:
|
|
case REPEATER:
|
|
case SUGAR_CANE:
|
|
case CAKE:
|
|
case COMPARATOR:
|
|
return usesLegacy();
|
|
|
|
default:
|
|
return false;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Check to see if this is a material that can exist as a block
|
|
*/
|
|
public boolean isBlock() {
|
|
return material != null && material.isBlock();
|
|
}
|
|
|
|
/**
|
|
* Check to see if this is an item that can be consumed to restore hunger
|
|
*/
|
|
public boolean isEdible() {
|
|
return material != null && material.isEdible();
|
|
}
|
|
|
|
/**
|
|
* Check if the material is a block and can be built on
|
|
*/
|
|
public boolean isSolid() {
|
|
return material != null && material.isSolid();
|
|
}
|
|
|
|
/**
|
|
* Check if the material is a block and does not block any light
|
|
*
|
|
* @return True if this material is a block and does not block any light
|
|
*
|
|
* @see Material#isTransparent()
|
|
* @deprecated currently does not have an implementation which is well
|
|
* linked to the underlying server. Contributions welcome.
|
|
*/
|
|
@Deprecated
|
|
public boolean isTransparent() {
|
|
return material != null && material.isTransparent();
|
|
}
|
|
|
|
/**
|
|
* Check if the material is a block and can catch fire
|
|
*/
|
|
public boolean isFlammable() {
|
|
return material != null && material.isFlammable();
|
|
}
|
|
|
|
/**
|
|
* Check if the material is a block and can be destroyed by burning
|
|
*/
|
|
public boolean isBurnable() {
|
|
return material != null && material.isBurnable();
|
|
}
|
|
|
|
/**
|
|
* Checks if this Material can be used as fuel in a Furnace
|
|
*/
|
|
public boolean isFuel() {
|
|
// this function is not implemented in some older versions, so we need this here...
|
|
switch (this) {
|
|
case ACACIA_BOAT:
|
|
case ACACIA_BUTTON:
|
|
case ACACIA_DOOR:
|
|
case ACACIA_FENCE:
|
|
case ACACIA_FENCE_GATE:
|
|
case ACACIA_LOG:
|
|
case ACACIA_PLANKS:
|
|
case ACACIA_PRESSURE_PLATE:
|
|
case ACACIA_SAPLING:
|
|
case ACACIA_SIGN:
|
|
case ACACIA_SLAB:
|
|
case ACACIA_STAIRS:
|
|
case ACACIA_TRAPDOOR:
|
|
case ACACIA_WOOD:
|
|
case AZALEA:
|
|
case BAMBOO:
|
|
case BARREL:
|
|
case BIRCH_BOAT:
|
|
case BIRCH_BUTTON:
|
|
case BIRCH_DOOR:
|
|
case BIRCH_FENCE:
|
|
case BIRCH_FENCE_GATE:
|
|
case BIRCH_LOG:
|
|
case BIRCH_PLANKS:
|
|
case BIRCH_PRESSURE_PLATE:
|
|
case BIRCH_SAPLING:
|
|
case BIRCH_SIGN:
|
|
case BIRCH_SLAB:
|
|
case BIRCH_STAIRS:
|
|
case BIRCH_TRAPDOOR:
|
|
case BIRCH_WOOD:
|
|
case BLACK_BANNER:
|
|
case BLACK_CARPET:
|
|
case BLACK_WOOL:
|
|
case BLAZE_ROD:
|
|
case BLUE_BANNER:
|
|
case BLUE_CARPET:
|
|
case BLUE_WOOL:
|
|
case BOOKSHELF:
|
|
case BOW:
|
|
case BOWL:
|
|
case BROWN_BANNER:
|
|
case BROWN_CARPET:
|
|
case BROWN_WOOL:
|
|
case CARTOGRAPHY_TABLE:
|
|
case CHARCOAL:
|
|
case CHEST:
|
|
case COAL:
|
|
case COAL_BLOCK:
|
|
case COMPOSTER:
|
|
case CRAFTING_TABLE:
|
|
case CROSSBOW:
|
|
case CYAN_BANNER:
|
|
case CYAN_CARPET:
|
|
case CYAN_WOOL:
|
|
case DARK_OAK_BOAT:
|
|
case DARK_OAK_BUTTON:
|
|
case DARK_OAK_DOOR:
|
|
case DARK_OAK_FENCE:
|
|
case DARK_OAK_FENCE_GATE:
|
|
case DARK_OAK_LOG:
|
|
case DARK_OAK_PLANKS:
|
|
case DARK_OAK_PRESSURE_PLATE:
|
|
case DARK_OAK_SAPLING:
|
|
case DARK_OAK_SIGN:
|
|
case DARK_OAK_SLAB:
|
|
case DARK_OAK_STAIRS:
|
|
case DARK_OAK_TRAPDOOR:
|
|
case DARK_OAK_WOOD:
|
|
case DAYLIGHT_DETECTOR:
|
|
case DEAD_BUSH:
|
|
case DRIED_KELP_BLOCK:
|
|
case FISHING_ROD:
|
|
case FLETCHING_TABLE:
|
|
case FLOWERING_AZALEA:
|
|
case GRAY_BANNER:
|
|
case GRAY_CARPET:
|
|
case GRAY_WOOL:
|
|
case GREEN_BANNER:
|
|
case GREEN_CARPET:
|
|
case GREEN_WOOL:
|
|
case JUKEBOX:
|
|
case JUNGLE_BOAT:
|
|
case JUNGLE_BUTTON:
|
|
case JUNGLE_DOOR:
|
|
case JUNGLE_FENCE:
|
|
case JUNGLE_FENCE_GATE:
|
|
case JUNGLE_LOG:
|
|
case JUNGLE_PLANKS:
|
|
case JUNGLE_PRESSURE_PLATE:
|
|
case JUNGLE_SAPLING:
|
|
case JUNGLE_SIGN:
|
|
case JUNGLE_SLAB:
|
|
case JUNGLE_STAIRS:
|
|
case JUNGLE_TRAPDOOR:
|
|
case JUNGLE_WOOD:
|
|
case LADDER:
|
|
case LAVA_BUCKET:
|
|
case LECTERN:
|
|
case LIGHT_BLUE_BANNER:
|
|
case LIGHT_BLUE_CARPET:
|
|
case LIGHT_BLUE_WOOL:
|
|
case LIGHT_GRAY_BANNER:
|
|
case LIGHT_GRAY_CARPET:
|
|
case LIGHT_GRAY_WOOL:
|
|
case LIME_BANNER:
|
|
case LIME_CARPET:
|
|
case LIME_WOOL:
|
|
case LOOM:
|
|
case MAGENTA_BANNER:
|
|
case MAGENTA_CARPET:
|
|
case MAGENTA_WOOL:
|
|
case NOTE_BLOCK:
|
|
case OAK_BOAT:
|
|
case OAK_BUTTON:
|
|
case OAK_DOOR:
|
|
case OAK_FENCE:
|
|
case OAK_FENCE_GATE:
|
|
case OAK_LOG:
|
|
case OAK_PLANKS:
|
|
case OAK_PRESSURE_PLATE:
|
|
case OAK_SAPLING:
|
|
case OAK_SIGN:
|
|
case OAK_SLAB:
|
|
case OAK_STAIRS:
|
|
case OAK_TRAPDOOR:
|
|
case OAK_WOOD:
|
|
case ORANGE_BANNER:
|
|
case ORANGE_CARPET:
|
|
case ORANGE_WOOL:
|
|
case PINK_BANNER:
|
|
case PINK_CARPET:
|
|
case PINK_WOOL:
|
|
case PURPLE_BANNER:
|
|
case PURPLE_CARPET:
|
|
case PURPLE_WOOL:
|
|
case RED_BANNER:
|
|
case RED_CARPET:
|
|
case RED_WOOL:
|
|
case SCAFFOLDING:
|
|
case SMITHING_TABLE:
|
|
case SPRUCE_BOAT:
|
|
case SPRUCE_BUTTON:
|
|
case SPRUCE_DOOR:
|
|
case SPRUCE_FENCE:
|
|
case SPRUCE_FENCE_GATE:
|
|
case SPRUCE_LOG:
|
|
case SPRUCE_PLANKS:
|
|
case SPRUCE_PRESSURE_PLATE:
|
|
case SPRUCE_SAPLING:
|
|
case SPRUCE_SIGN:
|
|
case SPRUCE_SLAB:
|
|
case SPRUCE_STAIRS:
|
|
case SPRUCE_TRAPDOOR:
|
|
case SPRUCE_WOOD:
|
|
case STICK:
|
|
case STRIPPED_ACACIA_LOG:
|
|
case STRIPPED_ACACIA_WOOD:
|
|
case STRIPPED_BIRCH_LOG:
|
|
case STRIPPED_BIRCH_WOOD:
|
|
case STRIPPED_DARK_OAK_LOG:
|
|
case STRIPPED_DARK_OAK_WOOD:
|
|
case STRIPPED_JUNGLE_LOG:
|
|
case STRIPPED_JUNGLE_WOOD:
|
|
case STRIPPED_OAK_LOG:
|
|
case STRIPPED_OAK_WOOD:
|
|
case STRIPPED_SPRUCE_LOG:
|
|
case STRIPPED_SPRUCE_WOOD:
|
|
case TRAPPED_CHEST:
|
|
case WHITE_BANNER:
|
|
case WHITE_CARPET:
|
|
case WHITE_WOOL:
|
|
case WOODEN_AXE:
|
|
case WOODEN_HOE:
|
|
case WOODEN_PICKAXE:
|
|
case WOODEN_SHOVEL:
|
|
case WOODEN_SWORD:
|
|
case YELLOW_BANNER:
|
|
case YELLOW_CARPET:
|
|
case YELLOW_WOOL:
|
|
return true;
|
|
default:
|
|
return false;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Get the result of putting this item
|
|
* into a furnace.
|
|
* <p>
|
|
* return
|
|
*/
|
|
public CompatibleMaterial getBurnResult() {
|
|
switch (this) {
|
|
case PORKCHOP:
|
|
return COOKED_PORKCHOP;
|
|
case BEEF:
|
|
return COOKED_BEEF;
|
|
case CHICKEN:
|
|
return COOKED_CHICKEN;
|
|
case COD:
|
|
return COOKED_COD;
|
|
case SALMON:
|
|
return COOKED_SALMON;
|
|
case POTATO:
|
|
return BAKED_POTATO;
|
|
case MUTTON:
|
|
return COOKED_MUTTON;
|
|
case RABBIT:
|
|
return COOKED_RABBIT;
|
|
case KELP:
|
|
return DRIED_KELP;
|
|
case RAW_IRON:
|
|
case IRON_ORE:
|
|
case DEEPSLATE_IRON_ORE:
|
|
return IRON_INGOT;
|
|
case RAW_GOLD:
|
|
case GOLD_ORE:
|
|
case DEEPSLATE_GOLD_ORE:
|
|
return GOLD_INGOT;
|
|
case DIAMOND_ORE:
|
|
case DEEPSLATE_DIAMOND_ORE:
|
|
return DIAMOND;
|
|
case LAPIS_ORE:
|
|
case DEEPSLATE_LAPIS_ORE:
|
|
return LAPIS_LAZULI;
|
|
case REDSTONE_ORE:
|
|
case DEEPSLATE_REDSTONE_ORE:
|
|
return REDSTONE;
|
|
case COAL_ORE:
|
|
case DEEPSLATE_COAL_ORE:
|
|
return COAL;
|
|
case EMERALD_ORE:
|
|
case DEEPSLATE_EMERALD_ORE:
|
|
return EMERALD;
|
|
case NETHER_QUARTZ_ORE:
|
|
return QUARTZ;
|
|
case RAW_COPPER:
|
|
case COPPER_ORE:
|
|
case DEEPSLATE_COPPER_ORE:
|
|
return COPPER_INGOT;
|
|
case SAND:
|
|
case RED_SAND:
|
|
return GLASS;
|
|
case COBBLESTONE:
|
|
return STONE;
|
|
case SANDSTONE:
|
|
return SMOOTH_SANDSTONE;
|
|
case RED_SANDSTONE:
|
|
return SMOOTH_RED_SANDSTONE;
|
|
case STONE:
|
|
return SMOOTH_STONE;
|
|
case QUARTZ_BLOCK:
|
|
return SMOOTH_QUARTZ;
|
|
case CLAY_BALL:
|
|
return BRICK;
|
|
case NETHERRACK:
|
|
return NETHER_BRICK;
|
|
case CLAY:
|
|
return BRICKS;
|
|
case STONE_BRICKS:
|
|
return CRACKED_STONE_BRICKS;
|
|
case WHITE_TERRACOTTA:
|
|
return WHITE_GLAZED_TERRACOTTA;
|
|
case ORANGE_TERRACOTTA:
|
|
return ORANGE_GLAZED_TERRACOTTA;
|
|
case MAGENTA_TERRACOTTA:
|
|
return MAGENTA_GLAZED_TERRACOTTA;
|
|
case LIGHT_BLUE_TERRACOTTA:
|
|
return LIGHT_BLUE_GLAZED_TERRACOTTA;
|
|
case YELLOW_TERRACOTTA:
|
|
return YELLOW_GLAZED_TERRACOTTA;
|
|
case LIME_TERRACOTTA:
|
|
return LIME_GLAZED_TERRACOTTA;
|
|
case PINK_TERRACOTTA:
|
|
return PINK_GLAZED_TERRACOTTA;
|
|
case GRAY_TERRACOTTA:
|
|
return GRAY_GLAZED_TERRACOTTA;
|
|
case LIGHT_GRAY_TERRACOTTA:
|
|
return LIGHT_GRAY_GLAZED_TERRACOTTA;
|
|
case CYAN_TERRACOTTA:
|
|
return CYAN_GLAZED_TERRACOTTA;
|
|
case PURPLE_TERRACOTTA:
|
|
return PURPLE_GLAZED_TERRACOTTA;
|
|
case BLUE_TERRACOTTA:
|
|
return BLUE_GLAZED_TERRACOTTA;
|
|
case BROWN_TERRACOTTA:
|
|
return BROWN_GLAZED_TERRACOTTA;
|
|
case GREEN_TERRACOTTA:
|
|
return GREEN_GLAZED_TERRACOTTA;
|
|
case RED_TERRACOTTA:
|
|
return RED_GLAZED_TERRACOTTA;
|
|
case BLACK_TERRACOTTA:
|
|
return BLACK_GLAZED_TERRACOTTA;
|
|
case IRON_SWORD:
|
|
case IRON_PICKAXE:
|
|
case IRON_AXE:
|
|
case IRON_SHOVEL:
|
|
case IRON_HOE:
|
|
case IRON_HELMET:
|
|
case IRON_CHESTPLATE:
|
|
case IRON_LEGGINGS:
|
|
case IRON_BOOTS:
|
|
case IRON_HORSE_ARMOR:
|
|
case CHAINMAIL_HELMET:
|
|
case CHAINMAIL_CHESTPLATE:
|
|
case CHAINMAIL_LEGGINGS:
|
|
case CHAINMAIL_BOOTS:
|
|
return IRON_NUGGET;
|
|
case GOLDEN_SWORD:
|
|
case GOLDEN_PICKAXE:
|
|
case GOLDEN_AXE:
|
|
case GOLDEN_SHOVEL:
|
|
case GOLDEN_HOE:
|
|
case GOLDEN_HELMET:
|
|
case GOLDEN_CHESTPLATE:
|
|
case GOLDEN_LEGGINGS:
|
|
case GOLDEN_BOOTS:
|
|
case GOLDEN_HORSE_ARMOR:
|
|
return GOLD_NUGGET;
|
|
case CACTUS:
|
|
return GREEN_DYE;
|
|
case SEA_PICKLE:
|
|
return LIME_DYE;
|
|
case OAK_LOG:
|
|
case BIRCH_LOG:
|
|
case ACACIA_LOG:
|
|
case DARK_OAK_LOG:
|
|
case JUNGLE_LOG:
|
|
case SPRUCE_LOG:
|
|
case STRIPPED_ACACIA_LOG:
|
|
case STRIPPED_BIRCH_LOG:
|
|
case STRIPPED_DARK_OAK_LOG:
|
|
case STRIPPED_JUNGLE_LOG:
|
|
case STRIPPED_OAK_LOG:
|
|
case STRIPPED_SPRUCE_LOG:
|
|
case ACACIA_WOOD:
|
|
case BIRCH_WOOD:
|
|
case JUNGLE_WOOD:
|
|
case OAK_WOOD:
|
|
case SPRUCE_WOOD:
|
|
case STRIPPED_ACACIA_WOOD:
|
|
case STRIPPED_BIRCH_WOOD:
|
|
case STRIPPED_DARK_OAK_WOOD:
|
|
case STRIPPED_JUNGLE_WOOD:
|
|
case STRIPPED_OAK_WOOD:
|
|
case STRIPPED_SPRUCE_WOOD:
|
|
return CHARCOAL;
|
|
case CHORUS_FRUIT:
|
|
return POPPED_CHORUS_FRUIT;
|
|
default:
|
|
return null;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Check if the material is air
|
|
*/
|
|
public boolean isAir() {
|
|
switch (this) {
|
|
case AIR:
|
|
case CAVE_AIR:
|
|
case VOID_AIR:
|
|
return true;
|
|
default:
|
|
return false;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Check if the material is water
|
|
*/
|
|
public boolean isWater() {
|
|
return this == CompatibleMaterial.WATER;
|
|
}
|
|
|
|
/**
|
|
* Get the EntityType of the monster spawn egg.
|
|
*/
|
|
public EntityType getEggType() {
|
|
String entityName = this.name().replace("_SPAWN_EGG", "");
|
|
|
|
if (entityName.equals("MOOSHROOM")) {
|
|
entityName = "MUSHROOM_COW";
|
|
} else if (entityName.equals("ZOMBIE_PIGMAN")) {
|
|
entityName = "PIG_ZOMBIE";
|
|
}
|
|
|
|
try {
|
|
return EntityType.valueOf(entityName);
|
|
} catch (IllegalArgumentException ignore) {
|
|
}
|
|
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
* Check if the material is a block and completely blocks vision
|
|
*/
|
|
public boolean isOccluding() {
|
|
return material != null && material.isOccluding();
|
|
}
|
|
|
|
/**
|
|
* @return True if this material is affected by gravity.
|
|
*/
|
|
public boolean hasGravity() {
|
|
return material != null && material.hasGravity();
|
|
}
|
|
|
|
/**
|
|
* Checks if this Material is an obtainable item.
|
|
*/
|
|
public boolean isItem() {
|
|
// this function is not implemented in some older versions, so we need this here...
|
|
switch (this) {
|
|
case ACACIA_WALL_SIGN:
|
|
case ATTACHED_MELON_STEM:
|
|
case ATTACHED_PUMPKIN_STEM:
|
|
case BAMBOO_SAPLING:
|
|
case BEETROOTS:
|
|
case BIG_DRIPLEAF_STEM:
|
|
case BIRCH_WALL_SIGN:
|
|
case BLACK_CANDLE_CAKE:
|
|
case BLACK_WALL_BANNER:
|
|
case BLUE_CANDLE_CAKE:
|
|
case BLUE_WALL_BANNER:
|
|
case BRAIN_CORAL_WALL_FAN:
|
|
case BROWN_CANDLE_CAKE:
|
|
case BROWN_WALL_BANNER:
|
|
case BUBBLE_COLUMN:
|
|
case BUBBLE_CORAL_WALL_FAN:
|
|
case CANDLE_CAKE:
|
|
case CARROTS:
|
|
case CAVE_AIR:
|
|
case CAVE_VINES:
|
|
case CAVE_VINES_PLANT:
|
|
case COCOA:
|
|
case CREEPER_WALL_HEAD:
|
|
case CRIMSON_WALL_SIGN:
|
|
case CYAN_CANDLE_CAKE:
|
|
case CYAN_WALL_BANNER:
|
|
case DARK_OAK_WALL_SIGN:
|
|
case DEAD_BRAIN_CORAL_WALL_FAN:
|
|
case DEAD_BUBBLE_CORAL_WALL_FAN:
|
|
case DEAD_FIRE_CORAL_WALL_FAN:
|
|
case DEAD_HORN_CORAL_WALL_FAN:
|
|
case DEAD_TUBE_CORAL_WALL_FAN:
|
|
case DRAGON_WALL_HEAD:
|
|
case END_GATEWAY:
|
|
case END_PORTAL:
|
|
case FIRE:
|
|
case FIRE_CORAL_WALL_FAN:
|
|
case FROSTED_ICE:
|
|
case GRAY_CANDLE_CAKE:
|
|
case GRAY_WALL_BANNER:
|
|
case GREEN_CANDLE_CAKE:
|
|
case GREEN_WALL_BANNER:
|
|
case HORN_CORAL_WALL_FAN:
|
|
case JUNGLE_WALL_SIGN:
|
|
case KELP_PLANT:
|
|
case LAVA:
|
|
case LAVA_CAULDRON:
|
|
case LIGHT_BLUE_CANDLE_CAKE:
|
|
case LIGHT_BLUE_WALL_BANNER:
|
|
case LIGHT_GRAY_CANDLE_CAKE:
|
|
case LIGHT_GRAY_WALL_BANNER:
|
|
case LIME_CANDLE_CAKE:
|
|
case LIME_WALL_BANNER:
|
|
case MAGENTA_CANDLE_CAKE:
|
|
case MAGENTA_WALL_BANNER:
|
|
case MELON_STEM:
|
|
case MOVING_PISTON:
|
|
case NETHER_PORTAL:
|
|
case OAK_WALL_SIGN:
|
|
case ORANGE_CANDLE_CAKE:
|
|
case ORANGE_WALL_BANNER:
|
|
case PINK_CANDLE_CAKE:
|
|
case PINK_WALL_BANNER:
|
|
case PISTON_HEAD:
|
|
case PLAYER_WALL_HEAD:
|
|
case POTATOES:
|
|
case POTTED_ACACIA_SAPLING:
|
|
case POTTED_ALLIUM:
|
|
case POTTED_AZALEA_BUSH:
|
|
case POTTED_AZURE_BLUET:
|
|
case POTTED_BAMBOO:
|
|
case POTTED_BIRCH_SAPLING:
|
|
case POTTED_BLUE_ORCHID:
|
|
case POTTED_BROWN_MUSHROOM:
|
|
case POTTED_CACTUS:
|
|
case POTTED_CORNFLOWER:
|
|
case POTTED_CRIMSON_FUNGUS:
|
|
case POTTED_CRIMSON_ROOTS:
|
|
case POTTED_DANDELION:
|
|
case POTTED_DARK_OAK_SAPLING:
|
|
case POTTED_DEAD_BUSH:
|
|
case POTTED_FERN:
|
|
case POTTED_FLOWERING_AZALEA_BUSH:
|
|
case POTTED_JUNGLE_SAPLING:
|
|
case POTTED_LILY_OF_THE_VALLEY:
|
|
case POTTED_OAK_SAPLING:
|
|
case POTTED_ORANGE_TULIP:
|
|
case POTTED_OXEYE_DAISY:
|
|
case POTTED_PINK_TULIP:
|
|
case POTTED_POPPY:
|
|
case POTTED_RED_MUSHROOM:
|
|
case POTTED_RED_TULIP:
|
|
case POTTED_SPRUCE_SAPLING:
|
|
case POTTED_WARPED_FUNGUS:
|
|
case POTTED_WARPED_ROOTS:
|
|
case POTTED_WHITE_TULIP:
|
|
case POTTED_WITHER_ROSE:
|
|
case POWDER_SNOW:
|
|
case POWDER_SNOW_CAULDRON:
|
|
case PUMPKIN_STEM:
|
|
case PURPLE_CANDLE_CAKE:
|
|
case PURPLE_WALL_BANNER:
|
|
case REDSTONE_WALL_TORCH:
|
|
case REDSTONE_WIRE:
|
|
case RED_CANDLE_CAKE:
|
|
case RED_WALL_BANNER:
|
|
case SKELETON_WALL_SKULL:
|
|
case SOUL_FIRE:
|
|
case SOUL_WALL_TORCH:
|
|
case SPRUCE_WALL_SIGN:
|
|
case SWEET_BERRY_BUSH:
|
|
case TALL_SEAGRASS:
|
|
case TRIPWIRE:
|
|
case TUBE_CORAL_WALL_FAN:
|
|
case TWISTING_VINES_PLANT:
|
|
case VOID_AIR:
|
|
case WALL_TORCH:
|
|
case WARPED_WALL_SIGN:
|
|
case WATER:
|
|
case WATER_CAULDRON:
|
|
case WEEPING_VINES_PLANT:
|
|
case WHITE_CANDLE_CAKE:
|
|
case WHITE_WALL_BANNER:
|
|
case WITHER_SKELETON_WALL_SKULL:
|
|
case YELLOW_CANDLE_CAKE:
|
|
case YELLOW_WALL_BANNER:
|
|
case ZOMBIE_WALL_HEAD:
|
|
return false;
|
|
|
|
default:
|
|
return true;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Checks if this Material can be interacted with. <br />
|
|
* This method will return true if there is at least one state in which
|
|
* additional interact handling is performed for the material.
|
|
*/
|
|
public boolean isInteractable() {
|
|
// this function is not implemented in some older versions, so we need this here...
|
|
switch (this) {
|
|
case ACACIA_BUTTON:
|
|
case ACACIA_DOOR:
|
|
case ACACIA_FENCE:
|
|
case ACACIA_FENCE_GATE:
|
|
case ACACIA_SIGN:
|
|
case ACACIA_STAIRS:
|
|
case ACACIA_TRAPDOOR:
|
|
case ACACIA_WALL_SIGN:
|
|
case ANDESITE_STAIRS:
|
|
case ANVIL:
|
|
case BARREL:
|
|
case BEACON:
|
|
case BEEHIVE:
|
|
case BEE_NEST:
|
|
case BELL:
|
|
case BIRCH_BUTTON:
|
|
case BIRCH_DOOR:
|
|
case BIRCH_FENCE:
|
|
case BIRCH_FENCE_GATE:
|
|
case BIRCH_SIGN:
|
|
case BIRCH_STAIRS:
|
|
case BIRCH_TRAPDOOR:
|
|
case BIRCH_WALL_SIGN:
|
|
case BLACKSTONE_STAIRS:
|
|
case BLACK_BED:
|
|
case BLACK_CANDLE:
|
|
case BLACK_CANDLE_CAKE:
|
|
case BLACK_SHULKER_BOX:
|
|
case BLAST_FURNACE:
|
|
case BLUE_BED:
|
|
case BLUE_CANDLE:
|
|
case BLUE_CANDLE_CAKE:
|
|
case BLUE_SHULKER_BOX:
|
|
case BREWING_STAND:
|
|
case BRICK_STAIRS:
|
|
case BROWN_BED:
|
|
case BROWN_CANDLE:
|
|
case BROWN_CANDLE_CAKE:
|
|
case BROWN_SHULKER_BOX:
|
|
case CAKE:
|
|
case CAMPFIRE:
|
|
case CANDLE:
|
|
case CANDLE_CAKE:
|
|
case CARTOGRAPHY_TABLE:
|
|
case CAULDRON:
|
|
case CAVE_VINES:
|
|
case CAVE_VINES_PLANT:
|
|
case CHAIN_COMMAND_BLOCK:
|
|
case CHEST:
|
|
case CHIPPED_ANVIL:
|
|
case COBBLED_DEEPSLATE_STAIRS:
|
|
case COBBLESTONE_STAIRS:
|
|
case COMMAND_BLOCK:
|
|
case COMPARATOR:
|
|
case COMPOSTER:
|
|
case CRAFTING_TABLE:
|
|
case CRIMSON_BUTTON:
|
|
case CRIMSON_DOOR:
|
|
case CRIMSON_FENCE:
|
|
case CRIMSON_FENCE_GATE:
|
|
case CRIMSON_SIGN:
|
|
case CRIMSON_STAIRS:
|
|
case CRIMSON_TRAPDOOR:
|
|
case CRIMSON_WALL_SIGN:
|
|
case CUT_COPPER_STAIRS:
|
|
case CYAN_BED:
|
|
case CYAN_CANDLE:
|
|
case CYAN_CANDLE_CAKE:
|
|
case CYAN_SHULKER_BOX:
|
|
case DAMAGED_ANVIL:
|
|
case DARK_OAK_BUTTON:
|
|
case DARK_OAK_DOOR:
|
|
case DARK_OAK_FENCE:
|
|
case DARK_OAK_FENCE_GATE:
|
|
case DARK_OAK_SIGN:
|
|
case DARK_OAK_STAIRS:
|
|
case DARK_OAK_TRAPDOOR:
|
|
case DARK_OAK_WALL_SIGN:
|
|
case DARK_PRISMARINE_STAIRS:
|
|
case DAYLIGHT_DETECTOR:
|
|
case DEEPSLATE_BRICK_STAIRS:
|
|
case DEEPSLATE_REDSTONE_ORE:
|
|
case DEEPSLATE_TILE_STAIRS:
|
|
case DIORITE_STAIRS:
|
|
case DISPENSER:
|
|
case DRAGON_EGG:
|
|
case DROPPER:
|
|
case ENCHANTING_TABLE:
|
|
case ENDER_CHEST:
|
|
case END_STONE_BRICK_STAIRS:
|
|
case EXPOSED_CUT_COPPER_STAIRS:
|
|
case FLETCHING_TABLE:
|
|
case FLOWER_POT:
|
|
case FURNACE:
|
|
case GRANITE_STAIRS:
|
|
case GRAY_BED:
|
|
case GRAY_CANDLE:
|
|
case GRAY_CANDLE_CAKE:
|
|
case GRAY_SHULKER_BOX:
|
|
case GREEN_BED:
|
|
case GREEN_CANDLE:
|
|
case GREEN_CANDLE_CAKE:
|
|
case GREEN_SHULKER_BOX:
|
|
case GRINDSTONE:
|
|
case HOPPER:
|
|
case IRON_DOOR:
|
|
case IRON_TRAPDOOR:
|
|
case JIGSAW:
|
|
case JUKEBOX:
|
|
case JUNGLE_BUTTON:
|
|
case JUNGLE_DOOR:
|
|
case JUNGLE_FENCE:
|
|
case JUNGLE_FENCE_GATE:
|
|
case JUNGLE_SIGN:
|
|
case JUNGLE_STAIRS:
|
|
case JUNGLE_TRAPDOOR:
|
|
case JUNGLE_WALL_SIGN:
|
|
case LAVA_CAULDRON:
|
|
case LECTERN:
|
|
case LEVER:
|
|
case LIGHT:
|
|
case LIGHT_BLUE_BED:
|
|
case LIGHT_BLUE_CANDLE:
|
|
case LIGHT_BLUE_CANDLE_CAKE:
|
|
case LIGHT_BLUE_SHULKER_BOX:
|
|
case LIGHT_GRAY_BED:
|
|
case LIGHT_GRAY_CANDLE:
|
|
case LIGHT_GRAY_CANDLE_CAKE:
|
|
case LIGHT_GRAY_SHULKER_BOX:
|
|
case LIME_BED:
|
|
case LIME_CANDLE:
|
|
case LIME_CANDLE_CAKE:
|
|
case LIME_SHULKER_BOX:
|
|
case LOOM:
|
|
case MAGENTA_BED:
|
|
case MAGENTA_CANDLE:
|
|
case MAGENTA_CANDLE_CAKE:
|
|
case MAGENTA_SHULKER_BOX:
|
|
case MOSSY_COBBLESTONE_STAIRS:
|
|
case MOSSY_STONE_BRICK_STAIRS:
|
|
case MOVING_PISTON:
|
|
case NETHER_BRICK_FENCE:
|
|
case NETHER_BRICK_STAIRS:
|
|
case NOTE_BLOCK:
|
|
case OAK_BUTTON:
|
|
case OAK_DOOR:
|
|
case OAK_FENCE:
|
|
case OAK_FENCE_GATE:
|
|
case OAK_SIGN:
|
|
case OAK_STAIRS:
|
|
case OAK_TRAPDOOR:
|
|
case OAK_WALL_SIGN:
|
|
case ORANGE_BED:
|
|
case ORANGE_CANDLE:
|
|
case ORANGE_CANDLE_CAKE:
|
|
case ORANGE_SHULKER_BOX:
|
|
case OXIDIZED_CUT_COPPER_STAIRS:
|
|
case PINK_BED:
|
|
case PINK_CANDLE:
|
|
case PINK_CANDLE_CAKE:
|
|
case PINK_SHULKER_BOX:
|
|
case POLISHED_ANDESITE_STAIRS:
|
|
case POLISHED_BLACKSTONE_BRICK_STAIRS:
|
|
case POLISHED_BLACKSTONE_BUTTON:
|
|
case POLISHED_BLACKSTONE_STAIRS:
|
|
case POLISHED_DEEPSLATE_STAIRS:
|
|
case POLISHED_DIORITE_STAIRS:
|
|
case POLISHED_GRANITE_STAIRS:
|
|
case POTTED_ACACIA_SAPLING:
|
|
case POTTED_ALLIUM:
|
|
case POTTED_AZALEA_BUSH:
|
|
case POTTED_AZURE_BLUET:
|
|
case POTTED_BAMBOO:
|
|
case POTTED_BIRCH_SAPLING:
|
|
case POTTED_BLUE_ORCHID:
|
|
case POTTED_BROWN_MUSHROOM:
|
|
case POTTED_CACTUS:
|
|
case POTTED_CORNFLOWER:
|
|
case POTTED_CRIMSON_FUNGUS:
|
|
case POTTED_CRIMSON_ROOTS:
|
|
case POTTED_DANDELION:
|
|
case POTTED_DARK_OAK_SAPLING:
|
|
case POTTED_DEAD_BUSH:
|
|
case POTTED_FERN:
|
|
case POTTED_FLOWERING_AZALEA_BUSH:
|
|
case POTTED_JUNGLE_SAPLING:
|
|
case POTTED_LILY_OF_THE_VALLEY:
|
|
case POTTED_OAK_SAPLING:
|
|
case POTTED_ORANGE_TULIP:
|
|
case POTTED_OXEYE_DAISY:
|
|
case POTTED_PINK_TULIP:
|
|
case POTTED_POPPY:
|
|
case POTTED_RED_MUSHROOM:
|
|
case POTTED_RED_TULIP:
|
|
case POTTED_SPRUCE_SAPLING:
|
|
case POTTED_WARPED_FUNGUS:
|
|
case POTTED_WARPED_ROOTS:
|
|
case POTTED_WHITE_TULIP:
|
|
case POTTED_WITHER_ROSE:
|
|
case POWDER_SNOW_CAULDRON:
|
|
case PRISMARINE_BRICK_STAIRS:
|
|
case PRISMARINE_STAIRS:
|
|
case PUMPKIN:
|
|
case PURPLE_BED:
|
|
case PURPLE_CANDLE:
|
|
case PURPLE_CANDLE_CAKE:
|
|
case PURPLE_SHULKER_BOX:
|
|
case PURPUR_STAIRS:
|
|
case QUARTZ_STAIRS:
|
|
case REDSTONE_ORE:
|
|
case REDSTONE_WIRE:
|
|
case RED_BED:
|
|
case RED_CANDLE:
|
|
case RED_CANDLE_CAKE:
|
|
case RED_NETHER_BRICK_STAIRS:
|
|
case RED_SANDSTONE_STAIRS:
|
|
case RED_SHULKER_BOX:
|
|
case REPEATER:
|
|
case REPEATING_COMMAND_BLOCK:
|
|
case RESPAWN_ANCHOR:
|
|
case SANDSTONE_STAIRS:
|
|
case SHULKER_BOX:
|
|
case SMITHING_TABLE:
|
|
case SMOKER:
|
|
case SMOOTH_QUARTZ_STAIRS:
|
|
case SMOOTH_RED_SANDSTONE_STAIRS:
|
|
case SMOOTH_SANDSTONE_STAIRS:
|
|
case SOUL_CAMPFIRE:
|
|
case SPRUCE_BUTTON:
|
|
case SPRUCE_DOOR:
|
|
case SPRUCE_FENCE:
|
|
case SPRUCE_FENCE_GATE:
|
|
case SPRUCE_SIGN:
|
|
case SPRUCE_STAIRS:
|
|
case SPRUCE_TRAPDOOR:
|
|
case SPRUCE_WALL_SIGN:
|
|
case STONECUTTER:
|
|
case STONE_BRICK_STAIRS:
|
|
case STONE_BUTTON:
|
|
case STONE_STAIRS:
|
|
case STRUCTURE_BLOCK:
|
|
case SWEET_BERRY_BUSH:
|
|
case TNT:
|
|
case TRAPPED_CHEST:
|
|
case WARPED_BUTTON:
|
|
case WARPED_DOOR:
|
|
case WARPED_FENCE:
|
|
case WARPED_FENCE_GATE:
|
|
case WARPED_SIGN:
|
|
case WARPED_STAIRS:
|
|
case WARPED_TRAPDOOR:
|
|
case WARPED_WALL_SIGN:
|
|
case WATER_CAULDRON:
|
|
case WAXED_CUT_COPPER_STAIRS:
|
|
case WAXED_EXPOSED_CUT_COPPER_STAIRS:
|
|
case WAXED_OXIDIZED_CUT_COPPER_STAIRS:
|
|
case WAXED_WEATHERED_CUT_COPPER_STAIRS:
|
|
case WEATHERED_CUT_COPPER_STAIRS:
|
|
case WHITE_BED:
|
|
case WHITE_CANDLE:
|
|
case WHITE_CANDLE_CAKE:
|
|
case WHITE_SHULKER_BOX:
|
|
case YELLOW_BED:
|
|
case YELLOW_CANDLE:
|
|
case YELLOW_CANDLE_CAKE:
|
|
case YELLOW_SHULKER_BOX:
|
|
return true;
|
|
|
|
default:
|
|
return false;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @return true if this material is valid as an item
|
|
*/
|
|
public boolean isValidItem() {
|
|
switch (this) {
|
|
case ACACIA_WALL_SIGN:
|
|
case AIR:
|
|
case ATTACHED_MELON_STEM:
|
|
case ATTACHED_PUMPKIN_STEM:
|
|
case BAMBOO_SAPLING:
|
|
case BEETROOTS:
|
|
case BIRCH_WALL_SIGN:
|
|
case BLACK_WALL_BANNER:
|
|
case BLUE_WALL_BANNER:
|
|
case BRAIN_CORAL_WALL_FAN:
|
|
case BROWN_WALL_BANNER:
|
|
case BUBBLE_COLUMN:
|
|
case BUBBLE_CORAL_WALL_FAN:
|
|
case CARROTS:
|
|
case CAVE_AIR:
|
|
case COCOA:
|
|
case CREEPER_WALL_HEAD:
|
|
case CYAN_WALL_BANNER:
|
|
case DARK_OAK_WALL_SIGN:
|
|
case DEAD_BRAIN_CORAL_WALL_FAN:
|
|
case DEAD_BUBBLE_CORAL_WALL_FAN:
|
|
case DEAD_FIRE_CORAL_WALL_FAN:
|
|
case DEAD_HORN_CORAL_WALL_FAN:
|
|
case DEAD_TUBE_CORAL_WALL_FAN:
|
|
case DRAGON_WALL_HEAD:
|
|
case END_GATEWAY:
|
|
case END_PORTAL:
|
|
case FARMLAND:
|
|
case FIRE: // used to be able to in older versions
|
|
case FIRE_CORAL_WALL_FAN:
|
|
case FROSTED_ICE:
|
|
case GRAY_WALL_BANNER:
|
|
case GREEN_WALL_BANNER:
|
|
case HORN_CORAL_WALL_FAN:
|
|
case JUNGLE_WALL_SIGN:
|
|
case KELP_PLANT:
|
|
case LAVA:
|
|
case LIGHT_BLUE_WALL_BANNER:
|
|
case LIGHT_GRAY_WALL_BANNER:
|
|
case LIME_WALL_BANNER:
|
|
case MAGENTA_WALL_BANNER:
|
|
case MELON_STEM:
|
|
case MOVING_PISTON:
|
|
case NETHER_PORTAL:
|
|
case OAK_WALL_SIGN:
|
|
case ORANGE_WALL_BANNER:
|
|
case PINK_WALL_BANNER:
|
|
case PISTON_HEAD:
|
|
case PLAYER_WALL_HEAD:
|
|
case POTATOES:
|
|
case POTTED_ACACIA_SAPLING:
|
|
case POTTED_ALLIUM:
|
|
case POTTED_AZURE_BLUET:
|
|
case POTTED_BAMBOO:
|
|
case POTTED_BIRCH_SAPLING:
|
|
case POTTED_BLUE_ORCHID:
|
|
case POTTED_BROWN_MUSHROOM:
|
|
case POTTED_CACTUS:
|
|
case POTTED_CORNFLOWER:
|
|
case POTTED_DANDELION:
|
|
case POTTED_DARK_OAK_SAPLING:
|
|
case POTTED_DEAD_BUSH:
|
|
case POTTED_FERN:
|
|
case POTTED_JUNGLE_SAPLING:
|
|
case POTTED_LILY_OF_THE_VALLEY:
|
|
case POTTED_OAK_SAPLING:
|
|
case POTTED_ORANGE_TULIP:
|
|
case POTTED_OXEYE_DAISY:
|
|
case POTTED_PINK_TULIP:
|
|
case POTTED_POPPY:
|
|
case POTTED_RED_MUSHROOM:
|
|
case POTTED_RED_TULIP:
|
|
case POTTED_SPRUCE_SAPLING:
|
|
case POTTED_WHITE_TULIP:
|
|
case POTTED_WITHER_ROSE:
|
|
case PUMPKIN_STEM:
|
|
case PURPLE_WALL_BANNER:
|
|
case REDSTONE_WALL_TORCH:
|
|
case REDSTONE_WIRE:
|
|
case RED_WALL_BANNER:
|
|
case SKELETON_WALL_SKULL:
|
|
case SPRUCE_WALL_SIGN:
|
|
case SWEET_BERRY_BUSH:
|
|
case TALL_SEAGRASS:
|
|
case TRIPWIRE:
|
|
case TUBE_CORAL_WALL_FAN:
|
|
case VOID_AIR:
|
|
case WALL_TORCH:
|
|
case WATER:
|
|
case WHITE_WALL_BANNER:
|
|
case WITHER_SKELETON_WALL_SKULL:
|
|
return false;
|
|
default:
|
|
break;
|
|
}
|
|
|
|
if (ServerVersion.isServerVersionAtOrBelow(ServerVersion.V1_12)) {
|
|
switch (this) {
|
|
case ACACIA_WOOD:
|
|
case BIRCH_WOOD:
|
|
case DARK_OAK_WOOD:
|
|
case JUNGLE_WOOD:
|
|
case OAK_WOOD:
|
|
case SPRUCE_WOOD:
|
|
case STRIPPED_ACACIA_WOOD:
|
|
case STRIPPED_BIRCH_WOOD:
|
|
case STRIPPED_DARK_OAK_WOOD:
|
|
case STRIPPED_JUNGLE_WOOD:
|
|
case STRIPPED_OAK_WOOD:
|
|
case STRIPPED_SPRUCE_WOOD:
|
|
return false;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* @return true if this material is a valid brewing stand ingredient
|
|
*/
|
|
public boolean isBrewingStandIngredient() {
|
|
switch (this) {
|
|
case NETHER_WART:
|
|
case REDSTONE:
|
|
case GLOWSTONE_DUST:
|
|
case FERMENTED_SPIDER_EYE:
|
|
case GUNPOWDER:
|
|
case DRAGON_BREATH:
|
|
case SUGAR:
|
|
case RABBIT_FOOT:
|
|
case GLISTERING_MELON_SLICE:
|
|
case SPIDER_EYE:
|
|
case PUFFERFISH:
|
|
case MAGMA_CREAM:
|
|
case GOLDEN_CARROT:
|
|
case BLAZE_POWDER:
|
|
case GHAST_TEAR:
|
|
case TURTLE_HELMET:
|
|
case PHANTOM_MEMBRANE:
|
|
return true;
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
/**
|
|
* @return true if this material is food that can be cooked and is in its cooked state
|
|
*/
|
|
public boolean isCooked() {
|
|
switch (this) {
|
|
case BAKED_POTATO:
|
|
case COOKED_BEEF:
|
|
case COOKED_CHICKEN:
|
|
case COOKED_COD:
|
|
case COOKED_MUTTON:
|
|
case COOKED_PORKCHOP:
|
|
case COOKED_RABBIT:
|
|
case COOKED_SALMON:
|
|
case DRIED_KELP:
|
|
return true;
|
|
default:
|
|
return false;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @return true if this material is food that can be cooked and is in its raw state
|
|
*/
|
|
public boolean isRaw() {
|
|
switch (this) {
|
|
case BEEF:
|
|
case CHICKEN:
|
|
case COD:
|
|
case KELP: // not edible, but is the raw state of DRIED_KELP
|
|
case MUTTON:
|
|
case PORKCHOP:
|
|
case POTATO:
|
|
case RABBIT:
|
|
case SALMON:
|
|
return true;
|
|
default:
|
|
return false;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @return true if this material is two blocks tall
|
|
*/
|
|
public boolean isTall() {
|
|
switch (this) {
|
|
case SUNFLOWER:
|
|
case LILAC:
|
|
case LARGE_FERN:
|
|
case ROSE_BUSH:
|
|
case PEONY:
|
|
case TALL_GRASS:
|
|
return true;
|
|
default:
|
|
return false;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Note: If using this on a legacy server without #getBlockMaterial
|
|
* you may run into issues.
|
|
*
|
|
* @return true if this is a block that has a growth state
|
|
*/
|
|
public boolean isCrop() {
|
|
switch (this) {
|
|
case BEETROOTS:
|
|
case CACTUS:
|
|
case CARROTS:
|
|
case CHORUS_FLOWER:
|
|
// FROSTED_ICE is Ageable, but not a crop
|
|
case KELP:
|
|
case MELON_STEM:
|
|
case NETHER_WART:
|
|
case POTATOES:
|
|
case PUMPKIN_STEM:
|
|
case SUGAR_CANE:
|
|
case WHEAT:
|
|
return true;
|
|
default:
|
|
return false;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @return the yield of this crop.
|
|
*/
|
|
public CompatibleMaterial getCropYield() {
|
|
switch (this) {
|
|
case BEETROOTS:
|
|
return BEETROOT;
|
|
case CACTUS:
|
|
return CACTUS;
|
|
case CARROTS:
|
|
return CARROT;
|
|
case CHORUS_FLOWER:
|
|
return CHORUS_PLANT;
|
|
case KELP:
|
|
return KELP;
|
|
case MELON_STEM:
|
|
return MELON;
|
|
case NETHER_WART:
|
|
return NETHER_WART;
|
|
case POTATOES:
|
|
return POTATO;
|
|
case PUMPKIN_STEM:
|
|
return PUMPKIN;
|
|
case SUGAR_CANE:
|
|
return SUGAR_CANE;
|
|
case WHEAT:
|
|
return WHEAT;
|
|
default:
|
|
return null;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* @return the seed of this crop.
|
|
*/
|
|
public CompatibleMaterial getCropSeed() {
|
|
switch (this) {
|
|
case BEETROOTS:
|
|
return BEETROOT_SEEDS;
|
|
case CACTUS:
|
|
return CACTUS;
|
|
case CARROTS:
|
|
return CARROT;
|
|
case CHORUS_PLANT:
|
|
return CHORUS_FLOWER;
|
|
case KELP:
|
|
return KELP;
|
|
case MELON_STEM:
|
|
return MELON_SEEDS;
|
|
case NETHER_WART:
|
|
return NETHER_WART;
|
|
case POTATOES:
|
|
return POTATO;
|
|
case PUMPKIN_STEM:
|
|
return PUMPKIN_SEEDS;
|
|
case SUGAR_CANE:
|
|
return SUGAR_CANE;
|
|
case WHEAT:
|
|
return WHEAT_SEEDS;
|
|
default:
|
|
return null;
|
|
}
|
|
}
|
|
|
|
public static CompatibleMaterial getSpawnEgg(EntityType type) {
|
|
if (type == EntityType.MUSHROOM_COW) {
|
|
return MOOSHROOM_SPAWN_EGG;
|
|
}
|
|
|
|
if (ServerVersion.isServerVersionBelow(ServerVersion.V1_16) && type == EntityType.valueOf("PIG_ZOMBIE")) {
|
|
return ZOMBIE_PIGMAN_SPAWN_EGG;
|
|
}
|
|
|
|
return lookupMap.get(type.name() + "_SPAWN_EGG");
|
|
}
|
|
|
|
public static CompatibleMaterial getGlassPaneColor(int color) {
|
|
switch (color) {
|
|
case 0:
|
|
return WHITE_STAINED_GLASS_PANE;
|
|
case 1:
|
|
return ORANGE_STAINED_GLASS_PANE;
|
|
case 2:
|
|
return MAGENTA_STAINED_GLASS_PANE;
|
|
case 3:
|
|
return LIGHT_BLUE_STAINED_GLASS_PANE;
|
|
case 4:
|
|
return YELLOW_STAINED_GLASS_PANE;
|
|
case 5:
|
|
return LIME_STAINED_GLASS_PANE;
|
|
case 6:
|
|
return PINK_STAINED_GLASS_PANE;
|
|
case 7:
|
|
return GRAY_STAINED_GLASS_PANE;
|
|
case 8:
|
|
return LIGHT_GRAY_STAINED_GLASS_PANE;
|
|
case 9:
|
|
return CYAN_STAINED_GLASS_PANE;
|
|
case 10:
|
|
return PURPLE_STAINED_GLASS_PANE;
|
|
case 11:
|
|
return BLUE_STAINED_GLASS_PANE;
|
|
case 12:
|
|
return BROWN_STAINED_GLASS_PANE;
|
|
case 13:
|
|
return GREEN_STAINED_GLASS_PANE;
|
|
case 14:
|
|
return RED_STAINED_GLASS_PANE;
|
|
case 15:
|
|
return BLACK_STAINED_GLASS_PANE;
|
|
default:
|
|
return WHITE_STAINED_GLASS;
|
|
}
|
|
}
|
|
|
|
public static CompatibleMaterial getGlassColor(int color) {
|
|
switch (color) {
|
|
case 0:
|
|
return WHITE_STAINED_GLASS;
|
|
case 1:
|
|
return ORANGE_STAINED_GLASS;
|
|
case 2:
|
|
return MAGENTA_STAINED_GLASS;
|
|
case 3:
|
|
return LIGHT_BLUE_STAINED_GLASS;
|
|
case 4:
|
|
return YELLOW_STAINED_GLASS;
|
|
case 5:
|
|
return LIME_STAINED_GLASS;
|
|
case 6:
|
|
return PINK_STAINED_GLASS;
|
|
case 7:
|
|
return GRAY_STAINED_GLASS;
|
|
case 8:
|
|
return LIGHT_GRAY_STAINED_GLASS;
|
|
case 9:
|
|
return CYAN_STAINED_GLASS;
|
|
case 10:
|
|
return PURPLE_STAINED_GLASS;
|
|
case 11:
|
|
return BLUE_STAINED_GLASS;
|
|
case 12:
|
|
return BROWN_STAINED_GLASS;
|
|
case 13:
|
|
return GREEN_STAINED_GLASS;
|
|
case 14:
|
|
return RED_STAINED_GLASS;
|
|
case 15:
|
|
return BLACK_STAINED_GLASS;
|
|
default:
|
|
return WHITE_STAINED_GLASS;
|
|
}
|
|
}
|
|
|
|
public static CompatibleMaterial getWoolColor(int color) {
|
|
switch (color) {
|
|
case 0:
|
|
return WHITE_WOOL;
|
|
case 1:
|
|
return ORANGE_WOOL;
|
|
case 2:
|
|
return MAGENTA_WOOL;
|
|
case 3:
|
|
return LIGHT_BLUE_WOOL;
|
|
case 4:
|
|
return YELLOW_WOOL;
|
|
case 5:
|
|
return LIME_WOOL;
|
|
case 6:
|
|
return PINK_WOOL;
|
|
case 7:
|
|
return GRAY_WOOL;
|
|
case 8:
|
|
return LIGHT_GRAY_WOOL;
|
|
case 9:
|
|
return CYAN_WOOL;
|
|
case 10:
|
|
return PURPLE_WOOL;
|
|
case 11:
|
|
return BLUE_WOOL;
|
|
case 12:
|
|
return BROWN_WOOL;
|
|
case 13:
|
|
return GREEN_WOOL;
|
|
case 14:
|
|
return RED_WOOL;
|
|
case 15:
|
|
return BLACK_WOOL;
|
|
default:
|
|
return WHITE_WOOL;
|
|
}
|
|
}
|
|
|
|
public static CompatibleMaterial getDyeColor(int color) {
|
|
switch (color) {
|
|
case 0:
|
|
return BLACK_DYE;
|
|
case 1:
|
|
return RED_DYE;
|
|
case 2:
|
|
return GREEN_DYE;
|
|
case 3:
|
|
return BROWN_DYE;
|
|
case 4:
|
|
return BLUE_DYE;
|
|
case 5:
|
|
return PURPLE_DYE;
|
|
case 6:
|
|
return CYAN_DYE;
|
|
case 7:
|
|
return LIGHT_GRAY_DYE;
|
|
case 8:
|
|
return GRAY_DYE;
|
|
case 9:
|
|
return PINK_DYE;
|
|
case 10:
|
|
return LIME_DYE;
|
|
case 11:
|
|
return YELLOW_DYE;
|
|
case 12:
|
|
return LIGHT_BLUE_DYE;
|
|
case 13:
|
|
return MAGENTA_DYE;
|
|
case 14:
|
|
return ORANGE_DYE;
|
|
case 15:
|
|
return WHITE_DYE;
|
|
default:
|
|
return WHITE_DYE;
|
|
}
|
|
}
|
|
}
|