/* * WorldEdit, a Minecraft world manipulation toolkit * Copyright (C) sk89q * Copyright (C) WorldEdit team and contributors * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ package com.sk89q.worldedit.world.block; import com.boydti.fawe.command.SuggestInputParseException; import com.boydti.fawe.object.string.JoinedCharSequence; import com.boydti.fawe.util.StringMan; import com.sk89q.worldedit.extension.input.InputParseException; import com.sk89q.worldedit.world.registry.LegacyMapper; import java.lang.reflect.Field; import java.util.Locale; import java.util.Set; import java.util.stream.Collectors; import java.util.stream.Stream; import javax.annotation.Nullable; /** * Stores a list of common {@link BlockType BlockTypes}. * * @see BlockType */ @SuppressWarnings("unused") public final class BlockTypes { // Doesn't really matter what the hardcoded values are, as FAWE will update it on load @Nullable public static final BlockType __RESERVED__ = init(); // Placeholder for null index (i.e. when block types are represented as primitives) @Nullable public static final BlockType ACACIA_BUTTON = init(); @Nullable public static final BlockType ACACIA_DOOR = init(); @Nullable public static final BlockType ACACIA_FENCE = init(); @Nullable public static final BlockType ACACIA_FENCE_GATE = init(); @Nullable public static final BlockType ACACIA_LEAVES = init(); @Nullable public static final BlockType ACACIA_LOG = init(); @Nullable public static final BlockType ACACIA_PLANKS = init(); @Nullable public static final BlockType ACACIA_PRESSURE_PLATE = init(); @Nullable public static final BlockType ACACIA_SAPLING = init(); @Nullable public static final BlockType ACACIA_SIGN = init(); @Nullable public static final BlockType ACACIA_SLAB = init(); @Nullable public static final BlockType ACACIA_STAIRS = init(); @Nullable public static final BlockType ACACIA_TRAPDOOR = init(); @Nullable public static final BlockType ACACIA_WALL_SIGN = init(); @Nullable public static final BlockType ACACIA_WOOD = init(); @Nullable public static final BlockType ACTIVATOR_RAIL = init(); @Nullable public static final BlockType AIR = init(); @Nullable public static final BlockType ALLIUM = init(); @Nullable public static final BlockType ANCIENT_DEBRIS = init(); @Nullable public static final BlockType ANDESITE = init(); @Nullable public static final BlockType ANDESITE_SLAB = init(); @Nullable public static final BlockType ANDESITE_STAIRS = init(); @Nullable public static final BlockType ANDESITE_WALL = init(); @Nullable public static final BlockType ANVIL = init(); @Nullable public static final BlockType ATTACHED_MELON_STEM = init(); @Nullable public static final BlockType ATTACHED_PUMPKIN_STEM = init(); @Nullable public static final BlockType AZURE_BLUET = init(); @Nullable public static final BlockType BAMBOO = init(); @Nullable public static final BlockType BAMBOO_SAPLING = init(); @Nullable public static final BlockType BARREL = init(); @Nullable public static final BlockType BARRIER = init(); @Nullable public static final BlockType BASALT = init(); @Nullable public static final BlockType BEACON = init(); @Nullable public static final BlockType BEDROCK = init(); @Nullable public static final BlockType BEE_NEST = init(); @Nullable public static final BlockType BEEHIVE = init(); @Nullable public static final BlockType BEETROOTS = init(); @Nullable public static final BlockType BELL = init(); @Nullable public static final BlockType BIRCH_BUTTON = init(); @Nullable public static final BlockType BIRCH_DOOR = init(); @Nullable public static final BlockType BIRCH_FENCE = init(); @Nullable public static final BlockType BIRCH_FENCE_GATE = init(); @Nullable public static final BlockType BIRCH_LEAVES = init(); @Nullable public static final BlockType BIRCH_LOG = init(); @Nullable public static final BlockType BIRCH_PLANKS = init(); @Nullable public static final BlockType BIRCH_PRESSURE_PLATE = init(); @Nullable public static final BlockType BIRCH_SAPLING = init(); @Nullable public static final BlockType BIRCH_SIGN = init(); @Nullable public static final BlockType BIRCH_SLAB = init(); @Nullable public static final BlockType BIRCH_STAIRS = init(); @Nullable public static final BlockType BIRCH_TRAPDOOR = init(); @Nullable public static final BlockType BIRCH_WALL_SIGN = init(); @Nullable public static final BlockType BIRCH_WOOD = init(); @Nullable public static final BlockType BLACK_BANNER = init(); @Nullable public static final BlockType BLACK_BED = init(); @Nullable public static final BlockType BLACK_CARPET = init(); @Nullable public static final BlockType BLACK_CONCRETE = init(); @Nullable public static final BlockType BLACK_CONCRETE_POWDER = init(); @Nullable public static final BlockType BLACK_GLAZED_TERRACOTTA = init(); @Nullable public static final BlockType BLACK_SHULKER_BOX = init(); @Nullable public static final BlockType BLACK_STAINED_GLASS = init(); @Nullable public static final BlockType BLACK_STAINED_GLASS_PANE = init(); @Nullable public static final BlockType BLACK_TERRACOTTA = init(); @Nullable public static final BlockType BLACK_WALL_BANNER = init(); @Nullable public static final BlockType BLACK_WOOL = init(); @Nullable public static final BlockType BLACKSTONE = init(); @Nullable public static final BlockType BLACKSTONE_SLAB = init(); @Nullable public static final BlockType BLACKSTONE_STAIRS = init(); @Nullable public static final BlockType BLACKSTONE_WALL = init(); @Nullable public static final BlockType BLAST_FURNACE = init(); @Nullable public static final BlockType BLUE_BANNER = init(); @Nullable public static final BlockType BLUE_BED = init(); @Nullable public static final BlockType BLUE_CARPET = init(); @Nullable public static final BlockType BLUE_CONCRETE = init(); @Nullable public static final BlockType BLUE_CONCRETE_POWDER = init(); @Nullable public static final BlockType BLUE_GLAZED_TERRACOTTA = init(); @Nullable public static final BlockType BLUE_ICE = init(); @Nullable public static final BlockType BLUE_ORCHID = init(); @Nullable public static final BlockType BLUE_SHULKER_BOX = init(); @Nullable public static final BlockType BLUE_STAINED_GLASS = init(); @Nullable public static final BlockType BLUE_STAINED_GLASS_PANE = init(); @Nullable public static final BlockType BLUE_TERRACOTTA = init(); @Nullable public static final BlockType BLUE_WALL_BANNER = init(); @Nullable public static final BlockType BLUE_WOOL = init(); @Nullable public static final BlockType BONE_BLOCK = init(); @Nullable public static final BlockType BOOKSHELF = init(); @Nullable public static final BlockType BRAIN_CORAL = init(); @Nullable public static final BlockType BRAIN_CORAL_BLOCK = init(); @Nullable public static final BlockType BRAIN_CORAL_FAN = init(); @Nullable public static final BlockType BRAIN_CORAL_WALL_FAN = init(); @Nullable public static final BlockType BREWING_STAND = init(); @Nullable public static final BlockType BRICK_SLAB = init(); @Nullable public static final BlockType BRICK_STAIRS = init(); @Nullable public static final BlockType BRICK_WALL = init(); @Nullable public static final BlockType BRICKS = init(); @Nullable public static final BlockType BROWN_BANNER = init(); @Nullable public static final BlockType BROWN_BED = init(); @Nullable public static final BlockType BROWN_CARPET = init(); @Nullable public static final BlockType BROWN_CONCRETE = init(); @Nullable public static final BlockType BROWN_CONCRETE_POWDER = init(); @Nullable public static final BlockType BROWN_GLAZED_TERRACOTTA = init(); @Nullable public static final BlockType BROWN_MUSHROOM = init(); @Nullable public static final BlockType BROWN_MUSHROOM_BLOCK = init(); @Nullable public static final BlockType BROWN_SHULKER_BOX = init(); @Nullable public static final BlockType BROWN_STAINED_GLASS = init(); @Nullable public static final BlockType BROWN_STAINED_GLASS_PANE = init(); @Nullable public static final BlockType BROWN_TERRACOTTA = init(); @Nullable public static final BlockType BROWN_WALL_BANNER = init(); @Nullable public static final BlockType BROWN_WOOL = init(); @Nullable public static final BlockType BUBBLE_COLUMN = init(); @Nullable public static final BlockType BUBBLE_CORAL = init(); @Nullable public static final BlockType BUBBLE_CORAL_BLOCK = init(); @Nullable public static final BlockType BUBBLE_CORAL_FAN = init(); @Nullable public static final BlockType BUBBLE_CORAL_WALL_FAN = init(); @Nullable public static final BlockType CACTUS = init(); @Nullable public static final BlockType CAKE = init(); @Nullable public static final BlockType CAMPFIRE = init(); @Nullable public static final BlockType CARROTS = init(); @Nullable public static final BlockType CARTOGRAPHY_TABLE = init(); @Nullable public static final BlockType CARVED_PUMPKIN = init(); @Nullable public static final BlockType CAULDRON = init(); @Nullable public static final BlockType CAVE_AIR = init(); @Nullable public static final BlockType CHAIN = init(); @Nullable public static final BlockType CHAIN_COMMAND_BLOCK = init(); @Nullable public static final BlockType CHEST = init(); @Nullable public static final BlockType CHIPPED_ANVIL = init(); @Nullable public static final BlockType CHISELED_NETHER_BRICKS = init(); @Nullable public static final BlockType CHISELED_POLISHED_BLACKSTONE = init(); @Nullable public static final BlockType CHISELED_QUARTZ_BLOCK = init(); @Nullable public static final BlockType CHISELED_RED_SANDSTONE = init(); @Nullable public static final BlockType CHISELED_SANDSTONE = init(); @Nullable public static final BlockType CHISELED_STONE_BRICKS = init(); @Nullable public static final BlockType CHORUS_FLOWER = init(); @Nullable public static final BlockType CHORUS_PLANT = init(); @Nullable public static final BlockType CLAY = init(); @Nullable public static final BlockType COAL_BLOCK = init(); @Nullable public static final BlockType COAL_ORE = init(); @Nullable public static final BlockType COARSE_DIRT = init(); @Nullable public static final BlockType COBBLESTONE = init(); @Nullable public static final BlockType COBBLESTONE_SLAB = init(); @Nullable public static final BlockType COBBLESTONE_STAIRS = init(); @Nullable public static final BlockType COBBLESTONE_WALL = init(); @Nullable public static final BlockType COBWEB = init(); @Nullable public static final BlockType COCOA = init(); @Nullable public static final BlockType COMMAND_BLOCK = init(); @Nullable public static final BlockType COMPARATOR = init(); @Nullable public static final BlockType COMPOSTER = init(); @Nullable public static final BlockType CONDUIT = init(); @Nullable public static final BlockType CORNFLOWER = init(); @Nullable public static final BlockType CRACKED_NETHER_BRICKS = init(); @Nullable public static final BlockType CRACKED_POLISHED_BLACKSTONE_BRICKS = init(); @Nullable public static final BlockType CRACKED_STONE_BRICKS = init(); @Nullable public static final BlockType CRAFTING_TABLE = init(); @Nullable public static final BlockType CREEPER_HEAD = init(); @Nullable public static final BlockType CREEPER_WALL_HEAD = init(); @Nullable public static final BlockType CRIMSON_BUTTON = init(); @Nullable public static final BlockType CRIMSON_DOOR = init(); @Nullable public static final BlockType CRIMSON_FENCE = init(); @Nullable public static final BlockType CRIMSON_FENCE_GATE = init(); @Nullable public static final BlockType CRIMSON_FUNGUS = init(); @Nullable public static final BlockType CRIMSON_HYPHAE = init(); @Nullable public static final BlockType CRIMSON_NYLIUM = init(); @Nullable public static final BlockType CRIMSON_PLANKS = init(); @Nullable public static final BlockType CRIMSON_PRESSURE_PLATE = init(); @Nullable public static final BlockType CRIMSON_ROOTS = init(); @Nullable public static final BlockType CRIMSON_SIGN = init(); @Nullable public static final BlockType CRIMSON_SLAB = init(); @Nullable public static final BlockType CRIMSON_STAIRS = init(); @Nullable public static final BlockType CRIMSON_STEM = init(); @Nullable public static final BlockType CRIMSON_TRAPDOOR = init(); @Nullable public static final BlockType CRIMSON_WALL_SIGN = init(); @Nullable public static final BlockType CRYING_OBSIDIAN = init(); @Nullable public static final BlockType CUT_RED_SANDSTONE = init(); @Nullable public static final BlockType CUT_RED_SANDSTONE_SLAB = init(); @Nullable public static final BlockType CUT_SANDSTONE = init(); @Nullable public static final BlockType CUT_SANDSTONE_SLAB = init(); @Nullable public static final BlockType CYAN_BANNER = init(); @Nullable public static final BlockType CYAN_BED = init(); @Nullable public static final BlockType CYAN_CARPET = init(); @Nullable public static final BlockType CYAN_CONCRETE = init(); @Nullable public static final BlockType CYAN_CONCRETE_POWDER = init(); @Nullable public static final BlockType CYAN_GLAZED_TERRACOTTA = init(); @Nullable public static final BlockType CYAN_SHULKER_BOX = init(); @Nullable public static final BlockType CYAN_STAINED_GLASS = init(); @Nullable public static final BlockType CYAN_STAINED_GLASS_PANE = init(); @Nullable public static final BlockType CYAN_TERRACOTTA = init(); @Nullable public static final BlockType CYAN_WALL_BANNER = init(); @Nullable public static final BlockType CYAN_WOOL = init(); @Nullable public static final BlockType DAMAGED_ANVIL = init(); @Nullable public static final BlockType DANDELION = init(); @Nullable public static final BlockType DARK_OAK_BUTTON = init(); @Nullable public static final BlockType DARK_OAK_DOOR = init(); @Nullable public static final BlockType DARK_OAK_FENCE = init(); @Nullable public static final BlockType DARK_OAK_FENCE_GATE = init(); @Nullable public static final BlockType DARK_OAK_LEAVES = init(); @Nullable public static final BlockType DARK_OAK_LOG = init(); @Nullable public static final BlockType DARK_OAK_PLANKS = init(); @Nullable public static final BlockType DARK_OAK_PRESSURE_PLATE = init(); @Nullable public static final BlockType DARK_OAK_SAPLING = init(); @Nullable public static final BlockType DARK_OAK_SIGN = init(); @Nullable public static final BlockType DARK_OAK_SLAB = init(); @Nullable public static final BlockType DARK_OAK_STAIRS = init(); @Nullable public static final BlockType DARK_OAK_TRAPDOOR = init(); @Nullable public static final BlockType DARK_OAK_WALL_SIGN = init(); @Nullable public static final BlockType DARK_OAK_WOOD = init(); @Nullable public static final BlockType DARK_PRISMARINE = init(); @Nullable public static final BlockType DARK_PRISMARINE_SLAB = init(); @Nullable public static final BlockType DARK_PRISMARINE_STAIRS = init(); @Nullable public static final BlockType DAYLIGHT_DETECTOR = init(); @Nullable public static final BlockType DEAD_BRAIN_CORAL = init(); @Nullable public static final BlockType DEAD_BRAIN_CORAL_BLOCK = init(); @Nullable public static final BlockType DEAD_BRAIN_CORAL_FAN = init(); @Nullable public static final BlockType DEAD_BRAIN_CORAL_WALL_FAN = init(); @Nullable public static final BlockType DEAD_BUBBLE_CORAL = init(); @Nullable public static final BlockType DEAD_BUBBLE_CORAL_BLOCK = init(); @Nullable public static final BlockType DEAD_BUBBLE_CORAL_FAN = init(); @Nullable public static final BlockType DEAD_BUBBLE_CORAL_WALL_FAN = init(); @Nullable public static final BlockType DEAD_BUSH = init(); @Nullable public static final BlockType DEAD_FIRE_CORAL = init(); @Nullable public static final BlockType DEAD_FIRE_CORAL_BLOCK = init(); @Nullable public static final BlockType DEAD_FIRE_CORAL_FAN = init(); @Nullable public static final BlockType DEAD_FIRE_CORAL_WALL_FAN = init(); @Nullable public static final BlockType DEAD_HORN_CORAL = init(); @Nullable public static final BlockType DEAD_HORN_CORAL_BLOCK = init(); @Nullable public static final BlockType DEAD_HORN_CORAL_FAN = init(); @Nullable public static final BlockType DEAD_HORN_CORAL_WALL_FAN = init(); @Nullable public static final BlockType DEAD_TUBE_CORAL = init(); @Nullable public static final BlockType DEAD_TUBE_CORAL_BLOCK = init(); @Nullable public static final BlockType DEAD_TUBE_CORAL_FAN = init(); @Nullable public static final BlockType DEAD_TUBE_CORAL_WALL_FAN = init(); @Nullable public static final BlockType DETECTOR_RAIL = init(); @Nullable public static final BlockType DIAMOND_BLOCK = init(); @Nullable public static final BlockType DIAMOND_ORE = init(); @Nullable public static final BlockType DIORITE = init(); @Nullable public static final BlockType DIORITE_SLAB = init(); @Nullable public static final BlockType DIORITE_STAIRS = init(); @Nullable public static final BlockType DIORITE_WALL = init(); @Nullable public static final BlockType DIRT = init(); @Nullable public static final BlockType DISPENSER = init(); @Nullable public static final BlockType DRAGON_EGG = init(); @Nullable public static final BlockType DRAGON_HEAD = init(); @Nullable public static final BlockType DRAGON_WALL_HEAD = init(); @Nullable public static final BlockType DRIED_KELP_BLOCK = init(); @Nullable public static final BlockType DROPPER = init(); @Nullable public static final BlockType EMERALD_BLOCK = init(); @Nullable public static final BlockType EMERALD_ORE = init(); @Nullable public static final BlockType ENCHANTING_TABLE = init(); @Nullable public static final BlockType END_GATEWAY = init(); @Nullable public static final BlockType END_PORTAL = init(); @Nullable public static final BlockType END_PORTAL_FRAME = init(); @Nullable public static final BlockType END_ROD = init(); @Nullable public static final BlockType END_STONE = init(); @Nullable public static final BlockType END_STONE_BRICK_SLAB = init(); @Nullable public static final BlockType END_STONE_BRICK_STAIRS = init(); @Nullable public static final BlockType END_STONE_BRICK_WALL = init(); @Nullable public static final BlockType END_STONE_BRICKS = init(); @Nullable public static final BlockType ENDER_CHEST = init(); @Nullable public static final BlockType FARMLAND = init(); @Nullable public static final BlockType FERN = init(); @Nullable public static final BlockType FIRE = init(); @Nullable public static final BlockType FIRE_CORAL = init(); @Nullable public static final BlockType FIRE_CORAL_BLOCK = init(); @Nullable public static final BlockType FIRE_CORAL_FAN = init(); @Nullable public static final BlockType FIRE_CORAL_WALL_FAN = init(); @Nullable public static final BlockType FLETCHING_TABLE = init(); @Nullable public static final BlockType FLOWER_POT = init(); @Nullable public static final BlockType FROSTED_ICE = init(); @Nullable public static final BlockType FURNACE = init(); @Nullable public static final BlockType GILDED_BLACKSTONE = init(); @Nullable public static final BlockType GLASS = init(); @Nullable public static final BlockType GLASS_PANE = init(); @Nullable public static final BlockType GLOWSTONE = init(); @Nullable public static final BlockType GOLD_BLOCK = init(); @Nullable public static final BlockType GOLD_ORE = init(); @Nullable public static final BlockType GRANITE = init(); @Nullable public static final BlockType GRANITE_SLAB = init(); @Nullable public static final BlockType GRANITE_STAIRS = init(); @Nullable public static final BlockType GRANITE_WALL = init(); @Nullable public static final BlockType GRASS = init(); @Nullable public static final BlockType GRASS_BLOCK = init(); @Nullable public static final BlockType GRASS_PATH = init(); @Nullable public static final BlockType GRAVEL = init(); @Nullable public static final BlockType GRAY_BANNER = init(); @Nullable public static final BlockType GRAY_BED = init(); @Nullable public static final BlockType GRAY_CARPET = init(); @Nullable public static final BlockType GRAY_CONCRETE = init(); @Nullable public static final BlockType GRAY_CONCRETE_POWDER = init(); @Nullable public static final BlockType GRAY_GLAZED_TERRACOTTA = init(); @Nullable public static final BlockType GRAY_SHULKER_BOX = init(); @Nullable public static final BlockType GRAY_STAINED_GLASS = init(); @Nullable public static final BlockType GRAY_STAINED_GLASS_PANE = init(); @Nullable public static final BlockType GRAY_TERRACOTTA = init(); @Nullable public static final BlockType GRAY_WALL_BANNER = init(); @Nullable public static final BlockType GRAY_WOOL = init(); @Nullable public static final BlockType GREEN_BANNER = init(); @Nullable public static final BlockType GREEN_BED = init(); @Nullable public static final BlockType GREEN_CARPET = init(); @Nullable public static final BlockType GREEN_CONCRETE = init(); @Nullable public static final BlockType GREEN_CONCRETE_POWDER = init(); @Nullable public static final BlockType GREEN_GLAZED_TERRACOTTA = init(); @Nullable public static final BlockType GREEN_SHULKER_BOX = init(); @Nullable public static final BlockType GREEN_STAINED_GLASS = init(); @Nullable public static final BlockType GREEN_STAINED_GLASS_PANE = init(); @Nullable public static final BlockType GREEN_TERRACOTTA = init(); @Nullable public static final BlockType GREEN_WALL_BANNER = init(); @Nullable public static final BlockType GREEN_WOOL = init(); @Nullable public static final BlockType GRINDSTONE = init(); @Nullable public static final BlockType HAY_BLOCK = init(); @Nullable public static final BlockType HEAVY_WEIGHTED_PRESSURE_PLATE = init(); @Nullable public static final BlockType HONEY_BLOCK = init(); @Nullable public static final BlockType HONEYCOMB_BLOCK = init(); @Nullable public static final BlockType HOPPER = init(); @Nullable public static final BlockType HORN_CORAL = init(); @Nullable public static final BlockType HORN_CORAL_BLOCK = init(); @Nullable public static final BlockType HORN_CORAL_FAN = init(); @Nullable public static final BlockType HORN_CORAL_WALL_FAN = init(); @Nullable public static final BlockType ICE = init(); @Nullable public static final BlockType INFESTED_CHISELED_STONE_BRICKS = init(); @Nullable public static final BlockType INFESTED_COBBLESTONE = init(); @Nullable public static final BlockType INFESTED_CRACKED_STONE_BRICKS = init(); @Nullable public static final BlockType INFESTED_MOSSY_STONE_BRICKS = init(); @Nullable public static final BlockType INFESTED_STONE = init(); @Nullable public static final BlockType INFESTED_STONE_BRICKS = init(); @Nullable public static final BlockType IRON_BARS = init(); @Nullable public static final BlockType IRON_BLOCK = init(); @Nullable public static final BlockType IRON_DOOR = init(); @Nullable public static final BlockType IRON_ORE = init(); @Nullable public static final BlockType IRON_TRAPDOOR = init(); @Nullable public static final BlockType JACK_O_LANTERN = init(); @Nullable public static final BlockType JIGSAW = init(); @Nullable public static final BlockType JUKEBOX = init(); @Nullable public static final BlockType JUNGLE_BUTTON = init(); @Nullable public static final BlockType JUNGLE_DOOR = init(); @Nullable public static final BlockType JUNGLE_FENCE = init(); @Nullable public static final BlockType JUNGLE_FENCE_GATE = init(); @Nullable public static final BlockType JUNGLE_LEAVES = init(); @Nullable public static final BlockType JUNGLE_LOG = init(); @Nullable public static final BlockType JUNGLE_PLANKS = init(); @Nullable public static final BlockType JUNGLE_PRESSURE_PLATE = init(); @Nullable public static final BlockType JUNGLE_SAPLING = init(); @Nullable public static final BlockType JUNGLE_SIGN = init(); @Nullable public static final BlockType JUNGLE_SLAB = init(); @Nullable public static final BlockType JUNGLE_STAIRS = init(); @Nullable public static final BlockType JUNGLE_TRAPDOOR = init(); @Nullable public static final BlockType JUNGLE_WALL_SIGN = init(); @Nullable public static final BlockType JUNGLE_WOOD = init(); @Nullable public static final BlockType KELP = init(); @Nullable public static final BlockType KELP_PLANT = init(); @Nullable public static final BlockType LADDER = init(); @Nullable public static final BlockType LANTERN = init(); @Nullable public static final BlockType LAPIS_BLOCK = init(); @Nullable public static final BlockType LAPIS_ORE = init(); @Nullable public static final BlockType LARGE_FERN = init(); @Nullable public static final BlockType LAVA = init(); @Nullable public static final BlockType LECTERN = init(); @Nullable public static final BlockType LEVER = init(); @Nullable public static final BlockType LIGHT_BLUE_BANNER = init(); @Nullable public static final BlockType LIGHT_BLUE_BED = init(); @Nullable public static final BlockType LIGHT_BLUE_CARPET = init(); @Nullable public static final BlockType LIGHT_BLUE_CONCRETE = init(); @Nullable public static final BlockType LIGHT_BLUE_CONCRETE_POWDER = init(); @Nullable public static final BlockType LIGHT_BLUE_GLAZED_TERRACOTTA = init(); @Nullable public static final BlockType LIGHT_BLUE_SHULKER_BOX = init(); @Nullable public static final BlockType LIGHT_BLUE_STAINED_GLASS = init(); @Nullable public static final BlockType LIGHT_BLUE_STAINED_GLASS_PANE = init(); @Nullable public static final BlockType LIGHT_BLUE_TERRACOTTA = init(); @Nullable public static final BlockType LIGHT_BLUE_WALL_BANNER = init(); @Nullable public static final BlockType LIGHT_BLUE_WOOL = init(); @Nullable public static final BlockType LIGHT_GRAY_BANNER = init(); @Nullable public static final BlockType LIGHT_GRAY_BED = init(); @Nullable public static final BlockType LIGHT_GRAY_CARPET = init(); @Nullable public static final BlockType LIGHT_GRAY_CONCRETE = init(); @Nullable public static final BlockType LIGHT_GRAY_CONCRETE_POWDER = init(); @Nullable public static final BlockType LIGHT_GRAY_GLAZED_TERRACOTTA = init(); @Nullable public static final BlockType LIGHT_GRAY_SHULKER_BOX = init(); @Nullable public static final BlockType LIGHT_GRAY_STAINED_GLASS = init(); @Nullable public static final BlockType LIGHT_GRAY_STAINED_GLASS_PANE = init(); @Nullable public static final BlockType LIGHT_GRAY_TERRACOTTA = init(); @Nullable public static final BlockType LIGHT_GRAY_WALL_BANNER = init(); @Nullable public static final BlockType LIGHT_GRAY_WOOL = init(); @Nullable public static final BlockType LIGHT_WEIGHTED_PRESSURE_PLATE = init(); @Nullable public static final BlockType LILAC = init(); @Nullable public static final BlockType LILY_OF_THE_VALLEY = init(); @Nullable public static final BlockType LILY_PAD = init(); @Nullable public static final BlockType LIME_BANNER = init(); @Nullable public static final BlockType LIME_BED = init(); @Nullable public static final BlockType LIME_CARPET = init(); @Nullable public static final BlockType LIME_CONCRETE = init(); @Nullable public static final BlockType LIME_CONCRETE_POWDER = init(); @Nullable public static final BlockType LIME_GLAZED_TERRACOTTA = init(); @Nullable public static final BlockType LIME_SHULKER_BOX = init(); @Nullable public static final BlockType LIME_STAINED_GLASS = init(); @Nullable public static final BlockType LIME_STAINED_GLASS_PANE = init(); @Nullable public static final BlockType LIME_TERRACOTTA = init(); @Nullable public static final BlockType LIME_WALL_BANNER = init(); @Nullable public static final BlockType LIME_WOOL = init(); @Nullable public static final BlockType LODESTONE = init(); @Nullable public static final BlockType LOOM = init(); @Nullable public static final BlockType MAGENTA_BANNER = init(); @Nullable public static final BlockType MAGENTA_BED = init(); @Nullable public static final BlockType MAGENTA_CARPET = init(); @Nullable public static final BlockType MAGENTA_CONCRETE = init(); @Nullable public static final BlockType MAGENTA_CONCRETE_POWDER = init(); @Nullable public static final BlockType MAGENTA_GLAZED_TERRACOTTA = init(); @Nullable public static final BlockType MAGENTA_SHULKER_BOX = init(); @Nullable public static final BlockType MAGENTA_STAINED_GLASS = init(); @Nullable public static final BlockType MAGENTA_STAINED_GLASS_PANE = init(); @Nullable public static final BlockType MAGENTA_TERRACOTTA = init(); @Nullable public static final BlockType MAGENTA_WALL_BANNER = init(); @Nullable public static final BlockType MAGENTA_WOOL = init(); @Nullable public static final BlockType MAGMA_BLOCK = init(); @Nullable public static final BlockType MELON = init(); @Nullable public static final BlockType MELON_STEM = init(); @Nullable public static final BlockType MOSSY_COBBLESTONE = init(); @Nullable public static final BlockType MOSSY_COBBLESTONE_SLAB = init(); @Nullable public static final BlockType MOSSY_COBBLESTONE_STAIRS = init(); @Nullable public static final BlockType MOSSY_COBBLESTONE_WALL = init(); @Nullable public static final BlockType MOSSY_STONE_BRICK_SLAB = init(); @Nullable public static final BlockType MOSSY_STONE_BRICK_STAIRS = init(); @Nullable public static final BlockType MOSSY_STONE_BRICK_WALL = init(); @Nullable public static final BlockType MOSSY_STONE_BRICKS = init(); @Nullable public static final BlockType MOVING_PISTON = init(); @Nullable public static final BlockType MUSHROOM_STEM = init(); @Nullable public static final BlockType MYCELIUM = init(); @Nullable public static final BlockType NETHER_BRICK_FENCE = init(); @Nullable public static final BlockType NETHER_BRICK_SLAB = init(); @Nullable public static final BlockType NETHER_BRICK_STAIRS = init(); @Nullable public static final BlockType NETHER_BRICK_WALL = init(); @Nullable public static final BlockType NETHER_BRICKS = init(); @Nullable public static final BlockType NETHER_GOLD_ORE = init(); @Nullable public static final BlockType NETHER_PORTAL = init(); @Nullable public static final BlockType NETHER_QUARTZ_ORE = init(); @Nullable public static final BlockType NETHER_SPROUTS = init(); @Nullable public static final BlockType NETHER_WART = init(); @Nullable public static final BlockType NETHER_WART_BLOCK = init(); @Nullable public static final BlockType NETHERITE_BLOCK = init(); @Nullable public static final BlockType NETHERRACK = init(); @Nullable public static final BlockType NOTE_BLOCK = init(); @Nullable public static final BlockType OAK_BUTTON = init(); @Nullable public static final BlockType OAK_DOOR = init(); @Nullable public static final BlockType OAK_FENCE = init(); @Nullable public static final BlockType OAK_FENCE_GATE = init(); @Nullable public static final BlockType OAK_LEAVES = init(); @Nullable public static final BlockType OAK_LOG = init(); @Nullable public static final BlockType OAK_PLANKS = init(); @Nullable public static final BlockType OAK_PRESSURE_PLATE = init(); @Nullable public static final BlockType OAK_SAPLING = init(); @Nullable public static final BlockType OAK_SIGN = init(); @Nullable public static final BlockType OAK_SLAB = init(); @Nullable public static final BlockType OAK_STAIRS = init(); @Nullable public static final BlockType OAK_TRAPDOOR = init(); @Nullable public static final BlockType OAK_WALL_SIGN = init(); @Nullable public static final BlockType OAK_WOOD = init(); @Nullable public static final BlockType OBSERVER = init(); @Nullable public static final BlockType OBSIDIAN = init(); @Nullable public static final BlockType ORANGE_BANNER = init(); @Nullable public static final BlockType ORANGE_BED = init(); @Nullable public static final BlockType ORANGE_CARPET = init(); @Nullable public static final BlockType ORANGE_CONCRETE = init(); @Nullable public static final BlockType ORANGE_CONCRETE_POWDER = init(); @Nullable public static final BlockType ORANGE_GLAZED_TERRACOTTA = init(); @Nullable public static final BlockType ORANGE_SHULKER_BOX = init(); @Nullable public static final BlockType ORANGE_STAINED_GLASS = init(); @Nullable public static final BlockType ORANGE_STAINED_GLASS_PANE = init(); @Nullable public static final BlockType ORANGE_TERRACOTTA = init(); @Nullable public static final BlockType ORANGE_TULIP = init(); @Nullable public static final BlockType ORANGE_WALL_BANNER = init(); @Nullable public static final BlockType ORANGE_WOOL = init(); @Nullable public static final BlockType OXEYE_DAISY = init(); @Nullable public static final BlockType PACKED_ICE = init(); @Nullable public static final BlockType PEONY = init(); @Nullable public static final BlockType PETRIFIED_OAK_SLAB = init(); @Nullable public static final BlockType PINK_BANNER = init(); @Nullable public static final BlockType PINK_BED = init(); @Nullable public static final BlockType PINK_CARPET = init(); @Nullable public static final BlockType PINK_CONCRETE = init(); @Nullable public static final BlockType PINK_CONCRETE_POWDER = init(); @Nullable public static final BlockType PINK_GLAZED_TERRACOTTA = init(); @Nullable public static final BlockType PINK_SHULKER_BOX = init(); @Nullable public static final BlockType PINK_STAINED_GLASS = init(); @Nullable public static final BlockType PINK_STAINED_GLASS_PANE = init(); @Nullable public static final BlockType PINK_TERRACOTTA = init(); @Nullable public static final BlockType PINK_TULIP = init(); @Nullable public static final BlockType PINK_WALL_BANNER = init(); @Nullable public static final BlockType PINK_WOOL = init(); @Nullable public static final BlockType PISTON = init(); @Nullable public static final BlockType PISTON_HEAD = init(); @Nullable public static final BlockType PLAYER_HEAD = init(); @Nullable public static final BlockType PLAYER_WALL_HEAD = init(); @Nullable public static final BlockType PODZOL = init(); @Nullable public static final BlockType POLISHED_ANDESITE = init(); @Nullable public static final BlockType POLISHED_ANDESITE_SLAB = init(); @Nullable public static final BlockType POLISHED_ANDESITE_STAIRS = init(); @Nullable public static final BlockType POLISHED_BASALT = init(); @Nullable public static final BlockType POLISHED_BLACKSTONE = init(); @Nullable public static final BlockType POLISHED_BLACKSTONE_BRICK_SLAB = init(); @Nullable public static final BlockType POLISHED_BLACKSTONE_BRICK_STAIRS = init(); @Nullable public static final BlockType POLISHED_BLACKSTONE_BRICK_WALL = init(); @Nullable public static final BlockType POLISHED_BLACKSTONE_BRICKS = init(); @Nullable public static final BlockType POLISHED_BLACKSTONE_BUTTON = init(); @Nullable public static final BlockType POLISHED_BLACKSTONE_PRESSURE_PLATE = init(); @Nullable public static final BlockType POLISHED_BLACKSTONE_SLAB = init(); @Nullable public static final BlockType POLISHED_BLACKSTONE_STAIRS = init(); @Nullable public static final BlockType POLISHED_BLACKSTONE_WALL = init(); @Nullable public static final BlockType POLISHED_DIORITE = init(); @Nullable public static final BlockType POLISHED_DIORITE_SLAB = init(); @Nullable public static final BlockType POLISHED_DIORITE_STAIRS = init(); @Nullable public static final BlockType POLISHED_GRANITE = init(); @Nullable public static final BlockType POLISHED_GRANITE_SLAB = init(); @Nullable public static final BlockType POLISHED_GRANITE_STAIRS = init(); @Nullable public static final BlockType POPPY = init(); @Nullable public static final BlockType POTATOES = init(); @Nullable public static final BlockType POTTED_ACACIA_SAPLING = init(); @Nullable public static final BlockType POTTED_ALLIUM = init(); @Nullable public static final BlockType POTTED_AZURE_BLUET = init(); @Nullable public static final BlockType POTTED_BAMBOO = init(); @Nullable public static final BlockType POTTED_BIRCH_SAPLING = init(); @Nullable public static final BlockType POTTED_BLUE_ORCHID = init(); @Nullable public static final BlockType POTTED_BROWN_MUSHROOM = init(); @Nullable public static final BlockType POTTED_CACTUS = init(); @Nullable public static final BlockType POTTED_CORNFLOWER = init(); @Nullable public static final BlockType POTTED_CRIMSON_FUNGUS = init(); @Nullable public static final BlockType POTTED_CRIMSON_ROOTS = init(); @Nullable public static final BlockType POTTED_DANDELION = init(); @Nullable public static final BlockType POTTED_DARK_OAK_SAPLING = init(); @Nullable public static final BlockType POTTED_DEAD_BUSH = init(); @Nullable public static final BlockType POTTED_FERN = init(); @Nullable public static final BlockType POTTED_JUNGLE_SAPLING = init(); @Nullable public static final BlockType POTTED_LILY_OF_THE_VALLEY = init(); @Nullable public static final BlockType POTTED_OAK_SAPLING = init(); @Nullable public static final BlockType POTTED_ORANGE_TULIP = init(); @Nullable public static final BlockType POTTED_OXEYE_DAISY = init(); @Nullable public static final BlockType POTTED_PINK_TULIP = init(); @Nullable public static final BlockType POTTED_POPPY = init(); @Nullable public static final BlockType POTTED_RED_MUSHROOM = init(); @Nullable public static final BlockType POTTED_RED_TULIP = init(); @Nullable public static final BlockType POTTED_SPRUCE_SAPLING = init(); @Nullable public static final BlockType POTTED_WARPED_FUNGUS = init(); @Nullable public static final BlockType POTTED_WARPED_ROOTS = init(); @Nullable public static final BlockType POTTED_WHITE_TULIP = init(); @Nullable public static final BlockType POTTED_WITHER_ROSE = init(); @Nullable public static final BlockType POWERED_RAIL = init(); @Nullable public static final BlockType PRISMARINE = init(); @Nullable public static final BlockType PRISMARINE_BRICK_SLAB = init(); @Nullable public static final BlockType PRISMARINE_BRICK_STAIRS = init(); @Nullable public static final BlockType PRISMARINE_BRICKS = init(); @Nullable public static final BlockType PRISMARINE_SLAB = init(); @Nullable public static final BlockType PRISMARINE_STAIRS = init(); @Nullable public static final BlockType PRISMARINE_WALL = init(); @Nullable public static final BlockType PUMPKIN = init(); @Nullable public static final BlockType PUMPKIN_STEM = init(); @Nullable public static final BlockType PURPLE_BANNER = init(); @Nullable public static final BlockType PURPLE_BED = init(); @Nullable public static final BlockType PURPLE_CARPET = init(); @Nullable public static final BlockType PURPLE_CONCRETE = init(); @Nullable public static final BlockType PURPLE_CONCRETE_POWDER = init(); @Nullable public static final BlockType PURPLE_GLAZED_TERRACOTTA = init(); @Nullable public static final BlockType PURPLE_SHULKER_BOX = init(); @Nullable public static final BlockType PURPLE_STAINED_GLASS = init(); @Nullable public static final BlockType PURPLE_STAINED_GLASS_PANE = init(); @Nullable public static final BlockType PURPLE_TERRACOTTA = init(); @Nullable public static final BlockType PURPLE_WALL_BANNER = init(); @Nullable public static final BlockType PURPLE_WOOL = init(); @Nullable public static final BlockType PURPUR_BLOCK = init(); @Nullable public static final BlockType PURPUR_PILLAR = init(); @Nullable public static final BlockType PURPUR_SLAB = init(); @Nullable public static final BlockType PURPUR_STAIRS = init(); @Nullable public static final BlockType QUARTZ_BLOCK = init(); @Nullable public static final BlockType QUARTZ_BRICKS = init(); @Nullable public static final BlockType QUARTZ_PILLAR = init(); @Nullable public static final BlockType QUARTZ_SLAB = init(); @Nullable public static final BlockType QUARTZ_STAIRS = init(); @Nullable public static final BlockType RAIL = init(); @Nullable public static final BlockType RED_BANNER = init(); @Nullable public static final BlockType RED_BED = init(); @Nullable public static final BlockType RED_CARPET = init(); @Nullable public static final BlockType RED_CONCRETE = init(); @Nullable public static final BlockType RED_CONCRETE_POWDER = init(); @Nullable public static final BlockType RED_GLAZED_TERRACOTTA = init(); @Nullable public static final BlockType RED_MUSHROOM = init(); @Nullable public static final BlockType RED_MUSHROOM_BLOCK = init(); @Nullable public static final BlockType RED_NETHER_BRICK_SLAB = init(); @Nullable public static final BlockType RED_NETHER_BRICK_STAIRS = init(); @Nullable public static final BlockType RED_NETHER_BRICK_WALL = init(); @Nullable public static final BlockType RED_NETHER_BRICKS = init(); @Nullable public static final BlockType RED_SAND = init(); @Nullable public static final BlockType RED_SANDSTONE = init(); @Nullable public static final BlockType RED_SANDSTONE_SLAB = init(); @Nullable public static final BlockType RED_SANDSTONE_STAIRS = init(); @Nullable public static final BlockType RED_SANDSTONE_WALL = init(); @Nullable public static final BlockType RED_SHULKER_BOX = init(); @Nullable public static final BlockType RED_STAINED_GLASS = init(); @Nullable public static final BlockType RED_STAINED_GLASS_PANE = init(); @Nullable public static final BlockType RED_TERRACOTTA = init(); @Nullable public static final BlockType RED_TULIP = init(); @Nullable public static final BlockType RED_WALL_BANNER = init(); @Nullable public static final BlockType RED_WOOL = init(); @Nullable public static final BlockType REDSTONE_BLOCK = init(); @Nullable public static final BlockType REDSTONE_LAMP = init(); @Nullable public static final BlockType REDSTONE_ORE = init(); @Nullable public static final BlockType REDSTONE_TORCH = init(); @Nullable public static final BlockType REDSTONE_WALL_TORCH = init(); @Nullable public static final BlockType REDSTONE_WIRE = init(); @Nullable public static final BlockType REPEATER = init(); @Nullable public static final BlockType REPEATING_COMMAND_BLOCK = init(); @Nullable public static final BlockType RESPAWN_ANCHOR = init(); @Nullable public static final BlockType ROSE_BUSH = init(); @Nullable public static final BlockType SAND = init(); @Nullable public static final BlockType SANDSTONE = init(); @Nullable public static final BlockType SANDSTONE_SLAB = init(); @Nullable public static final BlockType SANDSTONE_STAIRS = init(); @Nullable public static final BlockType SANDSTONE_WALL = init(); @Nullable public static final BlockType SCAFFOLDING = init(); @Nullable public static final BlockType SEA_LANTERN = init(); @Nullable public static final BlockType SEA_PICKLE = init(); @Nullable public static final BlockType SEAGRASS = init(); @Nullable public static final BlockType SHROOMLIGHT = init(); @Nullable public static final BlockType SHULKER_BOX = init(); @Deprecated @Nullable public static final BlockType SIGN = init(); @Nullable public static final BlockType SKELETON_SKULL = init(); @Nullable public static final BlockType SKELETON_WALL_SKULL = init(); @Nullable public static final BlockType SLIME_BLOCK = init(); @Nullable public static final BlockType SMITHING_TABLE = init(); @Nullable public static final BlockType SMOKER = init(); @Nullable public static final BlockType SMOOTH_QUARTZ = init(); @Nullable public static final BlockType SMOOTH_QUARTZ_SLAB = init(); @Nullable public static final BlockType SMOOTH_QUARTZ_STAIRS = init(); @Nullable public static final BlockType SMOOTH_RED_SANDSTONE = init(); @Nullable public static final BlockType SMOOTH_RED_SANDSTONE_SLAB = init(); @Nullable public static final BlockType SMOOTH_RED_SANDSTONE_STAIRS = init(); @Nullable public static final BlockType SMOOTH_SANDSTONE = init(); @Nullable public static final BlockType SMOOTH_SANDSTONE_SLAB = init(); @Nullable public static final BlockType SMOOTH_SANDSTONE_STAIRS = init(); @Nullable public static final BlockType SMOOTH_STONE = init(); @Nullable public static final BlockType SMOOTH_STONE_SLAB = init(); @Nullable public static final BlockType SNOW = init(); @Nullable public static final BlockType SNOW_BLOCK = init(); @Nullable public static final BlockType SOUL_CAMPFIRE = init(); @Nullable public static final BlockType SOUL_FIRE = init(); @Nullable public static final BlockType SOUL_LANTERN = init(); @Nullable public static final BlockType SOUL_SAND = init(); @Nullable public static final BlockType SOUL_SOIL = init(); @Nullable public static final BlockType SOUL_TORCH = init(); @Nullable public static final BlockType SOUL_WALL_TORCH = init(); @Nullable public static final BlockType SPAWNER = init(); @Nullable public static final BlockType SPONGE = init(); @Nullable public static final BlockType SPRUCE_BUTTON = init(); @Nullable public static final BlockType SPRUCE_DOOR = init(); @Nullable public static final BlockType SPRUCE_FENCE = init(); @Nullable public static final BlockType SPRUCE_FENCE_GATE = init(); @Nullable public static final BlockType SPRUCE_LEAVES = init(); @Nullable public static final BlockType SPRUCE_LOG = init(); @Nullable public static final BlockType SPRUCE_PLANKS = init(); @Nullable public static final BlockType SPRUCE_PRESSURE_PLATE = init(); @Nullable public static final BlockType SPRUCE_SAPLING = init(); @Nullable public static final BlockType SPRUCE_SIGN = init(); @Nullable public static final BlockType SPRUCE_SLAB = init(); @Nullable public static final BlockType SPRUCE_STAIRS = init(); @Nullable public static final BlockType SPRUCE_TRAPDOOR = init(); @Nullable public static final BlockType SPRUCE_WALL_SIGN = init(); @Nullable public static final BlockType SPRUCE_WOOD = init(); @Nullable public static final BlockType STICKY_PISTON = init(); @Nullable public static final BlockType STONE = init(); @Nullable public static final BlockType STONE_BRICK_SLAB = init(); @Nullable public static final BlockType STONE_BRICK_STAIRS = init(); @Nullable public static final BlockType STONE_BRICK_WALL = init(); @Nullable public static final BlockType STONE_BRICKS = init(); @Nullable public static final BlockType STONE_BUTTON = init(); @Nullable public static final BlockType STONE_PRESSURE_PLATE = init(); @Nullable public static final BlockType STONE_SLAB = init(); @Nullable public static final BlockType STONE_STAIRS = init(); @Nullable public static final BlockType STONECUTTER = init(); @Nullable public static final BlockType STRIPPED_ACACIA_LOG = init(); @Nullable public static final BlockType STRIPPED_ACACIA_WOOD = init(); @Nullable public static final BlockType STRIPPED_BIRCH_LOG = init(); @Nullable public static final BlockType STRIPPED_BIRCH_WOOD = init(); @Nullable public static final BlockType STRIPPED_CRIMSON_HYPHAE = init(); @Nullable public static final BlockType STRIPPED_CRIMSON_STEM = init(); @Nullable public static final BlockType STRIPPED_DARK_OAK_LOG = init(); @Nullable public static final BlockType STRIPPED_DARK_OAK_WOOD = init(); @Nullable public static final BlockType STRIPPED_JUNGLE_LOG = init(); @Nullable public static final BlockType STRIPPED_JUNGLE_WOOD = init(); @Nullable public static final BlockType STRIPPED_OAK_LOG = init(); @Nullable public static final BlockType STRIPPED_OAK_WOOD = init(); @Nullable public static final BlockType STRIPPED_SPRUCE_LOG = init(); @Nullable public static final BlockType STRIPPED_SPRUCE_WOOD = init(); @Nullable public static final BlockType STRIPPED_WARPED_HYPHAE = init(); @Nullable public static final BlockType STRIPPED_WARPED_STEM = init(); @Nullable public static final BlockType STRUCTURE_BLOCK = init(); @Nullable public static final BlockType STRUCTURE_VOID = init(); @Nullable public static final BlockType SUGAR_CANE = init(); @Nullable public static final BlockType SUNFLOWER = init(); @Nullable public static final BlockType SWEET_BERRY_BUSH = init(); @Nullable public static final BlockType TALL_GRASS = init(); @Nullable public static final BlockType TALL_SEAGRASS = init(); @Nullable public static final BlockType TARGET = init(); @Nullable public static final BlockType TERRACOTTA = init(); @Nullable public static final BlockType TNT = init(); @Nullable public static final BlockType TORCH = init(); @Nullable public static final BlockType TRAPPED_CHEST = init(); @Nullable public static final BlockType TRIPWIRE = init(); @Nullable public static final BlockType TRIPWIRE_HOOK = init(); @Nullable public static final BlockType TUBE_CORAL = init(); @Nullable public static final BlockType TUBE_CORAL_BLOCK = init(); @Nullable public static final BlockType TUBE_CORAL_FAN = init(); @Nullable public static final BlockType TUBE_CORAL_WALL_FAN = init(); @Nullable public static final BlockType TURTLE_EGG = init(); @Nullable public static final BlockType TWISTING_VINES = init(); @Nullable public static final BlockType TWISTING_VINES_PLANT = init(); @Nullable public static final BlockType VINE = init(); @Nullable public static final BlockType VOID_AIR = init(); @Deprecated @Nullable public static final BlockType WALL_SIGN = init(); @Nullable public static final BlockType WALL_TORCH = init(); @Nullable public static final BlockType WARPED_BUTTON = init(); @Nullable public static final BlockType WARPED_DOOR = init(); @Nullable public static final BlockType WARPED_FENCE = init(); @Nullable public static final BlockType WARPED_FENCE_GATE = init(); @Nullable public static final BlockType WARPED_FUNGUS = init(); @Nullable public static final BlockType WARPED_HYPHAE = init(); @Nullable public static final BlockType WARPED_NYLIUM = init(); @Nullable public static final BlockType WARPED_PLANKS = init(); @Nullable public static final BlockType WARPED_PRESSURE_PLATE = init(); @Nullable public static final BlockType WARPED_ROOTS = init(); @Nullable public static final BlockType WARPED_SIGN = init(); @Nullable public static final BlockType WARPED_SLAB = init(); @Nullable public static final BlockType WARPED_STAIRS = init(); @Nullable public static final BlockType WARPED_STEM = init(); @Nullable public static final BlockType WARPED_TRAPDOOR = init(); @Nullable public static final BlockType WARPED_WALL_SIGN = init(); @Nullable public static final BlockType WARPED_WART_BLOCK = init(); @Nullable public static final BlockType WATER = init(); @Nullable public static final BlockType WEEPING_VINES = init(); @Nullable public static final BlockType WEEPING_VINES_PLANT = init(); @Nullable public static final BlockType WET_SPONGE = init(); @Nullable public static final BlockType WHEAT = init(); @Nullable public static final BlockType WHITE_BANNER = init(); @Nullable public static final BlockType WHITE_BED = init(); @Nullable public static final BlockType WHITE_CARPET = init(); @Nullable public static final BlockType WHITE_CONCRETE = init(); @Nullable public static final BlockType WHITE_CONCRETE_POWDER = init(); @Nullable public static final BlockType WHITE_GLAZED_TERRACOTTA = init(); @Nullable public static final BlockType WHITE_SHULKER_BOX = init(); @Nullable public static final BlockType WHITE_STAINED_GLASS = init(); @Nullable public static final BlockType WHITE_STAINED_GLASS_PANE = init(); @Nullable public static final BlockType WHITE_TERRACOTTA = init(); @Nullable public static final BlockType WHITE_TULIP = init(); @Nullable public static final BlockType WHITE_WALL_BANNER = init(); @Nullable public static final BlockType WHITE_WOOL = init(); @Nullable public static final BlockType WITHER_ROSE = init(); @Nullable public static final BlockType WITHER_SKELETON_SKULL = init(); @Nullable public static final BlockType WITHER_SKELETON_WALL_SKULL = init(); @Nullable public static final BlockType YELLOW_BANNER = init(); @Nullable public static final BlockType YELLOW_BED = init(); @Nullable public static final BlockType YELLOW_CARPET = init(); @Nullable public static final BlockType YELLOW_CONCRETE = init(); @Nullable public static final BlockType YELLOW_CONCRETE_POWDER = init(); @Nullable public static final BlockType YELLOW_GLAZED_TERRACOTTA = init(); @Nullable public static final BlockType YELLOW_SHULKER_BOX = init(); @Nullable public static final BlockType YELLOW_STAINED_GLASS = init(); @Nullable public static final BlockType YELLOW_STAINED_GLASS_PANE = init(); @Nullable public static final BlockType YELLOW_TERRACOTTA = init(); @Nullable public static final BlockType YELLOW_WALL_BANNER = init(); @Nullable public static final BlockType YELLOW_WOOL = init(); @Nullable public static final BlockType ZOMBIE_HEAD = init(); @Nullable public static final BlockType ZOMBIE_WALL_HEAD = init(); private static Field[] fieldsTmp; private static JoinedCharSequence joined; private static int initIndex = 0; public static BlockType init() { if (fieldsTmp == null) { fieldsTmp = BlockTypes.class.getDeclaredFields(); BlockTypesCache.$NAMESPACES.isEmpty(); // initialize cache joined = new JoinedCharSequence(); } String name = fieldsTmp[initIndex++].getName().toLowerCase(Locale.ROOT); CharSequence fullName = joined.init(BlockType.REGISTRY.getDefaultNamespace(), ':', name); return BlockType.REGISTRY.getMap().get(fullName); } static { fieldsTmp = null; joined = null; } /* ----------------------------------------------------- Parsing ----------------------------------------------------- */ public static BlockType parse(final String type) throws InputParseException { final String inputLower = type.toLowerCase(Locale.ROOT); String input = inputLower; if (!input.split("\\[", 2)[0].contains(":")) { input = "minecraft:" + input; } BlockType result = BlockType.REGISTRY.get(input); if (result != null) { return result; } try { BlockStateHolder block = LegacyMapper.getInstance().getBlockFromLegacy(input); if (block != null) { return block.getBlockType(); } } catch (NumberFormatException | IndexOutOfBoundsException ignored) { } throw new SuggestInputParseException("Does not match a valid block type: " + inputLower, inputLower, () -> Stream.of(BlockTypesCache.values) .filter(b -> StringMan.blockStateMatches(inputLower, b.getId())) .map(BlockType::getId) .sorted(StringMan.blockStateComparator(inputLower)) .collect(Collectors.toList()) ); } public static Set getNameSpaces() { return BlockTypesCache.$NAMESPACES; } /** * Gets the {@link BlockType} associated with the given id. */ @Nullable public static BlockType get(String id) { return BlockType.REGISTRY.get(id); } @Nullable public static BlockType get(final CharSequence id) { return BlockType.REGISTRY.get(id.toString()); } @Deprecated public static BlockType get(final int ordinal) { return BlockTypesCache.values[ordinal]; } @Deprecated public static BlockType getFromStateId(final int internalStateId) { return BlockTypesCache.values[internalStateId & BlockTypesCache.BIT_MASK]; } @Deprecated public static BlockType getFromStateOrdinal(final int internalStateOrdinal) { return BlockTypesCache.states[internalStateOrdinal].getBlockType(); } public static int size() { return BlockTypesCache.values.length; } }