Beginnings of automatic Block code generation

This commit is contained in:
jglrxavpok 2020-06-19 11:29:09 +02:00
parent f97328a3bd
commit abf999a4d9
11 changed files with 1391 additions and 0 deletions

3
.gitmodules vendored Normal file
View File

@ -0,0 +1,3 @@
[submodule "prismarine-minecraft-data"]
path = prismarine-minecraft-data
url = https://github.com/PrismarineJS/minecraft-data

View File

@ -14,6 +14,23 @@ repositories {
}
sourceSets {
main {
java {
srcDir 'src/main/java'
srcDir 'src/autogenerated/java'
}
}
generation {
java {
srcDir 'src/generators/java'
}
compileClasspath += sourceSets.main.runtimeClasspath
runtimeClasspath += sourceSets.main.runtimeClasspath
}
}
dependencies {
testCompile group: 'junit', name: 'junit', version: '4.12'

@ -0,0 +1 @@
Subproject commit 28cb60995d153d5c8eb7bb1bb2e0fd645e3202d0

View File

@ -0,0 +1,727 @@
//==============================
// AUTOGENERATED BY EnumGenerator
//==============================
package net.minestom.instance.block;
public enum TmpBlock {
AIR("minecraft:air", (short) 0, 0.0, 0.0, false, false),
STONE("minecraft:stone", (short) 1, 1.5, 6.0, false, true),
GRANITE("minecraft:granite", (short) 2, 1.5, 6.0, false, true),
POLISHED_GRANITE("minecraft:polished_granite", (short) 3, 1.5, 6.0, false, true),
DIORITE("minecraft:diorite", (short) 4, 1.5, 6.0, false, true),
POLISHED_DIORITE("minecraft:polished_diorite", (short) 5, 1.5, 6.0, false, true),
ANDESITE("minecraft:andesite", (short) 6, 1.5, 6.0, false, true),
POLISHED_ANDESITE("minecraft:polished_andesite", (short) 7, 1.5, 6.0, false, true),
GRASS_BLOCK("minecraft:grass_block", (short) 9, 0.6, 0.6, false, true),
DIRT("minecraft:dirt", (short) 10, 0.5, 0.5, false, true),
COARSE_DIRT("minecraft:coarse_dirt", (short) 11, 0.5, 0.5, false, true),
PODZOL("minecraft:podzol", (short) 13, 0.5, 0.5, false, true),
COBBLESTONE("minecraft:cobblestone", (short) 14, 2.0, 6.0, false, true),
OAK_PLANKS("minecraft:oak_planks", (short) 15, 2.0, 3.0, false, true),
SPRUCE_PLANKS("minecraft:spruce_planks", (short) 16, 2.0, 3.0, false, true),
BIRCH_PLANKS("minecraft:birch_planks", (short) 17, 2.0, 3.0, false, true),
JUNGLE_PLANKS("minecraft:jungle_planks", (short) 18, 2.0, 3.0, false, true),
ACACIA_PLANKS("minecraft:acacia_planks", (short) 19, 2.0, 3.0, false, true),
DARK_OAK_PLANKS("minecraft:dark_oak_planks", (short) 20, 2.0, 3.0, false, true),
OAK_SAPLING("minecraft:oak_sapling", (short) 21, 0.0, 0.0, false, false),
SPRUCE_SAPLING("minecraft:spruce_sapling", (short) 23, 0.0, 0.0, false, false),
BIRCH_SAPLING("minecraft:birch_sapling", (short) 25, 0.0, 0.0, false, false),
JUNGLE_SAPLING("minecraft:jungle_sapling", (short) 27, 0.0, 0.0, false, false),
ACACIA_SAPLING("minecraft:acacia_sapling", (short) 29, 0.0, 0.0, false, false),
DARK_OAK_SAPLING("minecraft:dark_oak_sapling", (short) 31, 0.0, 0.0, false, false),
BEDROCK("minecraft:bedrock", (short) 33, 0.0, 3600000.0, false, true),
WATER("minecraft:water", (short) 34, 100.0, 100.0, false, false),
LAVA("minecraft:lava", (short) 50, 100.0, 100.0, false, false),
SAND("minecraft:sand", (short) 66, 0.5, 0.5, false, true),
RED_SAND("minecraft:red_sand", (short) 67, 0.5, 0.5, false, true),
GRAVEL("minecraft:gravel", (short) 68, 0.6, 0.6, false, true),
GOLD_ORE("minecraft:gold_ore", (short) 69, 3.0, 3.0, false, true),
IRON_ORE("minecraft:iron_ore", (short) 70, 3.0, 3.0, false, true),
COAL_ORE("minecraft:coal_ore", (short) 71, 3.0, 3.0, false, true),
OAK_LOG("minecraft:oak_log", (short) 73, 2.0, 2.0, false, true),
SPRUCE_LOG("minecraft:spruce_log", (short) 76, 2.0, 2.0, false, true),
BIRCH_LOG("minecraft:birch_log", (short) 79, 2.0, 2.0, false, true),
JUNGLE_LOG("minecraft:jungle_log", (short) 82, 2.0, 2.0, false, true),
ACACIA_LOG("minecraft:acacia_log", (short) 85, 2.0, 2.0, false, true),
DARK_OAK_LOG("minecraft:dark_oak_log", (short) 88, 2.0, 2.0, false, true),
STRIPPED_SPRUCE_LOG("minecraft:stripped_spruce_log", (short) 91, 2.0, 2.0, false, true),
STRIPPED_BIRCH_LOG("minecraft:stripped_birch_log", (short) 94, 2.0, 2.0, false, true),
STRIPPED_JUNGLE_LOG("minecraft:stripped_jungle_log", (short) 97, 2.0, 2.0, false, true),
STRIPPED_ACACIA_LOG("minecraft:stripped_acacia_log", (short) 100, 2.0, 2.0, false, true),
STRIPPED_DARK_OAK_LOG("minecraft:stripped_dark_oak_log", (short) 103, 2.0, 2.0, false, true),
STRIPPED_OAK_LOG("minecraft:stripped_oak_log", (short) 106, 2.0, 2.0, false, true),
OAK_WOOD("minecraft:oak_wood", (short) 109, 2.0, 2.0, false, true),
SPRUCE_WOOD("minecraft:spruce_wood", (short) 112, 2.0, 2.0, false, true),
BIRCH_WOOD("minecraft:birch_wood", (short) 115, 2.0, 2.0, false, true),
JUNGLE_WOOD("minecraft:jungle_wood", (short) 118, 2.0, 2.0, false, true),
ACACIA_WOOD("minecraft:acacia_wood", (short) 121, 2.0, 2.0, false, true),
DARK_OAK_WOOD("minecraft:dark_oak_wood", (short) 124, 2.0, 2.0, false, true),
STRIPPED_OAK_WOOD("minecraft:stripped_oak_wood", (short) 127, 2.0, 2.0, false, true),
STRIPPED_SPRUCE_WOOD("minecraft:stripped_spruce_wood", (short) 130, 2.0, 2.0, false, true),
STRIPPED_BIRCH_WOOD("minecraft:stripped_birch_wood", (short) 133, 2.0, 2.0, false, true),
STRIPPED_JUNGLE_WOOD("minecraft:stripped_jungle_wood", (short) 136, 2.0, 2.0, false, true),
STRIPPED_ACACIA_WOOD("minecraft:stripped_acacia_wood", (short) 139, 2.0, 2.0, false, true),
STRIPPED_DARK_OAK_WOOD("minecraft:stripped_dark_oak_wood", (short) 142, 2.0, 2.0, false, true),
OAK_LEAVES("minecraft:oak_leaves", (short) 157, 0.2, 0.2, false, true),
SPRUCE_LEAVES("minecraft:spruce_leaves", (short) 171, 0.2, 0.2, false, true),
BIRCH_LEAVES("minecraft:birch_leaves", (short) 185, 0.2, 0.2, false, true),
JUNGLE_LEAVES("minecraft:jungle_leaves", (short) 199, 0.2, 0.2, false, true),
ACACIA_LEAVES("minecraft:acacia_leaves", (short) 213, 0.2, 0.2, false, true),
DARK_OAK_LEAVES("minecraft:dark_oak_leaves", (short) 227, 0.2, 0.2, false, true),
SPONGE("minecraft:sponge", (short) 228, 0.6, 0.6, false, true),
WET_SPONGE("minecraft:wet_sponge", (short) 229, 0.6, 0.6, false, true),
GLASS("minecraft:glass", (short) 230, 0.3, 0.3, false, true),
LAPIS_ORE("minecraft:lapis_ore", (short) 231, 3.0, 3.0, false, true),
LAPIS_BLOCK("minecraft:lapis_block", (short) 232, 3.0, 3.0, false, true),
DISPENSER("minecraft:dispenser", (short) 234, 3.5, 3.5, false, true),
SANDSTONE("minecraft:sandstone", (short) 245, 0.8, 0.8, false, true),
CHISELED_SANDSTONE("minecraft:chiseled_sandstone", (short) 246, 0.8, 0.8, false, true),
CUT_SANDSTONE("minecraft:cut_sandstone", (short) 247, 0.8, 0.8, false, true),
NOTE_BLOCK("minecraft:note_block", (short) 249, 0.8, 0.8, false, true),
WHITE_BED("minecraft:white_bed", (short) 1051, 0.2, 0.2, false, true),
ORANGE_BED("minecraft:orange_bed", (short) 1067, 0.2, 0.2, false, true),
MAGENTA_BED("minecraft:magenta_bed", (short) 1083, 0.2, 0.2, false, true),
LIGHT_BLUE_BED("minecraft:light_blue_bed", (short) 1099, 0.2, 0.2, false, true),
YELLOW_BED("minecraft:yellow_bed", (short) 1115, 0.2, 0.2, false, true),
LIME_BED("minecraft:lime_bed", (short) 1131, 0.2, 0.2, false, true),
PINK_BED("minecraft:pink_bed", (short) 1147, 0.2, 0.2, false, true),
GRAY_BED("minecraft:gray_bed", (short) 1163, 0.2, 0.2, false, true),
LIGHT_GRAY_BED("minecraft:light_gray_bed", (short) 1179, 0.2, 0.2, false, true),
CYAN_BED("minecraft:cyan_bed", (short) 1195, 0.2, 0.2, false, true),
PURPLE_BED("minecraft:purple_bed", (short) 1211, 0.2, 0.2, false, true),
BLUE_BED("minecraft:blue_bed", (short) 1227, 0.2, 0.2, false, true),
BROWN_BED("minecraft:brown_bed", (short) 1243, 0.2, 0.2, false, true),
GREEN_BED("minecraft:green_bed", (short) 1259, 0.2, 0.2, false, true),
RED_BED("minecraft:red_bed", (short) 1275, 0.2, 0.2, false, true),
BLACK_BED("minecraft:black_bed", (short) 1291, 0.2, 0.2, false, true),
POWERED_RAIL("minecraft:powered_rail", (short) 1310, 0.7, 0.7, false, false),
DETECTOR_RAIL("minecraft:detector_rail", (short) 1322, 0.7, 0.7, false, false),
STICKY_PISTON("minecraft:sticky_piston", (short) 1334, 0.5, 0.5, false, true),
COBWEB("minecraft:cobweb", (short) 1340, 4.0, 4.0, false, false),
GRASS("minecraft:grass", (short) 1341, 0.0, 0.0, false, false),
FERN("minecraft:fern", (short) 1342, 0.0, 0.0, false, false),
DEAD_BUSH("minecraft:dead_bush", (short) 1343, 0.0, 0.0, false, false),
SEAGRASS("minecraft:seagrass", (short) 1344, 0.0, 0.0, false, true),
TALL_SEAGRASS("minecraft:tall_seagrass", (short) 1346, 0.0, 0.0, false, true),
PISTON("minecraft:piston", (short) 1353, 0.5, 0.5, false, true),
PISTON_HEAD("minecraft:piston_head", (short) 1361, 0.5, 0.5, false, true),
WHITE_WOOL("minecraft:white_wool", (short) 1383, 0.8, 0.8, false, true),
ORANGE_WOOL("minecraft:orange_wool", (short) 1384, 0.8, 0.8, false, true),
MAGENTA_WOOL("minecraft:magenta_wool", (short) 1385, 0.8, 0.8, false, true),
LIGHT_BLUE_WOOL("minecraft:light_blue_wool", (short) 1386, 0.8, 0.8, false, true),
YELLOW_WOOL("minecraft:yellow_wool", (short) 1387, 0.8, 0.8, false, true),
LIME_WOOL("minecraft:lime_wool", (short) 1388, 0.8, 0.8, false, true),
PINK_WOOL("minecraft:pink_wool", (short) 1389, 0.8, 0.8, false, true),
GRAY_WOOL("minecraft:gray_wool", (short) 1390, 0.8, 0.8, false, true),
LIGHT_GRAY_WOOL("minecraft:light_gray_wool", (short) 1391, 0.8, 0.8, false, true),
CYAN_WOOL("minecraft:cyan_wool", (short) 1392, 0.8, 0.8, false, true),
PURPLE_WOOL("minecraft:purple_wool", (short) 1393, 0.8, 0.8, false, true),
BLUE_WOOL("minecraft:blue_wool", (short) 1394, 0.8, 0.8, false, true),
BROWN_WOOL("minecraft:brown_wool", (short) 1395, 0.8, 0.8, false, true),
GREEN_WOOL("minecraft:green_wool", (short) 1396, 0.8, 0.8, false, true),
RED_WOOL("minecraft:red_wool", (short) 1397, 0.8, 0.8, false, true),
BLACK_WOOL("minecraft:black_wool", (short) 1398, 0.8, 0.8, false, true),
MOVING_PISTON("minecraft:moving_piston", (short) 1399, 0.0, -1.0, false, true),
DANDELION("minecraft:dandelion", (short) 1411, 0.0, 0.0, false, false),
POPPY("minecraft:poppy", (short) 1412, 0.0, 0.0, false, false),
BLUE_ORCHID("minecraft:blue_orchid", (short) 1413, 0.0, 0.0, false, false),
ALLIUM("minecraft:allium", (short) 1414, 0.0, 0.0, false, false),
AZURE_BLUET("minecraft:azure_bluet", (short) 1415, 0.0, 0.0, false, false),
RED_TULIP("minecraft:red_tulip", (short) 1416, 0.0, 0.0, false, false),
ORANGE_TULIP("minecraft:orange_tulip", (short) 1417, 0.0, 0.0, false, false),
WHITE_TULIP("minecraft:white_tulip", (short) 1418, 0.0, 0.0, false, false),
PINK_TULIP("minecraft:pink_tulip", (short) 1419, 0.0, 0.0, false, false),
OXEYE_DAISY("minecraft:oxeye_daisy", (short) 1420, 0.0, 0.0, false, false),
CORNFLOWER("minecraft:cornflower", (short) 1421, 0.0, 0.0, false, false),
WITHER_ROSE("minecraft:wither_rose", (short) 1422, 0.0, 0.0, false, false),
LILY_OF_THE_VALLEY("minecraft:lily_of_the_valley", (short) 1423, 0.0, 0.0, false, false),
BROWN_MUSHROOM("minecraft:brown_mushroom", (short) 1424, 0.0, 0.0, false, false),
RED_MUSHROOM("minecraft:red_mushroom", (short) 1425, 0.0, 0.0, false, false),
GOLD_BLOCK("minecraft:gold_block", (short) 1426, 3.0, 6.0, false, true),
IRON_BLOCK("minecraft:iron_block", (short) 1427, 5.0, 6.0, false, true),
BRICKS("minecraft:bricks", (short) 1428, 2.0, 6.0, false, true),
TNT("minecraft:tnt", (short) 1430, 0.0, 0.0, false, true),
BOOKSHELF("minecraft:bookshelf", (short) 1431, 1.5, 1.5, false, true),
MOSSY_COBBLESTONE("minecraft:mossy_cobblestone", (short) 1432, 2.0, 6.0, false, true),
OBSIDIAN("minecraft:obsidian", (short) 1433, 50.0, 1200.0, false, true),
TORCH("minecraft:torch", (short) 1434, 0.0, 0.0, false, false),
WALL_TORCH("minecraft:wall_torch", (short) 1435, 0.0, 0.0, false, false),
FIRE("minecraft:fire", (short) 1470, 0.0, 0.0, false, false),
SPAWNER("minecraft:spawner", (short) 1951, 5.0, 5.0, false, true),
OAK_STAIRS("minecraft:oak_stairs", (short) 1963, 2.0, 3.0, false, true),
CHEST("minecraft:chest", (short) 2033, 2.5, 2.5, false, true),
REDSTONE_WIRE("minecraft:redstone_wire", (short) 3216, 0.0, 0.0, false, false),
DIAMOND_ORE("minecraft:diamond_ore", (short) 3352, 3.0, 3.0, false, true),
DIAMOND_BLOCK("minecraft:diamond_block", (short) 3353, 5.0, 6.0, false, true),
CRAFTING_TABLE("minecraft:crafting_table", (short) 3354, 2.5, 2.5, false, true),
WHEAT("minecraft:wheat", (short) 3355, 0.0, 0.0, false, false),
FARMLAND("minecraft:farmland", (short) 3363, 0.6, 0.6, false, true),
FURNACE("minecraft:furnace", (short) 3372, 3.5, 3.5, false, true),
OAK_SIGN("minecraft:oak_sign", (short) 3380, 1.0, 1.0, false, false),
SPRUCE_SIGN("minecraft:spruce_sign", (short) 3412, 1.0, 1.0, false, false),
BIRCH_SIGN("minecraft:birch_sign", (short) 3444, 1.0, 1.0, false, false),
ACACIA_SIGN("minecraft:acacia_sign", (short) 3476, 1.0, 1.0, false, false),
JUNGLE_SIGN("minecraft:jungle_sign", (short) 3508, 1.0, 1.0, false, false),
DARK_OAK_SIGN("minecraft:dark_oak_sign", (short) 3540, 1.0, 1.0, false, false),
OAK_DOOR("minecraft:oak_door", (short) 3582, 3.0, 3.0, false, true),
LADDER("minecraft:ladder", (short) 3636, 0.4, 0.4, false, true),
RAIL("minecraft:rail", (short) 3643, 0.7, 0.7, false, false),
COBBLESTONE_STAIRS("minecraft:cobblestone_stairs", (short) 3664, 2.0, 6.0, false, true),
OAK_WALL_SIGN("minecraft:oak_wall_sign", (short) 3734, 1.0, 1.0, false, false),
SPRUCE_WALL_SIGN("minecraft:spruce_wall_sign", (short) 3742, 1.0, 1.0, false, false),
BIRCH_WALL_SIGN("minecraft:birch_wall_sign", (short) 3750, 1.0, 1.0, false, false),
ACACIA_WALL_SIGN("minecraft:acacia_wall_sign", (short) 3758, 1.0, 1.0, false, false),
JUNGLE_WALL_SIGN("minecraft:jungle_wall_sign", (short) 3766, 1.0, 1.0, false, false),
DARK_OAK_WALL_SIGN("minecraft:dark_oak_wall_sign", (short) 3774, 1.0, 1.0, false, false),
LEVER("minecraft:lever", (short) 3790, 0.5, 0.5, false, false),
STONE_PRESSURE_PLATE("minecraft:stone_pressure_plate", (short) 3806, 0.5, 0.5, false, false),
IRON_DOOR("minecraft:iron_door", (short) 3818, 5.0, 5.0, false, true),
OAK_PRESSURE_PLATE("minecraft:oak_pressure_plate", (short) 3872, 0.5, 0.5, false, false),
SPRUCE_PRESSURE_PLATE("minecraft:spruce_pressure_plate", (short) 3874, 0.5, 0.5, false, false),
BIRCH_PRESSURE_PLATE("minecraft:birch_pressure_plate", (short) 3876, 0.5, 0.5, false, false),
JUNGLE_PRESSURE_PLATE("minecraft:jungle_pressure_plate", (short) 3878, 0.5, 0.5, false, false),
ACACIA_PRESSURE_PLATE("minecraft:acacia_pressure_plate", (short) 3880, 0.5, 0.5, false, false),
DARK_OAK_PRESSURE_PLATE("minecraft:dark_oak_pressure_plate", (short) 3882, 0.5, 0.5, false, false),
REDSTONE_ORE("minecraft:redstone_ore", (short) 3884, 3.0, 3.0, false, true),
REDSTONE_TORCH("minecraft:redstone_torch", (short) 3885, 0.0, 0.0, false, false),
REDSTONE_WALL_TORCH("minecraft:redstone_wall_torch", (short) 3887, 0.0, 0.0, false, false),
STONE_BUTTON("minecraft:stone_button", (short) 3904, 0.5, 0.5, false, false),
SNOW("minecraft:snow", (short) 3919, 0.1, 0.1, false, true),
ICE("minecraft:ice", (short) 3927, 0.5, 0.5, false, true),
SNOW_BLOCK("minecraft:snow_block", (short) 3928, 0.2, 0.2, false, true),
CACTUS("minecraft:cactus", (short) 3929, 0.4, 0.4, false, true),
CLAY("minecraft:clay", (short) 3945, 0.6, 0.6, false, true),
SUGAR_CANE("minecraft:sugar_cane", (short) 3946, 0.0, 0.0, false, false),
JUKEBOX("minecraft:jukebox", (short) 3963, 2.0, 6.0, false, true),
OAK_FENCE("minecraft:oak_fence", (short) 3995, 2.0, 3.0, false, true),
PUMPKIN("minecraft:pumpkin", (short) 3996, 1.0, 1.0, false, true),
NETHERRACK("minecraft:netherrack", (short) 3997, 0.4, 0.4, false, true),
SOUL_SAND("minecraft:soul_sand", (short) 3998, 0.5, 0.5, false, true),
GLOWSTONE("minecraft:glowstone", (short) 3999, 0.3, 0.3, false, true),
NETHER_PORTAL("minecraft:nether_portal", (short) 4000, 0.0, -1.0, false, false),
CARVED_PUMPKIN("minecraft:carved_pumpkin", (short) 4002, 1.0, 1.0, false, true),
JACK_O_LANTERN("minecraft:jack_o_lantern", (short) 4006, 1.0, 1.0, false, true),
CAKE("minecraft:cake", (short) 4010, 0.5, 0.5, false, false),
REPEATER("minecraft:repeater", (short) 4020, 0.0, 0.0, false, false),
WHITE_STAINED_GLASS("minecraft:white_stained_glass", (short) 4081, 0.3, 0.3, false, true),
ORANGE_STAINED_GLASS("minecraft:orange_stained_glass", (short) 4082, 0.3, 0.3, false, true),
MAGENTA_STAINED_GLASS("minecraft:magenta_stained_glass", (short) 4083, 0.3, 0.3, false, true),
LIGHT_BLUE_STAINED_GLASS("minecraft:light_blue_stained_glass", (short) 4084, 0.3, 0.3, false, true),
YELLOW_STAINED_GLASS("minecraft:yellow_stained_glass", (short) 4085, 0.3, 0.3, false, true),
LIME_STAINED_GLASS("minecraft:lime_stained_glass", (short) 4086, 0.3, 0.3, false, true),
PINK_STAINED_GLASS("minecraft:pink_stained_glass", (short) 4087, 0.3, 0.3, false, true),
GRAY_STAINED_GLASS("minecraft:gray_stained_glass", (short) 4088, 0.3, 0.3, false, true),
LIGHT_GRAY_STAINED_GLASS("minecraft:light_gray_stained_glass", (short) 4089, 0.3, 0.3, false, true),
CYAN_STAINED_GLASS("minecraft:cyan_stained_glass", (short) 4090, 0.3, 0.3, false, true),
PURPLE_STAINED_GLASS("minecraft:purple_stained_glass", (short) 4091, 0.3, 0.3, false, true),
BLUE_STAINED_GLASS("minecraft:blue_stained_glass", (short) 4092, 0.3, 0.3, false, true),
BROWN_STAINED_GLASS("minecraft:brown_stained_glass", (short) 4093, 0.3, 0.3, false, true),
GREEN_STAINED_GLASS("minecraft:green_stained_glass", (short) 4094, 0.3, 0.3, false, true),
RED_STAINED_GLASS("minecraft:red_stained_glass", (short) 4095, 0.3, 0.3, false, true),
BLACK_STAINED_GLASS("minecraft:black_stained_glass", (short) 4096, 0.3, 0.3, false, true),
OAK_TRAPDOOR("minecraft:oak_trapdoor", (short) 4112, 3.0, 3.0, false, true),
SPRUCE_TRAPDOOR("minecraft:spruce_trapdoor", (short) 4176, 3.0, 3.0, false, true),
BIRCH_TRAPDOOR("minecraft:birch_trapdoor", (short) 4240, 3.0, 3.0, false, true),
JUNGLE_TRAPDOOR("minecraft:jungle_trapdoor", (short) 4304, 3.0, 3.0, false, true),
ACACIA_TRAPDOOR("minecraft:acacia_trapdoor", (short) 4368, 3.0, 3.0, false, true),
DARK_OAK_TRAPDOOR("minecraft:dark_oak_trapdoor", (short) 4432, 3.0, 3.0, false, true),
STONE_BRICKS("minecraft:stone_bricks", (short) 4481, 1.5, 6.0, false, true),
MOSSY_STONE_BRICKS("minecraft:mossy_stone_bricks", (short) 4482, 1.5, 6.0, false, true),
CRACKED_STONE_BRICKS("minecraft:cracked_stone_bricks", (short) 4483, 1.5, 6.0, false, true),
CHISELED_STONE_BRICKS("minecraft:chiseled_stone_bricks", (short) 4484, 1.5, 6.0, false, true),
INFESTED_STONE("minecraft:infested_stone", (short) 4485, 0.0, 0.75, false, true),
INFESTED_COBBLESTONE("minecraft:infested_cobblestone", (short) 4486, 0.0, 0.75, false, true),
INFESTED_STONE_BRICKS("minecraft:infested_stone_bricks", (short) 4487, 0.0, 0.75, false, true),
INFESTED_MOSSY_STONE_BRICKS("minecraft:infested_mossy_stone_bricks", (short) 4488, 0.0, 0.75, false, true),
INFESTED_CRACKED_STONE_BRICKS("minecraft:infested_cracked_stone_bricks", (short) 4489, 0.0, 0.75, false, true),
INFESTED_CHISELED_STONE_BRICKS("minecraft:infested_chiseled_stone_bricks", (short) 4490, 0.0, 0.75, false, true),
BROWN_MUSHROOM_BLOCK("minecraft:brown_mushroom_block", (short) 4491, 0.2, 0.2, false, true),
RED_MUSHROOM_BLOCK("minecraft:red_mushroom_block", (short) 4555, 0.2, 0.2, false, true),
MUSHROOM_STEM("minecraft:mushroom_stem", (short) 4619, 0.2, 0.2, false, true),
IRON_BARS("minecraft:iron_bars", (short) 4714, 5.0, 6.0, false, true),
GLASS_PANE("minecraft:glass_pane", (short) 4746, 0.3, 0.3, false, true),
MELON("minecraft:melon", (short) 4747, 1.0, 1.0, false, true),
ATTACHED_PUMPKIN_STEM("minecraft:attached_pumpkin_stem", (short) 4748, 0.0, 0.0, false, false),
ATTACHED_MELON_STEM("minecraft:attached_melon_stem", (short) 4752, 0.0, 0.0, false, false),
PUMPKIN_STEM("minecraft:pumpkin_stem", (short) 4756, 0.0, 0.0, false, false),
MELON_STEM("minecraft:melon_stem", (short) 4764, 0.0, 0.0, false, false),
VINE("minecraft:vine", (short) 4803, 0.2, 0.2, false, false),
OAK_FENCE_GATE("minecraft:oak_fence_gate", (short) 4811, 2.0, 3.0, false, true),
BRICK_STAIRS("minecraft:brick_stairs", (short) 4847, 2.0, 6.0, false, true),
STONE_BRICK_STAIRS("minecraft:stone_brick_stairs", (short) 4927, 1.5, 6.0, false, true),
MYCELIUM("minecraft:mycelium", (short) 4997, 0.6, 0.6, false, true),
LILY_PAD("minecraft:lily_pad", (short) 4998, 0.0, 0.0, false, true),
NETHER_BRICKS("minecraft:nether_bricks", (short) 4999, 2.0, 6.0, false, true),
NETHER_BRICK_FENCE("minecraft:nether_brick_fence", (short) 5031, 2.0, 6.0, false, true),
NETHER_BRICK_STAIRS("minecraft:nether_brick_stairs", (short) 5043, 2.0, 6.0, false, true),
NETHER_WART("minecraft:nether_wart", (short) 5112, 0.0, 0.0, false, false),
ENCHANTING_TABLE("minecraft:enchanting_table", (short) 5116, 5.0, 1200.0, false, true),
BREWING_STAND("minecraft:brewing_stand", (short) 5124, 0.5, 0.5, false, true),
CAULDRON("minecraft:cauldron", (short) 5125, 2.0, 2.0, false, true),
END_PORTAL("minecraft:end_portal", (short) 5129, 0.0, 3600000.0, false, false),
END_PORTAL_FRAME("minecraft:end_portal_frame", (short) 5134, 0.0, 3600000.0, false, true),
END_STONE("minecraft:end_stone", (short) 5138, 3.0, 9.0, false, true),
DRAGON_EGG("minecraft:dragon_egg", (short) 5139, 3.0, 9.0, false, true),
REDSTONE_LAMP("minecraft:redstone_lamp", (short) 5141, 0.3, 0.3, false, true),
COCOA("minecraft:cocoa", (short) 5142, 0.2, 3.0, false, true),
SANDSTONE_STAIRS("minecraft:sandstone_stairs", (short) 5165, 0.8, 0.8, false, true),
EMERALD_ORE("minecraft:emerald_ore", (short) 5234, 3.0, 3.0, false, true),
ENDER_CHEST("minecraft:ender_chest", (short) 5236, 22.5, 600.0, false, true),
TRIPWIRE_HOOK("minecraft:tripwire_hook", (short) 5252, 0.0, 0.0, false, false),
TRIPWIRE("minecraft:tripwire", (short) 5386, 0.0, 0.0, false, false),
EMERALD_BLOCK("minecraft:emerald_block", (short) 5387, 5.0, 6.0, false, true),
SPRUCE_STAIRS("minecraft:spruce_stairs", (short) 5399, 2.0, 3.0, false, true),
BIRCH_STAIRS("minecraft:birch_stairs", (short) 5479, 2.0, 3.0, false, true),
JUNGLE_STAIRS("minecraft:jungle_stairs", (short) 5559, 2.0, 3.0, false, true),
COMMAND_BLOCK("minecraft:command_block", (short) 5634, 0.0, 3600000.0, false, true),
BEACON("minecraft:beacon", (short) 5640, 3.0, 3.0, false, true),
COBBLESTONE_WALL("minecraft:cobblestone_wall", (short) 5700, 2.0, 6.0, false, true),
MOSSY_COBBLESTONE_WALL("minecraft:mossy_cobblestone_wall", (short) 5764, 2.0, 6.0, false, true),
FLOWER_POT("minecraft:flower_pot", (short) 5769, 0.0, 0.0, false, true),
POTTED_OAK_SAPLING("minecraft:potted_oak_sapling", (short) 5770, 0.0, 0.0, false, true),
POTTED_SPRUCE_SAPLING("minecraft:potted_spruce_sapling", (short) 5771, 0.0, 0.0, false, true),
POTTED_BIRCH_SAPLING("minecraft:potted_birch_sapling", (short) 5772, 0.0, 0.0, false, true),
POTTED_JUNGLE_SAPLING("minecraft:potted_jungle_sapling", (short) 5773, 0.0, 0.0, false, true),
POTTED_ACACIA_SAPLING("minecraft:potted_acacia_sapling", (short) 5774, 0.0, 0.0, false, true),
POTTED_DARK_OAK_SAPLING("minecraft:potted_dark_oak_sapling", (short) 5775, 0.0, 0.0, false, true),
POTTED_FERN("minecraft:potted_fern", (short) 5776, 0.0, 0.0, false, true),
POTTED_DANDELION("minecraft:potted_dandelion", (short) 5777, 0.0, 0.0, false, false),
POTTED_POPPY("minecraft:potted_poppy", (short) 5778, 0.0, 0.0, false, true),
POTTED_BLUE_ORCHID("minecraft:potted_blue_orchid", (short) 5779, 0.0, 0.0, false, true),
POTTED_ALLIUM("minecraft:potted_allium", (short) 5780, 0.0, 0.0, false, true),
POTTED_AZURE_BLUET("minecraft:potted_azure_bluet", (short) 5781, 0.0, 0.0, false, true),
POTTED_RED_TULIP("minecraft:potted_red_tulip", (short) 5782, 0.0, 0.0, false, true),
POTTED_ORANGE_TULIP("minecraft:potted_orange_tulip", (short) 5783, 0.0, 0.0, false, true),
POTTED_WHITE_TULIP("minecraft:potted_white_tulip", (short) 5784, 0.0, 0.0, false, true),
POTTED_PINK_TULIP("minecraft:potted_pink_tulip", (short) 5785, 0.0, 0.0, false, true),
POTTED_OXEYE_DAISY("minecraft:potted_oxeye_daisy", (short) 5786, 0.0, 0.0, false, true),
POTTED_CORNFLOWER("minecraft:potted_cornflower", (short) 5787, 0.0, 0.0, false, true),
POTTED_LILY_OF_THE_VALLEY("minecraft:potted_lily_of_the_valley", (short) 5788, 0.0, 0.0, false, true),
POTTED_WITHER_ROSE("minecraft:potted_wither_rose", (short) 5789, 0.0, 0.0, false, true),
POTTED_RED_MUSHROOM("minecraft:potted_red_mushroom", (short) 5790, 0.0, 0.0, false, true),
POTTED_BROWN_MUSHROOM("minecraft:potted_brown_mushroom", (short) 5791, 0.0, 0.0, false, true),
POTTED_DEAD_BUSH("minecraft:potted_dead_bush", (short) 5792, 0.0, 0.0, false, true),
POTTED_CACTUS("minecraft:potted_cactus", (short) 5793, 0.0, 0.0, false, true),
CARROTS("minecraft:carrots", (short) 5794, 0.0, 0.0, false, false),
POTATOES("minecraft:potatoes", (short) 5802, 0.0, 0.0, false, false),
OAK_BUTTON("minecraft:oak_button", (short) 5819, 0.5, 0.5, false, false),
SPRUCE_BUTTON("minecraft:spruce_button", (short) 5843, 0.5, 0.5, false, false),
BIRCH_BUTTON("minecraft:birch_button", (short) 5867, 0.5, 0.5, false, false),
JUNGLE_BUTTON("minecraft:jungle_button", (short) 5891, 0.5, 0.5, false, false),
ACACIA_BUTTON("minecraft:acacia_button", (short) 5915, 0.5, 0.5, false, false),
DARK_OAK_BUTTON("minecraft:dark_oak_button", (short) 5939, 0.5, 0.5, false, false),
SKELETON_SKULL("minecraft:skeleton_skull", (short) 5954, 1.0, 1.0, false, true),
SKELETON_WALL_SKULL("minecraft:skeleton_wall_skull", (short) 5970, 1.0, 1.0, false, true),
WITHER_SKELETON_SKULL("minecraft:wither_skeleton_skull", (short) 5974, 1.0, 1.0, false, true),
WITHER_SKELETON_WALL_SKULL("minecraft:wither_skeleton_wall_skull", (short) 5990, 1.0, 1.0, false, true),
ZOMBIE_HEAD("minecraft:zombie_head", (short) 5994, 1.0, 1.0, false, true),
ZOMBIE_WALL_HEAD("minecraft:zombie_wall_head", (short) 6010, 1.0, 1.0, false, true),
PLAYER_HEAD("minecraft:player_head", (short) 6014, 1.0, 1.0, false, true),
PLAYER_WALL_HEAD("minecraft:player_wall_head", (short) 6030, 1.0, 1.0, false, true),
CREEPER_HEAD("minecraft:creeper_head", (short) 6034, 1.0, 1.0, false, true),
CREEPER_WALL_HEAD("minecraft:creeper_wall_head", (short) 6050, 1.0, 1.0, false, true),
DRAGON_HEAD("minecraft:dragon_head", (short) 6054, 1.0, 1.0, false, true),
DRAGON_WALL_HEAD("minecraft:dragon_wall_head", (short) 6070, 1.0, 1.0, false, true),
ANVIL("minecraft:anvil", (short) 6074, 5.0, 1200.0, false, true),
CHIPPED_ANVIL("minecraft:chipped_anvil", (short) 6078, 5.0, 1200.0, false, true),
DAMAGED_ANVIL("minecraft:damaged_anvil", (short) 6082, 5.0, 1200.0, false, true),
TRAPPED_CHEST("minecraft:trapped_chest", (short) 6087, 2.5, 2.5, false, true),
LIGHT_WEIGHTED_PRESSURE_PLATE("minecraft:light_weighted_pressure_plate", (short) 6110, 0.5, 0.5, false, false),
HEAVY_WEIGHTED_PRESSURE_PLATE("minecraft:heavy_weighted_pressure_plate", (short) 6126, 0.5, 0.5, false, false),
COMPARATOR("minecraft:comparator", (short) 6143, 0.0, 0.0, false, false),
DAYLIGHT_DETECTOR("minecraft:daylight_detector", (short) 6174, 0.2, 0.2, false, true),
REDSTONE_BLOCK("minecraft:redstone_block", (short) 6190, 5.0, 6.0, false, true),
NETHER_QUARTZ_ORE("minecraft:nether_quartz_ore", (short) 6191, 3.0, 3.0, false, true),
HOPPER("minecraft:hopper", (short) 6192, 3.0, 4.8, false, true),
QUARTZ_BLOCK("minecraft:quartz_block", (short) 6202, 0.8, 0.8, false, true),
CHISELED_QUARTZ_BLOCK("minecraft:chiseled_quartz_block", (short) 6203, 0.8, 0.8, false, true),
QUARTZ_PILLAR("minecraft:quartz_pillar", (short) 6205, 0.8, 0.8, false, true),
QUARTZ_STAIRS("minecraft:quartz_stairs", (short) 6218, 0.8, 0.8, false, true),
ACTIVATOR_RAIL("minecraft:activator_rail", (short) 6293, 0.7, 0.7, false, false),
DROPPER("minecraft:dropper", (short) 6300, 3.5, 3.5, false, true),
WHITE_TERRACOTTA("minecraft:white_terracotta", (short) 6311, 1.25, 4.2, false, true),
ORANGE_TERRACOTTA("minecraft:orange_terracotta", (short) 6312, 1.25, 4.2, false, true),
MAGENTA_TERRACOTTA("minecraft:magenta_terracotta", (short) 6313, 1.25, 4.2, false, true),
LIGHT_BLUE_TERRACOTTA("minecraft:light_blue_terracotta", (short) 6314, 1.25, 4.2, false, true),
YELLOW_TERRACOTTA("minecraft:yellow_terracotta", (short) 6315, 1.25, 4.2, false, true),
LIME_TERRACOTTA("minecraft:lime_terracotta", (short) 6316, 1.25, 4.2, false, true),
PINK_TERRACOTTA("minecraft:pink_terracotta", (short) 6317, 1.25, 4.2, false, true),
GRAY_TERRACOTTA("minecraft:gray_terracotta", (short) 6318, 1.25, 4.2, false, true),
LIGHT_GRAY_TERRACOTTA("minecraft:light_gray_terracotta", (short) 6319, 1.25, 4.2, false, true),
CYAN_TERRACOTTA("minecraft:cyan_terracotta", (short) 6320, 1.25, 4.2, false, true),
PURPLE_TERRACOTTA("minecraft:purple_terracotta", (short) 6321, 1.25, 4.2, false, true),
BLUE_TERRACOTTA("minecraft:blue_terracotta", (short) 6322, 1.25, 4.2, false, true),
BROWN_TERRACOTTA("minecraft:brown_terracotta", (short) 6323, 1.25, 4.2, false, true),
GREEN_TERRACOTTA("minecraft:green_terracotta", (short) 6324, 1.25, 4.2, false, true),
RED_TERRACOTTA("minecraft:red_terracotta", (short) 6325, 1.25, 4.2, false, true),
BLACK_TERRACOTTA("minecraft:black_terracotta", (short) 6326, 1.25, 4.2, false, true),
WHITE_STAINED_GLASS_PANE("minecraft:white_stained_glass_pane", (short) 6358, 0.3, 0.3, false, true),
ORANGE_STAINED_GLASS_PANE("minecraft:orange_stained_glass_pane", (short) 6390, 0.3, 0.3, false, true),
MAGENTA_STAINED_GLASS_PANE("minecraft:magenta_stained_glass_pane", (short) 6422, 0.3, 0.3, false, true),
LIGHT_BLUE_STAINED_GLASS_PANE("minecraft:light_blue_stained_glass_pane", (short) 6454, 0.3, 0.3, false, true),
YELLOW_STAINED_GLASS_PANE("minecraft:yellow_stained_glass_pane", (short) 6486, 0.3, 0.3, false, true),
LIME_STAINED_GLASS_PANE("minecraft:lime_stained_glass_pane", (short) 6518, 0.3, 0.3, false, true),
PINK_STAINED_GLASS_PANE("minecraft:pink_stained_glass_pane", (short) 6550, 0.3, 0.3, false, true),
GRAY_STAINED_GLASS_PANE("minecraft:gray_stained_glass_pane", (short) 6582, 0.3, 0.3, false, true),
LIGHT_GRAY_STAINED_GLASS_PANE("minecraft:light_gray_stained_glass_pane", (short) 6614, 0.3, 0.3, false, true),
CYAN_STAINED_GLASS_PANE("minecraft:cyan_stained_glass_pane", (short) 6646, 0.3, 0.3, false, true),
PURPLE_STAINED_GLASS_PANE("minecraft:purple_stained_glass_pane", (short) 6678, 0.3, 0.3, false, true),
BLUE_STAINED_GLASS_PANE("minecraft:blue_stained_glass_pane", (short) 6710, 0.3, 0.3, false, true),
BROWN_STAINED_GLASS_PANE("minecraft:brown_stained_glass_pane", (short) 6742, 0.3, 0.3, false, true),
GREEN_STAINED_GLASS_PANE("minecraft:green_stained_glass_pane", (short) 6774, 0.3, 0.3, false, true),
RED_STAINED_GLASS_PANE("minecraft:red_stained_glass_pane", (short) 6806, 0.3, 0.3, false, true),
BLACK_STAINED_GLASS_PANE("minecraft:black_stained_glass_pane", (short) 6838, 0.3, 0.3, false, true),
ACACIA_STAIRS("minecraft:acacia_stairs", (short) 6850, 2.0, 3.0, false, true),
DARK_OAK_STAIRS("minecraft:dark_oak_stairs", (short) 6930, 2.0, 3.0, false, true),
SLIME_BLOCK("minecraft:slime_block", (short) 6999, 0.0, 0.0, false, true),
BARRIER("minecraft:barrier", (short) 7000, 0.0, 3600000.75, false, true),
IRON_TRAPDOOR("minecraft:iron_trapdoor", (short) 7016, 5.0, 5.0, false, true),
PRISMARINE("minecraft:prismarine", (short) 7065, 1.5, 6.0, false, true),
PRISMARINE_BRICKS("minecraft:prismarine_bricks", (short) 7066, 1.5, 6.0, false, true),
DARK_PRISMARINE("minecraft:dark_prismarine", (short) 7067, 1.5, 6.0, false, true),
PRISMARINE_STAIRS("minecraft:prismarine_stairs", (short) 7079, 1.5, 6.0, false, true),
PRISMARINE_BRICK_STAIRS("minecraft:prismarine_brick_stairs", (short) 7159, 1.5, 6.0, false, true),
DARK_PRISMARINE_STAIRS("minecraft:dark_prismarine_stairs", (short) 7239, 1.5, 6.0, false, true),
PRISMARINE_SLAB("minecraft:prismarine_slab", (short) 7311, 1.5, 6.0, false, true),
PRISMARINE_BRICK_SLAB("minecraft:prismarine_brick_slab", (short) 7317, 1.5, 6.0, false, true),
DARK_PRISMARINE_SLAB("minecraft:dark_prismarine_slab", (short) 7323, 1.5, 6.0, false, true),
SEA_LANTERN("minecraft:sea_lantern", (short) 7326, 0.3, 0.3, false, true),
HAY_BLOCK("minecraft:hay_block", (short) 7328, 0.5, 0.5, false, true),
WHITE_CARPET("minecraft:white_carpet", (short) 7330, 0.1, 0.1, false, true),
ORANGE_CARPET("minecraft:orange_carpet", (short) 7331, 0.1, 0.1, false, true),
MAGENTA_CARPET("minecraft:magenta_carpet", (short) 7332, 0.1, 0.1, false, true),
LIGHT_BLUE_CARPET("minecraft:light_blue_carpet", (short) 7333, 0.1, 0.1, false, true),
YELLOW_CARPET("minecraft:yellow_carpet", (short) 7334, 0.1, 0.1, false, true),
LIME_CARPET("minecraft:lime_carpet", (short) 7335, 0.1, 0.1, false, true),
PINK_CARPET("minecraft:pink_carpet", (short) 7336, 0.1, 0.1, false, true),
GRAY_CARPET("minecraft:gray_carpet", (short) 7337, 0.1, 0.1, false, true),
LIGHT_GRAY_CARPET("minecraft:light_gray_carpet", (short) 7338, 0.1, 0.1, false, true),
CYAN_CARPET("minecraft:cyan_carpet", (short) 7339, 0.1, 0.1, false, true),
PURPLE_CARPET("minecraft:purple_carpet", (short) 7340, 0.1, 0.1, false, true),
BLUE_CARPET("minecraft:blue_carpet", (short) 7341, 0.1, 0.1, false, true),
BROWN_CARPET("minecraft:brown_carpet", (short) 7342, 0.1, 0.1, false, true),
GREEN_CARPET("minecraft:green_carpet", (short) 7343, 0.1, 0.1, false, true),
RED_CARPET("minecraft:red_carpet", (short) 7344, 0.1, 0.1, false, true),
BLACK_CARPET("minecraft:black_carpet", (short) 7345, 0.1, 0.1, false, true),
TERRACOTTA("minecraft:terracotta", (short) 7346, 1.25, 4.2, false, true),
COAL_BLOCK("minecraft:coal_block", (short) 7347, 5.0, 6.0, false, true),
PACKED_ICE("minecraft:packed_ice", (short) 7348, 0.5, 0.5, false, true),
SUNFLOWER("minecraft:sunflower", (short) 7350, 0.0, 0.0, false, false),
LILAC("minecraft:lilac", (short) 7352, 0.0, 0.0, false, false),
ROSE_BUSH("minecraft:rose_bush", (short) 7354, 0.0, 0.0, false, false),
PEONY("minecraft:peony", (short) 7356, 0.0, 0.0, false, true),
TALL_GRASS("minecraft:tall_grass", (short) 7358, 0.0, 0.0, false, false),
LARGE_FERN("minecraft:large_fern", (short) 7360, 0.0, 0.0, false, false),
WHITE_BANNER("minecraft:white_banner", (short) 7361, 1.0, 1.0, false, false),
ORANGE_BANNER("minecraft:orange_banner", (short) 7377, 1.0, 1.0, false, false),
MAGENTA_BANNER("minecraft:magenta_banner", (short) 7393, 1.0, 1.0, false, false),
LIGHT_BLUE_BANNER("minecraft:light_blue_banner", (short) 7409, 1.0, 1.0, false, false),
YELLOW_BANNER("minecraft:yellow_banner", (short) 7425, 1.0, 1.0, false, false),
LIME_BANNER("minecraft:lime_banner", (short) 7441, 1.0, 1.0, false, false),
PINK_BANNER("minecraft:pink_banner", (short) 7457, 1.0, 1.0, false, false),
GRAY_BANNER("minecraft:gray_banner", (short) 7473, 1.0, 1.0, false, false),
LIGHT_GRAY_BANNER("minecraft:light_gray_banner", (short) 7489, 1.0, 1.0, false, false),
CYAN_BANNER("minecraft:cyan_banner", (short) 7505, 1.0, 1.0, false, false),
PURPLE_BANNER("minecraft:purple_banner", (short) 7521, 1.0, 1.0, false, false),
BLUE_BANNER("minecraft:blue_banner", (short) 7537, 1.0, 1.0, false, false),
BROWN_BANNER("minecraft:brown_banner", (short) 7553, 1.0, 1.0, false, false),
GREEN_BANNER("minecraft:green_banner", (short) 7569, 1.0, 1.0, false, false),
RED_BANNER("minecraft:red_banner", (short) 7585, 1.0, 1.0, false, false),
BLACK_BANNER("minecraft:black_banner", (short) 7601, 1.0, 1.0, false, false),
WHITE_WALL_BANNER("minecraft:white_wall_banner", (short) 7617, 1.0, 1.0, false, false),
ORANGE_WALL_BANNER("minecraft:orange_wall_banner", (short) 7621, 1.0, 1.0, false, false),
MAGENTA_WALL_BANNER("minecraft:magenta_wall_banner", (short) 7625, 1.0, 1.0, false, false),
LIGHT_BLUE_WALL_BANNER("minecraft:light_blue_wall_banner", (short) 7629, 1.0, 1.0, false, false),
YELLOW_WALL_BANNER("minecraft:yellow_wall_banner", (short) 7633, 1.0, 1.0, false, false),
LIME_WALL_BANNER("minecraft:lime_wall_banner", (short) 7637, 1.0, 1.0, false, false),
PINK_WALL_BANNER("minecraft:pink_wall_banner", (short) 7641, 1.0, 1.0, false, false),
GRAY_WALL_BANNER("minecraft:gray_wall_banner", (short) 7645, 1.0, 1.0, false, false),
LIGHT_GRAY_WALL_BANNER("minecraft:light_gray_wall_banner", (short) 7649, 1.0, 1.0, false, false),
CYAN_WALL_BANNER("minecraft:cyan_wall_banner", (short) 7653, 1.0, 1.0, false, false),
PURPLE_WALL_BANNER("minecraft:purple_wall_banner", (short) 7657, 1.0, 1.0, false, false),
BLUE_WALL_BANNER("minecraft:blue_wall_banner", (short) 7661, 1.0, 1.0, false, false),
BROWN_WALL_BANNER("minecraft:brown_wall_banner", (short) 7665, 1.0, 1.0, false, false),
GREEN_WALL_BANNER("minecraft:green_wall_banner", (short) 7669, 1.0, 1.0, false, false),
RED_WALL_BANNER("minecraft:red_wall_banner", (short) 7673, 1.0, 1.0, false, false),
BLACK_WALL_BANNER("minecraft:black_wall_banner", (short) 7677, 1.0, 1.0, false, false),
RED_SANDSTONE("minecraft:red_sandstone", (short) 7681, 0.8, 0.8, false, true),
CHISELED_RED_SANDSTONE("minecraft:chiseled_red_sandstone", (short) 7682, 0.8, 0.8, false, true),
CUT_RED_SANDSTONE("minecraft:cut_red_sandstone", (short) 7683, 0.8, 0.8, false, true),
RED_SANDSTONE_STAIRS("minecraft:red_sandstone_stairs", (short) 7695, 0.8, 0.8, false, true),
OAK_SLAB("minecraft:oak_slab", (short) 7767, 2.0, 3.0, false, true),
SPRUCE_SLAB("minecraft:spruce_slab", (short) 7773, 2.0, 3.0, false, true),
BIRCH_SLAB("minecraft:birch_slab", (short) 7779, 2.0, 3.0, false, true),
JUNGLE_SLAB("minecraft:jungle_slab", (short) 7785, 2.0, 3.0, false, true),
ACACIA_SLAB("minecraft:acacia_slab", (short) 7791, 2.0, 3.0, false, true),
DARK_OAK_SLAB("minecraft:dark_oak_slab", (short) 7797, 2.0, 3.0, false, true),
STONE_SLAB("minecraft:stone_slab", (short) 7803, 2.0, 6.0, false, true),
SMOOTH_STONE_SLAB("minecraft:smooth_stone_slab", (short) 7809, 2.0, 6.0, false, true),
SANDSTONE_SLAB("minecraft:sandstone_slab", (short) 7815, 2.0, 6.0, false, true),
CUT_SANDSTONE_SLAB("minecraft:cut_sandstone_slab", (short) 7821, 2.0, 6.0, false, true),
PETRIFIED_OAK_SLAB("minecraft:petrified_oak_slab", (short) 7827, 2.0, 6.0, false, true),
COBBLESTONE_SLAB("minecraft:cobblestone_slab", (short) 7833, 2.0, 6.0, false, true),
BRICK_SLAB("minecraft:brick_slab", (short) 7839, 2.0, 6.0, false, true),
STONE_BRICK_SLAB("minecraft:stone_brick_slab", (short) 7845, 2.0, 6.0, false, true),
NETHER_BRICK_SLAB("minecraft:nether_brick_slab", (short) 7851, 2.0, 6.0, false, true),
QUARTZ_SLAB("minecraft:quartz_slab", (short) 7857, 2.0, 6.0, false, true),
RED_SANDSTONE_SLAB("minecraft:red_sandstone_slab", (short) 7863, 2.0, 6.0, false, true),
CUT_RED_SANDSTONE_SLAB("minecraft:cut_red_sandstone_slab", (short) 7869, 2.0, 6.0, false, true),
PURPUR_SLAB("minecraft:purpur_slab", (short) 7875, 2.0, 6.0, false, true),
SMOOTH_STONE("minecraft:smooth_stone", (short) 7878, 2.0, 6.0, false, true),
SMOOTH_SANDSTONE("minecraft:smooth_sandstone", (short) 7879, 2.0, 6.0, false, true),
SMOOTH_QUARTZ("minecraft:smooth_quartz", (short) 7880, 2.0, 6.0, false, true),
SMOOTH_RED_SANDSTONE("minecraft:smooth_red_sandstone", (short) 7881, 2.0, 6.0, false, true),
SPRUCE_FENCE_GATE("minecraft:spruce_fence_gate", (short) 7889, 2.0, 3.0, false, true),
BIRCH_FENCE_GATE("minecraft:birch_fence_gate", (short) 7921, 2.0, 3.0, false, true),
JUNGLE_FENCE_GATE("minecraft:jungle_fence_gate", (short) 7953, 2.0, 3.0, false, true),
ACACIA_FENCE_GATE("minecraft:acacia_fence_gate", (short) 7985, 2.0, 3.0, false, true),
DARK_OAK_FENCE_GATE("minecraft:dark_oak_fence_gate", (short) 8017, 2.0, 3.0, false, true),
SPRUCE_FENCE("minecraft:spruce_fence", (short) 8073, 2.0, 3.0, false, true),
BIRCH_FENCE("minecraft:birch_fence", (short) 8105, 2.0, 3.0, false, true),
JUNGLE_FENCE("minecraft:jungle_fence", (short) 8137, 2.0, 3.0, false, true),
ACACIA_FENCE("minecraft:acacia_fence", (short) 8169, 2.0, 3.0, false, true),
DARK_OAK_FENCE("minecraft:dark_oak_fence", (short) 8201, 2.0, 3.0, false, true),
SPRUCE_DOOR("minecraft:spruce_door", (short) 8213, 3.0, 3.0, false, true),
BIRCH_DOOR("minecraft:birch_door", (short) 8277, 3.0, 3.0, false, true),
JUNGLE_DOOR("minecraft:jungle_door", (short) 8341, 3.0, 3.0, false, true),
ACACIA_DOOR("minecraft:acacia_door", (short) 8405, 3.0, 3.0, false, true),
DARK_OAK_DOOR("minecraft:dark_oak_door", (short) 8469, 3.0, 3.0, false, true),
END_ROD("minecraft:end_rod", (short) 8526, 0.0, 0.0, false, true),
CHORUS_PLANT("minecraft:chorus_plant", (short) 8591, 0.4, 0.4, false, true),
CHORUS_FLOWER("minecraft:chorus_flower", (short) 8592, 0.4, 0.4, false, true),
PURPUR_BLOCK("minecraft:purpur_block", (short) 8598, 1.5, 6.0, false, true),
PURPUR_PILLAR("minecraft:purpur_pillar", (short) 8600, 1.5, 6.0, false, true),
PURPUR_STAIRS("minecraft:purpur_stairs", (short) 8613, 1.5, 6.0, false, true),
END_STONE_BRICKS("minecraft:end_stone_bricks", (short) 8682, 3.0, 9.0, false, true),
BEETROOTS("minecraft:beetroots", (short) 8683, 0.0, 0.0, false, false),
GRASS_PATH("minecraft:grass_path", (short) 8687, 0.65, 0.65, false, true),
END_GATEWAY("minecraft:end_gateway", (short) 8688, 0.0, 3600000.0, false, false),
REPEATING_COMMAND_BLOCK("minecraft:repeating_command_block", (short) 8695, 0.0, 3600000.0, false, true),
CHAIN_COMMAND_BLOCK("minecraft:chain_command_block", (short) 8707, 0.0, 3600000.0, false, true),
FROSTED_ICE("minecraft:frosted_ice", (short) 8713, 0.5, 0.5, false, true),
MAGMA_BLOCK("minecraft:magma_block", (short) 8717, 0.5, 0.5, false, true),
NETHER_WART_BLOCK("minecraft:nether_wart_block", (short) 8718, 1.0, 1.0, false, true),
RED_NETHER_BRICKS("minecraft:red_nether_bricks", (short) 8719, 2.0, 6.0, false, true),
BONE_BLOCK("minecraft:bone_block", (short) 8721, 2.0, 2.0, false, true),
STRUCTURE_VOID("minecraft:structure_void", (short) 8723, 0.0, 0.0, false, true),
OBSERVER("minecraft:observer", (short) 8729, 3.0, 3.0, false, true),
SHULKER_BOX("minecraft:shulker_box", (short) 8740, 2.0, 2.0, false, true),
WHITE_SHULKER_BOX("minecraft:white_shulker_box", (short) 8746, 2.0, 2.0, false, true),
ORANGE_SHULKER_BOX("minecraft:orange_shulker_box", (short) 8752, 2.0, 2.0, false, true),
MAGENTA_SHULKER_BOX("minecraft:magenta_shulker_box", (short) 8758, 2.0, 2.0, false, true),
LIGHT_BLUE_SHULKER_BOX("minecraft:light_blue_shulker_box", (short) 8764, 2.0, 2.0, false, true),
YELLOW_SHULKER_BOX("minecraft:yellow_shulker_box", (short) 8770, 2.0, 2.0, false, true),
LIME_SHULKER_BOX("minecraft:lime_shulker_box", (short) 8776, 2.0, 2.0, false, true),
PINK_SHULKER_BOX("minecraft:pink_shulker_box", (short) 8782, 2.0, 2.0, false, true),
GRAY_SHULKER_BOX("minecraft:gray_shulker_box", (short) 8788, 2.0, 2.0, false, true),
LIGHT_GRAY_SHULKER_BOX("minecraft:light_gray_shulker_box", (short) 8794, 2.0, 2.0, false, true),
CYAN_SHULKER_BOX("minecraft:cyan_shulker_box", (short) 8800, 2.0, 2.0, false, true),
PURPLE_SHULKER_BOX("minecraft:purple_shulker_box", (short) 8806, 2.0, 2.0, false, true),
BLUE_SHULKER_BOX("minecraft:blue_shulker_box", (short) 8812, 2.0, 2.0, false, true),
BROWN_SHULKER_BOX("minecraft:brown_shulker_box", (short) 8818, 2.0, 2.0, false, true),
GREEN_SHULKER_BOX("minecraft:green_shulker_box", (short) 8824, 2.0, 2.0, false, true),
RED_SHULKER_BOX("minecraft:red_shulker_box", (short) 8830, 2.0, 2.0, false, true),
BLACK_SHULKER_BOX("minecraft:black_shulker_box", (short) 8836, 2.0, 2.0, false, true),
WHITE_GLAZED_TERRACOTTA("minecraft:white_glazed_terracotta", (short) 8838, 1.4, 1.4, false, true),
ORANGE_GLAZED_TERRACOTTA("minecraft:orange_glazed_terracotta", (short) 8842, 1.4, 1.4, false, true),
MAGENTA_GLAZED_TERRACOTTA("minecraft:magenta_glazed_terracotta", (short) 8846, 1.4, 1.4, false, true),
LIGHT_BLUE_GLAZED_TERRACOTTA("minecraft:light_blue_glazed_terracotta", (short) 8850, 1.4, 1.4, false, true),
YELLOW_GLAZED_TERRACOTTA("minecraft:yellow_glazed_terracotta", (short) 8854, 1.4, 1.4, false, true),
LIME_GLAZED_TERRACOTTA("minecraft:lime_glazed_terracotta", (short) 8858, 1.4, 1.4, false, true),
PINK_GLAZED_TERRACOTTA("minecraft:pink_glazed_terracotta", (short) 8862, 1.4, 1.4, false, true),
GRAY_GLAZED_TERRACOTTA("minecraft:gray_glazed_terracotta", (short) 8866, 1.4, 1.4, false, true),
LIGHT_GRAY_GLAZED_TERRACOTTA("minecraft:light_gray_glazed_terracotta", (short) 8870, 1.4, 1.4, false, true),
CYAN_GLAZED_TERRACOTTA("minecraft:cyan_glazed_terracotta", (short) 8874, 1.4, 1.4, false, true),
PURPLE_GLAZED_TERRACOTTA("minecraft:purple_glazed_terracotta", (short) 8878, 1.4, 1.4, false, true),
BLUE_GLAZED_TERRACOTTA("minecraft:blue_glazed_terracotta", (short) 8882, 1.4, 1.4, false, true),
BROWN_GLAZED_TERRACOTTA("minecraft:brown_glazed_terracotta", (short) 8886, 1.4, 1.4, false, true),
GREEN_GLAZED_TERRACOTTA("minecraft:green_glazed_terracotta", (short) 8890, 1.4, 1.4, false, true),
RED_GLAZED_TERRACOTTA("minecraft:red_glazed_terracotta", (short) 8894, 1.4, 1.4, false, true),
BLACK_GLAZED_TERRACOTTA("minecraft:black_glazed_terracotta", (short) 8898, 1.4, 1.4, false, true),
WHITE_CONCRETE("minecraft:white_concrete", (short) 8902, 1.8, 1.8, false, true),
ORANGE_CONCRETE("minecraft:orange_concrete", (short) 8903, 1.8, 1.8, false, true),
MAGENTA_CONCRETE("minecraft:magenta_concrete", (short) 8904, 1.8, 1.8, false, true),
LIGHT_BLUE_CONCRETE("minecraft:light_blue_concrete", (short) 8905, 1.8, 1.8, false, true),
YELLOW_CONCRETE("minecraft:yellow_concrete", (short) 8906, 1.8, 1.8, false, true),
LIME_CONCRETE("minecraft:lime_concrete", (short) 8907, 1.8, 1.8, false, true),
PINK_CONCRETE("minecraft:pink_concrete", (short) 8908, 1.8, 1.8, false, true),
GRAY_CONCRETE("minecraft:gray_concrete", (short) 8909, 1.8, 1.8, false, true),
LIGHT_GRAY_CONCRETE("minecraft:light_gray_concrete", (short) 8910, 1.8, 1.8, false, true),
CYAN_CONCRETE("minecraft:cyan_concrete", (short) 8911, 1.8, 1.8, false, true),
PURPLE_CONCRETE("minecraft:purple_concrete", (short) 8912, 1.8, 1.8, false, true),
BLUE_CONCRETE("minecraft:blue_concrete", (short) 8913, 1.8, 1.8, false, true),
BROWN_CONCRETE("minecraft:brown_concrete", (short) 8914, 1.8, 1.8, false, true),
GREEN_CONCRETE("minecraft:green_concrete", (short) 8915, 1.8, 1.8, false, true),
RED_CONCRETE("minecraft:red_concrete", (short) 8916, 1.8, 1.8, false, true),
BLACK_CONCRETE("minecraft:black_concrete", (short) 8917, 1.8, 1.8, false, true),
WHITE_CONCRETE_POWDER("minecraft:white_concrete_powder", (short) 8918, 0.5, 0.5, false, true),
ORANGE_CONCRETE_POWDER("minecraft:orange_concrete_powder", (short) 8919, 0.5, 0.5, false, true),
MAGENTA_CONCRETE_POWDER("minecraft:magenta_concrete_powder", (short) 8920, 0.5, 0.5, false, true),
LIGHT_BLUE_CONCRETE_POWDER("minecraft:light_blue_concrete_powder", (short) 8921, 0.5, 0.5, false, true),
YELLOW_CONCRETE_POWDER("minecraft:yellow_concrete_powder", (short) 8922, 0.5, 0.5, false, true),
LIME_CONCRETE_POWDER("minecraft:lime_concrete_powder", (short) 8923, 0.5, 0.5, false, true),
PINK_CONCRETE_POWDER("minecraft:pink_concrete_powder", (short) 8924, 0.5, 0.5, false, true),
GRAY_CONCRETE_POWDER("minecraft:gray_concrete_powder", (short) 8925, 0.5, 0.5, false, true),
LIGHT_GRAY_CONCRETE_POWDER("minecraft:light_gray_concrete_powder", (short) 8926, 0.5, 0.5, false, true),
CYAN_CONCRETE_POWDER("minecraft:cyan_concrete_powder", (short) 8927, 0.5, 0.5, false, true),
PURPLE_CONCRETE_POWDER("minecraft:purple_concrete_powder", (short) 8928, 0.5, 0.5, false, true),
BLUE_CONCRETE_POWDER("minecraft:blue_concrete_powder", (short) 8929, 0.5, 0.5, false, true),
BROWN_CONCRETE_POWDER("minecraft:brown_concrete_powder", (short) 8930, 0.5, 0.5, false, true),
GREEN_CONCRETE_POWDER("minecraft:green_concrete_powder", (short) 8931, 0.5, 0.5, false, true),
RED_CONCRETE_POWDER("minecraft:red_concrete_powder", (short) 8932, 0.5, 0.5, false, true),
BLACK_CONCRETE_POWDER("minecraft:black_concrete_powder", (short) 8933, 0.5, 0.5, false, true),
KELP("minecraft:kelp", (short) 8934, 0.0, 0.0, false, true),
KELP_PLANT("minecraft:kelp_plant", (short) 8960, 0.0, 0.0, false, true),
DRIED_KELP_BLOCK("minecraft:dried_kelp_block", (short) 8961, 0.5, 2.5, false, true),
TURTLE_EGG("minecraft:turtle_egg", (short) 8962, 0.5, 0.5, false, true),
DEAD_TUBE_CORAL_BLOCK("minecraft:dead_tube_coral_block", (short) 8974, 1.5, 6.0, false, true),
DEAD_BRAIN_CORAL_BLOCK("minecraft:dead_brain_coral_block", (short) 8975, 1.5, 6.0, false, true),
DEAD_BUBBLE_CORAL_BLOCK("minecraft:dead_bubble_coral_block", (short) 8976, 1.5, 6.0, false, true),
DEAD_FIRE_CORAL_BLOCK("minecraft:dead_fire_coral_block", (short) 8977, 1.5, 6.0, false, true),
DEAD_HORN_CORAL_BLOCK("minecraft:dead_horn_coral_block", (short) 8978, 1.5, 6.0, false, true),
TUBE_CORAL_BLOCK("minecraft:tube_coral_block", (short) 8979, 1.5, 6.0, false, true),
BRAIN_CORAL_BLOCK("minecraft:brain_coral_block", (short) 8980, 1.5, 6.0, false, true),
BUBBLE_CORAL_BLOCK("minecraft:bubble_coral_block", (short) 8981, 1.5, 6.0, false, true),
FIRE_CORAL_BLOCK("minecraft:fire_coral_block", (short) 8982, 1.5, 6.0, false, true),
HORN_CORAL_BLOCK("minecraft:horn_coral_block", (short) 8983, 1.5, 6.0, false, true),
DEAD_TUBE_CORAL("minecraft:dead_tube_coral", (short) 8984, 0.0, 0.0, false, true),
DEAD_BRAIN_CORAL("minecraft:dead_brain_coral", (short) 8986, 0.0, 0.0, false, true),
DEAD_BUBBLE_CORAL("minecraft:dead_bubble_coral", (short) 8988, 0.0, 0.0, false, true),
DEAD_FIRE_CORAL("minecraft:dead_fire_coral", (short) 8990, 0.0, 0.0, false, true),
DEAD_HORN_CORAL("minecraft:dead_horn_coral", (short) 8992, 0.0, 0.0, false, true),
TUBE_CORAL("minecraft:tube_coral", (short) 8994, 0.0, 0.0, false, true),
BRAIN_CORAL("minecraft:brain_coral", (short) 8996, 0.0, 0.0, false, true),
BUBBLE_CORAL("minecraft:bubble_coral", (short) 8998, 0.0, 0.0, false, true),
FIRE_CORAL("minecraft:fire_coral", (short) 9000, 0.0, 0.0, false, true),
HORN_CORAL("minecraft:horn_coral", (short) 9002, 0.0, 0.0, false, true),
DEAD_TUBE_CORAL_FAN("minecraft:dead_tube_coral_fan", (short) 9004, 0.0, 0.0, false, true),
DEAD_BRAIN_CORAL_FAN("minecraft:dead_brain_coral_fan", (short) 9006, 0.0, 0.0, false, true),
DEAD_BUBBLE_CORAL_FAN("minecraft:dead_bubble_coral_fan", (short) 9008, 0.0, 0.0, false, true),
DEAD_FIRE_CORAL_FAN("minecraft:dead_fire_coral_fan", (short) 9010, 0.0, 0.0, false, true),
DEAD_HORN_CORAL_FAN("minecraft:dead_horn_coral_fan", (short) 9012, 0.0, 0.0, false, true),
TUBE_CORAL_FAN("minecraft:tube_coral_fan", (short) 9014, 0.0, 0.0, false, true),
BRAIN_CORAL_FAN("minecraft:brain_coral_fan", (short) 9016, 0.0, 0.0, false, true),
BUBBLE_CORAL_FAN("minecraft:bubble_coral_fan", (short) 9018, 0.0, 0.0, false, true),
FIRE_CORAL_FAN("minecraft:fire_coral_fan", (short) 9020, 0.0, 0.0, false, true),
HORN_CORAL_FAN("minecraft:horn_coral_fan", (short) 9022, 0.0, 0.0, false, true),
DEAD_TUBE_CORAL_WALL_FAN("minecraft:dead_tube_coral_wall_fan", (short) 9024, 0.0, 0.0, false, true),
DEAD_BRAIN_CORAL_WALL_FAN("minecraft:dead_brain_coral_wall_fan", (short) 9032, 0.0, 0.0, false, true),
DEAD_BUBBLE_CORAL_WALL_FAN("minecraft:dead_bubble_coral_wall_fan", (short) 9040, 0.0, 0.0, false, true),
DEAD_FIRE_CORAL_WALL_FAN("minecraft:dead_fire_coral_wall_fan", (short) 9048, 0.0, 0.0, false, true),
DEAD_HORN_CORAL_WALL_FAN("minecraft:dead_horn_coral_wall_fan", (short) 9056, 0.0, 0.0, false, true),
TUBE_CORAL_WALL_FAN("minecraft:tube_coral_wall_fan", (short) 9064, 0.0, 0.0, false, true),
BRAIN_CORAL_WALL_FAN("minecraft:brain_coral_wall_fan", (short) 9072, 0.0, 0.0, false, true),
BUBBLE_CORAL_WALL_FAN("minecraft:bubble_coral_wall_fan", (short) 9080, 0.0, 0.0, false, true),
FIRE_CORAL_WALL_FAN("minecraft:fire_coral_wall_fan", (short) 9088, 0.0, 0.0, false, true),
HORN_CORAL_WALL_FAN("minecraft:horn_coral_wall_fan", (short) 9096, 0.0, 0.0, false, true),
SEA_PICKLE("minecraft:sea_pickle", (short) 9104, 0.0, 0.0, false, true),
BLUE_ICE("minecraft:blue_ice", (short) 9112, 2.8, 2.8, false, true),
CONDUIT("minecraft:conduit", (short) 9113, 3.0, 3.0, false, true),
BAMBOO_SAPLING("minecraft:bamboo_sapling", (short) 9115, 1.0, 1.0, false, true),
BAMBOO("minecraft:bamboo", (short) 9116, 1.0, 1.0, false, true),
POTTED_BAMBOO("minecraft:potted_bamboo", (short) 9128, 0.0, 0.0, false, true),
VOID_AIR("minecraft:void_air", (short) 9129, 0.0, 0.0, false, false),
CAVE_AIR("minecraft:cave_air", (short) 9130, 0.0, 0.0, false, false),
BUBBLE_COLUMN("minecraft:bubble_column", (short) 9131, 0.0, 0.0, false, true),
POLISHED_GRANITE_STAIRS("minecraft:polished_granite_stairs", (short) 9144, 1.5, 6.0, false, true),
SMOOTH_RED_SANDSTONE_STAIRS("minecraft:smooth_red_sandstone_stairs", (short) 9224, 2.0, 6.0, false, true),
MOSSY_STONE_BRICK_STAIRS("minecraft:mossy_stone_brick_stairs", (short) 9304, 1.5, 6.0, false, true),
POLISHED_DIORITE_STAIRS("minecraft:polished_diorite_stairs", (short) 9384, 1.5, 6.0, false, true),
MOSSY_COBBLESTONE_STAIRS("minecraft:mossy_cobblestone_stairs", (short) 9464, 2.0, 6.0, false, true),
END_STONE_BRICK_STAIRS("minecraft:end_stone_brick_stairs", (short) 9544, 3.0, 9.0, false, true),
STONE_STAIRS("minecraft:stone_stairs", (short) 9624, 1.5, 6.0, false, true),
SMOOTH_SANDSTONE_STAIRS("minecraft:smooth_sandstone_stairs", (short) 9704, 2.0, 6.0, false, true),
SMOOTH_QUARTZ_STAIRS("minecraft:smooth_quartz_stairs", (short) 9784, 2.0, 6.0, false, true),
GRANITE_STAIRS("minecraft:granite_stairs", (short) 9864, 1.5, 6.0, false, true),
ANDESITE_STAIRS("minecraft:andesite_stairs", (short) 9944, 1.5, 6.0, false, true),
RED_NETHER_BRICK_STAIRS("minecraft:red_nether_brick_stairs", (short) 10024, 2.0, 6.0, false, true),
POLISHED_ANDESITE_STAIRS("minecraft:polished_andesite_stairs", (short) 10104, 1.5, 6.0, false, true),
DIORITE_STAIRS("minecraft:diorite_stairs", (short) 10184, 1.5, 6.0, false, true),
POLISHED_GRANITE_SLAB("minecraft:polished_granite_slab", (short) 10256, 1.5, 6.0, false, true),
SMOOTH_RED_SANDSTONE_SLAB("minecraft:smooth_red_sandstone_slab", (short) 10262, 2.0, 6.0, false, true),
MOSSY_STONE_BRICK_SLAB("minecraft:mossy_stone_brick_slab", (short) 10268, 1.5, 6.0, false, true),
POLISHED_DIORITE_SLAB("minecraft:polished_diorite_slab", (short) 10274, 1.5, 6.0, false, true),
MOSSY_COBBLESTONE_SLAB("minecraft:mossy_cobblestone_slab", (short) 10280, 2.0, 6.0, false, true),
END_STONE_BRICK_SLAB("minecraft:end_stone_brick_slab", (short) 10286, 3.0, 9.0, false, true),
SMOOTH_SANDSTONE_SLAB("minecraft:smooth_sandstone_slab", (short) 10292, 2.0, 6.0, false, true),
SMOOTH_QUARTZ_SLAB("minecraft:smooth_quartz_slab", (short) 10298, 2.0, 6.0, false, true),
GRANITE_SLAB("minecraft:granite_slab", (short) 10304, 1.5, 6.0, false, true),
ANDESITE_SLAB("minecraft:andesite_slab", (short) 10310, 1.5, 6.0, false, true),
RED_NETHER_BRICK_SLAB("minecraft:red_nether_brick_slab", (short) 10316, 2.0, 6.0, false, true),
POLISHED_ANDESITE_SLAB("minecraft:polished_andesite_slab", (short) 10322, 1.5, 6.0, false, true),
DIORITE_SLAB("minecraft:diorite_slab", (short) 10328, 1.5, 6.0, false, true),
BRICK_WALL("minecraft:brick_wall", (short) 10390, 2.0, 6.0, false, true),
PRISMARINE_WALL("minecraft:prismarine_wall", (short) 10454, 1.5, 6.0, false, true),
RED_SANDSTONE_WALL("minecraft:red_sandstone_wall", (short) 10518, 0.8, 0.8, false, true),
MOSSY_STONE_BRICK_WALL("minecraft:mossy_stone_brick_wall", (short) 10582, 1.5, 6.0, false, true),
GRANITE_WALL("minecraft:granite_wall", (short) 10646, 1.5, 6.0, false, true),
STONE_BRICK_WALL("minecraft:stone_brick_wall", (short) 10710, 1.5, 6.0, false, true),
NETHER_BRICK_WALL("minecraft:nether_brick_wall", (short) 10774, 2.0, 6.0, false, true),
ANDESITE_WALL("minecraft:andesite_wall", (short) 10838, 1.5, 6.0, false, true),
RED_NETHER_BRICK_WALL("minecraft:red_nether_brick_wall", (short) 10902, 2.0, 6.0, false, true),
SANDSTONE_WALL("minecraft:sandstone_wall", (short) 10966, 0.8, 0.8, false, true),
END_STONE_BRICK_WALL("minecraft:end_stone_brick_wall", (short) 11030, 3.0, 9.0, false, true),
DIORITE_WALL("minecraft:diorite_wall", (short) 11094, 1.5, 6.0, false, true),
SCAFFOLDING("minecraft:scaffolding", (short) 11130, 0.0, 0.0, false, true),
LOOM("minecraft:loom", (short) 11131, 2.5, 2.5, false, true),
BARREL("minecraft:barrel", (short) 11136, 2.5, 2.5, false, true),
SMOKER("minecraft:smoker", (short) 11148, 3.5, 3.5, false, true),
BLAST_FURNACE("minecraft:blast_furnace", (short) 11156, 3.5, 3.5, false, true),
CARTOGRAPHY_TABLE("minecraft:cartography_table", (short) 11163, 2.5, 2.5, false, true),
FLETCHING_TABLE("minecraft:fletching_table", (short) 11164, 2.5, 2.5, false, true),
GRINDSTONE("minecraft:grindstone", (short) 11169, 2.0, 6.0, false, true),
LECTERN("minecraft:lectern", (short) 11180, 2.5, 2.5, false, true),
SMITHING_TABLE("minecraft:smithing_table", (short) 11193, 2.5, 2.5, false, true),
STONECUTTER("minecraft:stonecutter", (short) 11194, 3.5, 3.5, false, true),
BELL("minecraft:bell", (short) 11199, 5.0, 5.0, false, true),
LANTERN("minecraft:lantern", (short) 11231, 3.5, 3.5, false, true),
CAMPFIRE("minecraft:campfire", (short) 11235, 2.0, 2.0, false, true),
SWEET_BERRY_BUSH("minecraft:sweet_berry_bush", (short) 11264, 0.0, 0.0, false, true),
STRUCTURE_BLOCK("minecraft:structure_block", (short) 11268, 0.0, 3600000.0, false, true),
JIGSAW("minecraft:jigsaw", (short) 11276, 0.0, 3600000.0, false, true),
COMPOSTER("minecraft:composter", (short) 11278, 0.6, 0.6, false, true),
BEE_NEST("minecraft:bee_nest", (short) 11287, 0.3, 0.3, false, true),
BEEHIVE("minecraft:beehive", (short) 11311, 0.6, 0.6, false, true),
HONEY_BLOCK("minecraft:honey_block", (short) 11335, 0.0, 0.0, false, true),
HONEYCOMB_BLOCK("minecraft:honeycomb_block", (short) 11336, 0.6, 0.6, false, true),
;
private String namespaceID;
private short defaultID;
private double hardness;
private double resistance;
private boolean isAir;
private boolean isSolid;
TmpBlock(String namespaceID, short defaultID, double hardness, double resistance, boolean isAir, boolean isSolid) {
this.namespaceID = namespaceID;
this.defaultID = defaultID;
this.hardness = hardness;
this.resistance = resistance;
this.isAir = isAir;
this.isSolid = isSolid;
}
public short getId() {
return defaultID;
}
public boolean isAir() {
return isAir;
}
public boolean isSolid() {
return isSolid;
}
public double getHardness() {
return hardness;
}
public double getResistance() {
return resistance;
}
public boolean breaksInstantaneously() {
return hardness == 0;
}
}

View File

@ -0,0 +1,174 @@
import net.minestom.server.utils.NamespaceID;
import java.util.List;
import java.util.Map;
public class BlockContainer implements Comparable<BlockContainer> {
private int ordinal;
private NamespaceID id;
private double hardness;
private double resistance;
private BlockState defaultState;
private boolean isSolid;
private boolean isAir;
private List<BlockState> states;
private boolean isMushroom;
private boolean isLiquid;
private boolean isFlower;
private boolean isFlowerPot;
private boolean isCoral;
private boolean hasBlockEntity;
public BlockContainer(int ordinal, NamespaceID id, double hardness, double resistance, BlockState defaultState, List<BlockState> states) {
this.ordinal = ordinal;
this.id = id;
this.hardness = hardness;
this.resistance = resistance;
this.defaultState = defaultState;
this.states = states;
}
public int getOrdinal() {
return ordinal;
}
public BlockState getDefaultState() {
return defaultState;
}
public List<BlockState> getStates() {
return states;
}
public NamespaceID getId() {
return id;
}
public boolean isAir() {
return isAir;
}
public boolean isCoral() {
return isCoral;
}
public boolean isFlowerPot() {
return isFlowerPot;
}
public boolean isFlower() {
return isFlower;
}
public boolean isLiquid() {
return isLiquid;
}
public boolean isMushroom() {
return isMushroom;
}
public boolean isSolid() {
return isSolid;
}
public double getHardness() {
return hardness;
}
public double getResistance() {
return resistance;
}
public boolean hasBlockEntity() {
return hasBlockEntity;
}
public BlockContainer setHasBlockEntity() {
hasBlockEntity = true;
return this;
}
public BlockContainer setCoral() {
isCoral = true;
return this;
}
public BlockContainer setFlowerPot() {
isFlowerPot = true;
return this;
}
public BlockContainer setFlower() {
isFlower = true;
return this;
}
public BlockContainer setLiquid() {
isLiquid = true;
return this;
}
public BlockContainer setMushroom() {
isMushroom = true;
return this;
}
public BlockContainer setSolid() {
isSolid = true;
return this;
}
@Override
public String toString() {
return "BlockContainer{" +
"id=" + id +
", hardness=" + hardness +
", resistance=" + resistance +
", defaultState=" + defaultState +
", isSolid=" + isSolid +
", isAir=" + isAir +
", states=" + states +
", isMushroom=" + isMushroom +
", isLiquid=" + isLiquid +
", isFlower=" + isFlower +
", isFlowerPot=" + isFlowerPot +
", isCoral=" + isCoral +
", hasBlockEntity=" + hasBlockEntity +
'}';
}
@Override
public int compareTo(BlockContainer o) {
return Integer.compare(ordinal, o.ordinal);
}
public static class BlockState {
private short id;
private Map<String, String> properties;
public BlockState(short id, Map<String, String> properties) {
this.id = id;
this.properties = properties;
}
public short getId() {
return id;
}
public Map<String, String> getProperties() {
return properties;
}
@Override
public String toString() {
return "BlockState{" +
"id=" + id +
", properties=" + properties +
'}';
}
}
}

View File

@ -0,0 +1,210 @@
import com.google.gson.Gson;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import net.minestom.server.registry.ResourceGatherer;
import net.minestom.server.utils.NamespaceID;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.*;
import java.net.URL;
import java.util.*;
/**
* Generates a Block enum containing all data about blocks
*/
public class BlockEnumGenerator {
private static final Logger LOGGER = LoggerFactory.getLogger(BlockEnumGenerator.class);
private static final String DEFAULT_TARGET_PATH = "src/autogenerated/java";
public static final String MC_DATA_BLOCKS_PATH = "minecraft_data/reports/blocks.json";
public static final String PRISMARINE_JS_DATA_PATHS = "prismarine-minecraft-data/data/dataPaths.json";
public static final String BURGER_URL_BASE_URL = "https://pokechu22.github.io/Burger/";
public static void main(String[] args) throws IOException {
try {
ResourceGatherer.ensureResourcesArePresent(null); // TODO
} catch (IOException e) {
e.printStackTrace();
}
String targetVersion = "1.15.2";
if(args.length >= 1) {
targetVersion = args[0];
}
String targetPart = DEFAULT_TARGET_PATH;
if(args.length >= 2) {
targetPart = args[1];
}
File targetFolder = new File(targetPart);
if(!targetFolder.exists()) {
targetFolder.mkdirs();
}
Gson gson = new Gson();
// load report blocks and block states
LOGGER.debug("Loading information from data extraction");
List<DataReportBlock> dataBlocks = parseBlocksFromMCData(gson, MC_DATA_BLOCKS_PATH);
// load properties from Prismarine
LOGGER.debug("Finding path for PrismarineJS blocks");
JsonObject dataPaths = gson.fromJson(new BufferedReader(new FileReader(PRISMARINE_JS_DATA_PATHS)), JsonObject.class);
JsonObject pathsJson = dataPaths.getAsJsonObject("pc").getAsJsonObject(targetVersion);
PrismarinePaths paths = gson.fromJson(pathsJson, PrismarinePaths.class);
LOGGER.debug("Loading PrismarineJS blocks data");
List<PrismarineJSBlock> prismarineJSBlocks = parseBlocksFromPrismarineJS(gson, paths.getBlockFile());
LOGGER.debug("Loading Burger blocks data (requires Internet connection)");
List<BurgerBlock> burgerBlocks = parseBlocksFromBurger(gson, BURGER_URL_BASE_URL+targetVersion+".json");
LOGGER.debug("Compiling information");
Collection<BlockContainer> blocks = compile(dataBlocks, prismarineJSBlocks, burgerBlocks);
LOGGER.debug("Compilation finished, code generation can now begin");
generateEnum(targetPart, blocks);
LOGGER.debug("Finished!");
}
private static void generateEnum(String targetPart, Collection<BlockContainer> blocks) throws IOException {
String packageName = "net.minestom.instance.block";
String folder = packageName.replace(".", "/");
String className = "TmpBlock";
EnumGenerator blockGenerator = new EnumGenerator(packageName, className);
blockGenerator.setParams("String namespaceID", "short defaultID", "double hardness", "double resistance", "boolean isAir", "boolean isSolid");
blockGenerator.addMethod("getId", "short", "return defaultID;");
blockGenerator.addMethod("isAir", "boolean", "return isAir;");
blockGenerator.addMethod("isSolid", "boolean", "return isSolid;");
blockGenerator.addMethod("getHardness", "double", "return hardness;");
blockGenerator.addMethod("getResistance", "double", "return resistance;");
blockGenerator.addMethod("breaksInstantaneously", "boolean", "return hardness == 0;");
LOGGER.debug("Generating enum");
for (BlockContainer block : blocks) {
blockGenerator.addInstance(block.getId().getPath().toUpperCase(), "\""+block.getId().toString()+"\"", "(short) "+block.getDefaultState().getId(), block.getHardness(), block.getResistance(), block.isAir(), block.isSolid());
}
File classFolder = new File(targetPart+"/"+folder);
if(!classFolder.exists()) {
classFolder.mkdirs();
}
LOGGER.debug("Writing enum to file: "+classFolder+"/"+className+".java");
try(Writer writer = new BufferedWriter(new FileWriter(new File(classFolder, className+".java")))) {
writer.write(blockGenerator.generate());
}
}
/**
* Compiles all block information in a single location
* @param dataBlocks
* @param prismarineJSBlocks
* @param burgerBlocks
*/
private static Collection<BlockContainer> compile(List<DataReportBlock> dataBlocks, List<PrismarineJSBlock> prismarineJSBlocks, List<BurgerBlock> burgerBlocks) {
TreeSet<BlockContainer> blocks = new TreeSet<>(BlockContainer::compareTo);
// ensure the 3 list have the same length and order
dataBlocks.sort(Comparator.comparing(block -> block.name.toString()));
prismarineJSBlocks.sort(Comparator.comparing(block -> NamespaceID.from(block.name).toString()));
burgerBlocks.sort(Comparator.comparing(block -> NamespaceID.from(block.text_id).toString()));
for (int i = 0; i < dataBlocks.size(); i++) {
DataReportBlock data = dataBlocks.get(i);
PrismarineJSBlock prismarine = prismarineJSBlocks.get(i);
BurgerBlock burger = burgerBlocks.get(i);
assert data.name.getPath().equals(prismarine.name) && prismarine.name.equalsIgnoreCase(burger.text_id);
List<BlockContainer.BlockState> states = new LinkedList<>();
for(DataReportBlock.BlockState s : data.states) {
states.add(new BlockContainer.BlockState(s.id, s.properties));
}
BlockContainer.BlockState defaultState = new BlockContainer.BlockState(data.defaultState.id, data.defaultState.properties);
BlockContainer block = new BlockContainer(prismarine.id, data.name, prismarine.hardness, burger.resistance, defaultState, states);
if(!"empty".equals(prismarine.boundingBox)) {
block.setSolid();
}
if(data.name.equals(NamespaceID.from("minecraft:water")) || data.name.equals(NamespaceID.from("minecraft:lava"))) {
block.setLiquid();
}
blocks.add(block);
}
return blocks;
}
/**
* Extracts block information from Burger
* @param gson
* @param url
* @return
* @throws IOException
*/
private static List<BurgerBlock> parseBlocksFromBurger(Gson gson, String url) throws IOException {
try(BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(new URL(url).openStream()))) {
LOGGER.debug("\tConnection established, reading file");
JsonObject obj = gson.fromJson(bufferedReader, JsonArray.class).get(0).getAsJsonObject().getAsJsonObject("blocks").getAsJsonObject("block");
LOGGER.debug("\tExtracting blocks");
List<BurgerBlock> blocks = new LinkedList<>();
for(var entry : obj.entrySet()) {
BurgerBlock block = gson.fromJson(entry.getValue(), BurgerBlock.class);
blocks.add(block);
}
return blocks;
} catch (IOException e) {
throw e;
}
}
/**
* Extract block information from PrismarineJS (submodule of Minestom)
* @param gson
* @param blockFile
* @return
* @throws IOException
*/
private static List<PrismarineJSBlock> parseBlocksFromPrismarineJS(Gson gson, File blockFile) throws IOException {
try(BufferedReader bufferedReader = new BufferedReader(new FileReader(blockFile))) {
PrismarineJSBlock[] blocks = gson.fromJson(bufferedReader, PrismarineJSBlock[].class);
return Arrays.asList(blocks);
} catch (IOException e) {
throw e;
}
}
/**
* Extract block information from reports generated by the data extractor present in minecraft_server.jar
* @param gson
* @param path
* @return
*/
private static List<DataReportBlock> parseBlocksFromMCData(Gson gson, String path) {
List<DataReportBlock> blocks = new LinkedList<>();
try {
BufferedReader bufferedReader = new BufferedReader(new FileReader(path));
JsonObject obj = gson.fromJson(bufferedReader, JsonObject.class);
for(var entry : obj.entrySet()) {
NamespaceID id = NamespaceID.from(entry.getKey());
JsonElement blockInfo = entry.getValue();
DataReportBlock block = gson.fromJson(blockInfo, DataReportBlock.class);
block.bindDefaultState();
block.name = id;
blocks.add(block);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
return blocks;
}
}

View File

@ -0,0 +1,13 @@
public class BurgerBlock {
String text_id;
double resistance;
@Override
public String toString() {
return "BurgerBlock{" +
"text_id='" + text_id + '\'' +
", resistance=" + resistance +
'}';
}
}

View File

@ -0,0 +1,53 @@
import com.google.gson.annotations.SerializedName;
import net.minestom.server.utils.NamespaceID;
import java.util.Arrays;
import java.util.Map;
public class DataReportBlock {
NamespaceID name;
Map<String, String[]> properties;
BlockState[] states;
BlockState defaultState;
/**
* Looks for the first state in {@link #states} with #isDefault set and stores it into {@link #defaultState}
*/
public void bindDefaultState() {
for(BlockState s : states) {
if(s.isDefault) {
defaultState = s;
return;
}
}
}
public static class BlockState {
protected Map<String, String> properties;
protected short id;
@SerializedName("default")
protected boolean isDefault;
@Override
public String toString() {
return "BlockState{" +
"properties=" + properties +
", id=" + id +
", isDefault=" + isDefault +
'}';
}
}
@Override
public String toString() {
return "DataReportBlock{" +
"name=" + name +
", properties=" + properties +
", states=" + Arrays.toString(states) +
", defaultState=" + defaultState +
'}';
}
}

View File

@ -0,0 +1,132 @@
import java.util.LinkedList;
import java.util.List;
/**
* Helper class to generate a .java enum
*/
public class EnumGenerator {
private static final String COMMENT = "//==============================\n// AUTOGENERATED BY "+EnumGenerator.class.getSimpleName()+"\n//==============================";
private final String enumName;
private String[] parameters;
private List<Method> methods = new LinkedList<>();
private List<Instance> instances = new LinkedList<>();
private String enumPackage;
public EnumGenerator(String packageName, String enumName) {
this.enumPackage = packageName;
parameters = new String[0];
this.enumName = enumName;
}
public void setParams(String... parameters) {
this.parameters = parameters;
}
public void addMethod(String name, String returnType, String... lines) {
methods.add(new Method(name, returnType, lines));
}
public void addInstance(String name, Object... parameters) {
instances.add(new Instance(name, parameters));
}
public String generate() {
StringBuilder builder = new StringBuilder();
builder.append(COMMENT);
builder.append("\npackage ").append(enumPackage).append(";\n");
builder.append("\npublic enum ").append(enumName).append(" {\n");
// generate instances
for(Instance instance : instances) {
builder.append("\t");
builder.append(instance.name).append("(");
Object[] objects = instance.parameters;
for (int i = 0; i < objects.length; i++) {
Object param = objects[i];
if(i != 0) {
builder.append(", ");
}
builder.append(param.toString());
}
builder.append("),\n");
}
builder.append(";\n");
// generate properties & constructor
if(parameters.length != 0) {
// properties
for(String property : parameters) {
builder.append("\t");
builder.append("private ").append(property).append(";\n");
}
builder.append("\n");
// constructor
builder.append("\t");
builder.append(enumName).append("(");
for (int i = 0; i < parameters.length; i++) {
if(i != 0) {
builder.append(", ");
}
builder.append(parameters[i]);
}
builder.append(") {\n");
// property assignment
for(String property : parameters) {
String[] parts = property.split(" ");
String type = parts[0];
String name = parts[1];
builder.append("\t\t");
builder.append("this.").append(name).append(" = ").append(name).append(";\n");
}
builder.append("\t}\n");
}
// generate methods
for(Method m : methods) {
builder.append("\n");
builder.append("\tpublic ");
builder.append(m.returnType).append(" ").append(m.name).append("() {\n");
for(String line : m.lines) {
builder.append("\t\t").append(line).append("\n");
}
builder.append("\t}\n");
}
builder.append("}\n");
return builder.toString();
}
public void setEnumPackage(String enumPackage) {
this.enumPackage = enumPackage;
}
private class Method {
private String name;
private String returnType;
private String[] lines;
private Method(String name, String returnType, String[] lines) {
this.name = name;
this.returnType = returnType;
this.lines = lines;
}
}
private class Instance {
private String name;
private Object[] parameters;
private Instance(String name, Object[] parameters) {
this.name = name;
this.parameters = parameters;
}
}
}

View File

@ -0,0 +1,40 @@
public class PrismarineJSBlock {
int id;
String name;
double hardness;
boolean diggable;
boolean transparent;
int emitLight;
int filterLight;
String boundingBox;
int stackSize;
String material;
@Override
public String toString() {
return "PrismarineJSBlock{" +
"name='" + name + '\'' +
", id=" + id +
", hardness=" + hardness +
", diggable=" + diggable +
", transparent=" + transparent +
", emitLight=" + emitLight +
", filterLight=" + filterLight +
", boundingBox='" + boundingBox + '\'' +
", stackSize=" + stackSize +
", material='" + material + '\'' +
'}';
}
/*
TODO:
"harvestTools": {
"521": true,
"535": true,
"539": true,
"543": true,
"550": true
}
*/
}

View File

@ -0,0 +1,21 @@
import java.io.File;
public class PrismarinePaths {
private String blocks;
private String biomes;
private String effects;
private String items;
private String recipes;
private String instruments;
private String materials;
private String entities;
private String protocol;
private String windows;
private String version;
private String language;
public File getBlockFile() {
return new File("prismarine-minecraft-data/data/"+blocks+"/blocks.json");
}
}