import json with open('minecraft_data/registries.json') as f: ITEMS = json.load(f)['minecraft:item']['entries'] BEDS = [ 'white_bed', 'orange_bed', 'magenta_bed', 'light_blue_bed', 'yellow_bed', 'lime_bed', 'pink_bed', 'gray_bed', 'light_gray_bed', 'cyan_bed', 'purple_bed', 'blue_bed', 'brown_bed', 'green_bed', 'red_bed', 'black_bed', ] SHOVELS = [ 'wooden_shovel', 'stone_shovel', 'golden_shovel', 'iron_shovel', 'diamond_shovel', 'netherite_shovel', ] AXES = [ 'wooden_axe', 'stone_axe', 'golden_axe', 'iron_axe', 'diamond_axe', 'netherite_axe', ] SAPLINGS = [ 'oak_sapling', 'spruce_sapling', 'birch_sapling', 'jungle_sapling', 'acacia_sapling', 'dark_oak_sapling', ] FOOD = [ 'cooked_porkchop', 'cooked_beef', 'bread', 'cooked_chicken', 'cooked_cod', 'cooked_salmon', ] LOGS = [ 'oak_log', 'spruce_log', 'birch_log', 'jungle_log', 'acacia_log', 'dark_oak_log', ] def get_set(ids): result = set() for item_name in ids: result.add(ITEMS['minecraft:'+item_name]['protocol_id']) return result BED_IDS = get_set(BEDS) SHOVEL_IDS = get_set(SHOVELS) AXE_IDS = get_set(AXES) FOOD_IDS = get_set(FOOD) SAPLING_IDS = get_set(SAPLINGS) LOG_IDS = get_set(LOGS) ITEM_NAMES = {} for item_name, item in ITEMS.items(): ITEM_NAMES[ITEMS[item_name]['protocol_id']] = item_name.replace('minecraft:', '') def get_id(name): return ITEMS['minecraft:' + name]['protocol_id'] def get_name(idx): return ITEM_NAMES[idx] CHEST_ID = get_id('chest') GAPPLE_ID = get_id('enchanted_golden_apple') SAND_ID = get_id('sand') NETHERWART_ID = get_id('nether_wart') CARROT_ID = get_id('carrot') POTATO_ID = get_id('potato') WHEAT_ID = get_id('wheat') WHEAT_SEEDS_ID = get_id('wheat_seeds') BEETROOT_SEEDS_ID = get_id('beetroot_seeds') PUMPKIN_ID = get_id('pumpkin') BEETROOT_ID = get_id('beetroot') EMERALD_ID = get_id('emerald') BERRIES_ID = get_id('sweet_berries') IRON_INGOT_ID = get_id('iron_ingot') INIT_NEEDED_ITEMS = BED_IDS | FOOD_IDS INIT_NEEDED_ITEMS.add(CHEST_ID) NEEDED_ITEMS = INIT_NEEDED_ITEMS INIT_WANTED_ITEMS = set() WANTED_ITEMS = INIT_WANTED_ITEMS def set_needed(items): global NEEDED_ITEMS NEEDED_ITEMS = INIT_NEEDED_ITEMS | items def set_wanted(items): global WANTED_ITEMS WANTED_ITEMS = INIT_WANTED_ITEMS | items