package net.minestom.vanilla.datapack.loot;

import net.kyori.adventure.nbt.CompoundBinaryTag;
import net.minestom.server.item.ItemStack;
import net.minestom.server.item.Material;
import net.minestom.vanilla.datapack.loot.context.LootContext;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class LootTableTestData {

    public static final Map<String, List<ItemStack>> EXPECTED_RESULTS;

    static {
        Map<String, List<ItemStack>> expected = new HashMap<>();

        // TODO: Go through these and make sure they are correct
        expected.put("acacia_button", List.of(ItemStack.of(Material.ACACIA_BUTTON, 1)));
        expected.put("acacia_door", List.of());
        expected.put("acacia_fence", List.of(ItemStack.of(Material.ACACIA_FENCE, 1)));
        expected.put("acacia_fence_gate", List.of(ItemStack.of(Material.ACACIA_FENCE_GATE, 1)));
        expected.put("acacia_hanging_sign", List.of(ItemStack.of(Material.ACACIA_HANGING_SIGN, 1)));
        expected.put("acacia_leaves", List.of());
        expected.put("acacia_log", List.of(ItemStack.of(Material.ACACIA_LOG, 1)));
        expected.put("acacia_planks", List.of(ItemStack.of(Material.ACACIA_PLANKS, 1)));
        expected.put("acacia_pressure_plate", List.of(ItemStack.of(Material.ACACIA_PRESSURE_PLATE, 1)));
        expected.put("acacia_sapling", List.of(ItemStack.of(Material.ACACIA_SAPLING, 1)));
        expected.put("acacia_sign", List.of(ItemStack.of(Material.ACACIA_SIGN, 1)));
        expected.put("acacia_slab", List.of(ItemStack.of(Material.AIR, 1)));
        expected.put("acacia_stairs", List.of(ItemStack.of(Material.ACACIA_STAIRS, 1)));
        expected.put("acacia_trapdoor", List.of(ItemStack.of(Material.ACACIA_TRAPDOOR, 1)));
        expected.put("acacia_wood", List.of(ItemStack.of(Material.ACACIA_WOOD, 1)));
        expected.put("activator_rail", List.of(ItemStack.of(Material.ACTIVATOR_RAIL, 1)));
        expected.put("allium", List.of(ItemStack.of(Material.ALLIUM, 1)));
        expected.put("amethyst_block", List.of(ItemStack.of(Material.AMETHYST_BLOCK, 1)));
        expected.put("amethyst_cluster", List.of(ItemStack.of(Material.AIR, 1)));
        expected.put("ancient_debris", List.of(ItemStack.of(Material.ANCIENT_DEBRIS, 1)));
        expected.put("andesite", List.of(ItemStack.of(Material.ANDESITE, 1)));
        expected.put("andesite_slab", List.of(ItemStack.of(Material.AIR, 1)));
        expected.put("andesite_stairs", List.of(ItemStack.of(Material.ANDESITE_STAIRS, 1)));
        expected.put("andesite_wall", List.of(ItemStack.of(Material.ANDESITE_WALL, 1)));
        expected.put("anvil", List.of(ItemStack.of(Material.ANVIL, 1)));
        expected.put("attached_melon_stem", List.of(ItemStack.of(Material.AIR, 1)));
        expected.put("attached_pumpkin_stem", List.of(ItemStack.of(Material.AIR, 1)));
        expected.put("azalea", List.of(ItemStack.of(Material.AZALEA, 1)));
        expected.put("azalea_leaves", List.of());
        expected.put("azure_bluet", List.of(ItemStack.of(Material.AZURE_BLUET, 1)));
        expected.put("bamboo", List.of(ItemStack.of(Material.BAMBOO, 1)));
        expected.put("bamboo_block", List.of(ItemStack.of(Material.BAMBOO_BLOCK, 1)));
        expected.put("bamboo_button", List.of(ItemStack.of(Material.BAMBOO_BUTTON, 1)));
        expected.put("bamboo_door", List.of());
        expected.put("bamboo_fence", List.of(ItemStack.of(Material.BAMBOO_FENCE, 1)));
        expected.put("bamboo_fence_gate", List.of(ItemStack.of(Material.BAMBOO_FENCE_GATE, 1)));
        expected.put("bamboo_hanging_sign", List.of(ItemStack.of(Material.BAMBOO_HANGING_SIGN, 1)));
        expected.put("bamboo_mosaic", List.of(ItemStack.of(Material.BAMBOO_MOSAIC, 1)));
        expected.put("bamboo_mosaic_slab", List.of(ItemStack.of(Material.AIR, 1)));
        expected.put("bamboo_mosaic_stairs", List.of(ItemStack.of(Material.BAMBOO_MOSAIC_STAIRS, 1)));
        expected.put("bamboo_planks", List.of(ItemStack.of(Material.BAMBOO_PLANKS, 1)));
        expected.put("bamboo_pressure_plate", List.of(ItemStack.of(Material.BAMBOO_PRESSURE_PLATE, 1)));
        expected.put("bamboo_sapling", List.of(ItemStack.of(Material.BAMBOO, 1)));
        expected.put("bamboo_sign", List.of(ItemStack.of(Material.BAMBOO_SIGN, 1)));
        expected.put("bamboo_slab", List.of(ItemStack.of(Material.AIR, 1)));
        expected.put("bamboo_stairs", List.of(ItemStack.of(Material.BAMBOO_STAIRS, 1)));
        expected.put("bamboo_trapdoor", List.of(ItemStack.of(Material.BAMBOO_TRAPDOOR, 1)));
        expected.put("barrel", List.of(ItemStack.of(Material.BARREL, 1)));
        expected.put("basalt", List.of(ItemStack.of(Material.BASALT, 1)));
        expected.put("beacon", List.of(ItemStack.of(Material.BEACON, 1)));
        expected.put("bee_nest", List.of());
        expected.put("beehive", List.of(ItemStack.of(Material.BEEHIVE, 1)));
        expected.put("beetroots", List.of(ItemStack.of(Material.AIR, 1)));
        expected.put("bell", List.of(ItemStack.of(Material.BELL, 1)));
        expected.put("big_dripleaf", List.of(ItemStack.of(Material.BIG_DRIPLEAF, 1)));
        expected.put("big_dripleaf_stem", List.of(ItemStack.of(Material.BIG_DRIPLEAF, 1)));
        expected.put("birch_button", List.of(ItemStack.of(Material.BIRCH_BUTTON, 1)));
        expected.put("birch_door", List.of());
        expected.put("birch_fence", List.of(ItemStack.of(Material.BIRCH_FENCE, 1)));
        expected.put("birch_fence_gate", List.of(ItemStack.of(Material.BIRCH_FENCE_GATE, 1)));
        expected.put("birch_hanging_sign", List.of(ItemStack.of(Material.BIRCH_HANGING_SIGN, 1)));
        expected.put("birch_leaves", List.of());
        expected.put("birch_log", List.of(ItemStack.of(Material.BIRCH_LOG, 1)));
        expected.put("birch_planks", List.of(ItemStack.of(Material.BIRCH_PLANKS, 1)));
        expected.put("birch_pressure_plate", List.of(ItemStack.of(Material.BIRCH_PRESSURE_PLATE, 1)));
        expected.put("birch_sapling", List.of(ItemStack.of(Material.BIRCH_SAPLING, 1)));
        expected.put("birch_sign", List.of(ItemStack.of(Material.BIRCH_SIGN, 1)));
        expected.put("birch_slab", List.of(ItemStack.of(Material.AIR, 1)));
        expected.put("birch_stairs", List.of(ItemStack.of(Material.BIRCH_STAIRS, 1)));
        expected.put("birch_trapdoor", List.of(ItemStack.of(Material.BIRCH_TRAPDOOR, 1)));
        expected.put("birch_wood", List.of(ItemStack.of(Material.BIRCH_WOOD, 1)));
        expected.put("black_banner", List.of(ItemStack.of(Material.BLACK_BANNER, 1)));
        expected.put("black_bed", List.of());
        expected.put("black_candle", List.of(ItemStack.of(Material.AIR, 1)));
        expected.put("black_candle_cake", List.of(ItemStack.of(Material.BLACK_CANDLE, 1)));
        expected.put("black_carpet", List.of(ItemStack.of(Material.BLACK_CARPET, 1)));
        expected.put("black_concrete", List.of(ItemStack.of(Material.BLACK_CONCRETE, 1)));
        expected.put("black_concrete_powder", List.of(ItemStack.of(Material.BLACK_CONCRETE_POWDER, 1)));
        expected.put("black_glazed_terracotta", List.of(ItemStack.of(Material.BLACK_GLAZED_TERRACOTTA, 1)));
        expected.put("black_shulker_box", List.of(ItemStack.of(Material.BLACK_SHULKER_BOX, 1)));
        expected.put("black_stained_glass", List.of());
        expected.put("black_stained_glass_pane", List.of());
        expected.put("black_terracotta", List.of(ItemStack.of(Material.BLACK_TERRACOTTA, 1)));
        expected.put("black_wool", List.of(ItemStack.of(Material.BLACK_WOOL, 1)));
        expected.put("blackstone", List.of(ItemStack.of(Material.BLACKSTONE, 1)));
        expected.put("blackstone_slab", List.of(ItemStack.of(Material.AIR, 1)));
        expected.put("blackstone_stairs", List.of(ItemStack.of(Material.BLACKSTONE_STAIRS, 1)));
        expected.put("blackstone_wall", List.of(ItemStack.of(Material.BLACKSTONE_WALL, 1)));
        expected.put("blast_furnace", List.of(ItemStack.of(Material.BLAST_FURNACE, 1)));
        expected.put("blue_banner", List.of(ItemStack.of(Material.BLUE_BANNER, 1)));
        expected.put("blue_bed", List.of());
        expected.put("blue_candle", List.of(ItemStack.of(Material.AIR, 1)));
        expected.put("blue_candle_cake", List.of(ItemStack.of(Material.BLUE_CANDLE, 1)));
        expected.put("blue_carpet", List.of(ItemStack.of(Material.BLUE_CARPET, 1)));
        expected.put("blue_concrete", List.of(ItemStack.of(Material.BLUE_CONCRETE, 1)));
        expected.put("blue_concrete_powder", List.of(ItemStack.of(Material.BLUE_CONCRETE_POWDER, 1)));
        expected.put("blue_glazed_terracotta", List.of(ItemStack.of(Material.BLUE_GLAZED_TERRACOTTA, 1)));
        expected.put("blue_ice", List.of());
        expected.put("blue_orchid", List.of(ItemStack.of(Material.BLUE_ORCHID, 1)));
        expected.put("blue_shulker_box", List.of(ItemStack.of(Material.BLUE_SHULKER_BOX, 1)));
        expected.put("blue_stained_glass", List.of());
        expected.put("blue_stained_glass_pane", List.of());
        expected.put("blue_terracotta", List.of(ItemStack.of(Material.BLUE_TERRACOTTA, 1)));
        expected.put("blue_wool", List.of(ItemStack.of(Material.BLUE_WOOL, 1)));
        expected.put("bone_block", List.of(ItemStack.of(Material.BONE_BLOCK, 1)));
        expected.put("bookshelf", List.of(ItemStack.of(Material.AIR, 1)));
        expected.put("brain_coral", List.of());
        expected.put("brain_coral_block", List.of(ItemStack.of(Material.DEAD_BRAIN_CORAL_BLOCK, 1)));
        expected.put("brain_coral_fan", List.of());
        expected.put("brewing_stand", List.of(ItemStack.of(Material.BREWING_STAND, 1)));
        expected.put("brick_slab", List.of(ItemStack.of(Material.AIR, 1)));
        expected.put("brick_stairs", List.of(ItemStack.of(Material.BRICK_STAIRS, 1)));
        expected.put("brick_wall", List.of(ItemStack.of(Material.BRICK_WALL, 1)));
        expected.put("bricks", List.of(ItemStack.of(Material.BRICKS, 1)));
        expected.put("brown_banner", List.of(ItemStack.of(Material.BROWN_BANNER, 1)));
        expected.put("brown_bed", List.of());
        expected.put("brown_candle", List.of(ItemStack.of(Material.AIR, 1)));
        expected.put("brown_candle_cake", List.of(ItemStack.of(Material.BROWN_CANDLE, 1)));
        expected.put("brown_carpet", List.of(ItemStack.of(Material.BROWN_CARPET, 1)));
        expected.put("brown_concrete", List.of(ItemStack.of(Material.BROWN_CONCRETE, 1)));
        expected.put("brown_concrete_powder", List.of(ItemStack.of(Material.BROWN_CONCRETE_POWDER, 1)));
        expected.put("brown_glazed_terracotta", List.of(ItemStack.of(Material.BROWN_GLAZED_TERRACOTTA, 1)));
        expected.put("brown_mushroom", List.of(ItemStack.of(Material.BROWN_MUSHROOM, 1)));
        expected.put("brown_mushroom_block", List.of(ItemStack.of(Material.AIR, 1)));
        expected.put("brown_shulker_box", List.of(ItemStack.of(Material.BROWN_SHULKER_BOX, 1)));
        expected.put("brown_stained_glass", List.of());
        expected.put("brown_stained_glass_pane", List.of());
        expected.put("brown_terracotta", List.of(ItemStack.of(Material.BROWN_TERRACOTTA, 1)));
        expected.put("brown_wool", List.of(ItemStack.of(Material.BROWN_WOOL, 1)));
        expected.put("bubble_coral", List.of());
        expected.put("bubble_coral_block", List.of(ItemStack.of(Material.DEAD_BUBBLE_CORAL_BLOCK, 1)));
        expected.put("bubble_coral_fan", List.of());
        expected.put("budding_amethyst", List.of());
        expected.put("cactus", List.of(ItemStack.of(Material.CACTUS, 1)));
        expected.put("cake", List.of());
        expected.put("calcite", List.of(ItemStack.of(Material.CALCITE, 1)));
        expected.put("calibrated_sculk_sensor", List.of());
        expected.put("campfire", List.of(ItemStack.of(Material.CHARCOAL, 2)));
        expected.put("candle", List.of(ItemStack.of(Material.AIR, 1)));
        expected.put("candle_cake", List.of(ItemStack.of(Material.CANDLE, 1)));
        expected.put("carrots", List.of(ItemStack.of(Material.AIR, 1)));
        expected.put("cartography_table", List.of(ItemStack.of(Material.CARTOGRAPHY_TABLE, 1)));
        expected.put("carved_pumpkin", List.of(ItemStack.of(Material.CARVED_PUMPKIN, 1)));
        expected.put("cauldron", List.of(ItemStack.of(Material.CAULDRON, 1)));
        expected.put("cave_vines", List.of());
        expected.put("cave_vines_plant", List.of());
        expected.put("chain", List.of(ItemStack.of(Material.CHAIN, 1)));
        expected.put("cherry_button", List.of(ItemStack.of(Material.CHERRY_BUTTON, 1)));
        expected.put("cherry_door", List.of());
        expected.put("cherry_fence", List.of(ItemStack.of(Material.CHERRY_FENCE, 1)));
        expected.put("cherry_fence_gate", List.of(ItemStack.of(Material.CHERRY_FENCE_GATE, 1)));
        expected.put("cherry_hanging_sign", List.of(ItemStack.of(Material.CHERRY_HANGING_SIGN, 1)));
        expected.put("cherry_leaves", List.of());
        expected.put("cherry_log", List.of(ItemStack.of(Material.CHERRY_LOG, 1)));
        expected.put("cherry_planks", List.of(ItemStack.of(Material.CHERRY_PLANKS, 1)));
        expected.put("cherry_pressure_plate", List.of(ItemStack.of(Material.CHERRY_PRESSURE_PLATE, 1)));
        expected.put("cherry_sapling", List.of(ItemStack.of(Material.CHERRY_SAPLING, 1)));
        expected.put("cherry_sign", List.of(ItemStack.of(Material.CHERRY_SIGN, 1)));
        expected.put("cherry_slab", List.of(ItemStack.of(Material.AIR, 1)));
        expected.put("cherry_stairs", List.of(ItemStack.of(Material.CHERRY_STAIRS, 1)));
        expected.put("cherry_trapdoor", List.of(ItemStack.of(Material.CHERRY_TRAPDOOR, 1)));
        expected.put("cherry_wood", List.of(ItemStack.of(Material.CHERRY_WOOD, 1)));
        expected.put("chest", List.of(ItemStack.of(Material.CHEST, 1)));
        expected.put("chipped_anvil", List.of(ItemStack.of(Material.CHIPPED_ANVIL, 1)));
        expected.put("chiseled_bookshelf", List.of());
        expected.put("chiseled_copper", List.of());
        expected.put("chiseled_deepslate", List.of(ItemStack.of(Material.CHISELED_DEEPSLATE, 1)));
        expected.put("chiseled_nether_bricks", List.of(ItemStack.of(Material.CHISELED_NETHER_BRICKS, 1)));
        expected.put("chiseled_polished_blackstone", List.of(ItemStack.of(Material.CHISELED_POLISHED_BLACKSTONE, 1)));
        expected.put("chiseled_quartz_block", List.of(ItemStack.of(Material.CHISELED_QUARTZ_BLOCK, 1)));
        expected.put("chiseled_red_sandstone", List.of(ItemStack.of(Material.CHISELED_RED_SANDSTONE, 1)));
        expected.put("chiseled_sandstone", List.of(ItemStack.of(Material.CHISELED_SANDSTONE, 1)));
        expected.put("chiseled_stone_bricks", List.of(ItemStack.of(Material.CHISELED_STONE_BRICKS, 1)));
        expected.put("chiseled_tuff", List.of());
        expected.put("chiseled_tuff_bricks", List.of());
        expected.put("chorus_flower", List.of());
        expected.put("chorus_plant", List.of(ItemStack.of(Material.AIR, 1)));
        expected.put("clay", List.of(ItemStack.of(Material.AIR, 1)));
        expected.put("coal_block", List.of(ItemStack.of(Material.COAL_BLOCK, 1)));
        expected.put("coal_ore", List.of(ItemStack.of(Material.AIR, 1)));
        expected.put("coarse_dirt", List.of(ItemStack.of(Material.COARSE_DIRT, 1)));
        expected.put("cobbled_deepslate", List.of(ItemStack.of(Material.COBBLED_DEEPSLATE, 1)));
        expected.put("cobbled_deepslate_slab", List.of(ItemStack.of(Material.AIR, 1)));
        expected.put("cobbled_deepslate_stairs", List.of(ItemStack.of(Material.COBBLED_DEEPSLATE_STAIRS, 1)));
        expected.put("cobbled_deepslate_wall", List.of(ItemStack.of(Material.COBBLED_DEEPSLATE_WALL, 1)));
        expected.put("cobblestone", List.of(ItemStack.of(Material.COBBLESTONE, 1)));
        expected.put("cobblestone_slab", List.of(ItemStack.of(Material.AIR, 1)));
        expected.put("cobblestone_stairs", List.of(ItemStack.of(Material.COBBLESTONE_STAIRS, 1)));
        expected.put("cobblestone_wall", List.of(ItemStack.of(Material.COBBLESTONE_WALL, 1)));
        expected.put("cobweb", List.of(ItemStack.of(Material.STRING, 1)));
        expected.put("cocoa", List.of(ItemStack.of(Material.AIR, 1)));
        expected.put("comparator", List.of(ItemStack.of(Material.COMPARATOR, 1)));
        expected.put("composter", List.of(ItemStack.of(Material.AIR, 1)));
        expected.put("conduit", List.of(ItemStack.of(Material.CONDUIT, 1)));
        expected.put("copper_block", List.of(ItemStack.of(Material.COPPER_BLOCK, 1)));
        expected.put("copper_bulb", List.of());
        expected.put("copper_door", List.of());
        expected.put("copper_grate", List.of());
        expected.put("copper_ore", List.of(ItemStack.of(Material.AIR, 1)));
        expected.put("copper_trapdoor", List.of());
        expected.put("cornflower", List.of(ItemStack.of(Material.CORNFLOWER, 1)));
        expected.put("cracked_deepslate_bricks", List.of(ItemStack.of(Material.CRACKED_DEEPSLATE_BRICKS, 1)));
        expected.put("cracked_deepslate_tiles", List.of(ItemStack.of(Material.CRACKED_DEEPSLATE_TILES, 1)));
        expected.put("cracked_nether_bricks", List.of(ItemStack.of(Material.CRACKED_NETHER_BRICKS, 1)));
        expected.put("cracked_polished_blackstone_bricks", List.of(ItemStack.of(Material.CRACKED_POLISHED_BLACKSTONE_BRICKS, 1)));
        expected.put("cracked_stone_bricks", List.of(ItemStack.of(Material.CRACKED_STONE_BRICKS, 1)));
        expected.put("crafter", List.of());
        expected.put("crafting_table", List.of(ItemStack.of(Material.CRAFTING_TABLE, 1)));
        expected.put("creeper_head", List.of(ItemStack.of(Material.CREEPER_HEAD, 1)));
        expected.put("crimson_button", List.of(ItemStack.of(Material.CRIMSON_BUTTON, 1)));
        expected.put("crimson_door", List.of());
        expected.put("crimson_fence", List.of(ItemStack.of(Material.CRIMSON_FENCE, 1)));
        expected.put("crimson_fence_gate", List.of(ItemStack.of(Material.CRIMSON_FENCE_GATE, 1)));
        expected.put("crimson_fungus", List.of(ItemStack.of(Material.CRIMSON_FUNGUS, 1)));
        expected.put("crimson_hanging_sign", List.of(ItemStack.of(Material.CRIMSON_HANGING_SIGN, 1)));
        expected.put("crimson_hyphae", List.of(ItemStack.of(Material.CRIMSON_HYPHAE, 1)));
        expected.put("crimson_nylium", List.of(ItemStack.of(Material.NETHERRACK, 1)));
        expected.put("crimson_planks", List.of(ItemStack.of(Material.CRIMSON_PLANKS, 1)));
        expected.put("crimson_pressure_plate", List.of(ItemStack.of(Material.CRIMSON_PRESSURE_PLATE, 1)));
        expected.put("crimson_roots", List.of(ItemStack.of(Material.CRIMSON_ROOTS, 1)));
        expected.put("crimson_sign", List.of(ItemStack.of(Material.CRIMSON_SIGN, 1)));
        expected.put("crimson_slab", List.of(ItemStack.of(Material.AIR, 1)));
        expected.put("crimson_stairs", List.of(ItemStack.of(Material.CRIMSON_STAIRS, 1)));
        expected.put("crimson_stem", List.of(ItemStack.of(Material.CRIMSON_STEM, 1)));
        expected.put("crimson_trapdoor", List.of(ItemStack.of(Material.CRIMSON_TRAPDOOR, 1)));
        expected.put("crying_obsidian", List.of(ItemStack.of(Material.CRYING_OBSIDIAN, 1)));
        expected.put("cut_copper", List.of(ItemStack.of(Material.CUT_COPPER, 1)));
        expected.put("cut_copper_slab", List.of(ItemStack.of(Material.AIR, 1)));
        expected.put("cut_copper_stairs", List.of(ItemStack.of(Material.CUT_COPPER_STAIRS, 1)));
        expected.put("cut_red_sandstone", List.of(ItemStack.of(Material.CUT_RED_SANDSTONE, 1)));
        expected.put("cut_red_sandstone_slab", List.of(ItemStack.of(Material.AIR, 1)));
        expected.put("cut_sandstone", List.of(ItemStack.of(Material.CUT_SANDSTONE, 1)));
        expected.put("cut_sandstone_slab", List.of(ItemStack.of(Material.AIR, 1)));
        expected.put("cyan_banner", List.of(ItemStack.of(Material.CYAN_BANNER, 1)));
        expected.put("cyan_bed", List.of());
        expected.put("cyan_candle", List.of(ItemStack.of(Material.AIR, 1)));
        expected.put("cyan_candle_cake", List.of(ItemStack.of(Material.CYAN_CANDLE, 1)));
        expected.put("cyan_carpet", List.of(ItemStack.of(Material.CYAN_CARPET, 1)));
        expected.put("cyan_concrete", List.of(ItemStack.of(Material.CYAN_CONCRETE, 1)));
        expected.put("cyan_concrete_powder", List.of(ItemStack.of(Material.CYAN_CONCRETE_POWDER, 1)));
        expected.put("cyan_glazed_terracotta", List.of(ItemStack.of(Material.CYAN_GLAZED_TERRACOTTA, 1)));
        expected.put("cyan_shulker_box", List.of(ItemStack.of(Material.CYAN_SHULKER_BOX, 1)));
        expected.put("cyan_stained_glass", List.of());
        expected.put("cyan_stained_glass_pane", List.of());
        expected.put("cyan_terracotta", List.of(ItemStack.of(Material.CYAN_TERRACOTTA, 1)));
        expected.put("cyan_wool", List.of(ItemStack.of(Material.CYAN_WOOL, 1)));
        expected.put("damaged_anvil", List.of(ItemStack.of(Material.DAMAGED_ANVIL, 1)));
        expected.put("dandelion", List.of(ItemStack.of(Material.DANDELION, 1)));
        expected.put("dark_oak_button", List.of(ItemStack.of(Material.DARK_OAK_BUTTON, 1)));
        expected.put("dark_oak_door", List.of());
        expected.put("dark_oak_fence", List.of(ItemStack.of(Material.DARK_OAK_FENCE, 1)));
        expected.put("dark_oak_fence_gate", List.of(ItemStack.of(Material.DARK_OAK_FENCE_GATE, 1)));
        expected.put("dark_oak_hanging_sign", List.of(ItemStack.of(Material.DARK_OAK_HANGING_SIGN, 1)));
        expected.put("dark_oak_leaves", List.of());
        expected.put("dark_oak_log", List.of(ItemStack.of(Material.DARK_OAK_LOG, 1)));
        expected.put("dark_oak_planks", List.of(ItemStack.of(Material.DARK_OAK_PLANKS, 1)));
        expected.put("dark_oak_pressure_plate", List.of(ItemStack.of(Material.DARK_OAK_PRESSURE_PLATE, 1)));
        expected.put("dark_oak_sapling", List.of(ItemStack.of(Material.DARK_OAK_SAPLING, 1)));
        expected.put("dark_oak_sign", List.of(ItemStack.of(Material.DARK_OAK_SIGN, 1)));
        expected.put("dark_oak_slab", List.of(ItemStack.of(Material.AIR, 1)));
        expected.put("dark_oak_stairs", List.of(ItemStack.of(Material.DARK_OAK_STAIRS, 1)));
        expected.put("dark_oak_trapdoor", List.of(ItemStack.of(Material.DARK_OAK_TRAPDOOR, 1)));
        expected.put("dark_oak_wood", List.of(ItemStack.of(Material.DARK_OAK_WOOD, 1)));
        expected.put("dark_prismarine", List.of(ItemStack.of(Material.DARK_PRISMARINE, 1)));
        expected.put("dark_prismarine_slab", List.of(ItemStack.of(Material.AIR, 1)));
        expected.put("dark_prismarine_stairs", List.of(ItemStack.of(Material.DARK_PRISMARINE_STAIRS, 1)));
        expected.put("daylight_detector", List.of(ItemStack.of(Material.DAYLIGHT_DETECTOR, 1)));
        expected.put("dead_brain_coral", List.of());
        expected.put("dead_brain_coral_block", List.of(ItemStack.of(Material.DEAD_BRAIN_CORAL_BLOCK, 1)));
        expected.put("dead_brain_coral_fan", List.of());
        expected.put("dead_bubble_coral", List.of());
        expected.put("dead_bubble_coral_block", List.of(ItemStack.of(Material.DEAD_BUBBLE_CORAL_BLOCK, 1)));
        expected.put("dead_bubble_coral_fan", List.of());
        expected.put("dead_bush", List.of(ItemStack.of(Material.AIR, 1)));
        expected.put("dead_fire_coral", List.of());
        expected.put("dead_fire_coral_block", List.of(ItemStack.of(Material.DEAD_FIRE_CORAL_BLOCK, 1)));
        expected.put("dead_fire_coral_fan", List.of());
        expected.put("dead_horn_coral", List.of());
        expected.put("dead_horn_coral_block", List.of(ItemStack.of(Material.DEAD_HORN_CORAL_BLOCK, 1)));
        expected.put("dead_horn_coral_fan", List.of());
        expected.put("dead_tube_coral", List.of());
        expected.put("dead_tube_coral_block", List.of(ItemStack.of(Material.DEAD_TUBE_CORAL_BLOCK, 1)));
        expected.put("dead_tube_coral_fan", List.of());
        expected.put("decorated_pot", List.of(ItemStack.of(Material.DECORATED_POT, 1)));
        expected.put("deepslate", List.of(ItemStack.of(Material.COBBLED_DEEPSLATE, 1)));
        expected.put("deepslate_brick_slab", List.of(ItemStack.of(Material.AIR, 1)));
        expected.put("deepslate_brick_stairs", List.of(ItemStack.of(Material.DEEPSLATE_BRICK_STAIRS, 1)));
        expected.put("deepslate_brick_wall", List.of(ItemStack.of(Material.DEEPSLATE_BRICK_WALL, 1)));
        expected.put("deepslate_bricks", List.of(ItemStack.of(Material.DEEPSLATE_BRICKS, 1)));
        expected.put("deepslate_coal_ore", List.of(ItemStack.of(Material.AIR, 1)));
        expected.put("deepslate_copper_ore", List.of(ItemStack.of(Material.AIR, 1)));
        expected.put("deepslate_diamond_ore", List.of(ItemStack.of(Material.AIR, 1)));
        expected.put("deepslate_emerald_ore", List.of(ItemStack.of(Material.AIR, 1)));
        expected.put("deepslate_gold_ore", List.of(ItemStack.of(Material.AIR, 1)));
        expected.put("deepslate_iron_ore", List.of(ItemStack.of(Material.AIR, 1)));
        expected.put("deepslate_lapis_ore", List.of(ItemStack.of(Material.AIR, 1)));
        expected.put("deepslate_redstone_ore", List.of(ItemStack.of(Material.AIR, 1)));
        expected.put("deepslate_tile_slab", List.of(ItemStack.of(Material.AIR, 1)));
        expected.put("deepslate_tile_stairs", List.of(ItemStack.of(Material.DEEPSLATE_TILE_STAIRS, 1)));
        expected.put("deepslate_tile_wall", List.of(ItemStack.of(Material.DEEPSLATE_TILE_WALL, 1)));
        expected.put("deepslate_tiles", List.of(ItemStack.of(Material.DEEPSLATE_TILES, 1)));
        expected.put("detector_rail", List.of(ItemStack.of(Material.DETECTOR_RAIL, 1)));
        expected.put("diamond_block", List.of(ItemStack.of(Material.DIAMOND_BLOCK, 1)));
        expected.put("diamond_ore", List.of(ItemStack.of(Material.AIR, 1)));
        expected.put("diorite", List.of(ItemStack.of(Material.DIORITE, 1)));
        expected.put("diorite_slab", List.of(ItemStack.of(Material.AIR, 1)));
        expected.put("diorite_stairs", List.of(ItemStack.of(Material.DIORITE_STAIRS, 1)));
        expected.put("diorite_wall", List.of(ItemStack.of(Material.DIORITE_WALL, 1)));
        expected.put("dirt", List.of(ItemStack.of(Material.DIRT, 1)));
        expected.put("dirt_path", List.of(ItemStack.of(Material.DIRT, 1)));
        expected.put("dispenser", List.of(ItemStack.of(Material.DISPENSER, 1)));
        expected.put("dragon_egg", List.of(ItemStack.of(Material.DRAGON_EGG, 1)));
        expected.put("dragon_head", List.of(ItemStack.of(Material.DRAGON_HEAD, 1)));
        expected.put("dried_kelp_block", List.of(ItemStack.of(Material.DRIED_KELP_BLOCK, 1)));
        expected.put("dripstone_block", List.of(ItemStack.of(Material.DRIPSTONE_BLOCK, 1)));
        expected.put("dropper", List.of(ItemStack.of(Material.DROPPER, 1)));
        expected.put("emerald_block", List.of(ItemStack.of(Material.EMERALD_BLOCK, 1)));
        expected.put("emerald_ore", List.of(ItemStack.of(Material.AIR, 1)));
        expected.put("enchanting_table", List.of(ItemStack.of(Material.ENCHANTING_TABLE, 1)));
        expected.put("end_rod", List.of(ItemStack.of(Material.END_ROD, 1)));
        expected.put("end_stone", List.of(ItemStack.of(Material.END_STONE, 1)));
        expected.put("end_stone_brick_slab", List.of(ItemStack.of(Material.AIR, 1)));
        expected.put("end_stone_brick_stairs", List.of(ItemStack.of(Material.END_STONE_BRICK_STAIRS, 1)));
        expected.put("end_stone_brick_wall", List.of(ItemStack.of(Material.END_STONE_BRICK_WALL, 1)));
        expected.put("end_stone_bricks", List.of(ItemStack.of(Material.END_STONE_BRICKS, 1)));
        expected.put("ender_chest", List.of(ItemStack.of(Material.AIR, 1)));
        expected.put("exposed_chiseled_copper", List.of());
        expected.put("exposed_copper", List.of(ItemStack.of(Material.EXPOSED_COPPER, 1)));
        expected.put("exposed_copper_bulb", List.of());
        expected.put("exposed_copper_door", List.of());
        expected.put("exposed_copper_grate", List.of());
        expected.put("exposed_copper_trapdoor", List.of());
        expected.put("exposed_cut_copper", List.of(ItemStack.of(Material.EXPOSED_CUT_COPPER, 1)));
        expected.put("exposed_cut_copper_slab", List.of(ItemStack.of(Material.AIR, 1)));
        expected.put("exposed_cut_copper_stairs", List.of(ItemStack.of(Material.EXPOSED_CUT_COPPER_STAIRS, 1)));
        expected.put("farmland", List.of(ItemStack.of(Material.DIRT, 1)));
        expected.put("fern", List.of());
        expected.put("fire", List.of());
        expected.put("fire_coral", List.of());
        expected.put("fire_coral_block", List.of(ItemStack.of(Material.DEAD_FIRE_CORAL_BLOCK, 1)));
        expected.put("fire_coral_fan", List.of());
        expected.put("fletching_table", List.of(ItemStack.of(Material.FLETCHING_TABLE, 1)));
        expected.put("flower_pot", List.of(ItemStack.of(Material.FLOWER_POT, 1)));
        expected.put("flowering_azalea", List.of(ItemStack.of(Material.FLOWERING_AZALEA, 1)));
        expected.put("flowering_azalea_leaves", List.of());
        expected.put("frogspawn", List.of());
        expected.put("frosted_ice", List.of());
        expected.put("furnace", List.of(ItemStack.of(Material.FURNACE, 1)));
        expected.put("gilded_blackstone", List.of(ItemStack.of(Material.GILDED_BLACKSTONE, 1)));
        expected.put("glass", List.of());
        expected.put("glass_pane", List.of());
        expected.put("glow_lichen", List.of());
        expected.put("glowstone", List.of(ItemStack.of(Material.AIR, 1)));
        expected.put("gold_block", List.of(ItemStack.of(Material.GOLD_BLOCK, 1)));
        expected.put("gold_ore", List.of(ItemStack.of(Material.AIR, 1)));
        expected.put("granite", List.of(ItemStack.of(Material.GRANITE, 1)));
        expected.put("granite_slab", List.of(ItemStack.of(Material.AIR, 1)));
        expected.put("granite_stairs", List.of(ItemStack.of(Material.GRANITE_STAIRS, 1)));
        expected.put("granite_wall", List.of(ItemStack.of(Material.GRANITE_WALL, 1)));
        expected.put("grass_block", List.of(ItemStack.of(Material.DIRT, 1)));
        expected.put("gravel", List.of(ItemStack.of(Material.GRAVEL, 1)));
        expected.put("gray_banner", List.of(ItemStack.of(Material.GRAY_BANNER, 1)));
        expected.put("gray_bed", List.of());
        expected.put("gray_candle", List.of(ItemStack.of(Material.AIR, 1)));
        expected.put("gray_candle_cake", List.of(ItemStack.of(Material.GRAY_CANDLE, 1)));
        expected.put("gray_carpet", List.of(ItemStack.of(Material.GRAY_CARPET, 1)));
        expected.put("gray_concrete", List.of(ItemStack.of(Material.GRAY_CONCRETE, 1)));
        expected.put("gray_concrete_powder", List.of(ItemStack.of(Material.GRAY_CONCRETE_POWDER, 1)));
        expected.put("gray_glazed_terracotta", List.of(ItemStack.of(Material.GRAY_GLAZED_TERRACOTTA, 1)));
        expected.put("gray_shulker_box", List.of(ItemStack.of(Material.GRAY_SHULKER_BOX, 1)));
        expected.put("gray_stained_glass", List.of());
        expected.put("gray_stained_glass_pane", List.of());
        expected.put("gray_terracotta", List.of(ItemStack.of(Material.GRAY_TERRACOTTA, 1)));
        expected.put("gray_wool", List.of(ItemStack.of(Material.GRAY_WOOL, 1)));
        expected.put("green_banner", List.of(ItemStack.of(Material.GREEN_BANNER, 1)));
        expected.put("green_bed", List.of());
        expected.put("green_candle", List.of(ItemStack.of(Material.AIR, 1)));
        expected.put("green_candle_cake", List.of(ItemStack.of(Material.GREEN_CANDLE, 1)));
        expected.put("green_carpet", List.of(ItemStack.of(Material.GREEN_CARPET, 1)));
        expected.put("green_concrete", List.of(ItemStack.of(Material.GREEN_CONCRETE, 1)));
        expected.put("green_concrete_powder", List.of(ItemStack.of(Material.GREEN_CONCRETE_POWDER, 1)));
        expected.put("green_glazed_terracotta", List.of(ItemStack.of(Material.GREEN_GLAZED_TERRACOTTA, 1)));
        expected.put("green_shulker_box", List.of(ItemStack.of(Material.GREEN_SHULKER_BOX, 1)));
        expected.put("green_stained_glass", List.of());
        expected.put("green_stained_glass_pane", List.of());
        expected.put("green_terracotta", List.of(ItemStack.of(Material.GREEN_TERRACOTTA, 1)));
        expected.put("green_wool", List.of(ItemStack.of(Material.GREEN_WOOL, 1)));
        expected.put("grindstone", List.of(ItemStack.of(Material.GRINDSTONE, 1)));
        expected.put("hanging_roots", List.of());
        expected.put("hay_block", List.of(ItemStack.of(Material.HAY_BLOCK, 1)));
        expected.put("heavy_weighted_pressure_plate", List.of(ItemStack.of(Material.HEAVY_WEIGHTED_PRESSURE_PLATE, 1)));
        expected.put("honey_block", List.of(ItemStack.of(Material.HONEY_BLOCK, 1)));
