commit b5089257c56c3aa2c7051da7f6cefd4dfa6a3867 Author: abtmtr Date: Wed Aug 27 20:49:18 2025 -0500 Inital commit diff --git a/DIM-1/data/gamerules.dat b/DIM-1/data/gamerules.dat new file mode 100755 index 0000000..028e559 Binary files /dev/null and b/DIM-1/data/gamerules.dat differ diff --git a/DIM-1/data/raids.dat b/DIM-1/data/raids.dat new file mode 100755 index 0000000..c4c412b Binary files /dev/null and b/DIM-1/data/raids.dat differ diff --git a/DIM-1/data/world_level_data.dat b/DIM-1/data/world_level_data.dat new file mode 100755 index 0000000..9bf57d8 Binary files /dev/null and b/DIM-1/data/world_level_data.dat differ diff --git a/DIM-1/entities/r.-1.-1.mca b/DIM-1/entities/r.-1.-1.mca new file mode 100755 index 0000000..db69f44 Binary files /dev/null and b/DIM-1/entities/r.-1.-1.mca differ diff --git a/DIM-1/entities/r.-1.0.mca b/DIM-1/entities/r.-1.0.mca new file mode 100755 index 0000000..3caba4a Binary files /dev/null and b/DIM-1/entities/r.-1.0.mca differ diff --git a/DIM-1/entities/r.0.-1.mca b/DIM-1/entities/r.0.-1.mca new file mode 100755 index 0000000..eda2832 Binary files /dev/null and b/DIM-1/entities/r.0.-1.mca differ diff --git a/DIM-1/entities/r.0.0.mca b/DIM-1/entities/r.0.0.mca new file mode 100755 index 0000000..676ef75 Binary files /dev/null and b/DIM-1/entities/r.0.0.mca differ diff --git a/DIM-1/poi/r.-1.-1.mca b/DIM-1/poi/r.-1.-1.mca new file mode 100755 index 0000000..91f6754 Binary files /dev/null and b/DIM-1/poi/r.-1.-1.mca differ diff --git a/DIM-1/poi/r.-1.0.mca b/DIM-1/poi/r.-1.0.mca new file mode 100755 index 0000000..e69de29 diff --git a/DIM-1/poi/r.0.-1.mca b/DIM-1/poi/r.0.-1.mca new file mode 100755 index 0000000..e69de29 diff --git a/DIM-1/poi/r.0.0.mca b/DIM-1/poi/r.0.0.mca new file mode 100755 index 0000000..e69de29 diff --git a/DIM-1/region/r.-1.-1.mca b/DIM-1/region/r.-1.-1.mca new file mode 100755 index 0000000..64d3308 Binary files /dev/null and b/DIM-1/region/r.-1.-1.mca differ diff --git a/DIM-1/region/r.-1.0.mca b/DIM-1/region/r.-1.0.mca new file mode 100755 index 0000000..5a03a80 Binary files /dev/null and b/DIM-1/region/r.-1.0.mca differ diff --git a/DIM-1/region/r.-1.1.mca b/DIM-1/region/r.-1.1.mca new file mode 100755 index 0000000..e69de29 diff --git a/DIM-1/region/r.-2.-1.mca b/DIM-1/region/r.-2.-1.mca new file mode 100755 index 0000000..e69de29 diff --git a/DIM-1/region/r.-2.0.mca b/DIM-1/region/r.-2.0.mca new file mode 100755 index 0000000..e69de29 diff --git a/DIM-1/region/r.-2.1.mca b/DIM-1/region/r.-2.1.mca new file mode 100755 index 0000000..e69de29 diff --git a/DIM-1/region/r.0.-1.mca b/DIM-1/region/r.0.-1.mca new file mode 100755 index 0000000..4070fed Binary files /dev/null and b/DIM-1/region/r.0.-1.mca differ diff --git a/DIM-1/region/r.0.0.mca b/DIM-1/region/r.0.0.mca new file mode 100755 index 0000000..e8122b2 Binary files /dev/null and b/DIM-1/region/r.0.0.mca differ diff --git a/DIM-1/region/r.0.1.mca b/DIM-1/region/r.0.1.mca new file mode 100755 index 0000000..e69de29 diff --git a/DIM1/data/gamerules.dat b/DIM1/data/gamerules.dat new file mode 100755 index 0000000..028e559 Binary files /dev/null and b/DIM1/data/gamerules.dat differ diff --git a/DIM1/data/raids_end.dat b/DIM1/data/raids_end.dat new file mode 100755 index 0000000..c4c412b Binary files /dev/null and b/DIM1/data/raids_end.dat differ diff --git a/DIM1/data/world_level_data.dat b/DIM1/data/world_level_data.dat new file mode 100755 index 0000000..9bf57d8 Binary files /dev/null and b/DIM1/data/world_level_data.dat differ diff --git a/advancements/4e643a75-854d-48fc-8167-ecaefd25657a.json b/advancements/4e643a75-854d-48fc-8167-ecaefd25657a.json new file mode 100755 index 0000000..4d234ac --- /dev/null +++ b/advancements/4e643a75-854d-48fc-8167-ecaefd25657a.json @@ -0,0 +1,1489 @@ +{ + "minecraft:recipes/redstone/lever": { + "criteria": { + "has_cobblestone": "2025-08-27 18:42:32 -0500" + }, + "done": true + }, + "vanillatweaks:bat_membranes": { + "criteria": { + "tick": "2025-08-27 18:20:12 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/polished_deepslate": { + "criteria": { + "has_cobbled_deepslate": "2025-08-27 19:03:33 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/pink_dye_from_pink_petals": { + "criteria": { + "has_pink_petals": "2025-08-27 19:19:56 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/leather_helmet": { + "criteria": { + "has_leather": "2025-08-27 19:48:27 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/ladder": { + "criteria": { + "has_stick": "2025-08-27 18:40:20 -0500" + }, + "done": true + }, + "minecraft:recipes/food/cake": { + "criteria": { + "has_egg": "2025-08-27 19:43:29 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/iron_leggings": { + "criteria": { + "has_iron_ingot": "2025-08-27 18:56:31 -0500" + }, + "done": true + }, + "vanillatweaks:spectator_night_vision": { + "criteria": { + "tick": "2025-08-27 18:20:12 -0500" + }, + "done": true + }, + "vanillatweaks:root": { + "criteria": { + "tick": "2025-08-27 18:20:12 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/deepslate_tile_stairs_from_cobbled_deepslate_stonecutting": { + "criteria": { + "has_cobbled_deepslate": "2025-08-27 19:03:33 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/leather_leggings": { + "criteria": { + "has_leather": "2025-08-27 19:48:27 -0500" + }, + "done": true + }, + "minecraft:story/obtain_armor": { + "criteria": { + "iron_chestplate": "2025-08-27 19:18:03 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/diamond_leggings": { + "criteria": { + "has_diamond": "2025-08-27 19:04:56 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/spruce_stairs_from_spruce_planks_stonecutting": { + "criteria": { + "has_spruce_planks": "2025-08-27 20:16:19 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/iron_nugget_from_smelting": { + "criteria": { + "has_iron_pickaxe": "2025-08-27 18:56:42 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/blue_dye": { + "criteria": { + "has_lapis_lazuli": "2025-08-27 19:00:32 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/cyan_dye": { + "criteria": { + "has_blue_dye": "2025-08-27 19:52:08 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/golden_axe": { + "criteria": { + "has_gold_ingot": "2025-08-27 19:14:21 -0500" + }, + "done": true + }, + "minecraft:story/iron_tools": { + "criteria": { + "iron_pickaxe": "2025-08-27 18:56:42 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/iron_chestplate": { + "criteria": { + "has_iron_ingot": "2025-08-27 18:56:31 -0500" + }, + "done": true + }, + "minecraft:husbandry/whole_pack": { + "criteria": { + "minecraft:chestnut": "2025-08-27 19:55:51 -0500", + "minecraft:black": "2025-08-27 19:51:57 -0500" + }, + "done": false + }, + "minecraft:recipes/decorations/oak_sign": { + "criteria": { + "has_planks": "2025-08-27 18:40:16 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/oak_trapdoor": { + "criteria": { + "has_planks": "2025-08-27 18:40:16 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/golden_pickaxe": { + "criteria": { + "has_gold_ingot": "2025-08-27 19:14:21 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/deepslate_brick_stairs_from_cobbled_deepslate_stonecutting": { + "criteria": { + "has_cobbled_deepslate": "2025-08-27 19:03:33 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/stone_sword": { + "criteria": { + "has_cobblestone": "2025-08-27 18:42:32 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/cobblestone_wall": { + "criteria": { + "has_cobblestone": "2025-08-27 18:42:32 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/lapis_block": { + "criteria": { + "has_lapis_lazuli": "2025-08-27 19:00:32 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/stone_axe": { + "criteria": { + "has_cobblestone": "2025-08-27 18:42:32 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/raw_iron_block": { + "criteria": { + "has_raw_iron": "2025-08-27 18:46:40 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/blue_candle": { + "criteria": { + "has_blue_dye": "2025-08-27 19:52:08 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/iron_nugget": { + "criteria": { + "has_iron_ingot": "2025-08-27 18:56:31 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/blue_stained_glass_pane_from_glass_pane": { + "criteria": { + "has_blue_dye": "2025-08-27 19:52:08 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/diamond_sword": { + "criteria": { + "has_diamond": "2025-08-27 19:04:56 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/white_dye": { + "criteria": { + "has_bone_meal": "2025-08-27 19:20:47 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/jukebox": { + "criteria": { + "has_diamond": "2025-08-27 19:04:56 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/gold_nugget": { + "criteria": { + "has_gold_ingot": "2025-08-27 19:14:21 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/bucket": { + "criteria": { + "has_iron_ingot": "2025-08-27 18:56:31 -0500" + }, + "done": true + }, + "vanillatweaks:confetti_creepers": { + "criteria": { + "tick": "2025-08-27 18:20:12 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/iron_helmet": { + "criteria": { + "has_iron_ingot": "2025-08-27 18:56:31 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/golden_shovel": { + "criteria": { + "has_gold_ingot": "2025-08-27 19:14:21 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/bow": { + "criteria": { + "has_string": "2025-08-27 19:02:04 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/diamond_chestplate": { + "criteria": { + "has_diamond": "2025-08-27 19:04:56 -0500" + }, + "done": true + }, + "minecraft:story/mine_stone": { + "criteria": { + "get_stone": "2025-08-27 18:42:32 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/furnace": { + "criteria": { + "has_cobblestone": "2025-08-27 18:42:32 -0500" + }, + "done": true + }, + "minecraft:recipes/transportation/minecart": { + "criteria": { + "has_iron_ingot": "2025-08-27 18:56:31 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/andesite_stairs": { + "criteria": { + "has_andesite": "2025-08-27 18:45:39 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/iron_hoe": { + "criteria": { + "has_iron_ingot": "2025-08-27 18:56:31 -0500" + }, + "done": true + }, + "minecraft:recipes/food/golden_apple": { + "criteria": { + "has_gold_ingot": "2025-08-27 19:14:21 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/gold_ingot_from_blasting_raw_gold": { + "criteria": { + "has_raw_gold": "2025-08-27 19:03:00 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/golden_boots": { + "criteria": { + "has_gold_ingot": "2025-08-27 19:14:21 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/wooden_axe": { + "criteria": { + "has_stick": "2025-08-27 18:40:20 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/spruce_sign": { + "criteria": { + "has_planks": "2025-08-27 20:16:19 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/golden_helmet": { + "criteria": { + "has_gold_ingot": "2025-08-27 19:14:21 -0500" + }, + "done": true + }, + "minecraft:recipes/food/cooked_salmon": { + "criteria": { + "has_salmon": "2025-08-27 18:48:14 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/leather_chestplate": { + "criteria": { + "has_leather": "2025-08-27 19:48:27 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/magenta_dye_from_blue_red_pink": { + "criteria": { + "has_blue_dye": "2025-08-27 19:52:08 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/andesite_wall_from_andesite_stonecutting": { + "criteria": { + "has_andesite": "2025-08-27 18:45:39 -0500" + }, + "done": true + }, + "minecraft:story/smelt_iron": { + "criteria": { + "iron": "2025-08-27 18:56:31 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/fishing_rod": { + "criteria": { + "has_string": "2025-08-27 19:02:04 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/smoker": { + "criteria": { + "has_furnace": "2025-08-27 18:43:20 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/chiseled_deepslate_from_cobbled_deepslate_stonecutting": { + "criteria": { + "has_cobbled_deepslate": "2025-08-27 19:03:33 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/pumpkin_seeds": { + "criteria": { + "has_pumpkin": "2025-08-27 18:49:22 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/crafting_table": { + "criteria": { + "unlock_right_away": "2025-08-27 18:20:12 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/chest": { + "criteria": { + "has_lots_of_items": "2025-08-27 18:42:32 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/cobbled_deepslate_slab": { + "criteria": { + "has_cobbled_deepslate": "2025-08-27 19:03:33 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/blue_bundle": { + "criteria": { + "has_blue_dye": "2025-08-27 19:52:08 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/shears": { + "criteria": { + "has_iron_ingot": "2025-08-27 18:56:31 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/stick": { + "criteria": { + "has_planks": "2025-08-27 18:40:16 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/cobbled_deepslate_wall_from_cobbled_deepslate_stonecutting": { + "criteria": { + "has_cobbled_deepslate": "2025-08-27 19:03:33 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/spyglass": { + "criteria": { + "has_amethyst_shard": "2025-08-27 19:00:43 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/cobblestone_slab_from_cobblestone_stonecutting": { + "criteria": { + "has_cobblestone": "2025-08-27 18:42:32 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/oak_stairs": { + "criteria": { + "has_planks": "2025-08-27 18:40:16 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/polished_andesite_slab_from_andesite_stonecutting": { + "criteria": { + "has_andesite": "2025-08-27 18:45:39 -0500" + }, + "done": true + }, + "minecraft:recipes/transportation/cherry_boat": { + "criteria": { + "in_water": "2025-08-27 18:24:24 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/diamond_pickaxe": { + "criteria": { + "has_diamond": "2025-08-27 19:04:56 -0500" + }, + "done": true + }, + "minecraft:adventure/kill_all_mobs": { + "criteria": { + "minecraft:pillager": "2025-08-27 19:28:22 -0500", + "minecraft:skeleton": "2025-08-27 19:08:18 -0500", + "minecraft:spider": "2025-08-27 19:02:03 -0500", + "minecraft:zombie": "2025-08-27 19:01:53 -0500", + "minecraft:creeper": "2025-08-27 19:21:00 -0500" + }, + "done": false + }, + "minecraft:recipes/decorations/chain": { + "criteria": { + "has_iron_ingot": "2025-08-27 18:56:31 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/oak_fence": { + "criteria": { + "has_planks": "2025-08-27 18:40:16 -0500" + }, + "done": true + }, + "minecraft:recipes/food/cooked_porkchop_from_campfire_cooking": { + "criteria": { + "has_porkchop": "2025-08-27 18:41:27 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/golden_chestplate": { + "criteria": { + "has_gold_ingot": "2025-08-27 19:14:21 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/spruce_trapdoor_from_spruce_planks_stonecutting": { + "criteria": { + "has_spruce_planks": "2025-08-27 20:16:19 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/iron_block": { + "criteria": { + "has_iron_ingot": "2025-08-27 18:56:31 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/spruce_wood": { + "criteria": { + "has_log": "2025-08-27 20:05:44 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/yellow_dye_from_dandelion": { + "criteria": { + "has_dandelion": "2025-08-27 19:19:50 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/tripwire_hook": { + "criteria": { + "has_string": "2025-08-27 19:02:04 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/bone_meal": { + "criteria": { + "has_bone": "2025-08-27 19:08:18 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/cobbled_deepslate_wall": { + "criteria": { + "has_cobbled_deepslate": "2025-08-27 19:03:33 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/polished_deepslate_wall_from_cobbled_deepslate_stonecutting": { + "criteria": { + "has_cobbled_deepslate": "2025-08-27 19:03:33 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/stone": { + "criteria": { + "has_cobblestone": "2025-08-27 18:42:32 -0500" + }, + "done": true + }, + "graves:check_death_markers_later_in_tick": { + "criteria": { + "tick": "2025-08-27 18:20:12 -0500" + }, + "done": true + }, + "minecraft:recipes/transportation/bamboo_raft": { + "criteria": { + "in_water": "2025-08-27 18:24:24 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/smithing_table": { + "criteria": { + "has_iron_ingot": "2025-08-27 18:56:31 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/candle": { + "criteria": { + "has_string": "2025-08-27 19:02:04 -0500" + }, + "done": true + }, + "minecraft:recipes/food/bread": { + "criteria": { + "has_wheat": "2025-08-27 19:21:55 -0500" + }, + "done": true + }, + "minecraft:recipes/transportation/spruce_boat": { + "criteria": { + "in_water": "2025-08-27 18:24:24 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/hay_block": { + "criteria": { + "has_wheat": "2025-08-27 19:21:55 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/leather_horse_armor": { + "criteria": { + "has_leather": "2025-08-27 19:48:27 -0500" + }, + "done": true + }, + "minecraft:husbandry/root": { + "criteria": { + "consumed_item": "2025-08-27 18:45:13 -0500" + }, + "done": true + }, + "minecraft:recipes/transportation/birch_boat": { + "criteria": { + "in_water": "2025-08-27 18:24:24 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/cobbled_deepslate_stairs_from_cobbled_deepslate_stonecutting": { + "criteria": { + "has_cobbled_deepslate": "2025-08-27 19:03:33 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/spruce_fence": { + "criteria": { + "has_planks": "2025-08-27 20:16:19 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/diamond_hoe": { + "criteria": { + "has_diamond": "2025-08-27 19:04:56 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/diamond_shovel": { + "criteria": { + "has_diamond": "2025-08-27 19:04:56 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/deepslate": { + "criteria": { + "has_cobbled_deepslate": "2025-08-27 19:03:33 -0500" + }, + "done": true + }, + "minecraft:recipes/transportation/oak_boat": { + "criteria": { + "in_water": "2025-08-27 18:24:24 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/paper": { + "criteria": { + "has_reeds": "2025-08-27 18:40:36 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/andesite_slab_from_andesite_stonecutting": { + "criteria": { + "has_andesite": "2025-08-27 18:45:39 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/coal_block": { + "criteria": { + "has_coal": "2025-08-27 18:44:20 -0500" + }, + "done": true + }, + "minecraft:recipes/food/suspicious_stew_from_oxeye_daisy": { + "criteria": { + "has_oxeye_daisy": "2025-08-27 19:19:55 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/light_weighted_pressure_plate": { + "criteria": { + "has_gold_ingot": "2025-08-27 19:14:21 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/spruce_slab": { + "criteria": { + "has_planks": "2025-08-27 20:16:19 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/polished_deepslate_stairs_from_cobbled_deepslate_stonecutting": { + "criteria": { + "has_cobbled_deepslate": "2025-08-27 19:03:33 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/oak_button": { + "criteria": { + "has_planks": "2025-08-27 18:40:16 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/spruce_pressure_plate_from_spruce_planks_stonecutting": { + "criteria": { + "has_spruce_planks": "2025-08-27 20:16:19 -0500" + }, + "done": true + }, + "minecraft:recipes/food/pumpkin_pie": { + "criteria": { + "has_pumpkin": "2025-08-27 18:49:22 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/diamond_boots": { + "criteria": { + "has_diamond": "2025-08-27 19:04:56 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/oak_planks_from_oak_logs_stonecutting": { + "criteria": { + "has_oak_logs": "2025-08-27 18:25:02 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/iron_sword": { + "criteria": { + "has_iron_ingot": "2025-08-27 18:56:31 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/iron_pickaxe": { + "criteria": { + "has_iron_ingot": "2025-08-27 18:56:31 -0500" + }, + "done": true + }, + "minecraft:recipes/transportation/mangrove_boat": { + "criteria": { + "in_water": "2025-08-27 18:24:24 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/spruce_button": { + "criteria": { + "has_planks": "2025-08-27 20:16:19 -0500" + }, + "done": true + }, + "minecraft:recipes/food/suspicious_stew_from_dandelion": { + "criteria": { + "has_dandelion": "2025-08-27 19:19:50 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/torch": { + "criteria": { + "has_stone_pickaxe": "2025-08-27 18:43:04 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/flower_banner_pattern": { + "criteria": { + "has_oxeye_daisy": "2025-08-27 19:19:55 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/shield": { + "criteria": { + "has_iron_ingot": "2025-08-27 18:56:31 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/hopper": { + "criteria": { + "has_iron_ingot": "2025-08-27 18:56:31 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/calibrated_sculk_sensor": { + "criteria": { + "has_amethyst_shard": "2025-08-27 19:00:43 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/gold_ingot_from_smelting_raw_gold": { + "criteria": { + "has_raw_gold": "2025-08-27 19:03:00 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/andesite_stairs_from_andesite_stonecutting": { + "criteria": { + "has_andesite": "2025-08-27 18:45:39 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/iron_bars": { + "criteria": { + "has_iron_ingot": "2025-08-27 18:56:31 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/tinted_glass": { + "criteria": { + "has_amethyst_shard": "2025-08-27 19:00:43 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/dye_blue_wool": { + "criteria": { + "has_needed_dye": "2025-08-27 19:52:08 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/deepslate_brick_wall_from_cobbled_deepslate_stonecutting": { + "criteria": { + "has_cobbled_deepslate": "2025-08-27 19:03:33 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/spruce_planks": { + "criteria": { + "has_logs": "2025-08-27 20:05:44 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/polished_deepslate_from_cobbled_deepslate_stonecutting": { + "criteria": { + "has_cobbled_deepslate": "2025-08-27 19:03:33 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/polished_deepslate_slab_from_cobbled_deepslate_stonecutting": { + "criteria": { + "has_cobbled_deepslate": "2025-08-27 19:03:33 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/light_blue_dye_from_blue_white_dye": { + "criteria": { + "has_blue_dye": "2025-08-27 19:52:08 -0500" + }, + "done": true + }, + "minecraft:recipes/food/cooked_porkchop": { + "criteria": { + "has_porkchop": "2025-08-27 18:41:27 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/oak_slab": { + "criteria": { + "has_planks": "2025-08-27 18:40:16 -0500" + }, + "done": true + }, + "minecraft:husbandry/tame_an_animal": { + "criteria": { + "tamed_animal": "2025-08-27 19:51:57 -0500" + }, + "done": true + }, + "minecraft:recipes/food/cooked_salmon_from_smoking": { + "criteria": { + "has_salmon": "2025-08-27 18:48:14 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/raw_gold_block": { + "criteria": { + "has_raw_gold": "2025-08-27 19:03:00 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/iron_boots": { + "criteria": { + "has_iron_ingot": "2025-08-27 18:56:31 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/spruce_pressure_plate": { + "criteria": { + "has_planks": "2025-08-27 20:16:19 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/dye_blue_carpet": { + "criteria": { + "has_needed_dye": "2025-08-27 19:52:08 -0500" + }, + "done": true + }, + "minecraft:recipes/brewing/fermented_spider_eye": { + "criteria": { + "has_spider_eye": "2025-08-27 19:02:04 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/iron_ingot_from_smelting_raw_iron": { + "criteria": { + "has_raw_iron": "2025-08-27 18:46:40 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/stone_pickaxe": { + "criteria": { + "has_cobblestone": "2025-08-27 18:42:32 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/deepslate_brick_slab_from_cobbled_deepslate_stonecutting": { + "criteria": { + "has_cobbled_deepslate": "2025-08-27 19:03:33 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/purple_dye": { + "criteria": { + "has_blue_dye": "2025-08-27 19:52:08 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/oak_pressure_plate_from_oak_planks_stonecutting": { + "criteria": { + "has_oak_planks": "2025-08-27 18:40:16 -0500" + }, + "done": true + }, + "vanillatweaks:ender_chest_always_drops": { + "criteria": { + "tick": "2025-08-27 18:20:12 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/lantern": { + "criteria": { + "has_iron_ingot": "2025-08-27 18:56:31 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/cobbled_deepslate_slab_from_cobbled_deepslate_stonecutting": { + "criteria": { + "has_cobbled_deepslate": "2025-08-27 19:03:33 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/campfire": { + "criteria": { + "has_stick": "2025-08-27 18:40:20 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/oak_slab_from_oak_planks_stonecutting": { + "criteria": { + "has_oak_planks": "2025-08-27 18:40:16 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/deepslate_tile_slab_from_cobbled_deepslate_stonecutting": { + "criteria": { + "has_cobbled_deepslate": "2025-08-27 19:03:33 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/wolf_armor": { + "criteria": { + "has_armadillo_scute": "2025-08-27 19:29:56 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/sugar_from_sugar_cane": { + "criteria": { + "has_sugar_cane": "2025-08-27 18:40:36 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/wooden_hoe": { + "criteria": { + "has_stick": "2025-08-27 18:40:20 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/oak_fence_gate": { + "criteria": { + "has_planks": "2025-08-27 18:40:16 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/charcoal": { + "criteria": { + "has_log": "2025-08-27 18:25:02 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/wooden_pickaxe": { + "criteria": { + "has_stick": "2025-08-27 18:40:20 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/cobbled_deepslate_stairs": { + "criteria": { + "has_cobbled_deepslate": "2025-08-27 19:03:33 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/polished_andesite_from_andesite_stonecutting": { + "criteria": { + "has_andesite": "2025-08-27 18:45:39 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/iron_shovel": { + "criteria": { + "has_iron_ingot": "2025-08-27 18:56:31 -0500" + }, + "done": true + }, + "minecraft:recipes/food/cooked_salmon_from_campfire_cooking": { + "criteria": { + "has_salmon": "2025-08-27 18:48:14 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/item_frame": { + "criteria": { + "has_leather": "2025-08-27 19:48:27 -0500" + }, + "done": true + }, + "minecraft:story/upgrade_tools": { + "criteria": { + "stone_pickaxe": "2025-08-27 18:43:04 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/diamond_helmet": { + "criteria": { + "has_diamond": "2025-08-27 19:04:56 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/oak_pressure_plate": { + "criteria": { + "has_planks": "2025-08-27 18:40:16 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/polished_andesite": { + "criteria": { + "has_andesite": "2025-08-27 18:45:39 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/oak_door": { + "criteria": { + "has_planks": "2025-08-27 18:40:16 -0500" + }, + "done": true + }, + "minecraft:recipes/transportation/carrot_on_a_stick": { + "criteria": { + "has_carrot": "2025-08-27 19:49:18 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/spruce_trapdoor": { + "criteria": { + "has_planks": "2025-08-27 20:16:19 -0500" + }, + "done": true + }, + "vanillatweaks:armored_elytra": { + "criteria": { + "tick": "2025-08-27 18:20:12 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/spruce_door": { + "criteria": { + "has_planks": "2025-08-27 20:16:19 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/spruce_fence_gate": { + "criteria": { + "has_planks": "2025-08-27 20:16:19 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/golden_sword": { + "criteria": { + "has_gold_ingot": "2025-08-27 19:14:21 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/wooden_shovel": { + "criteria": { + "has_stick": "2025-08-27 18:40:20 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/cobblestone_slab": { + "criteria": { + "has_cobblestone": "2025-08-27 18:42:32 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/gold_block": { + "criteria": { + "has_gold_ingot": "2025-08-27 19:14:21 -0500" + }, + "done": true + }, + "minecraft:recipes/brewing/cauldron": { + "criteria": { + "has_water_bucket": "2025-08-27 18:57:31 -0500" + }, + "done": true + }, + "minecraft:recipes/transportation/acacia_boat": { + "criteria": { + "in_water": "2025-08-27 18:24:24 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/iron_trapdoor": { + "criteria": { + "has_iron_ingot": "2025-08-27 18:56:31 -0500" + }, + "done": true + }, + "minecraft:adventure/root": { + "criteria": { + "killed_something": "2025-08-27 18:41:26 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/white_wool_from_string": { + "criteria": { + "has_string": "2025-08-27 19:02:04 -0500" + }, + "done": true + }, + "vanillatweaks:more_effective_tools": { + "criteria": { + "tick": "2025-08-27 18:20:12 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/spruce_planks_from_spruce_logs_stonecutting": { + "criteria": { + "has_spruce_logs": "2025-08-27 20:05:44 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/deepslate_tile_wall_from_cobbled_deepslate_stonecutting": { + "criteria": { + "has_cobbled_deepslate": "2025-08-27 19:03:33 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/iron_ingot_from_blasting_raw_iron": { + "criteria": { + "has_raw_iron": "2025-08-27 18:46:40 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/spruce_slab_from_spruce_planks_stonecutting": { + "criteria": { + "has_spruce_planks": "2025-08-27 20:16:19 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/amethyst_block": { + "criteria": { + "has_amethyst_shard": "2025-08-27 19:00:43 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/wooden_sword": { + "criteria": { + "has_stick": "2025-08-27 18:40:20 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/oak_planks": { + "criteria": { + "has_logs": "2025-08-27 18:25:02 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/dye_blue_bed": { + "criteria": { + "has_needed_dye": "2025-08-27 19:52:08 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/iron_axe": { + "criteria": { + "has_iron_ingot": "2025-08-27 18:56:31 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/crossbow": { + "criteria": { + "has_iron_ingot": "2025-08-27 18:56:31 -0500" + }, + "done": true + }, + "minecraft:recipes/food/cooked_porkchop_from_smoking": { + "criteria": { + "has_porkchop": "2025-08-27 18:41:27 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/iron_nugget_from_blasting": { + "criteria": { + "has_iron_pickaxe": "2025-08-27 18:56:42 -0500" + }, + "done": true + }, + "minecraft:adventure/kill_a_mob": { + "criteria": { + "minecraft:zombie": "2025-08-27 19:01:53 -0500" + }, + "done": true + }, + "minecraft:recipes/transportation/pale_oak_boat": { + "criteria": { + "in_water": "2025-08-27 18:24:24 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/deepslate_bricks_from_cobbled_deepslate_stonecutting": { + "criteria": { + "has_cobbled_deepslate": "2025-08-27 19:03:33 -0500" + }, + "done": true + }, + "minecraft:adventure/adventuring_time": { + "criteria": { + "minecraft:flower_forest": "2025-08-27 18:21:44 -0500", + "minecraft:savanna_plateau": "2025-08-27 19:29:52 -0500", + "minecraft:beach": "2025-08-27 19:58:13 -0500", + "minecraft:old_growth_pine_taiga": "2025-08-27 19:51:24 -0500", + "minecraft:forest": "2025-08-27 19:49:33 -0500", + "minecraft:taiga": "2025-08-27 19:50:38 -0500", + "minecraft:river": "2025-08-27 18:21:41 -0500", + "minecraft:stony_shore": "2025-08-27 19:58:30 -0500", + "minecraft:snowy_taiga": "2025-08-27 19:58:51 -0500", + "minecraft:frozen_river": "2025-08-27 19:58:54 -0500", + "minecraft:cherry_grove": "2025-08-27 18:52:41 -0500", + "minecraft:sunflower_plains": "2025-08-27 18:20:13 -0500", + "minecraft:old_growth_spruce_taiga": "2025-08-27 19:54:28 -0500", + "minecraft:savanna": "2025-08-27 19:26:27 -0500", + "minecraft:plains": "2025-08-27 18:48:59 -0500" + }, + "done": false + }, + "woodcutter:recipes/misc/oak_trapdoor_from_oak_planks_stonecutting": { + "criteria": { + "has_oak_planks": "2025-08-27 18:40:16 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/barrel": { + "criteria": { + "has_planks": "2025-08-27 18:40:16 -0500" + }, + "done": true + }, + "minecraft:husbandry/plant_seed": { + "criteria": { + "wheat": "2025-08-27 19:21:24 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/leather_boots": { + "criteria": { + "has_leather": "2025-08-27 19:48:27 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/cobblestone_wall_from_cobblestone_stonecutting": { + "criteria": { + "has_cobblestone": "2025-08-27 18:42:32 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/diamond_block": { + "criteria": { + "has_diamond": "2025-08-27 19:04:56 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/andesite_wall": { + "criteria": { + "has_andesite": "2025-08-27 18:45:39 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/andesite_slab": { + "criteria": { + "has_andesite": "2025-08-27 18:45:39 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/light_gray_dye_from_oxeye_daisy": { + "criteria": { + "has_oxeye_daisy": "2025-08-27 19:19:55 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/oak_stairs_from_oak_planks_stonecutting": { + "criteria": { + "has_oak_planks": "2025-08-27 18:40:16 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/cobblestone_stairs_from_cobblestone_stonecutting": { + "criteria": { + "has_cobblestone": "2025-08-27 18:42:32 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/oak_button_from_oak_planks_stonecutting": { + "criteria": { + "has_oak_planks": "2025-08-27 18:40:16 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/polished_andesite_stairs_from_andesite_stonecutting": { + "criteria": { + "has_andesite": "2025-08-27 18:45:39 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/golden_hoe": { + "criteria": { + "has_gold_ingot": "2025-08-27 19:14:21 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/firework_rocket_simple": { + "criteria": { + "has_gunpowder": "2025-08-27 19:31:26 -0500" + }, + "done": true + }, + "minecraft:husbandry/balanced_diet": { + "criteria": { + "cooked_porkchop": "2025-08-27 18:45:13 -0500", + "cooked_chicken": "2025-08-27 19:53:38 -0500", + "baked_potato": "2025-08-27 19:28:56 -0500", + "cooked_salmon": "2025-08-27 18:55:45 -0500" + }, + "done": false + }, + "minecraft:recipes/building_blocks/cobblestone_stairs": { + "criteria": { + "has_cobblestone": "2025-08-27 18:42:32 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/deepslate_tiles_from_cobbled_deepslate_stonecutting": { + "criteria": { + "has_cobbled_deepslate": "2025-08-27 19:03:33 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/magenta_dye_from_blue_red_white_dye": { + "criteria": { + "has_blue_dye": "2025-08-27 19:52:08 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/tnt": { + "criteria": { + "has_gunpowder": "2025-08-27 19:31:26 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/stone_hoe": { + "criteria": { + "has_cobblestone": "2025-08-27 18:42:32 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/spruce_stairs": { + "criteria": { + "has_planks": "2025-08-27 20:16:19 -0500" + }, + "done": true + }, + "vanillatweaks:xp_management": { + "criteria": { + "tick": "2025-08-27 18:20:12 -0500" + }, + "done": true + }, + "minecraft:story/mine_diamond": { + "criteria": { + "diamond": "2025-08-27 19:04:56 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/loom": { + "criteria": { + "has_string": "2025-08-27 19:02:04 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/diamond_axe": { + "criteria": { + "has_diamond": "2025-08-27 19:04:56 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/spruce_button_from_spruce_planks_stonecutting": { + "criteria": { + "has_spruce_planks": "2025-08-27 20:16:19 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/bundle": { + "criteria": { + "has_string": "2025-08-27 19:02:04 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/stone_shovel": { + "criteria": { + "has_cobblestone": "2025-08-27 18:42:32 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/oak_wood": { + "criteria": { + "has_log": "2025-08-27 18:25:02 -0500" + }, + "done": true + }, + "minecraft:story/root": { + "criteria": { + "crafting_table": "2025-08-27 18:40:18 -0500" + }, + "done": true + }, + "vanillatweaks:graves": { + "criteria": { + "tick": "2025-08-27 18:20:12 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/iron_door": { + "criteria": { + "has_iron_ingot": "2025-08-27 18:56:31 -0500" + }, + "done": true + }, + "minecraft:recipes/transportation/jungle_boat": { + "criteria": { + "in_water": "2025-08-27 18:24:24 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/heavy_weighted_pressure_plate": { + "criteria": { + "has_iron_ingot": "2025-08-27 18:56:31 -0500" + }, + "done": true + }, + "minecraft:recipes/transportation/dark_oak_boat": { + "criteria": { + "in_water": "2025-08-27 18:24:24 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/golden_leggings": { + "criteria": { + "has_gold_ingot": "2025-08-27 19:14:21 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/bone_block": { + "criteria": { + "has_bone_meal": "2025-08-27 19:20:47 -0500" + }, + "done": true + }, + "DataVersion": 4189 +} \ No newline at end of file diff --git a/advancements/623a58f4-e1a6-497e-8ec5-7b809cc99174.json b/advancements/623a58f4-e1a6-497e-8ec5-7b809cc99174.json new file mode 100755 index 0000000..ed3e678 --- /dev/null +++ b/advancements/623a58f4-e1a6-497e-8ec5-7b809cc99174.json @@ -0,0 +1,631 @@ +{ + "minecraft:recipes/food/suspicious_stew_from_pink_tulip": { + "criteria": { + "has_pink_tulip": "2025-08-24 20:42:34 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/lever": { + "criteria": { + "has_cobblestone": "2025-08-24 21:11:26 -0500" + }, + "done": true + }, + "vanillatweaks:bat_membranes": { + "criteria": { + "tick": "2025-08-24 20:23:05 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/leather_helmet": { + "criteria": { + "has_leather": "2025-08-24 20:38:20 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/ladder": { + "criteria": { + "has_stick": "2025-08-24 20:31:32 -0500" + }, + "done": true + }, + "minecraft:recipes/food/cake": { + "criteria": { + "has_egg": "2025-08-24 20:45:38 -0500" + }, + "done": true + }, + "vanillatweaks:spectator_night_vision": { + "criteria": { + "tick": "2025-08-24 20:23:05 -0500" + }, + "done": true + }, + "vanillatweaks:root": { + "criteria": { + "tick": "2025-08-24 20:23:05 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/leather_leggings": { + "criteria": { + "has_leather": "2025-08-24 20:38:20 -0500" + }, + "done": true + }, + "minecraft:recipes/food/cooked_mutton_from_smoking": { + "criteria": { + "has_mutton": "2025-08-24 20:44:09 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/oak_sign": { + "criteria": { + "has_planks": "2025-08-24 20:41:12 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/oak_trapdoor": { + "criteria": { + "has_planks": "2025-08-24 20:41:12 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/stone_sword": { + "criteria": { + "has_cobblestone": "2025-08-24 21:11:26 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/cobblestone_wall": { + "criteria": { + "has_cobblestone": "2025-08-24 21:11:26 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/stone_axe": { + "criteria": { + "has_cobblestone": "2025-08-24 21:11:26 -0500" + }, + "done": true + }, + "minecraft:recipes/food/suspicious_stew_from_red_tulip": { + "criteria": { + "has_red_tulip": "2025-08-24 20:42:25 -0500" + }, + "done": true + }, + "vanillatweaks:confetti_creepers": { + "criteria": { + "tick": "2025-08-24 20:23:05 -0500" + }, + "done": true + }, + "minecraft:story/mine_stone": { + "criteria": { + "get_stone": "2025-08-24 21:11:26 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/furnace": { + "criteria": { + "has_cobblestone": "2025-08-24 21:11:26 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/pink_dye_from_pink_tulip": { + "criteria": { + "has_pink_tulip": "2025-08-24 20:42:34 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/wooden_axe": { + "criteria": { + "has_stick": "2025-08-24 20:31:32 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/painting": { + "criteria": { + "has_wool": "2025-08-24 20:44:09 -0500" + }, + "done": true + }, + "minecraft:recipes/food/cooked_salmon": { + "criteria": { + "has_salmon": "2025-08-24 21:05:20 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/leather_chestplate": { + "criteria": { + "has_leather": "2025-08-24 20:38:20 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/smoker": { + "criteria": { + "has_furnace": "2025-08-24 20:53:45 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/crafting_table": { + "criteria": { + "unlock_right_away": "2025-08-24 20:23:05 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/chest": { + "criteria": { + "has_lots_of_items": "2025-08-24 20:42:11 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/stick": { + "criteria": { + "has_planks": "2025-08-24 20:41:12 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/cobblestone_slab_from_cobblestone_stonecutting": { + "criteria": { + "has_cobblestone": "2025-08-24 21:11:26 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/oak_stairs": { + "criteria": { + "has_planks": "2025-08-24 20:41:12 -0500" + }, + "done": true + }, + "minecraft:recipes/transportation/cherry_boat": { + "criteria": { + "in_water": "2025-08-24 20:30:42 -0500" + }, + "done": true + }, + "minecraft:adventure/kill_all_mobs": { + "criteria": { + "minecraft:skeleton": "2025-08-24 20:38:45 -0500", + "minecraft:zombie": "2025-08-24 20:44:17 -0500", + "minecraft:creeper": "2025-08-24 21:01:01 -0500" + }, + "done": false + }, + "minecraft:recipes/decorations/oak_fence": { + "criteria": { + "has_planks": "2025-08-24 20:41:12 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/bone_meal": { + "criteria": { + "has_bone": "2025-08-24 20:38:46 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/stone": { + "criteria": { + "has_cobblestone": "2025-08-24 21:11:26 -0500" + }, + "done": true + }, + "graves:check_death_markers_later_in_tick": { + "criteria": { + "tick": "2025-08-24 20:23:05 -0500" + }, + "done": true + }, + "minecraft:recipes/transportation/bamboo_raft": { + "criteria": { + "in_water": "2025-08-24 20:30:42 -0500" + }, + "done": true + }, + "minecraft:recipes/food/suspicious_stew_from_azure_bluet": { + "criteria": { + "has_azure_bluet": "2025-08-24 20:38:43 -0500" + }, + "done": true + }, + "minecraft:recipes/transportation/spruce_boat": { + "criteria": { + "in_water": "2025-08-24 20:30:42 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/leather_horse_armor": { + "criteria": { + "has_leather": "2025-08-24 20:38:20 -0500" + }, + "done": true + }, + "minecraft:husbandry/root": { + "criteria": { + "consumed_item": "2025-08-24 20:39:28 -0500" + }, + "done": true + }, + "minecraft:recipes/transportation/birch_boat": { + "criteria": { + "in_water": "2025-08-24 20:30:42 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/white_carpet": { + "criteria": { + "has_white_wool": "2025-08-24 20:44:09 -0500" + }, + "done": true + }, + "minecraft:recipes/transportation/oak_boat": { + "criteria": { + "in_water": "2025-08-24 20:30:42 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/oak_button": { + "criteria": { + "has_planks": "2025-08-24 20:41:12 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/oak_planks_from_oak_logs_stonecutting": { + "criteria": { + "has_oak_logs": "2025-08-24 20:31:10 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/light_gray_dye_from_white_tulip": { + "criteria": { + "has_white_tulip": "2025-08-24 20:42:35 -0500" + }, + "done": true + }, + "minecraft:recipes/transportation/mangrove_boat": { + "criteria": { + "in_water": "2025-08-24 20:30:42 -0500" + }, + "done": true + }, + "minecraft:recipes/food/cooked_beef_from_smoking": { + "criteria": { + "has_beef": "2025-08-24 20:38:20 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/light_gray_dye_from_azure_bluet": { + "criteria": { + "has_azure_bluet": "2025-08-24 20:38:43 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/oak_slab": { + "criteria": { + "has_planks": "2025-08-24 20:41:12 -0500" + }, + "done": true + }, + "minecraft:recipes/food/cooked_salmon_from_smoking": { + "criteria": { + "has_salmon": "2025-08-24 21:05:20 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/stone_pickaxe": { + "criteria": { + "has_cobblestone": "2025-08-24 21:11:26 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/oak_pressure_plate_from_oak_planks_stonecutting": { + "criteria": { + "has_oak_planks": "2025-08-24 20:41:12 -0500" + }, + "done": true + }, + "vanillatweaks:ender_chest_always_drops": { + "criteria": { + "tick": "2025-08-24 20:23:05 -0500" + }, + "done": true + }, + "minecraft:recipes/food/cooked_mutton": { + "criteria": { + "has_mutton": "2025-08-24 20:44:09 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/campfire": { + "criteria": { + "has_stick": "2025-08-24 20:31:32 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/oak_slab_from_oak_planks_stonecutting": { + "criteria": { + "has_oak_planks": "2025-08-24 20:41:12 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/wooden_hoe": { + "criteria": { + "has_stick": "2025-08-24 20:31:32 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/white_banner": { + "criteria": { + "has_white_wool": "2025-08-24 20:44:09 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/oak_fence_gate": { + "criteria": { + "has_planks": "2025-08-24 20:41:12 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/charcoal": { + "criteria": { + "has_log": "2025-08-24 20:31:10 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/wooden_pickaxe": { + "criteria": { + "has_stick": "2025-08-24 20:31:32 -0500" + }, + "done": true + }, + "minecraft:recipes/food/cooked_salmon_from_campfire_cooking": { + "criteria": { + "has_salmon": "2025-08-24 21:05:20 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/item_frame": { + "criteria": { + "has_leather": "2025-08-24 20:38:20 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/oak_pressure_plate": { + "criteria": { + "has_planks": "2025-08-24 20:41:12 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/oak_door": { + "criteria": { + "has_planks": "2025-08-24 20:41:12 -0500" + }, + "done": true + }, + "vanillatweaks:armored_elytra": { + "criteria": { + "tick": "2025-08-24 20:23:05 -0500" + }, + "done": true + }, + "minecraft:recipes/food/cooked_mutton_from_campfire_cooking": { + "criteria": { + "has_mutton": "2025-08-24 20:44:09 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/wooden_shovel": { + "criteria": { + "has_stick": "2025-08-24 20:31:32 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/cobblestone_slab": { + "criteria": { + "has_cobblestone": "2025-08-24 21:11:26 -0500" + }, + "done": true + }, + "minecraft:recipes/food/suspicious_stew_from_orange_tulip": { + "criteria": { + "has_orange_tulip": "2025-08-24 20:44:04 -0500" + }, + "done": true + }, + "minecraft:recipes/transportation/acacia_boat": { + "criteria": { + "in_water": "2025-08-24 20:30:42 -0500" + }, + "done": true + }, + "minecraft:adventure/root": { + "criteria": { + "killed_by_something": "2025-08-24 20:25:19 -0500" + }, + "done": true + }, + "vanillatweaks:more_effective_tools": { + "criteria": { + "tick": "2025-08-24 20:23:05 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/wooden_sword": { + "criteria": { + "has_stick": "2025-08-24 20:31:32 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/oak_planks": { + "criteria": { + "has_logs": "2025-08-24 20:31:10 -0500" + }, + "done": true + }, + "minecraft:recipes/food/suspicious_stew_from_white_tulip": { + "criteria": { + "has_white_tulip": "2025-08-24 20:42:35 -0500" + }, + "done": true + }, + "minecraft:adventure/kill_a_mob": { + "criteria": { + "minecraft:skeleton": "2025-08-24 20:38:45 -0500" + }, + "done": true + }, + "minecraft:recipes/transportation/pale_oak_boat": { + "criteria": { + "in_water": "2025-08-24 20:30:42 -0500" + }, + "done": true + }, + "minecraft:adventure/adventuring_time": { + "criteria": { + "minecraft:flower_forest": "2025-08-24 20:30:57 -0500", + "minecraft:beach": "2025-08-24 20:35:22 -0500", + "minecraft:sunflower_plains": "2025-08-24 20:23:06 -0500", + "minecraft:river": "2025-08-24 20:30:49 -0500", + "minecraft:plains": "2025-08-24 21:08:30 -0500" + }, + "done": false + }, + "woodcutter:recipes/misc/oak_trapdoor_from_oak_planks_stonecutting": { + "criteria": { + "has_oak_planks": "2025-08-24 20:41:12 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/barrel": { + "criteria": { + "has_planks": "2025-08-24 20:41:12 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/leather_boots": { + "criteria": { + "has_leather": "2025-08-24 20:38:20 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/red_dye_from_tulip": { + "criteria": { + "has_red_flower": "2025-08-24 20:42:25 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/cobblestone_wall_from_cobblestone_stonecutting": { + "criteria": { + "has_cobblestone": "2025-08-24 21:11:26 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/orange_dye_from_orange_tulip": { + "criteria": { + "has_orange_tulip": "2025-08-24 20:44:04 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/oak_stairs_from_oak_planks_stonecutting": { + "criteria": { + "has_oak_planks": "2025-08-24 20:41:12 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/cobblestone_stairs_from_cobblestone_stonecutting": { + "criteria": { + "has_cobblestone": "2025-08-24 21:11:26 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/oak_button_from_oak_planks_stonecutting": { + "criteria": { + "has_oak_planks": "2025-08-24 20:41:12 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/white_bed": { + "criteria": { + "has_white_wool": "2025-08-24 20:44:09 -0500" + }, + "done": true + }, + "minecraft:husbandry/balanced_diet": { + "criteria": { + "mutton": "2025-08-24 20:46:23 -0500", + "apple": "2025-08-24 21:04:13 -0500", + "salmon": "2025-08-24 21:05:56 -0500", + "cooked_beef": "2025-08-24 20:46:31 -0500", + "beef": "2025-08-24 20:39:28 -0500" + }, + "done": false + }, + "minecraft:recipes/building_blocks/cobblestone_stairs": { + "criteria": { + "has_cobblestone": "2025-08-24 21:11:26 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/stone_hoe": { + "criteria": { + "has_cobblestone": "2025-08-24 21:11:26 -0500" + }, + "done": true + }, + "vanillatweaks:xp_management": { + "criteria": { + "tick": "2025-08-24 20:23:05 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/stone_shovel": { + "criteria": { + "has_cobblestone": "2025-08-24 21:11:26 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/oak_wood": { + "criteria": { + "has_log": "2025-08-24 20:31:10 -0500" + }, + "done": true + }, + "minecraft:story/root": { + "criteria": { + "crafting_table": "2025-08-24 20:41:07 -0500" + }, + "done": true + }, + "vanillatweaks:graves": { + "criteria": { + "tick": "2025-08-24 20:23:05 -0500" + }, + "done": true + }, + "minecraft:recipes/food/cooked_beef": { + "criteria": { + "has_beef": "2025-08-24 20:38:20 -0500" + }, + "done": true + }, + "minecraft:recipes/transportation/jungle_boat": { + "criteria": { + "in_water": "2025-08-24 20:30:42 -0500" + }, + "done": true + }, + "minecraft:recipes/transportation/dark_oak_boat": { + "criteria": { + "in_water": "2025-08-24 20:30:42 -0500" + }, + "done": true + }, + "minecraft:recipes/food/cooked_beef_from_campfire_cooking": { + "criteria": { + "has_beef": "2025-08-24 20:38:20 -0500" + }, + "done": true + }, + "DataVersion": 4189 +} \ No newline at end of file diff --git a/advancements/98062058-93ee-3a45-a3b3-b0289f399830.json b/advancements/98062058-93ee-3a45-a3b3-b0289f399830.json new file mode 100755 index 0000000..f70bdd0 --- /dev/null +++ b/advancements/98062058-93ee-3a45-a3b3-b0289f399830.json @@ -0,0 +1,3 @@ +{ + "DataVersion": 4189 +} \ No newline at end of file diff --git a/advancements/9cbe1283-aabc-477d-a8a2-4d06902e7545.json b/advancements/9cbe1283-aabc-477d-a8a2-4d06902e7545.json new file mode 100755 index 0000000..ea65fa0 --- /dev/null +++ b/advancements/9cbe1283-aabc-477d-a8a2-4d06902e7545.json @@ -0,0 +1,1492 @@ +{ + "vanillatweaks:bat_membranes": { + "criteria": { + "tick": "2025-08-27 17:23:11 -0500" + }, + "done": true + }, + "vanillatweaks:spectator_night_vision": { + "criteria": { + "tick": "2025-08-27 17:23:11 -0500" + }, + "done": true + }, + "vanillatweaks:root": { + "criteria": { + "tick": "2025-08-27 17:23:11 -0500" + }, + "done": true + }, + "vanillatweaks:confetti_creepers": { + "criteria": { + "tick": "2025-08-27 17:23:11 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/crafting_table": { + "criteria": { + "unlock_right_away": "2025-08-27 17:23:11 -0500" + }, + "done": true + }, + "graves:check_death_markers_later_in_tick": { + "criteria": { + "tick": "2025-08-27 17:23:11 -0500" + }, + "done": true + }, + "vanillatweaks:ender_chest_always_drops": { + "criteria": { + "tick": "2025-08-27 17:23:11 -0500" + }, + "done": true + }, + "vanillatweaks:armored_elytra": { + "criteria": { + "tick": "2025-08-27 17:23:11 -0500" + }, + "done": true + }, + "vanillatweaks:more_effective_tools": { + "criteria": { + "tick": "2025-08-27 17:23:11 -0500" + }, + "done": true + }, + "vanillatweaks:xp_management": { + "criteria": { + "tick": "2025-08-27 17:23:11 -0500" + }, + "done": true + }, + "vanillatweaks:graves": { + "criteria": { + "tick": "2025-08-27 17:23:11 -0500" + }, + "done": true + }, + "minecraft:adventure/adventuring_time": { + "criteria": { + "minecraft:flower_forest": "2025-08-27 17:30:54 -0500", + "minecraft:beach": "2025-08-27 18:24:56 -0500", + "minecraft:forest": "2025-08-27 17:34:41 -0500", + "minecraft:sunflower_plains": "2025-08-27 17:23:12 -0500", + "minecraft:river": "2025-08-27 17:30:47 -0500", + "minecraft:dripstone_caves": "2025-08-27 17:52:06 -0500", + "minecraft:plains": "2025-08-27 17:31:18 -0500" + }, + "done": false + }, + "minecraft:recipes/transportation/cherry_boat": { + "criteria": { + "in_water": "2025-08-27 17:30:08 -0500" + }, + "done": true + }, + "minecraft:recipes/transportation/bamboo_raft": { + "criteria": { + "in_water": "2025-08-27 17:30:08 -0500" + }, + "done": true + }, + "minecraft:recipes/transportation/spruce_boat": { + "criteria": { + "in_water": "2025-08-27 17:30:08 -0500" + }, + "done": true + }, + "minecraft:recipes/transportation/birch_boat": { + "criteria": { + "in_water": "2025-08-27 17:30:08 -0500" + }, + "done": true + }, + "minecraft:recipes/transportation/oak_boat": { + "criteria": { + "in_water": "2025-08-27 17:30:08 -0500" + }, + "done": true + }, + "minecraft:recipes/transportation/mangrove_boat": { + "criteria": { + "in_water": "2025-08-27 17:30:08 -0500" + }, + "done": true + }, + "minecraft:recipes/transportation/acacia_boat": { + "criteria": { + "in_water": "2025-08-27 17:30:08 -0500" + }, + "done": true + }, + "minecraft:recipes/transportation/pale_oak_boat": { + "criteria": { + "in_water": "2025-08-27 17:30:08 -0500" + }, + "done": true + }, + "minecraft:recipes/transportation/jungle_boat": { + "criteria": { + "in_water": "2025-08-27 17:30:08 -0500" + }, + "done": true + }, + "minecraft:recipes/transportation/dark_oak_boat": { + "criteria": { + "in_water": "2025-08-27 17:30:08 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/oak_planks_from_oak_logs_stonecutting": { + "criteria": { + "has_oak_logs": "2025-08-27 17:30:23 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/charcoal": { + "criteria": { + "has_log": "2025-08-27 17:30:23 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/oak_planks": { + "criteria": { + "has_logs": "2025-08-27 17:30:23 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/oak_wood": { + "criteria": { + "has_log": "2025-08-27 17:30:23 -0500" + }, + "done": true + }, + "minecraft:recipes/food/cake": { + "criteria": { + "has_egg": "2025-08-27 17:31:04 -0500" + }, + "done": true + }, + "minecraft:adventure/root": { + "criteria": { + "killed_something": "2025-08-27 17:31:40 -0500" + }, + "done": true + }, + "minecraft:recipes/food/cooked_mutton_from_smoking": { + "criteria": { + "has_mutton": "2025-08-27 17:31:41 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/painting": { + "criteria": { + "has_wool": "2025-08-27 17:31:41 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/white_carpet": { + "criteria": { + "has_white_wool": "2025-08-27 17:31:41 -0500" + }, + "done": true + }, + "minecraft:recipes/food/cooked_mutton": { + "criteria": { + "has_mutton": "2025-08-27 17:31:41 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/white_banner": { + "criteria": { + "has_white_wool": "2025-08-27 17:31:41 -0500" + }, + "done": true + }, + "minecraft:recipes/food/cooked_mutton_from_campfire_cooking": { + "criteria": { + "has_mutton": "2025-08-27 17:31:41 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/white_bed": { + "criteria": { + "has_white_wool": "2025-08-27 17:31:41 -0500" + }, + "done": true + }, + "minecraft:husbandry/root": { + "criteria": { + "consumed_item": "2025-08-27 17:32:04 -0500" + }, + "done": true + }, + "minecraft:husbandry/balanced_diet": { + "criteria": { + "cooked_porkchop": "2025-08-27 18:25:32 -0500", + "mutton": "2025-08-27 17:32:04 -0500", + "apple": "2025-08-27 17:38:18 -0500", + "bread": "2025-08-27 18:19:34 -0500", + "cooked_chicken": "2025-08-27 18:01:08 -0500", + "cooked_mutton": "2025-08-27 17:32:25 -0500" + }, + "done": false + }, + "minecraft:story/root": { + "criteria": { + "crafting_table": "2025-08-27 17:32:30 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/oak_sign": { + "criteria": { + "has_planks": "2025-08-27 17:32:31 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/oak_trapdoor": { + "criteria": { + "has_planks": "2025-08-27 17:32:31 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/stick": { + "criteria": { + "has_planks": "2025-08-27 17:32:31 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/oak_stairs": { + "criteria": { + "has_planks": "2025-08-27 17:32:31 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/oak_fence": { + "criteria": { + "has_planks": "2025-08-27 17:32:31 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/oak_button": { + "criteria": { + "has_planks": "2025-08-27 17:32:31 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/oak_slab": { + "criteria": { + "has_planks": "2025-08-27 17:32:31 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/oak_pressure_plate_from_oak_planks_stonecutting": { + "criteria": { + "has_oak_planks": "2025-08-27 17:32:31 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/oak_slab_from_oak_planks_stonecutting": { + "criteria": { + "has_oak_planks": "2025-08-27 17:32:31 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/oak_fence_gate": { + "criteria": { + "has_planks": "2025-08-27 17:32:31 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/oak_pressure_plate": { + "criteria": { + "has_planks": "2025-08-27 17:32:31 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/oak_door": { + "criteria": { + "has_planks": "2025-08-27 17:32:31 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/oak_trapdoor_from_oak_planks_stonecutting": { + "criteria": { + "has_oak_planks": "2025-08-27 17:32:31 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/barrel": { + "criteria": { + "has_planks": "2025-08-27 17:32:31 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/oak_stairs_from_oak_planks_stonecutting": { + "criteria": { + "has_oak_planks": "2025-08-27 17:32:31 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/oak_button_from_oak_planks_stonecutting": { + "criteria": { + "has_oak_planks": "2025-08-27 17:32:31 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/wooden_axe": { + "criteria": { + "has_the_recipe": "2025-08-27 17:32:41 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/wooden_pickaxe": { + "criteria": { + "has_the_recipe": "2025-08-27 17:32:45 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/chest": { + "criteria": { + "has_lots_of_items": "2025-08-27 17:33:10 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/ladder": { + "criteria": { + "has_stick": "2025-08-27 17:33:41 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/campfire": { + "criteria": { + "has_stick": "2025-08-27 17:33:41 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/wooden_hoe": { + "criteria": { + "has_stick": "2025-08-27 17:33:41 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/wooden_shovel": { + "criteria": { + "has_stick": "2025-08-27 17:33:41 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/wooden_sword": { + "criteria": { + "has_stick": "2025-08-27 17:33:41 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/lever": { + "criteria": { + "has_cobblestone": "2025-08-27 17:34:18 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/stone_sword": { + "criteria": { + "has_cobblestone": "2025-08-27 17:34:18 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/cobblestone_wall": { + "criteria": { + "has_cobblestone": "2025-08-27 17:34:18 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/stone_axe": { + "criteria": { + "has_cobblestone": "2025-08-27 17:34:18 -0500" + }, + "done": true + }, + "minecraft:story/mine_stone": { + "criteria": { + "get_stone": "2025-08-27 17:34:18 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/furnace": { + "criteria": { + "has_cobblestone": "2025-08-27 17:34:18 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/cobblestone_slab_from_cobblestone_stonecutting": { + "criteria": { + "has_cobblestone": "2025-08-27 17:34:18 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/stone": { + "criteria": { + "has_cobblestone": "2025-08-27 17:34:18 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/stone_pickaxe": { + "criteria": { + "has_cobblestone": "2025-08-27 17:34:18 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/cobblestone_slab": { + "criteria": { + "has_cobblestone": "2025-08-27 17:34:18 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/cobblestone_wall_from_cobblestone_stonecutting": { + "criteria": { + "has_cobblestone": "2025-08-27 17:34:18 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/cobblestone_stairs_from_cobblestone_stonecutting": { + "criteria": { + "has_cobblestone": "2025-08-27 17:34:18 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/cobblestone_stairs": { + "criteria": { + "has_cobblestone": "2025-08-27 17:34:18 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/stone_hoe": { + "criteria": { + "has_cobblestone": "2025-08-27 17:34:18 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/stone_shovel": { + "criteria": { + "has_cobblestone": "2025-08-27 17:34:18 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/torch": { + "criteria": { + "has_stone_pickaxe": "2025-08-27 17:34:33 -0500" + }, + "done": true + }, + "minecraft:story/upgrade_tools": { + "criteria": { + "stone_pickaxe": "2025-08-27 17:34:33 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/andesite_stairs": { + "criteria": { + "has_andesite": "2025-08-27 17:38:02 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/andesite_wall_from_andesite_stonecutting": { + "criteria": { + "has_andesite": "2025-08-27 17:38:02 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/polished_andesite_slab_from_andesite_stonecutting": { + "criteria": { + "has_andesite": "2025-08-27 17:38:02 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/andesite_slab_from_andesite_stonecutting": { + "criteria": { + "has_andesite": "2025-08-27 17:38:02 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/andesite_stairs_from_andesite_stonecutting": { + "criteria": { + "has_andesite": "2025-08-27 17:38:02 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/polished_andesite_from_andesite_stonecutting": { + "criteria": { + "has_andesite": "2025-08-27 17:38:02 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/polished_andesite": { + "criteria": { + "has_andesite": "2025-08-27 17:38:02 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/andesite_wall": { + "criteria": { + "has_andesite": "2025-08-27 17:38:02 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/andesite_slab": { + "criteria": { + "has_andesite": "2025-08-27 17:38:02 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/polished_andesite_stairs_from_andesite_stonecutting": { + "criteria": { + "has_andesite": "2025-08-27 17:38:02 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/coal_block": { + "criteria": { + "has_coal": "2025-08-27 17:38:35 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/raw_iron_block": { + "criteria": { + "has_raw_iron": "2025-08-27 17:39:06 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/iron_ingot_from_smelting_raw_iron": { + "criteria": { + "has_raw_iron": "2025-08-27 17:39:06 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/iron_ingot_from_blasting_raw_iron": { + "criteria": { + "has_raw_iron": "2025-08-27 17:39:06 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/smoker": { + "criteria": { + "has_furnace": "2025-08-27 17:39:55 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/iron_leggings": { + "criteria": { + "has_iron_ingot": "2025-08-27 17:41:57 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/iron_chestplate": { + "criteria": { + "has_iron_ingot": "2025-08-27 17:41:57 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/iron_nugget": { + "criteria": { + "has_iron_ingot": "2025-08-27 17:41:57 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/bucket": { + "criteria": { + "has_iron_ingot": "2025-08-27 17:41:57 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/iron_helmet": { + "criteria": { + "has_iron_ingot": "2025-08-27 17:41:57 -0500" + }, + "done": true + }, + "minecraft:recipes/transportation/minecart": { + "criteria": { + "has_iron_ingot": "2025-08-27 17:41:57 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/iron_hoe": { + "criteria": { + "has_iron_ingot": "2025-08-27 17:41:57 -0500" + }, + "done": true + }, + "minecraft:story/smelt_iron": { + "criteria": { + "iron": "2025-08-27 17:41:57 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/shears": { + "criteria": { + "has_iron_ingot": "2025-08-27 17:41:57 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/chain": { + "criteria": { + "has_iron_ingot": "2025-08-27 17:41:57 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/iron_block": { + "criteria": { + "has_iron_ingot": "2025-08-27 17:41:57 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/smithing_table": { + "criteria": { + "has_iron_ingot": "2025-08-27 17:41:57 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/iron_sword": { + "criteria": { + "has_iron_ingot": "2025-08-27 17:41:57 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/iron_pickaxe": { + "criteria": { + "has_iron_ingot": "2025-08-27 17:41:57 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/shield": { + "criteria": { + "has_iron_ingot": "2025-08-27 17:41:57 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/hopper": { + "criteria": { + "has_iron_ingot": "2025-08-27 17:41:57 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/iron_bars": { + "criteria": { + "has_iron_ingot": "2025-08-27 17:41:57 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/iron_boots": { + "criteria": { + "has_iron_ingot": "2025-08-27 17:41:57 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/lantern": { + "criteria": { + "has_iron_ingot": "2025-08-27 17:41:57 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/iron_shovel": { + "criteria": { + "has_iron_ingot": "2025-08-27 17:41:57 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/iron_trapdoor": { + "criteria": { + "has_iron_ingot": "2025-08-27 17:41:57 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/iron_axe": { + "criteria": { + "has_iron_ingot": "2025-08-27 17:41:57 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/crossbow": { + "criteria": { + "has_iron_ingot": "2025-08-27 17:41:57 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/iron_door": { + "criteria": { + "has_iron_ingot": "2025-08-27 17:41:57 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/heavy_weighted_pressure_plate": { + "criteria": { + "has_iron_ingot": "2025-08-27 17:41:57 -0500" + }, + "done": true + }, + "minecraft:story/obtain_armor": { + "criteria": { + "iron_chestplate": "2025-08-27 17:42:15 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/iron_nugget_from_smelting": { + "criteria": { + "has_iron_chestplate": "2025-08-27 17:42:15 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/iron_nugget_from_blasting": { + "criteria": { + "has_iron_chestplate": "2025-08-27 17:42:15 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/polished_deepslate": { + "criteria": { + "has_cobbled_deepslate": "2025-08-27 18:06:26 -0500" + }, + "done": true + }, + "blastbuff:recipes/misc/glass_from_blasting_sand": { + "criteria": { + "has_sand": "2025-08-27 17:58:45 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/chiseled_tuff_bricks_from_tuff_stonecutting": { + "criteria": { + "has_tuff": "2025-08-27 18:06:46 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/coarse_dirt": { + "criteria": { + "has_gravel": "2025-08-27 17:59:41 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/deepslate_tile_stairs_from_cobbled_deepslate_stonecutting": { + "criteria": { + "has_cobbled_deepslate": "2025-08-27 18:06:26 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/light_gray_concrete_powder": { + "criteria": { + "has_sand": "2025-08-27 17:58:45 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/pink_concrete_powder": { + "criteria": { + "has_sand": "2025-08-27 17:58:45 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/tuff_bricks_from_tuff_stonecutting": { + "criteria": { + "has_tuff": "2025-08-27 18:06:46 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/diamond_leggings": { + "criteria": { + "has_diamond": "2025-08-27 18:09:01 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/fletching_table": { + "criteria": { + "has_flint": "2025-08-27 18:00:32 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/blue_dye": { + "criteria": { + "has_lapis_lazuli": "2025-08-27 18:07:22 -0500" + }, + "done": true + }, + "minecraft:story/deflect_arrow": { + "criteria": { + "deflected_projectile": "2025-08-27 17:51:04 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/golden_axe": { + "criteria": { + "has_gold_ingot": "2025-08-27 18:13:01 -0500" + }, + "done": true + }, + "minecraft:story/iron_tools": { + "criteria": { + "iron_pickaxe": "2025-08-27 17:55:51 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/red_concrete_powder": { + "criteria": { + "has_sand": "2025-08-27 17:58:45 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/golden_pickaxe": { + "criteria": { + "has_gold_ingot": "2025-08-27 18:13:01 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/deepslate_brick_stairs_from_cobbled_deepslate_stonecutting": { + "criteria": { + "has_cobbled_deepslate": "2025-08-27 18:06:26 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/lapis_block": { + "criteria": { + "has_lapis_lazuli": "2025-08-27 18:07:22 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/polished_diorite": { + "criteria": { + "has_diorite": "2025-08-27 17:56:39 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/brown_concrete_powder": { + "criteria": { + "has_sand": "2025-08-27 17:58:45 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/diamond_sword": { + "criteria": { + "has_diamond": "2025-08-27 18:09:01 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/jukebox": { + "criteria": { + "has_diamond": "2025-08-27 18:09:01 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/gold_nugget": { + "criteria": { + "has_gold_ingot": "2025-08-27 18:13:01 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/diorite_slab": { + "criteria": { + "has_diorite": "2025-08-27 17:56:39 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/light_blue_concrete_powder": { + "criteria": { + "has_sand": "2025-08-27 17:58:45 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/polished_tuff_slab_from_tuff_stonecutting": { + "criteria": { + "has_tuff": "2025-08-27 18:06:46 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/glass": { + "criteria": { + "has_smelts_to_glass": "2025-08-27 17:58:45 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/golden_shovel": { + "criteria": { + "has_gold_ingot": "2025-08-27 18:13:01 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/diamond_chestplate": { + "criteria": { + "has_diamond": "2025-08-27 18:09:01 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/redstone_torch": { + "criteria": { + "has_redstone": "2025-08-27 18:12:18 -0500" + }, + "done": true + }, + "minecraft:recipes/food/golden_apple": { + "criteria": { + "has_gold_ingot": "2025-08-27 18:13:01 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/green_concrete_powder": { + "criteria": { + "has_sand": "2025-08-27 17:58:45 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/clock": { + "criteria": { + "has_redstone": "2025-08-27 18:12:18 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/golden_boots": { + "criteria": { + "has_gold_ingot": "2025-08-27 18:13:01 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/tuff_stairs": { + "criteria": { + "has_tuff": "2025-08-27 18:06:46 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/arrow": { + "criteria": { + "has_flint": "2025-08-27 18:00:32 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/blue_concrete_powder": { + "criteria": { + "has_sand": "2025-08-27 17:58:45 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/granite_slab_from_granite_stonecutting": { + "criteria": { + "has_granite": "2025-08-27 17:54:37 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/golden_helmet": { + "criteria": { + "has_gold_ingot": "2025-08-27 18:13:01 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/chiseled_deepslate_from_cobbled_deepslate_stonecutting": { + "criteria": { + "has_cobbled_deepslate": "2025-08-27 18:06:26 -0500" + }, + "done": true + }, + "minecraft:story/shiny_gear": { + "criteria": { + "diamond_leggings": "2025-08-27 18:22:22 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/cobbled_deepslate_slab": { + "criteria": { + "has_cobbled_deepslate": "2025-08-27 18:06:26 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/cobbled_deepslate_wall_from_cobbled_deepslate_stonecutting": { + "criteria": { + "has_cobbled_deepslate": "2025-08-27 18:06:26 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/tuff_brick_wall_from_tuff_stonecutting": { + "criteria": { + "has_tuff": "2025-08-27 18:06:46 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/white_concrete_powder": { + "criteria": { + "has_sand": "2025-08-27 17:58:45 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/diamond_pickaxe": { + "criteria": { + "has_diamond": "2025-08-27 18:09:01 -0500" + }, + "done": true + }, + "minecraft:adventure/kill_all_mobs": { + "criteria": { + "minecraft:skeleton": "2025-08-27 17:51:10 -0500", + "minecraft:spider": "2025-08-27 18:09:47 -0500", + "minecraft:zombie": "2025-08-27 17:53:22 -0500" + }, + "done": false + }, + "minecraft:recipes/decorations/granite_wall_from_granite_stonecutting": { + "criteria": { + "has_granite": "2025-08-27 17:54:37 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/chiseled_tuff_from_tuff_stonecutting": { + "criteria": { + "has_tuff": "2025-08-27 18:06:46 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/golden_chestplate": { + "criteria": { + "has_gold_ingot": "2025-08-27 18:13:01 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/polished_tuff_stairs_from_tuff_stonecutting": { + "criteria": { + "has_tuff": "2025-08-27 18:06:46 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/bone_meal": { + "criteria": { + "has_bone": "2025-08-27 17:51:58 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/cobbled_deepslate_wall": { + "criteria": { + "has_cobbled_deepslate": "2025-08-27 18:06:26 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/polished_deepslate_wall_from_cobbled_deepslate_stonecutting": { + "criteria": { + "has_cobbled_deepslate": "2025-08-27 18:06:26 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/diorite_wall": { + "criteria": { + "has_diorite": "2025-08-27 17:56:39 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/tuff_brick_stairs_from_tuff_stonecutting": { + "criteria": { + "has_tuff": "2025-08-27 18:06:46 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/tuff_slab_from_tuff_stonecutting": { + "criteria": { + "has_tuff": "2025-08-27 18:06:46 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/polished_granite_from_granite_stonecutting": { + "criteria": { + "has_granite": "2025-08-27 17:54:37 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/note_block": { + "criteria": { + "has_redstone": "2025-08-27 18:12:18 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/target": { + "criteria": { + "has_redstone": "2025-08-27 18:12:18 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/cobbled_deepslate_stairs_from_cobbled_deepslate_stonecutting": { + "criteria": { + "has_cobbled_deepslate": "2025-08-27 18:06:26 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/diamond_hoe": { + "criteria": { + "has_diamond": "2025-08-27 18:09:01 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/diamond_shovel": { + "criteria": { + "has_diamond": "2025-08-27 18:09:01 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/deepslate": { + "criteria": { + "has_cobbled_deepslate": "2025-08-27 18:06:26 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/granite_slab": { + "criteria": { + "has_granite": "2025-08-27 17:54:37 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/polished_diorite_stairs_from_diorite_stonecutting": { + "criteria": { + "has_diorite": "2025-08-27 17:56:39 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/light_weighted_pressure_plate": { + "criteria": { + "has_gold_ingot": "2025-08-27 18:13:01 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/polished_tuff_from_tuff_stonecutting": { + "criteria": { + "has_tuff": "2025-08-27 18:06:46 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/polished_deepslate_stairs_from_cobbled_deepslate_stonecutting": { + "criteria": { + "has_cobbled_deepslate": "2025-08-27 18:06:26 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/compass": { + "criteria": { + "has_redstone": "2025-08-27 18:12:18 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/diamond_boots": { + "criteria": { + "has_diamond": "2025-08-27 18:09:01 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/lime_concrete_powder": { + "criteria": { + "has_sand": "2025-08-27 17:58:45 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/deepslate_brick_wall_from_cobbled_deepslate_stonecutting": { + "criteria": { + "has_cobbled_deepslate": "2025-08-27 18:06:26 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/polished_deepslate_from_cobbled_deepslate_stonecutting": { + "criteria": { + "has_cobbled_deepslate": "2025-08-27 18:06:26 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/polished_deepslate_slab_from_cobbled_deepslate_stonecutting": { + "criteria": { + "has_cobbled_deepslate": "2025-08-27 18:06:26 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/orange_concrete_powder": { + "criteria": { + "has_sand": "2025-08-27 17:58:45 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/granite_stairs": { + "criteria": { + "has_granite": "2025-08-27 17:54:37 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/diorite_stairs_from_diorite_stonecutting": { + "criteria": { + "has_diorite": "2025-08-27 17:56:39 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/tuff_slab": { + "criteria": { + "has_tuff": "2025-08-27 18:06:46 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/tuff_brick_slab_from_tuff_stonecutting": { + "criteria": { + "has_tuff": "2025-08-27 18:06:46 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/polished_tuff_wall_from_tuff_stonecutting": { + "criteria": { + "has_tuff": "2025-08-27 18:06:46 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/granite_stairs_from_granite_stonecutting": { + "criteria": { + "has_granite": "2025-08-27 17:54:37 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/deepslate_brick_slab_from_cobbled_deepslate_stonecutting": { + "criteria": { + "has_cobbled_deepslate": "2025-08-27 18:06:26 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/cobbled_deepslate_slab_from_cobbled_deepslate_stonecutting": { + "criteria": { + "has_cobbled_deepslate": "2025-08-27 18:06:26 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/tuff_wall": { + "criteria": { + "has_tuff": "2025-08-27 18:06:46 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/magenta_concrete_powder": { + "criteria": { + "has_sand": "2025-08-27 17:58:45 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/deepslate_tile_slab_from_cobbled_deepslate_stonecutting": { + "criteria": { + "has_cobbled_deepslate": "2025-08-27 18:06:26 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/flint_and_steel": { + "criteria": { + "has_flint": "2025-08-27 18:00:32 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/granite_wall": { + "criteria": { + "has_granite": "2025-08-27 17:54:37 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/diorite_wall_from_diorite_stonecutting": { + "criteria": { + "has_diorite": "2025-08-27 17:56:39 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/cobbled_deepslate_stairs": { + "criteria": { + "has_cobbled_deepslate": "2025-08-27 18:06:26 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/polished_granite_slab_from_granite_stonecutting": { + "criteria": { + "has_granite": "2025-08-27 17:54:37 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/diamond_helmet": { + "criteria": { + "has_diamond": "2025-08-27 18:09:01 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/tuff_wall_from_tuff_stonecutting": { + "criteria": { + "has_tuff": "2025-08-27 18:06:46 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/andesite": { + "criteria": { + "has_stone": "2025-08-27 17:56:39 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/dropper": { + "criteria": { + "has_redstone": "2025-08-27 18:12:18 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/polished_granite": { + "criteria": { + "has_granite": "2025-08-27 17:54:37 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/yellow_concrete_powder": { + "criteria": { + "has_sand": "2025-08-27 17:58:45 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/golden_sword": { + "criteria": { + "has_gold_ingot": "2025-08-27 18:13:01 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/dripstone_block": { + "criteria": { + "has_pointed_dripstone": "2025-08-27 17:54:09 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/gold_block": { + "criteria": { + "has_gold_ingot": "2025-08-27 18:13:01 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/sandstone": { + "criteria": { + "has_sand": "2025-08-27 17:58:45 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/redstone_block": { + "criteria": { + "has_redstone": "2025-08-27 18:12:18 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/deepslate_tile_wall_from_cobbled_deepslate_stonecutting": { + "criteria": { + "has_cobbled_deepslate": "2025-08-27 18:06:26 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/gray_concrete_powder": { + "criteria": { + "has_sand": "2025-08-27 17:58:45 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/tuff_stairs_from_tuff_stonecutting": { + "criteria": { + "has_tuff": "2025-08-27 18:06:46 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/black_concrete_powder": { + "criteria": { + "has_sand": "2025-08-27 17:58:45 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/polished_diorite_from_diorite_stonecutting": { + "criteria": { + "has_diorite": "2025-08-27 17:56:39 -0500" + }, + "done": true + }, + "minecraft:adventure/kill_a_mob": { + "criteria": { + "minecraft:skeleton": "2025-08-27 17:51:10 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/deepslate_bricks_from_cobbled_deepslate_stonecutting": { + "criteria": { + "has_cobbled_deepslate": "2025-08-27 18:06:26 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/diamond_block": { + "criteria": { + "has_diamond": "2025-08-27 18:09:01 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/golden_hoe": { + "criteria": { + "has_gold_ingot": "2025-08-27 18:13:01 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/diorite_slab_from_diorite_stonecutting": { + "criteria": { + "has_diorite": "2025-08-27 17:56:39 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/polished_tuff": { + "criteria": { + "has_tuff": "2025-08-27 18:06:46 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/deepslate_tiles_from_cobbled_deepslate_stonecutting": { + "criteria": { + "has_cobbled_deepslate": "2025-08-27 18:06:26 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/polished_diorite_slab_from_diorite_stonecutting": { + "criteria": { + "has_diorite": "2025-08-27 17:56:39 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/purple_concrete_powder": { + "criteria": { + "has_sand": "2025-08-27 17:58:45 -0500" + }, + "done": true + }, + "minecraft:story/mine_diamond": { + "criteria": { + "diamond": "2025-08-27 18:09:01 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/polished_granite_stairs_from_granite_stonecutting": { + "criteria": { + "has_granite": "2025-08-27 17:54:37 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/cyan_concrete_powder": { + "criteria": { + "has_sand": "2025-08-27 17:58:45 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/diamond_axe": { + "criteria": { + "has_diamond": "2025-08-27 18:09:01 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/diorite_stairs": { + "criteria": { + "has_diorite": "2025-08-27 17:56:39 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/golden_leggings": { + "criteria": { + "has_gold_ingot": "2025-08-27 18:13:01 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/piston": { + "criteria": { + "has_redstone": "2025-08-27 18:12:18 -0500" + }, + "done": true + }, + "DataVersion": 4189 +} \ No newline at end of file diff --git a/advancements/9eafc73a-e0fb-4de0-87d5-b48012f4a510.json b/advancements/9eafc73a-e0fb-4de0-87d5-b48012f4a510.json new file mode 100755 index 0000000..6ff9cb4 --- /dev/null +++ b/advancements/9eafc73a-e0fb-4de0-87d5-b48012f4a510.json @@ -0,0 +1,365 @@ +{ + "vanillatweaks:bat_membranes": { + "criteria": { + "tick": "2025-08-25 21:43:25 -0500" + }, + "done": true + }, + "vanillatweaks:spectator_night_vision": { + "criteria": { + "tick": "2025-08-25 21:43:25 -0500" + }, + "done": true + }, + "vanillatweaks:root": { + "criteria": { + "tick": "2025-08-25 21:43:25 -0500" + }, + "done": true + }, + "vanillatweaks:confetti_creepers": { + "criteria": { + "tick": "2025-08-25 21:43:25 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/crafting_table": { + "criteria": { + "unlock_right_away": "2025-08-25 21:43:25 -0500" + }, + "done": true + }, + "graves:check_death_markers_later_in_tick": { + "criteria": { + "tick": "2025-08-25 21:43:25 -0500" + }, + "done": true + }, + "vanillatweaks:ender_chest_always_drops": { + "criteria": { + "tick": "2025-08-25 21:43:25 -0500" + }, + "done": true + }, + "vanillatweaks:armored_elytra": { + "criteria": { + "tick": "2025-08-25 21:43:25 -0500" + }, + "done": true + }, + "vanillatweaks:more_effective_tools": { + "criteria": { + "tick": "2025-08-25 21:43:25 -0500" + }, + "done": true + }, + "minecraft:adventure/adventuring_time": { + "criteria": { + "minecraft:sunflower_plains": "2025-08-25 21:43:25 -0500", + "minecraft:river": "2025-08-25 21:53:53 -0500", + "minecraft:plains": "2025-08-25 21:45:27 -0500" + }, + "done": false + }, + "vanillatweaks:xp_management": { + "criteria": { + "tick": "2025-08-25 21:43:25 -0500" + }, + "done": true + }, + "vanillatweaks:graves": { + "criteria": { + "tick": "2025-08-25 21:43:25 -0500" + }, + "done": true + }, + "minecraft:adventure/sleep_in_bed": { + "criteria": { + "slept_in_bed": "2025-08-25 21:45:58 -0500" + }, + "done": true + }, + "minecraft:adventure/kill_all_mobs": { + "criteria": { + "minecraft:zombie": "2025-08-25 21:46:13 -0500" + }, + "done": false + }, + "minecraft:adventure/root": { + "criteria": { + "killed_something": "2025-08-25 21:46:13 -0500" + }, + "done": true + }, + "minecraft:adventure/kill_a_mob": { + "criteria": { + "minecraft:zombie": "2025-08-25 21:46:13 -0500" + }, + "done": true + }, + "minecraft:husbandry/root": { + "criteria": { + "consumed_item": "2025-08-25 21:47:20 -0500" + }, + "done": true + }, + "minecraft:husbandry/balanced_diet": { + "criteria": { + "rotten_flesh": "2025-08-25 21:47:20 -0500" + }, + "done": false + }, + "minecraft:recipes/decorations/ladder": { + "criteria": { + "has_stick": "2025-08-25 21:59:21 -0500" + }, + "done": true + }, + "minecraft:recipes/food/cake": { + "criteria": { + "has_egg": "2025-08-25 21:54:56 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/iron_leggings": { + "criteria": { + "has_iron_ingot": "2025-08-25 21:59:23 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/iron_nugget_from_smelting": { + "criteria": { + "has_iron_sword": "2025-08-25 21:59:28 -0500" + }, + "done": true + }, + "minecraft:story/iron_tools": { + "criteria": { + "iron_pickaxe": "2025-08-25 21:59:46 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/iron_chestplate": { + "criteria": { + "has_iron_ingot": "2025-08-25 21:59:23 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/iron_nugget": { + "criteria": { + "has_iron_ingot": "2025-08-25 21:59:23 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/bucket": { + "criteria": { + "has_iron_ingot": "2025-08-25 21:59:23 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/iron_helmet": { + "criteria": { + "has_iron_ingot": "2025-08-25 21:59:23 -0500" + }, + "done": true + }, + "minecraft:recipes/transportation/minecart": { + "criteria": { + "has_iron_ingot": "2025-08-25 21:59:23 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/iron_hoe": { + "criteria": { + "has_iron_ingot": "2025-08-25 21:59:23 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/wooden_axe": { + "criteria": { + "has_stick": "2025-08-25 21:59:21 -0500" + }, + "done": true + }, + "minecraft:story/smelt_iron": { + "criteria": { + "iron": "2025-08-25 21:59:23 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/chest": { + "criteria": { + "has_lots_of_items": "2025-08-25 22:03:55 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/shears": { + "criteria": { + "has_iron_ingot": "2025-08-25 21:59:23 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/chain": { + "criteria": { + "has_iron_ingot": "2025-08-25 21:59:23 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/iron_block": { + "criteria": { + "has_iron_ingot": "2025-08-25 21:59:23 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/smithing_table": { + "criteria": { + "has_iron_ingot": "2025-08-25 21:59:23 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/oak_planks_from_oak_logs_stonecutting": { + "criteria": { + "has_oak_logs": "2025-08-25 22:02:17 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/iron_sword": { + "criteria": { + "has_iron_ingot": "2025-08-25 21:59:23 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/iron_pickaxe": { + "criteria": { + "has_iron_ingot": "2025-08-25 21:59:23 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/shield": { + "criteria": { + "has_iron_ingot": "2025-08-25 21:59:23 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/hopper": { + "criteria": { + "has_iron_ingot": "2025-08-25 21:59:23 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/iron_bars": { + "criteria": { + "has_iron_ingot": "2025-08-25 21:59:23 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/iron_boots": { + "criteria": { + "has_iron_ingot": "2025-08-25 21:59:23 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/lantern": { + "criteria": { + "has_iron_ingot": "2025-08-25 21:59:23 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/campfire": { + "criteria": { + "has_stick": "2025-08-25 21:59:21 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/wooden_hoe": { + "criteria": { + "has_stick": "2025-08-25 21:59:21 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/charcoal": { + "criteria": { + "has_log": "2025-08-25 22:02:17 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/wooden_pickaxe": { + "criteria": { + "has_stick": "2025-08-25 21:59:21 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/iron_shovel": { + "criteria": { + "has_iron_ingot": "2025-08-25 21:59:23 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/wooden_shovel": { + "criteria": { + "has_stick": "2025-08-25 21:59:21 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/yellow_dye_from_sunflower": { + "criteria": { + "has_sunflower": "2025-08-25 22:02:53 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/iron_trapdoor": { + "criteria": { + "has_iron_ingot": "2025-08-25 21:59:23 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/wooden_sword": { + "criteria": { + "has_stick": "2025-08-25 21:59:21 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/oak_planks": { + "criteria": { + "has_logs": "2025-08-25 22:02:17 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/iron_axe": { + "criteria": { + "has_iron_ingot": "2025-08-25 21:59:23 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/crossbow": { + "criteria": { + "has_iron_ingot": "2025-08-25 21:59:23 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/iron_nugget_from_blasting": { + "criteria": { + "has_iron_sword": "2025-08-25 21:59:28 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/oak_wood": { + "criteria": { + "has_log": "2025-08-25 22:02:17 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/iron_door": { + "criteria": { + "has_iron_ingot": "2025-08-25 21:59:23 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/heavy_weighted_pressure_plate": { + "criteria": { + "has_iron_ingot": "2025-08-25 21:59:23 -0500" + }, + "done": true + }, + "DataVersion": 4189 +} \ No newline at end of file diff --git a/advancements/a8430355-4d85-4c50-bbf8-e55332bd255b.json b/advancements/a8430355-4d85-4c50-bbf8-e55332bd255b.json new file mode 100755 index 0000000..4924506 --- /dev/null +++ b/advancements/a8430355-4d85-4c50-bbf8-e55332bd255b.json @@ -0,0 +1,3342 @@ +{ + "minecraft:recipes/decorations/crafting_table": { + "criteria": { + "unlock_right_away": "2025-08-24 17:20:15 -0500" + }, + "done": true + }, + "minecraft:adventure/adventuring_time": { + "criteria": { + "minecraft:flower_forest": "2025-08-24 23:44:55 -0500", + "minecraft:savanna_plateau": "2025-08-25 15:04:12 -0500", + "minecraft:snowy_slopes": "2025-08-27 18:43:08 -0500", + "minecraft:beach": "2025-08-25 21:38:46 -0500", + "minecraft:forest": "2025-08-25 10:31:12 -0500", + "minecraft:taiga": "2025-08-25 14:57:12 -0500", + "minecraft:sparse_jungle": "2025-08-27 19:19:43 -0500", + "minecraft:river": "2025-08-24 23:44:47 -0500", + "minecraft:dripstone_caves": "2025-08-24 23:50:16 -0500", + "minecraft:frozen_peaks": "2025-08-27 18:43:07 -0500", + "minecraft:sunflower_plains": "2025-08-24 17:20:16 -0500", + "minecraft:cherry_grove": "2025-08-26 11:55:42 -0500", + "minecraft:grove": "2025-08-27 18:43:09 -0500", + "minecraft:meadow": "2025-08-27 18:57:22 -0500", + "minecraft:birch_forest": "2025-08-27 18:51:00 -0500", + "minecraft:windswept_hills": "2025-08-25 14:49:43 -0500", + "minecraft:savanna": "2025-08-25 10:00:10 -0500", + "minecraft:plains": "2025-08-24 23:49:20 -0500" + }, + "done": false + }, + "minecraft:recipes/misc/charcoal": { + "criteria": { + "has_log": "2025-08-24 17:21:48 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/oak_planks": { + "criteria": { + "has_logs": "2025-08-24 17:21:48 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/oak_wood": { + "criteria": { + "has_log": "2025-08-24 17:21:48 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/nether_brick": { + "criteria": { + "has_netherrack": "2025-08-24 17:22:59 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/gold_ingot_from_blasting_nether_gold_ore": { + "criteria": { + "has_nether_gold_ore": "2025-08-24 17:23:01 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/gold_ingot_from_smelting_nether_gold_ore": { + "criteria": { + "has_nether_gold_ore": "2025-08-24 17:23:01 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/blast_furnace": { + "criteria": { + "has_smooth_stone": "2025-08-24 17:23:20 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/smooth_stone_slab": { + "criteria": { + "has_smooth_stone": "2025-08-24 17:23:20 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/smooth_stone_slab_from_smooth_stone_stonecutting": { + "criteria": { + "has_smooth_stone": "2025-08-24 17:23:20 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/lever": { + "criteria": { + "has_cobblestone": "2025-08-24 17:23:23 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/stone_sword": { + "criteria": { + "has_cobblestone": "2025-08-24 17:23:23 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/cobblestone_wall": { + "criteria": { + "has_cobblestone": "2025-08-24 17:23:23 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/stone_pickaxe": { + "criteria": { + "has_cobblestone": "2025-08-24 17:23:23 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/stone_axe": { + "criteria": { + "has_cobblestone": "2025-08-24 17:23:23 -0500" + }, + "done": true + }, + "minecraft:story/mine_stone": { + "criteria": { + "get_stone": "2025-08-24 17:23:23 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/cobblestone_slab": { + "criteria": { + "has_cobblestone": "2025-08-24 17:23:23 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/cobblestone_slab_from_cobblestone_stonecutting": { + "criteria": { + "has_cobblestone": "2025-08-24 17:23:23 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/stone": { + "criteria": { + "has_cobblestone": "2025-08-24 17:23:23 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/cobblestone_wall_from_cobblestone_stonecutting": { + "criteria": { + "has_cobblestone": "2025-08-24 17:23:23 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/cobblestone_stairs_from_cobblestone_stonecutting": { + "criteria": { + "has_cobblestone": "2025-08-24 17:23:23 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/stone_hoe": { + "criteria": { + "has_cobblestone": "2025-08-24 17:23:23 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/stone_shovel": { + "criteria": { + "has_cobblestone": "2025-08-24 17:23:23 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/furnace": { + "criteria": { + "has_cobblestone": "2025-08-24 17:23:24 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/cobblestone_stairs": { + "criteria": { + "has_cobblestone": "2025-08-24 17:23:24 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/stone_bricks": { + "criteria": { + "has_stone": "2025-08-24 17:23:25 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/stone_brick_slab_from_stone_stonecutting": { + "criteria": { + "has_stone": "2025-08-24 17:23:25 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/stone_brick_stairs_from_stone_stonecutting": { + "criteria": { + "has_stone": "2025-08-24 17:23:25 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/stone_slab_from_stone_stonecutting": { + "criteria": { + "has_stone": "2025-08-24 17:23:25 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/stone_bricks_from_stone_stonecutting": { + "criteria": { + "has_stone": "2025-08-24 17:23:25 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/stone_slab": { + "criteria": { + "has_stone": "2025-08-24 17:23:25 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/chiseled_stone_bricks_stone_from_stonecutting": { + "criteria": { + "has_stone": "2025-08-24 17:23:25 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/stone_stairs_from_stone_stonecutting": { + "criteria": { + "has_stone": "2025-08-24 17:23:25 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/stone_button": { + "criteria": { + "has_stone": "2025-08-24 17:23:25 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/stonecutter": { + "criteria": { + "has_stone": "2025-08-24 17:23:25 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/stone_pressure_plate": { + "criteria": { + "has_stone": "2025-08-24 17:23:25 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/smooth_stone": { + "criteria": { + "has_stone": "2025-08-24 17:23:25 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/stone_brick_walls_from_stone_stonecutting": { + "criteria": { + "has_stone": "2025-08-24 17:23:25 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/stone_stairs": { + "criteria": { + "has_stone": "2025-08-24 17:23:25 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/andesite_stairs_from_andesite_stonecutting": { + "criteria": { + "has_andesite": "2025-08-24 17:24:24 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/andesite_stairs": { + "criteria": { + "has_andesite": "2025-08-24 17:24:24 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/polished_andesite_from_andesite_stonecutting": { + "criteria": { + "has_andesite": "2025-08-24 17:24:24 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/polished_andesite": { + "criteria": { + "has_andesite": "2025-08-24 17:24:24 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/andesite_wall_from_andesite_stonecutting": { + "criteria": { + "has_andesite": "2025-08-24 17:24:24 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/polished_andesite_slab_from_andesite_stonecutting": { + "criteria": { + "has_andesite": "2025-08-24 17:24:24 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/andesite_wall": { + "criteria": { + "has_andesite": "2025-08-24 17:24:24 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/andesite_slab": { + "criteria": { + "has_andesite": "2025-08-24 17:24:24 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/polished_andesite_stairs_from_andesite_stonecutting": { + "criteria": { + "has_andesite": "2025-08-24 17:24:24 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/andesite_slab_from_andesite_stonecutting": { + "criteria": { + "has_andesite": "2025-08-24 17:24:24 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/grindstone": { + "criteria": { + "has_stone_slab": "2025-08-24 17:24:34 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/chest": { + "criteria": { + "has_lots_of_items": "2025-08-24 17:24:46 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/cracked_nether_bricks": { + "criteria": { + "has_nether_bricks": "2025-08-24 17:27:19 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/chiseled_nether_bricks_from_nether_bricks_stonecutting": { + "criteria": { + "has_nether_bricks": "2025-08-24 17:27:19 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/nether_brick_stairs": { + "criteria": { + "has_nether_bricks": "2025-08-24 17:27:19 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/nether_brick_slab": { + "criteria": { + "has_nether_bricks": "2025-08-24 17:27:19 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/nether_brick_wall_from_nether_bricks_stonecutting": { + "criteria": { + "has_nether_bricks": "2025-08-24 17:27:19 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/nether_brick_stairs_from_nether_bricks_stonecutting": { + "criteria": { + "has_nether_bricks": "2025-08-24 17:27:19 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/nether_brick_slab_from_nether_bricks_stonecutting": { + "criteria": { + "has_nether_bricks": "2025-08-24 17:27:19 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/nether_brick_wall": { + "criteria": { + "has_nether_bricks": "2025-08-24 17:27:19 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/nether_brick_fence": { + "criteria": { + "has_nether_bricks": "2025-08-24 17:27:19 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/blue_ice": { + "criteria": { + "has_packed_ice": "2025-08-24 17:29:48 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/stripped_warped_hyphae": { + "criteria": { + "has_log": "2025-08-24 17:29:53 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/warped_planks": { + "criteria": { + "has_logs": "2025-08-24 17:29:53 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/warped_hanging_sign": { + "criteria": { + "has_stripped_logs": "2025-08-24 17:29:53 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/red_nether_brick_slab_from_red_nether_bricks_stonecutting": { + "criteria": { + "has_red_nether_bricks": "2025-08-24 17:29:59 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/red_nether_brick_wall": { + "criteria": { + "has_red_nether_bricks": "2025-08-24 17:29:59 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/red_nether_brick_wall_from_red_nether_bricks_stonecutting": { + "criteria": { + "has_red_nether_bricks": "2025-08-24 17:29:59 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/red_nether_brick_stairs_from_red_nether_bricks_stonecutting": { + "criteria": { + "has_red_nether_bricks": "2025-08-24 17:29:59 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/red_nether_brick_slab": { + "criteria": { + "has_red_nether_bricks": "2025-08-24 17:29:59 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/red_nether_brick_stairs": { + "criteria": { + "has_red_nether_bricks": "2025-08-24 17:29:59 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/waxed_exposed_copper_grate_from_waxed_exposed_copper_stonecutting": { + "criteria": { + "has_waxed_exposed_copper": "2025-08-24 17:30:55 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/waxed_exposed_copper_bulb": { + "criteria": { + "has_waxed_exposed_copper": "2025-08-24 17:30:55 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/waxed_exposed_cut_copper_slab_from_waxed_exposed_copper_stonecutting": { + "criteria": { + "has_waxed_exposed_copper": "2025-08-24 17:30:55 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/waxed_exposed_cut_copper_from_waxed_exposed_copper_stonecutting": { + "criteria": { + "has_waxed_exposed_copper": "2025-08-24 17:30:55 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/waxed_exposed_chiseled_copper_from_waxed_exposed_copper_stonecutting": { + "criteria": { + "has_waxed_exposed_copper": "2025-08-24 17:30:55 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/waxed_exposed_copper_grate": { + "criteria": { + "has_waxed_exposed_copper": "2025-08-24 17:30:55 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/waxed_exposed_cut_copper": { + "criteria": { + "has_waxed_exposed_copper": "2025-08-24 17:30:55 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/waxed_exposed_cut_copper_stairs_from_waxed_exposed_copper_stonecutting": { + "criteria": { + "has_waxed_exposed_copper": "2025-08-24 17:30:55 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/prismarine_brick_stairs_from_prismarine_stonecutting": { + "criteria": { + "has_prismarine_brick": "2025-08-24 17:32:03 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/prismarine_brick_stairs": { + "criteria": { + "has_prismarine_bricks": "2025-08-24 17:32:03 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/prismarine_brick_slab_from_prismarine_stonecutting": { + "criteria": { + "has_prismarine_brick": "2025-08-24 17:32:03 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/prismarine_brick_slab": { + "criteria": { + "has_prismarine_bricks": "2025-08-24 17:32:03 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/end_stone_brick_stairs_from_end_stone_brick_stonecutting": { + "criteria": { + "has_end_stone_brick": "2025-08-24 17:32:26 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/end_stone_brick_slab": { + "criteria": { + "has_end_stone_bricks": "2025-08-24 17:32:26 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/end_stone_brick_slab_from_end_stone_brick_stonecutting": { + "criteria": { + "has_end_stone_brick": "2025-08-24 17:32:26 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/end_stone_brick_wall_from_end_stone_brick_stonecutting": { + "criteria": { + "has_end_stone_brick": "2025-08-24 17:32:26 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/end_stone_brick_stairs": { + "criteria": { + "has_end_stone_bricks": "2025-08-24 17:32:26 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/end_stone_brick_wall": { + "criteria": { + "has_end_stone_bricks": "2025-08-24 17:32:26 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/smooth_sandstone_stairs_from_smooth_sandstone_stonecutting": { + "criteria": { + "has_smooth_sandstone": "2025-08-24 17:32:30 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/smooth_sandstone_slab_from_smooth_sandstone_stonecutting": { + "criteria": { + "has_smooth_sandstone": "2025-08-24 17:32:30 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/smooth_sandstone_stairs": { + "criteria": { + "has_smooth_sandstone": "2025-08-24 17:32:30 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/smooth_sandstone_slab": { + "criteria": { + "has_smooth_sandstone": "2025-08-24 17:32:30 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/birch_planks": { + "criteria": { + "has_logs": "2025-08-24 17:32:56 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/crimson_planks": { + "criteria": { + "has_logs": "2025-08-24 17:33:10 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/end_stone_brick_slab_from_end_stone_stonecutting": { + "criteria": { + "has_end_stone": "2025-08-24 17:34:35 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/end_stone_bricks": { + "criteria": { + "has_end_stone": "2025-08-24 17:34:35 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/end_stone_brick_wall_from_end_stone_stonecutting": { + "criteria": { + "has_end_stone": "2025-08-24 17:34:35 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/end_stone_bricks_from_end_stone_stonecutting": { + "criteria": { + "has_end_stone": "2025-08-24 17:34:35 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/end_stone_brick_stairs_from_end_stone_stonecutting": { + "criteria": { + "has_end_stone": "2025-08-24 17:34:35 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/moss_carpet": { + "criteria": { + "has_moss_block": "2025-08-24 17:39:09 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/mossy_cobblestone_from_moss_block": { + "criteria": { + "has_moss_block": "2025-08-24 17:39:09 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/mossy_stone_bricks_from_moss_block": { + "criteria": { + "has_moss_block": "2025-08-24 17:39:09 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/dark_prismarine_stairs_from_dark_prismarine_stonecutting": { + "criteria": { + "has_dark_prismarine": "2025-08-24 17:39:36 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/dark_prismarine_stairs": { + "criteria": { + "has_dark_prismarine": "2025-08-24 17:39:36 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/dark_prismarine_slab_from_dark_prismarine_stonecutting": { + "criteria": { + "has_dark_prismarine": "2025-08-24 17:39:36 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/dark_prismarine_slab": { + "criteria": { + "has_dark_prismarine": "2025-08-24 17:39:36 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/green_glazed_terracotta": { + "criteria": { + "has_green_terracotta": "2025-08-24 17:39:48 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/lime_glazed_terracotta": { + "criteria": { + "has_lime_terracotta": "2025-08-24 17:39:49 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/dark_oak_planks": { + "criteria": { + "has_log": "2025-08-24 17:45:19 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/lime_stained_glass_pane": { + "criteria": { + "has_glass": "2025-08-24 17:46:11 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/green_stained_glass_pane": { + "criteria": { + "has_glass": "2025-08-24 17:46:12 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/birch_button": { + "criteria": { + "has_planks": "2025-08-24 17:51:06 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/birch_door": { + "criteria": { + "has_planks": "2025-08-24 17:51:06 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/birch_fence": { + "criteria": { + "has_planks": "2025-08-24 17:51:06 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/birch_trapdoor": { + "criteria": { + "has_planks": "2025-08-24 17:51:06 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/stick": { + "criteria": { + "has_planks": "2025-08-24 17:51:06 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/birch_sign": { + "criteria": { + "has_planks": "2025-08-24 17:51:06 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/birch_fence_gate": { + "criteria": { + "has_planks": "2025-08-24 17:51:06 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/barrel": { + "criteria": { + "has_planks": "2025-08-24 17:51:06 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/birch_pressure_plate": { + "criteria": { + "has_planks": "2025-08-24 17:51:06 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/birch_slab": { + "criteria": { + "has_planks": "2025-08-24 17:51:06 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/birch_stairs": { + "criteria": { + "has_planks": "2025-08-24 17:51:06 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/dark_oak_slab": { + "criteria": { + "has_planks": "2025-08-24 17:51:09 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/dark_oak_door": { + "criteria": { + "has_planks": "2025-08-24 17:51:09 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/dark_oak_fence_gate": { + "criteria": { + "has_planks": "2025-08-24 17:51:09 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/dark_oak_trapdoor": { + "criteria": { + "has_planks": "2025-08-24 17:51:09 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/dark_oak_button": { + "criteria": { + "has_planks": "2025-08-24 17:51:09 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/dark_oak_stairs": { + "criteria": { + "has_planks": "2025-08-24 17:51:09 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/dark_oak_sign": { + "criteria": { + "has_planks": "2025-08-24 17:51:09 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/dark_oak_pressure_plate": { + "criteria": { + "has_planks": "2025-08-24 17:51:09 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/dark_oak_fence": { + "criteria": { + "has_planks": "2025-08-24 17:51:09 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/warped_pressure_plate": { + "criteria": { + "has_planks": "2025-08-24 17:51:13 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/warped_slab": { + "criteria": { + "has_planks": "2025-08-24 17:51:13 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/warped_fence_gate": { + "criteria": { + "has_planks": "2025-08-24 17:51:13 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/warped_fence": { + "criteria": { + "has_planks": "2025-08-24 17:51:13 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/warped_button": { + "criteria": { + "has_planks": "2025-08-24 17:51:13 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/warped_stairs": { + "criteria": { + "has_planks": "2025-08-24 17:51:13 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/warped_trapdoor": { + "criteria": { + "has_planks": "2025-08-24 17:51:13 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/warped_sign": { + "criteria": { + "has_planks": "2025-08-24 17:51:13 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/warped_door": { + "criteria": { + "has_planks": "2025-08-24 17:51:13 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/crimson_button": { + "criteria": { + "has_planks": "2025-08-24 17:51:14 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/crimson_slab": { + "criteria": { + "has_planks": "2025-08-24 17:51:14 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/crimson_stairs": { + "criteria": { + "has_planks": "2025-08-24 17:51:14 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/crimson_pressure_plate": { + "criteria": { + "has_planks": "2025-08-24 17:51:14 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/crimson_fence": { + "criteria": { + "has_planks": "2025-08-24 17:51:14 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/crimson_sign": { + "criteria": { + "has_planks": "2025-08-24 17:51:14 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/crimson_fence_gate": { + "criteria": { + "has_planks": "2025-08-24 17:51:14 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/crimson_door": { + "criteria": { + "has_planks": "2025-08-24 17:51:14 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/crimson_trapdoor": { + "criteria": { + "has_planks": "2025-08-24 17:51:14 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/polished_deepslate": { + "criteria": { + "has_cobbled_deepslate": "2025-08-24 17:51:20 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/deepslate_tile_stairs_from_cobbled_deepslate_stonecutting": { + "criteria": { + "has_cobbled_deepslate": "2025-08-24 17:51:20 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/deepslate_brick_wall_from_cobbled_deepslate_stonecutting": { + "criteria": { + "has_cobbled_deepslate": "2025-08-24 17:51:20 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/polished_deepslate_from_cobbled_deepslate_stonecutting": { + "criteria": { + "has_cobbled_deepslate": "2025-08-24 17:51:20 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/polished_deepslate_slab_from_cobbled_deepslate_stonecutting": { + "criteria": { + "has_cobbled_deepslate": "2025-08-24 17:51:20 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/deepslate_brick_stairs_from_cobbled_deepslate_stonecutting": { + "criteria": { + "has_cobbled_deepslate": "2025-08-24 17:51:20 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/deepslate_brick_slab_from_cobbled_deepslate_stonecutting": { + "criteria": { + "has_cobbled_deepslate": "2025-08-24 17:51:20 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/cobbled_deepslate_slab_from_cobbled_deepslate_stonecutting": { + "criteria": { + "has_cobbled_deepslate": "2025-08-24 17:51:20 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/deepslate_tile_slab_from_cobbled_deepslate_stonecutting": { + "criteria": { + "has_cobbled_deepslate": "2025-08-24 17:51:20 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/cobbled_deepslate_stairs": { + "criteria": { + "has_cobbled_deepslate": "2025-08-24 17:51:20 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/chiseled_deepslate_from_cobbled_deepslate_stonecutting": { + "criteria": { + "has_cobbled_deepslate": "2025-08-24 17:51:20 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/cobbled_deepslate_slab": { + "criteria": { + "has_cobbled_deepslate": "2025-08-24 17:51:20 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/cobbled_deepslate_wall_from_cobbled_deepslate_stonecutting": { + "criteria": { + "has_cobbled_deepslate": "2025-08-24 17:51:20 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/deepslate_tile_wall_from_cobbled_deepslate_stonecutting": { + "criteria": { + "has_cobbled_deepslate": "2025-08-24 17:51:20 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/cobbled_deepslate_wall": { + "criteria": { + "has_cobbled_deepslate": "2025-08-24 17:51:20 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/polished_deepslate_wall_from_cobbled_deepslate_stonecutting": { + "criteria": { + "has_cobbled_deepslate": "2025-08-24 17:51:20 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/deepslate_bricks_from_cobbled_deepslate_stonecutting": { + "criteria": { + "has_cobbled_deepslate": "2025-08-24 17:51:20 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/deepslate_tiles_from_cobbled_deepslate_stonecutting": { + "criteria": { + "has_cobbled_deepslate": "2025-08-24 17:51:20 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/cobbled_deepslate_stairs_from_cobbled_deepslate_stonecutting": { + "criteria": { + "has_cobbled_deepslate": "2025-08-24 17:51:20 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/deepslate": { + "criteria": { + "has_cobbled_deepslate": "2025-08-24 17:51:20 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/polished_deepslate_stairs_from_cobbled_deepslate_stonecutting": { + "criteria": { + "has_cobbled_deepslate": "2025-08-24 17:51:20 -0500" + }, + "done": true + }, + "vanillatweaks:bat_membranes": { + "criteria": { + "tick": "2025-08-24 23:44:10 -0500" + }, + "done": true + }, + "vanillatweaks:spectator_night_vision": { + "criteria": { + "tick": "2025-08-24 23:44:10 -0500" + }, + "done": true + }, + "vanillatweaks:root": { + "criteria": { + "tick": "2025-08-24 23:44:10 -0500" + }, + "done": true + }, + "vanillatweaks:confetti_creepers": { + "criteria": { + "tick": "2025-08-24 23:44:10 -0500" + }, + "done": true + }, + "graves:check_death_markers_later_in_tick": { + "criteria": { + "tick": "2025-08-24 23:44:10 -0500" + }, + "done": true + }, + "vanillatweaks:ender_chest_always_drops": { + "criteria": { + "tick": "2025-08-24 23:44:10 -0500" + }, + "done": true + }, + "vanillatweaks:armored_elytra": { + "criteria": { + "tick": "2025-08-24 23:44:10 -0500" + }, + "done": true + }, + "vanillatweaks:more_effective_tools": { + "criteria": { + "tick": "2025-08-24 23:44:10 -0500" + }, + "done": true + }, + "vanillatweaks:xp_management": { + "criteria": { + "tick": "2025-08-24 23:44:10 -0500" + }, + "done": true + }, + "vanillatweaks:graves": { + "criteria": { + "tick": "2025-08-24 23:44:10 -0500" + }, + "done": true + }, + "minecraft:recipes/transportation/cherry_boat": { + "criteria": { + "in_water": "2025-08-24 23:44:37 -0500" + }, + "done": true + }, + "minecraft:recipes/transportation/bamboo_raft": { + "criteria": { + "in_water": "2025-08-24 23:44:37 -0500" + }, + "done": true + }, + "minecraft:recipes/transportation/spruce_boat": { + "criteria": { + "in_water": "2025-08-24 23:44:37 -0500" + }, + "done": true + }, + "minecraft:recipes/transportation/birch_boat": { + "criteria": { + "in_water": "2025-08-24 23:44:37 -0500" + }, + "done": true + }, + "minecraft:recipes/transportation/oak_boat": { + "criteria": { + "in_water": "2025-08-24 23:44:37 -0500" + }, + "done": true + }, + "minecraft:recipes/transportation/mangrove_boat": { + "criteria": { + "in_water": "2025-08-24 23:44:37 -0500" + }, + "done": true + }, + "minecraft:recipes/transportation/acacia_boat": { + "criteria": { + "in_water": "2025-08-24 23:44:37 -0500" + }, + "done": true + }, + "minecraft:recipes/transportation/pale_oak_boat": { + "criteria": { + "in_water": "2025-08-24 23:44:37 -0500" + }, + "done": true + }, + "minecraft:recipes/transportation/jungle_boat": { + "criteria": { + "in_water": "2025-08-24 23:44:37 -0500" + }, + "done": true + }, + "minecraft:recipes/transportation/dark_oak_boat": { + "criteria": { + "in_water": "2025-08-24 23:44:37 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/oak_sign": { + "criteria": { + "has_planks": "2025-08-24 23:45:08 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/oak_trapdoor": { + "criteria": { + "has_planks": "2025-08-24 23:45:08 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/oak_stairs": { + "criteria": { + "has_planks": "2025-08-24 23:45:08 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/oak_fence": { + "criteria": { + "has_planks": "2025-08-24 23:45:08 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/oak_button": { + "criteria": { + "has_planks": "2025-08-24 23:45:08 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/oak_slab": { + "criteria": { + "has_planks": "2025-08-24 23:45:08 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/oak_pressure_plate_from_oak_planks_stonecutting": { + "criteria": { + "has_oak_planks": "2025-08-24 23:45:08 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/oak_slab_from_oak_planks_stonecutting": { + "criteria": { + "has_oak_planks": "2025-08-24 23:45:08 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/oak_fence_gate": { + "criteria": { + "has_planks": "2025-08-24 23:45:08 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/oak_pressure_plate": { + "criteria": { + "has_planks": "2025-08-24 23:45:08 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/oak_door": { + "criteria": { + "has_planks": "2025-08-24 23:45:08 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/oak_trapdoor_from_oak_planks_stonecutting": { + "criteria": { + "has_oak_planks": "2025-08-24 23:45:08 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/oak_stairs_from_oak_planks_stonecutting": { + "criteria": { + "has_oak_planks": "2025-08-24 23:45:08 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/oak_button_from_oak_planks_stonecutting": { + "criteria": { + "has_oak_planks": "2025-08-24 23:45:08 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/oak_planks_from_oak_logs_stonecutting": { + "criteria": { + "has_oak_logs": "2025-08-24 23:45:27 -0500" + }, + "done": true + }, + "minecraft:story/root": { + "criteria": { + "crafting_table": "2025-08-24 23:45:39 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/ladder": { + "criteria": { + "has_stick": "2025-08-24 23:45:43 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/wooden_axe": { + "criteria": { + "has_stick": "2025-08-24 23:45:43 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/campfire": { + "criteria": { + "has_stick": "2025-08-24 23:45:43 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/wooden_hoe": { + "criteria": { + "has_stick": "2025-08-24 23:45:43 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/wooden_pickaxe": { + "criteria": { + "has_stick": "2025-08-24 23:45:43 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/wooden_shovel": { + "criteria": { + "has_stick": "2025-08-24 23:45:43 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/wooden_sword": { + "criteria": { + "has_stick": "2025-08-24 23:45:43 -0500" + }, + "done": true + }, + "minecraft:adventure/kill_all_mobs": { + "criteria": { + "minecraft:pillager": "2025-08-25 15:03:25 -0500", + "minecraft:cave_spider": "2025-08-25 15:05:23 -0500", + "minecraft:skeleton": "2025-08-25 09:54:12 -0500", + "minecraft:piglin": "2025-08-25 21:43:29 -0500", + "minecraft:enderman": "2025-08-26 11:09:35 -0500", + "minecraft:spider": "2025-08-24 23:46:06 -0500", + "minecraft:zombie": "2025-08-24 23:46:37 -0500", + "minecraft:creeper": "2025-08-25 10:06:05 -0500", + "minecraft:drowned": "2025-08-25 15:06:32 -0500", + "minecraft:hoglin": "2025-08-25 21:42:01 -0500" + }, + "done": false + }, + "minecraft:adventure/root": { + "criteria": { + "killed_something": "2025-08-24 23:46:06 -0500" + }, + "done": true + }, + "minecraft:adventure/kill_a_mob": { + "criteria": { + "minecraft:spider": "2025-08-24 23:46:06 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/bow": { + "criteria": { + "has_string": "2025-08-24 23:46:07 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/fishing_rod": { + "criteria": { + "has_string": "2025-08-24 23:46:07 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/tripwire_hook": { + "criteria": { + "has_string": "2025-08-24 23:46:07 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/candle": { + "criteria": { + "has_string": "2025-08-24 23:46:07 -0500" + }, + "done": true + }, + "minecraft:recipes/brewing/fermented_spider_eye": { + "criteria": { + "has_spider_eye": "2025-08-24 23:46:07 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/white_wool_from_string": { + "criteria": { + "has_string": "2025-08-24 23:46:07 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/crossbow": { + "criteria": { + "has_string": "2025-08-24 23:46:07 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/loom": { + "criteria": { + "has_string": "2025-08-24 23:46:07 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/bundle": { + "criteria": { + "has_string": "2025-08-24 23:46:07 -0500" + }, + "done": true + }, + "minecraft:husbandry/root": { + "criteria": { + "consumed_item": "2025-08-24 23:47:04 -0500" + }, + "done": true + }, + "minecraft:husbandry/balanced_diet": { + "criteria": { + "apple": "2025-08-24 23:47:04 -0500", + "bread": "2025-08-25 10:30:18 -0500", + "cooked_beef": "2025-08-25 21:38:14 -0500", + "beef": "2025-08-25 10:05:29 -0500" + }, + "done": false + }, + "minecraft:recipes/misc/yellow_dye_from_sunflower": { + "criteria": { + "has_sunflower": "2025-08-24 23:47:47 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/torch": { + "criteria": { + "has_stone_pickaxe": "2025-08-24 23:50:03 -0500" + }, + "done": true + }, + "minecraft:story/upgrade_tools": { + "criteria": { + "stone_pickaxe": "2025-08-24 23:50:03 -0500" + }, + "done": true + }, + "minecraft:recipes/food/cooked_beef_from_smoking": { + "criteria": { + "has_beef": "2025-08-25 09:52:35 -0500" + }, + "done": true + }, + "minecraft:recipes/food/cooked_beef": { + "criteria": { + "has_beef": "2025-08-25 09:52:35 -0500" + }, + "done": true + }, + "minecraft:recipes/food/cooked_beef_from_campfire_cooking": { + "criteria": { + "has_beef": "2025-08-25 09:52:35 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/leather_helmet": { + "criteria": { + "has_leather": "2025-08-25 09:52:44 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/leather_leggings": { + "criteria": { + "has_leather": "2025-08-25 09:52:44 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/leather_chestplate": { + "criteria": { + "has_leather": "2025-08-25 09:52:44 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/leather_horse_armor": { + "criteria": { + "has_leather": "2025-08-25 09:52:44 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/item_frame": { + "criteria": { + "has_leather": "2025-08-25 09:52:44 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/leather_boots": { + "criteria": { + "has_leather": "2025-08-25 09:52:44 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/bone_meal": { + "criteria": { + "has_bone": "2025-08-25 09:54:14 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/raw_iron_block": { + "criteria": { + "has_raw_iron": "2025-08-25 09:54:18 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/iron_ingot_from_smelting_raw_iron": { + "criteria": { + "has_raw_iron": "2025-08-25 09:54:18 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/iron_ingot_from_blasting_raw_iron": { + "criteria": { + "has_raw_iron": "2025-08-25 09:54:18 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/coal_block": { + "criteria": { + "has_coal": "2025-08-25 09:57:11 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/smoker": { + "criteria": { + "has_furnace": "2025-08-25 10:01:07 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/iron_leggings": { + "criteria": { + "has_iron_ingot": "2025-08-25 10:03:19 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/iron_chestplate": { + "criteria": { + "has_iron_ingot": "2025-08-25 10:03:19 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/iron_nugget": { + "criteria": { + "has_iron_ingot": "2025-08-25 10:03:19 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/bucket": { + "criteria": { + "has_iron_ingot": "2025-08-25 10:03:19 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/iron_helmet": { + "criteria": { + "has_iron_ingot": "2025-08-25 10:03:19 -0500" + }, + "done": true + }, + "minecraft:recipes/transportation/minecart": { + "criteria": { + "has_iron_ingot": "2025-08-25 10:03:19 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/iron_hoe": { + "criteria": { + "has_iron_ingot": "2025-08-25 10:03:19 -0500" + }, + "done": true + }, + "minecraft:story/smelt_iron": { + "criteria": { + "iron": "2025-08-25 10:03:19 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/shears": { + "criteria": { + "has_iron_ingot": "2025-08-25 10:03:19 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/chain": { + "criteria": { + "has_iron_ingot": "2025-08-25 10:03:19 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/iron_block": { + "criteria": { + "has_iron_ingot": "2025-08-25 10:03:19 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/smithing_table": { + "criteria": { + "has_iron_ingot": "2025-08-25 10:03:19 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/iron_sword": { + "criteria": { + "has_iron_ingot": "2025-08-25 10:03:19 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/iron_pickaxe": { + "criteria": { + "has_iron_ingot": "2025-08-25 10:03:19 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/shield": { + "criteria": { + "has_iron_ingot": "2025-08-25 10:03:19 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/hopper": { + "criteria": { + "has_iron_ingot": "2025-08-25 10:03:19 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/iron_bars": { + "criteria": { + "has_iron_ingot": "2025-08-25 10:03:19 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/iron_boots": { + "criteria": { + "has_iron_ingot": "2025-08-25 10:03:19 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/lantern": { + "criteria": { + "has_iron_ingot": "2025-08-25 10:03:19 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/iron_shovel": { + "criteria": { + "has_iron_ingot": "2025-08-25 10:03:19 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/iron_trapdoor": { + "criteria": { + "has_iron_ingot": "2025-08-25 10:03:19 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/iron_axe": { + "criteria": { + "has_iron_ingot": "2025-08-25 10:03:19 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/iron_door": { + "criteria": { + "has_iron_ingot": "2025-08-25 10:03:19 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/heavy_weighted_pressure_plate": { + "criteria": { + "has_iron_ingot": "2025-08-25 10:03:19 -0500" + }, + "done": true + }, + "minecraft:story/obtain_armor": { + "criteria": { + "iron_leggings": "2025-08-25 10:03:36 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/iron_nugget_from_smelting": { + "criteria": { + "has_iron_leggings": "2025-08-25 10:03:36 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/iron_nugget_from_blasting": { + "criteria": { + "has_iron_leggings": "2025-08-25 10:03:36 -0500" + }, + "done": true + }, + "minecraft:story/iron_tools": { + "criteria": { + "iron_pickaxe": "2025-08-25 10:03:52 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/diamond_leggings": { + "criteria": { + "has_diamond": "2025-08-25 10:03:57 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/diamond_sword": { + "criteria": { + "has_diamond": "2025-08-25 10:03:57 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/jukebox": { + "criteria": { + "has_diamond": "2025-08-25 10:03:57 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/diamond_chestplate": { + "criteria": { + "has_diamond": "2025-08-25 10:03:57 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/diamond_pickaxe": { + "criteria": { + "has_diamond": "2025-08-25 10:03:57 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/diamond_hoe": { + "criteria": { + "has_diamond": "2025-08-25 10:03:57 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/diamond_shovel": { + "criteria": { + "has_diamond": "2025-08-25 10:03:57 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/diamond_boots": { + "criteria": { + "has_diamond": "2025-08-25 10:03:57 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/diamond_helmet": { + "criteria": { + "has_diamond": "2025-08-25 10:03:57 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/diamond_block": { + "criteria": { + "has_diamond": "2025-08-25 10:03:57 -0500" + }, + "done": true + }, + "minecraft:story/mine_diamond": { + "criteria": { + "diamond": "2025-08-25 10:03:57 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/diamond_axe": { + "criteria": { + "has_diamond": "2025-08-25 10:03:57 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/gold_ingot_from_blasting_raw_gold": { + "criteria": { + "has_raw_gold": "2025-08-25 10:04:45 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/gold_ingot_from_smelting_raw_gold": { + "criteria": { + "has_raw_gold": "2025-08-25 10:04:45 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/raw_gold_block": { + "criteria": { + "has_raw_gold": "2025-08-25 10:04:45 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/firework_rocket_simple": { + "criteria": { + "has_gunpowder": "2025-08-25 10:06:06 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/tnt": { + "criteria": { + "has_gunpowder": "2025-08-25 10:06:06 -0500" + }, + "done": true + }, + "minecraft:story/shiny_gear": { + "criteria": { + "diamond_helmet": "2025-08-25 10:07:46 -0500" + }, + "done": true + }, + "minecraft:recipes/brewing/cauldron": { + "criteria": { + "has_water_bucket": "2025-08-25 10:15:34 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/paper": { + "criteria": { + "has_reeds": "2025-08-25 10:20:58 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/sugar_from_sugar_cane": { + "criteria": { + "has_sugar_cane": "2025-08-25 10:20:58 -0500" + }, + "done": true + }, + "minecraft:recipes/food/cake": { + "criteria": { + "has_egg": "2025-08-25 10:24:50 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/target": { + "criteria": { + "has_hay_block": "2025-08-25 10:28:00 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/wheat": { + "criteria": { + "has_hay_block": "2025-08-25 10:28:00 -0500" + }, + "done": true + }, + "minecraft:recipes/food/bread": { + "criteria": { + "has_wheat": "2025-08-25 10:30:10 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/hay_block": { + "criteria": { + "has_wheat": "2025-08-25 10:30:10 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/birch_wood": { + "criteria": { + "has_log": "2025-08-25 14:41:51 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/birch_planks_from_birch_logs_stonecutting": { + "criteria": { + "has_birch_logs": "2025-08-25 14:41:51 -0500" + }, + "done": true + }, + "minecraft:recipes/food/suspicious_stew_from_cornflower": { + "criteria": { + "has_cornflower": "2025-08-25 14:46:00 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/blue_dye_from_cornflower": { + "criteria": { + "has_cornflower": "2025-08-25 14:46:00 -0500" + }, + "done": true + }, + "minecraft:recipes/food/suspicious_stew_from_lily_of_the_valley": { + "criteria": { + "has_lily_of_the_valley": "2025-08-25 14:46:08 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/white_dye_from_lily_of_the_valley": { + "criteria": { + "has_lily_of_the_valley": "2025-08-25 14:46:08 -0500" + }, + "done": true + }, + "minecraft:recipes/food/suspicious_stew_from_oxeye_daisy": { + "criteria": { + "has_oxeye_daisy": "2025-08-25 14:46:30 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/flower_banner_pattern": { + "criteria": { + "has_oxeye_daisy": "2025-08-25 14:46:30 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/light_gray_dye_from_oxeye_daisy": { + "criteria": { + "has_oxeye_daisy": "2025-08-25 14:46:30 -0500" + }, + "done": true + }, + "minecraft:recipes/food/suspicious_stew_from_orange_tulip": { + "criteria": { + "has_orange_tulip": "2025-08-25 14:46:43 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/orange_dye_from_orange_tulip": { + "criteria": { + "has_orange_tulip": "2025-08-25 14:46:43 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/pink_dye_from_peony": { + "criteria": { + "has_peony": "2025-08-25 14:46:48 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/magenta_dye_from_lilac": { + "criteria": { + "has_lilac": "2025-08-25 14:46:49 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/light_gray_dye_from_white_tulip": { + "criteria": { + "has_white_tulip": "2025-08-25 14:47:22 -0500" + }, + "done": true + }, + "minecraft:recipes/food/suspicious_stew_from_white_tulip": { + "criteria": { + "has_white_tulip": "2025-08-25 14:47:22 -0500" + }, + "done": true + }, + "minecraft:recipes/food/suspicious_stew_from_red_tulip": { + "criteria": { + "has_red_tulip": "2025-08-25 14:47:36 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/red_dye_from_tulip": { + "criteria": { + "has_red_flower": "2025-08-25 14:47:36 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/red_dye_from_rose_bush": { + "criteria": { + "has_rose_bush": "2025-08-25 14:47:41 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/spruce_wood": { + "criteria": { + "has_log": "2025-08-25 14:50:20 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/spruce_planks": { + "criteria": { + "has_logs": "2025-08-25 14:50:20 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/spruce_planks_from_spruce_logs_stonecutting": { + "criteria": { + "has_spruce_logs": "2025-08-25 14:50:20 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/coal_from_blasting_coal_ore": { + "criteria": { + "has_coal_ore": "2025-08-25 14:51:39 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/coal_from_smelting_coal_ore": { + "criteria": { + "has_coal_ore": "2025-08-25 14:51:39 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/coal_from_smelting_deepslate_coal_ore": { + "criteria": { + "has_deepslate_coal_ore": "2025-08-25 14:51:40 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/coal_from_blasting_deepslate_coal_ore": { + "criteria": { + "has_deepslate_coal_ore": "2025-08-25 14:51:40 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/glow_item_frame": { + "criteria": { + "has_glow_ink_sac": "2025-08-25 15:06:54 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/blue_dye": { + "criteria": { + "has_lapis_lazuli": "2025-08-25 15:07:16 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/lapis_block": { + "criteria": { + "has_lapis_lazuli": "2025-08-25 15:07:16 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/fletching_table": { + "criteria": { + "has_flint": "2025-08-25 19:21:02 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/arrow": { + "criteria": { + "has_flint": "2025-08-25 19:21:02 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/flint_and_steel": { + "criteria": { + "has_flint": "2025-08-25 19:21:02 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/coarse_dirt": { + "criteria": { + "has_gravel": "2025-08-25 19:21:03 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/light_gray_concrete_powder": { + "criteria": { + "has_gravel": "2025-08-25 19:21:03 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/pink_concrete_powder": { + "criteria": { + "has_gravel": "2025-08-25 19:21:03 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/red_concrete_powder": { + "criteria": { + "has_gravel": "2025-08-25 19:21:03 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/brown_concrete_powder": { + "criteria": { + "has_gravel": "2025-08-25 19:21:03 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/light_blue_concrete_powder": { + "criteria": { + "has_gravel": "2025-08-25 19:21:03 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/green_concrete_powder": { + "criteria": { + "has_gravel": "2025-08-25 19:21:03 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/blue_concrete_powder": { + "criteria": { + "has_gravel": "2025-08-25 19:21:03 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/white_concrete_powder": { + "criteria": { + "has_gravel": "2025-08-25 19:21:03 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/lime_concrete_powder": { + "criteria": { + "has_gravel": "2025-08-25 19:21:03 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/orange_concrete_powder": { + "criteria": { + "has_gravel": "2025-08-25 19:21:03 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/magenta_concrete_powder": { + "criteria": { + "has_gravel": "2025-08-25 19:21:03 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/yellow_concrete_powder": { + "criteria": { + "has_gravel": "2025-08-25 19:21:03 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/gray_concrete_powder": { + "criteria": { + "has_gravel": "2025-08-25 19:21:03 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/black_concrete_powder": { + "criteria": { + "has_gravel": "2025-08-25 19:21:03 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/purple_concrete_powder": { + "criteria": { + "has_gravel": "2025-08-25 19:21:03 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/cyan_concrete_powder": { + "criteria": { + "has_gravel": "2025-08-25 19:21:03 -0500" + }, + "done": true + }, + "minecraft:story/form_obsidian": { + "criteria": { + "obsidian": "2025-08-25 19:29:58 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/enchanting_table": { + "criteria": { + "has_obsidian": "2025-08-25 19:29:58 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/redstone_torch": { + "criteria": { + "has_redstone": "2025-08-25 21:26:24 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/clock": { + "criteria": { + "has_redstone": "2025-08-25 21:26:24 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/note_block": { + "criteria": { + "has_redstone": "2025-08-25 21:26:24 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/compass": { + "criteria": { + "has_redstone": "2025-08-25 21:26:24 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/dropper": { + "criteria": { + "has_redstone": "2025-08-25 21:26:24 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/redstone_block": { + "criteria": { + "has_redstone": "2025-08-25 21:26:24 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/piston": { + "criteria": { + "has_redstone": "2025-08-25 21:26:24 -0500" + }, + "done": true + }, + "minecraft:story/enter_the_nether": { + "criteria": { + "entered_nether": "2025-08-25 21:41:28 -0500" + }, + "done": true + }, + "minecraft:nether/root": { + "criteria": { + "entered_nether": "2025-08-25 21:41:28 -0500" + }, + "done": true + }, + "minecraft:nether/explore_nether": { + "criteria": { + "minecraft:crimson_forest": "2025-08-25 21:41:29 -0500", + "minecraft:nether_wastes": "2025-08-25 21:44:43 -0500", + "minecraft:soul_sand_valley": "2025-08-25 21:42:31 -0500", + "minecraft:basalt_deltas": "2025-08-25 21:46:39 -0500" + }, + "done": false + }, + "minecraft:recipes/misc/bone_meal_from_bone_block": { + "criteria": { + "has_bone_block": "2025-08-25 21:42:35 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/soul_torch": { + "criteria": { + "has_soul_sand": "2025-08-25 21:44:28 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/soul_campfire": { + "criteria": { + "has_soul_sand": "2025-08-25 21:44:28 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/polished_blackstone_button_from_blackstone_stonecutting": { + "criteria": { + "has_blackstone": "2025-08-25 21:46:44 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/polished_blackstone_brick_wall_from_blackstone_stonecutting": { + "criteria": { + "has_blackstone": "2025-08-25 21:46:44 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/blackstone_wall": { + "criteria": { + "has_blackstone": "2025-08-25 21:46:44 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/polished_blackstone_brick_stairs_from_blackstone_stonecutting": { + "criteria": { + "has_blackstone": "2025-08-25 21:46:44 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/polished_blackstone_bricks_from_blackstone_stonecutting": { + "criteria": { + "has_blackstone": "2025-08-25 21:46:44 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/polished_blackstone_stairs_from_blackstone_stonecutting": { + "criteria": { + "has_blackstone": "2025-08-25 21:46:44 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/polished_blackstone_wall_from_blackstone_stonecutting": { + "criteria": { + "has_blackstone": "2025-08-25 21:46:44 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/chiseled_polished_blackstone_from_blackstone_stonecutting": { + "criteria": { + "has_blackstone": "2025-08-25 21:46:44 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/blackstone_stairs": { + "criteria": { + "has_blackstone": "2025-08-25 21:46:44 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/blackstone_slab_from_blackstone_stonecutting": { + "criteria": { + "has_blackstone": "2025-08-25 21:46:44 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/polished_blackstone_slab_from_blackstone_stonecutting": { + "criteria": { + "has_blackstone": "2025-08-25 21:46:44 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/polished_blackstone": { + "criteria": { + "has_blackstone": "2025-08-25 21:46:44 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/blackstone_slab": { + "criteria": { + "has_blackstone": "2025-08-25 21:46:44 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/polished_blackstone_brick_slab_from_blackstone_stonecutting": { + "criteria": { + "has_blackstone": "2025-08-25 21:46:44 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/polished_blackstone_from_blackstone_stonecutting": { + "criteria": { + "has_blackstone": "2025-08-25 21:46:44 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/blackstone_wall_from_blackstone_stonecutting": { + "criteria": { + "has_blackstone": "2025-08-25 21:46:44 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/polished_blackstone_pressure_plate_from_blackstone_stonecutting": { + "criteria": { + "has_blackstone": "2025-08-25 21:46:44 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/blackstone_stairs_from_blackstone_stonecutting": { + "criteria": { + "has_blackstone": "2025-08-25 21:46:44 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/smooth_basalt": { + "criteria": { + "has_basalt": "2025-08-25 21:47:40 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/polished_basalt_from_basalt_stonecutting": { + "criteria": { + "has_basalt": "2025-08-25 21:47:40 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/polished_basalt": { + "criteria": { + "has_basalt": "2025-08-25 21:47:40 -0500" + }, + "done": true + }, + "minecraft:adventure/sleep_in_bed": { + "criteria": { + "slept_in_bed": "2025-08-25 21:51:32 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/stone_pressure_plate_from_stone_stonecutting": { + "criteria": { + "has_stone": "2025-08-25 22:07:29 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/stone_button_from_stone_stonecutting": { + "criteria": { + "has_stone": "2025-08-25 22:07:29 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/cobblestone_from_stone_stonecutting": { + "criteria": { + "has_stone": "2025-08-25 22:07:29 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/stone_brick_wall": { + "criteria": { + "has_stone_bricks": "2025-08-25 22:07:50 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/cracked_stone_bricks": { + "criteria": { + "has_stone_bricks": "2025-08-25 22:07:50 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/stone_brick_stairs_from_stone_bricks_stonecutting": { + "criteria": { + "has_stone_bricks": "2025-08-25 22:07:50 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/stone_brick_stairs": { + "criteria": { + "has_stone_bricks": "2025-08-25 22:07:50 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/chiseled_stone_bricks": { + "criteria": { + "has_tag": "2025-08-25 22:07:50 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/stone_brick_wall_from_stone_bricks_stonecutting": { + "criteria": { + "has_stone_bricks": "2025-08-25 22:07:50 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/stone_brick_slab_from_stone_bricks_stonecutting": { + "criteria": { + "has_stone_bricks": "2025-08-25 22:07:50 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/stone_brick_slab": { + "criteria": { + "has_stone_bricks": "2025-08-25 22:07:50 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/chiseled_stone_bricks_from_stone_bricks_stonecutting": { + "criteria": { + "has_stone_bricks": "2025-08-25 22:07:50 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/birch_pressure_plate_from_birch_planks_stonecutting": { + "criteria": { + "has_birch_planks": "2025-08-25 22:08:33 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/birch_stairs_from_birch_planks_stonecutting": { + "criteria": { + "has_birch_planks": "2025-08-25 22:08:33 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/birch_trapdoor_from_birch_planks_stonecutting": { + "criteria": { + "has_birch_planks": "2025-08-25 22:08:33 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/birch_button_from_birch_planks_stonecutting": { + "criteria": { + "has_birch_planks": "2025-08-25 22:08:33 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/birch_slab_from_birch_planks_stonecutting": { + "criteria": { + "has_birch_planks": "2025-08-25 22:08:33 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/spruce_stairs_from_spruce_planks_stonecutting": { + "criteria": { + "has_spruce_planks": "2025-08-25 22:08:55 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/spruce_sign": { + "criteria": { + "has_planks": "2025-08-25 22:08:55 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/spruce_trapdoor_from_spruce_planks_stonecutting": { + "criteria": { + "has_spruce_planks": "2025-08-25 22:08:55 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/spruce_fence": { + "criteria": { + "has_planks": "2025-08-25 22:08:55 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/spruce_slab": { + "criteria": { + "has_planks": "2025-08-25 22:08:55 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/spruce_pressure_plate_from_spruce_planks_stonecutting": { + "criteria": { + "has_spruce_planks": "2025-08-25 22:08:55 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/spruce_button": { + "criteria": { + "has_planks": "2025-08-25 22:08:55 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/spruce_pressure_plate": { + "criteria": { + "has_planks": "2025-08-25 22:08:55 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/spruce_trapdoor": { + "criteria": { + "has_planks": "2025-08-25 22:08:55 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/spruce_door": { + "criteria": { + "has_planks": "2025-08-25 22:08:55 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/spruce_fence_gate": { + "criteria": { + "has_planks": "2025-08-25 22:08:55 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/spruce_slab_from_spruce_planks_stonecutting": { + "criteria": { + "has_spruce_planks": "2025-08-25 22:08:55 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/spruce_stairs": { + "criteria": { + "has_planks": "2025-08-25 22:08:55 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/spruce_button_from_spruce_planks_stonecutting": { + "criteria": { + "has_spruce_planks": "2025-08-25 22:08:55 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/composter": { + "criteria": { + "has_wood_slab": "2025-08-25 22:08:56 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/spruce_hanging_sign": { + "criteria": { + "has_stripped_logs": "2025-08-25 22:15:06 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/stripped_spruce_wood": { + "criteria": { + "has_log": "2025-08-25 22:15:06 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/oak_hanging_sign": { + "criteria": { + "has_stripped_logs": "2025-08-25 22:16:15 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/stripped_oak_wood": { + "criteria": { + "has_log": "2025-08-25 22:16:15 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/white_dye": { + "criteria": { + "has_bone_meal": "2025-08-25 22:24:16 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/bone_block": { + "criteria": { + "has_bone_meal": "2025-08-25 22:24:16 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/light_blue_stained_glass": { + "criteria": { + "has_glass": "2025-08-25 23:10:09 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/green_stained_glass": { + "criteria": { + "has_glass": "2025-08-25 23:10:09 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/brown_stained_glass": { + "criteria": { + "has_glass": "2025-08-25 23:10:09 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/blue_stained_glass": { + "criteria": { + "has_glass": "2025-08-25 23:10:09 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/orange_stained_glass": { + "criteria": { + "has_glass": "2025-08-25 23:10:09 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/pink_stained_glass": { + "criteria": { + "has_glass": "2025-08-25 23:10:09 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/black_stained_glass": { + "criteria": { + "has_glass": "2025-08-25 23:10:09 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/gray_stained_glass": { + "criteria": { + "has_glass": "2025-08-25 23:10:09 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/lime_stained_glass": { + "criteria": { + "has_glass": "2025-08-25 23:10:09 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/glass_pane": { + "criteria": { + "has_glass": "2025-08-25 23:10:09 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/magenta_stained_glass": { + "criteria": { + "has_glass": "2025-08-25 23:10:09 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/white_stained_glass": { + "criteria": { + "has_glass": "2025-08-25 23:10:09 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/red_stained_glass": { + "criteria": { + "has_glass": "2025-08-25 23:10:09 -0500" + }, + "done": true + }, + "minecraft:recipes/brewing/glass_bottle": { + "criteria": { + "has_glass": "2025-08-25 23:10:09 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/light_gray_stained_glass": { + "criteria": { + "has_glass": "2025-08-25 23:10:09 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/cyan_stained_glass": { + "criteria": { + "has_glass": "2025-08-25 23:10:09 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/purple_stained_glass": { + "criteria": { + "has_glass": "2025-08-25 23:10:09 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/yellow_stained_glass": { + "criteria": { + "has_glass": "2025-08-25 23:10:09 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/lime_stained_glass_pane_from_glass_pane": { + "criteria": { + "has_glass_pane": "2025-08-25 23:10:13 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/purple_stained_glass_pane_from_glass_pane": { + "criteria": { + "has_glass_pane": "2025-08-25 23:10:13 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/blue_stained_glass_pane_from_glass_pane": { + "criteria": { + "has_glass_pane": "2025-08-25 23:10:13 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/light_gray_stained_glass_pane_from_glass_pane": { + "criteria": { + "has_glass_pane": "2025-08-25 23:10:13 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/orange_stained_glass_pane_from_glass_pane": { + "criteria": { + "has_glass_pane": "2025-08-25 23:10:13 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/light_blue_stained_glass_pane_from_glass_pane": { + "criteria": { + "has_glass_pane": "2025-08-25 23:10:13 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/green_stained_glass_pane_from_glass_pane": { + "criteria": { + "has_glass_pane": "2025-08-25 23:10:13 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/pink_stained_glass_pane_from_glass_pane": { + "criteria": { + "has_glass_pane": "2025-08-25 23:10:13 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/white_stained_glass_pane_from_glass_pane": { + "criteria": { + "has_glass_pane": "2025-08-25 23:10:13 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/gray_stained_glass_pane_from_glass_pane": { + "criteria": { + "has_glass_pane": "2025-08-25 23:10:13 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/black_stained_glass_pane_from_glass_pane": { + "criteria": { + "has_glass_pane": "2025-08-25 23:10:13 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/yellow_stained_glass_pane_from_glass_pane": { + "criteria": { + "has_glass_pane": "2025-08-25 23:10:13 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/brown_stained_glass_pane_from_glass_pane": { + "criteria": { + "has_glass_pane": "2025-08-25 23:10:13 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/red_stained_glass_pane_from_glass_pane": { + "criteria": { + "has_glass_pane": "2025-08-25 23:10:13 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/magenta_stained_glass_pane_from_glass_pane": { + "criteria": { + "has_glass_pane": "2025-08-25 23:10:13 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/cyan_stained_glass_pane_from_glass_pane": { + "criteria": { + "has_glass_pane": "2025-08-25 23:10:13 -0500" + }, + "done": true + }, + "chunk_loader:recipes/chunk_loader_iron": { + "criteria": { + "has_items": "2025-08-26 11:09:35 -0500" + }, + "done": true + }, + "chunk_loader:recipes/upgrade_netherite": { + "criteria": { + "has_items": "2025-08-26 11:09:35 -0500" + }, + "done": true + }, + "chunk_loader:recipes/chunk_loader_diamond": { + "criteria": { + "has_items": "2025-08-26 11:09:35 -0500" + }, + "done": true + }, + "chunk_loader:recipes/upgrade_diamond": { + "criteria": { + "has_items": "2025-08-26 11:09:35 -0500" + }, + "done": true + }, + "chunk_loader:recipes/chunk_checker": { + "criteria": { + "has_items": "2025-08-26 11:09:35 -0500" + }, + "done": true + }, + "chunk_loader:recipes/chunk_loader_netherite": { + "criteria": { + "has_items": "2025-08-26 11:09:35 -0500" + }, + "done": true + }, + "chunk_loader:recipes/chunk_loader_gold": { + "criteria": { + "has_items": "2025-08-26 11:09:35 -0500", + "has_the_recipe": "2025-08-26 11:09:35 -0500" + }, + "done": true + }, + "chunk_loader:recipes/upgrade_gold": { + "criteria": { + "has_items": "2025-08-26 11:09:35 -0500" + }, + "done": true + }, + "chunk_loader:recipes/chunk_loader_copper": { + "criteria": { + "has_items": "2025-08-26 11:09:35 -0500" + }, + "done": true + }, + "chunk_loader:recipes/upgrade_iron": { + "criteria": { + "has_items": "2025-08-26 11:09:35 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/stripped_birch_wood": { + "criteria": { + "has_log": "2025-08-26 11:10:55 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/birch_hanging_sign": { + "criteria": { + "has_stripped_logs": "2025-08-26 11:10:55 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/clay": { + "criteria": { + "has_clay_ball": "2025-08-26 11:25:51 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/brick": { + "criteria": { + "has_clay_ball": "2025-08-26 11:25:51 -0500" + }, + "done": true + }, + "minecraft:husbandry/plant_seed": { + "criteria": { + "wheat": "2025-08-26 11:31:20 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/bricks": { + "criteria": { + "has_brick": "2025-08-26 11:31:44 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/decorated_pot_simple": { + "criteria": { + "has_brick": "2025-08-26 11:31:44 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/flower_pot": { + "criteria": { + "has_brick": "2025-08-26 11:31:44 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/polished_diorite": { + "criteria": { + "has_diorite": "2025-08-26 16:47:41 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/diorite_slab": { + "criteria": { + "has_diorite": "2025-08-26 16:47:41 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/diorite_wall": { + "criteria": { + "has_diorite": "2025-08-26 16:47:41 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/polished_diorite_stairs_from_diorite_stonecutting": { + "criteria": { + "has_diorite": "2025-08-26 16:47:41 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/diorite_stairs_from_diorite_stonecutting": { + "criteria": { + "has_diorite": "2025-08-26 16:47:41 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/diorite_wall_from_diorite_stonecutting": { + "criteria": { + "has_diorite": "2025-08-26 16:47:41 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/andesite": { + "criteria": { + "has_stone": "2025-08-26 16:47:41 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/polished_diorite_from_diorite_stonecutting": { + "criteria": { + "has_diorite": "2025-08-26 16:47:41 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/diorite_slab_from_diorite_stonecutting": { + "criteria": { + "has_diorite": "2025-08-26 16:47:41 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/polished_diorite_slab_from_diorite_stonecutting": { + "criteria": { + "has_diorite": "2025-08-26 16:47:41 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/diorite_stairs": { + "criteria": { + "has_diorite": "2025-08-26 16:47:41 -0500" + }, + "done": true + }, + "dispenser:recipes/redstone/dispenser": { + "criteria": { + "has_the_recipe": "2025-08-26 19:39:53 -0500" + }, + "done": true + }, + "dispenser:recipes/redstone/dispenser_dropper": { + "criteria": { + "has_bow": "2025-08-26 19:39:53 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/dispenser": { + "criteria": { + "has_bow": "2025-08-26 19:39:53 -0500" + }, + "done": true + }, + "minecraft:adventure/shoot_arrow": { + "criteria": { + "shot_arrow": "2025-08-26 19:41:28 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/book": { + "criteria": { + "has_paper": "2025-08-27 10:23:28 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/cartography_table": { + "criteria": { + "has_paper": "2025-08-27 10:23:28 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/bookshelf": { + "criteria": { + "has_book": "2025-08-27 10:23:30 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/lectern": { + "criteria": { + "has_book": "2025-08-27 10:23:30 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/chiseled_bookshelf": { + "criteria": { + "has_book": "2025-08-27 10:23:30 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/writable_book": { + "criteria": { + "has_book": "2025-08-27 10:23:30 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/iron_trapdoor_from_iron_block_stonecutting": { + "criteria": { + "has_iron_block": "2025-08-27 10:26:10 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/iron_ingot_from_iron_block": { + "criteria": { + "has_iron_block": "2025-08-27 10:26:10 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/anvil": { + "criteria": { + "has_iron_block": "2025-08-27 10:26:10 -0500" + }, + "done": true + }, + "minecraft:story/enchant_item": { + "criteria": { + "enchanted_item": "2025-08-27 10:27:01 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/granite_slab_from_granite_stonecutting": { + "criteria": { + "has_granite": "2025-08-27 10:31:52 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/granite_wall_from_granite_stonecutting": { + "criteria": { + "has_granite": "2025-08-27 10:31:52 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/polished_granite_from_granite_stonecutting": { + "criteria": { + "has_granite": "2025-08-27 10:31:52 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/granite_slab": { + "criteria": { + "has_granite": "2025-08-27 10:31:52 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/granite_stairs": { + "criteria": { + "has_granite": "2025-08-27 10:31:52 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/granite_stairs_from_granite_stonecutting": { + "criteria": { + "has_granite": "2025-08-27 10:31:52 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/granite_wall": { + "criteria": { + "has_granite": "2025-08-27 10:31:52 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/polished_granite_slab_from_granite_stonecutting": { + "criteria": { + "has_granite": "2025-08-27 10:31:52 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/polished_granite": { + "criteria": { + "has_granite": "2025-08-27 10:31:52 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/polished_granite_stairs_from_granite_stonecutting": { + "criteria": { + "has_granite": "2025-08-27 10:31:52 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/yellow_dye_from_dandelion": { + "criteria": { + "has_dandelion": "2025-08-27 15:19:25 -0500" + }, + "done": true + }, + "minecraft:recipes/food/suspicious_stew_from_dandelion": { + "criteria": { + "has_dandelion": "2025-08-27 15:19:25 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/cherry_planks": { + "criteria": { + "has_log": "2025-08-27 18:36:41 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/cherry_wood": { + "criteria": { + "has_log": "2025-08-27 18:36:41 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/cherry_planks_from_cherry_logs_stonecutting": { + "criteria": { + "has_cherry_logs": "2025-08-27 18:36:41 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/painting": { + "criteria": { + "has_wool": "2025-08-27 18:38:54 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/white_carpet": { + "criteria": { + "has_white_wool": "2025-08-27 18:38:54 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/white_banner": { + "criteria": { + "has_white_wool": "2025-08-27 18:38:54 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/white_bed": { + "criteria": { + "has_white_wool": "2025-08-27 18:38:54 -0500" + }, + "done": true + }, + "blastbuff:recipes/misc/glass_from_blasting_sand": { + "criteria": { + "has_sand": "2025-08-27 19:01:24 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/glass": { + "criteria": { + "has_smelts_to_glass": "2025-08-27 19:01:24 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/sandstone": { + "criteria": { + "has_sand": "2025-08-27 19:01:24 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/melon_seeds": { + "criteria": { + "has_melon": "2025-08-27 19:20:08 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/lime_terracotta": { + "criteria": { + "has_terracotta": "2025-08-27 19:14:09 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/light_gray_terracotta": { + "criteria": { + "has_terracotta": "2025-08-27 19:14:09 -0500" + }, + "done": true + }, + "minecraft:recipes/food/baked_potato_from_campfire_cooking": { + "criteria": { + "has_potato": "2025-08-27 19:17:02 -0500" + }, + "done": true + }, + "minecraft:recipes/food/baked_potato": { + "criteria": { + "has_potato": "2025-08-27 19:17:02 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/red_terracotta": { + "criteria": { + "has_terracotta": "2025-08-27 19:14:09 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/black_terracotta": { + "criteria": { + "has_terracotta": "2025-08-27 19:14:09 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/pumpkin_seeds": { + "criteria": { + "has_pumpkin": "2025-08-27 19:16:13 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/emerald_block": { + "criteria": { + "has_emerald": "2025-08-27 19:17:01 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/pink_terracotta": { + "criteria": { + "has_terracotta": "2025-08-27 19:14:09 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/red_dye_from_poppy": { + "criteria": { + "has_poppy": "2025-08-27 19:16:53 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/blue_terracotta": { + "criteria": { + "has_terracotta": "2025-08-27 19:14:09 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/light_blue_terracotta": { + "criteria": { + "has_terracotta": "2025-08-27 19:14:09 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/yellow_terracotta": { + "criteria": { + "has_terracotta": "2025-08-27 19:14:09 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/purple_terracotta": { + "criteria": { + "has_terracotta": "2025-08-27 19:14:09 -0500" + }, + "done": true + }, + "minecraft:recipes/food/pumpkin_pie": { + "criteria": { + "has_pumpkin": "2025-08-27 19:16:13 -0500" + }, + "done": true + }, + "minecraft:recipes/brewing/glistering_melon_slice": { + "criteria": { + "has_melon": "2025-08-27 19:20:08 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/black_dye": { + "criteria": { + "has_ink_sac": "2025-08-27 19:16:22 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/white_terracotta": { + "criteria": { + "has_terracotta": "2025-08-27 19:14:09 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/terracotta": { + "criteria": { + "has_clay_block": "2025-08-27 19:08:30 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/orange_terracotta": { + "criteria": { + "has_terracotta": "2025-08-27 19:14:09 -0500" + }, + "done": true + }, + "minecraft:recipes/food/baked_potato_from_smoking": { + "criteria": { + "has_potato": "2025-08-27 19:17:02 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/melon": { + "criteria": { + "has_melon": "2025-08-27 19:20:08 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/magenta_terracotta": { + "criteria": { + "has_terracotta": "2025-08-27 19:14:09 -0500" + }, + "done": true + }, + "minecraft:recipes/food/suspicious_stew_from_poppy": { + "criteria": { + "has_poppy": "2025-08-27 19:16:53 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/cyan_terracotta": { + "criteria": { + "has_terracotta": "2025-08-27 19:14:09 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/gray_terracotta": { + "criteria": { + "has_terracotta": "2025-08-27 19:14:09 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/green_terracotta": { + "criteria": { + "has_terracotta": "2025-08-27 19:14:09 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/brown_terracotta": { + "criteria": { + "has_terracotta": "2025-08-27 19:14:09 -0500" + }, + "done": true + }, + "DataVersion": 4189 +} \ No newline at end of file diff --git a/advancements/c6a465aa-1a67-4cc5-b25b-c0c3239a340f.json b/advancements/c6a465aa-1a67-4cc5-b25b-c0c3239a340f.json new file mode 100755 index 0000000..3ef7a0d --- /dev/null +++ b/advancements/c6a465aa-1a67-4cc5-b25b-c0c3239a340f.json @@ -0,0 +1,3658 @@ +{ + "minecraft:recipes/decorations/crafting_table": { + "criteria": { + "unlock_right_away": "2025-08-24 20:31:25 -0500" + }, + "done": true + }, + "minecraft:adventure/adventuring_time": { + "criteria": { + "minecraft:flower_forest": "2025-08-24 20:31:25 -0500", + "minecraft:savanna_plateau": "2025-08-26 16:43:52 -0500", + "minecraft:beach": "2025-08-24 20:36:04 -0500", + "minecraft:forest": "2025-08-27 17:34:19 -0500", + "minecraft:sunflower_plains": "2025-08-24 21:05:15 -0500", + "minecraft:cherry_grove": "2025-08-26 16:44:01 -0500", + "minecraft:river": "2025-08-24 21:05:08 -0500", + "minecraft:windswept_hills": "2025-08-25 14:52:56 -0500", + "minecraft:dripstone_caves": "2025-08-27 17:44:42 -0500", + "minecraft:savanna": "2025-08-26 16:43:53 -0500", + "minecraft:plains": "2025-08-25 14:36:11 -0500" + }, + "done": false + }, + "vanillatweaks:root": { + "criteria": { + "tick": "2025-08-24 20:31:25 -0500" + }, + "done": true + }, + "vanillatweaks:armored_elytra": { + "criteria": { + "tick": "2025-08-24 20:31:25 -0500" + }, + "done": true + }, + "vanillatweaks:bat_membranes": { + "criteria": { + "tick": "2025-08-24 20:31:25 -0500" + }, + "done": true + }, + "vanillatweaks:confetti_creepers": { + "criteria": { + "tick": "2025-08-24 20:31:25 -0500" + }, + "done": true + }, + "vanillatweaks:ender_chest_always_drops": { + "criteria": { + "tick": "2025-08-24 20:31:25 -0500" + }, + "done": true + }, + "graves:check_death_markers_later_in_tick": { + "criteria": { + "tick": "2025-08-24 20:31:25 -0500" + }, + "done": true + }, + "vanillatweaks:graves": { + "criteria": { + "tick": "2025-08-24 20:31:25 -0500" + }, + "done": true + }, + "vanillatweaks:more_effective_tools": { + "criteria": { + "tick": "2025-08-24 20:31:25 -0500" + }, + "done": true + }, + "vanillatweaks:spectator_night_vision": { + "criteria": { + "tick": "2025-08-24 20:31:25 -0500" + }, + "done": true + }, + "vanillatweaks:xp_management": { + "criteria": { + "tick": "2025-08-24 20:31:25 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/charcoal": { + "criteria": { + "has_log": "2025-08-24 20:31:29 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/oak_planks": { + "criteria": { + "has_logs": "2025-08-24 20:31:29 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/oak_wood": { + "criteria": { + "has_log": "2025-08-24 20:31:29 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/oak_planks_from_oak_logs_stonecutting": { + "criteria": { + "has_oak_logs": "2025-08-24 20:31:29 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/stick": { + "criteria": { + "has_planks": "2025-08-24 20:31:42 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/barrel": { + "criteria": { + "has_planks": "2025-08-24 20:31:42 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/oak_slab": { + "criteria": { + "has_planks": "2025-08-24 20:31:42 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/oak_sign": { + "criteria": { + "has_planks": "2025-08-24 20:31:42 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/oak_trapdoor": { + "criteria": { + "has_planks": "2025-08-24 20:31:42 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/oak_fence_gate": { + "criteria": { + "has_planks": "2025-08-24 20:31:42 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/oak_pressure_plate": { + "criteria": { + "has_planks": "2025-08-24 20:31:42 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/oak_door": { + "criteria": { + "has_planks": "2025-08-24 20:31:42 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/oak_stairs": { + "criteria": { + "has_planks": "2025-08-24 20:31:42 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/oak_fence": { + "criteria": { + "has_planks": "2025-08-24 20:31:42 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/oak_button": { + "criteria": { + "has_planks": "2025-08-24 20:31:42 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/oak_pressure_plate_from_oak_planks_stonecutting": { + "criteria": { + "has_oak_planks": "2025-08-24 20:31:42 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/oak_slab_from_oak_planks_stonecutting": { + "criteria": { + "has_oak_planks": "2025-08-24 20:31:42 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/oak_trapdoor_from_oak_planks_stonecutting": { + "criteria": { + "has_oak_planks": "2025-08-24 20:31:42 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/oak_stairs_from_oak_planks_stonecutting": { + "criteria": { + "has_oak_planks": "2025-08-24 20:31:42 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/oak_button_from_oak_planks_stonecutting": { + "criteria": { + "has_oak_planks": "2025-08-24 20:31:42 -0500" + }, + "done": true + }, + "minecraft:story/root": { + "criteria": { + "crafting_table": "2025-08-24 20:31:45 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/ladder": { + "criteria": { + "has_stick": "2025-08-24 20:31:46 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/wooden_axe": { + "criteria": { + "has_stick": "2025-08-24 20:31:46 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/campfire": { + "criteria": { + "has_stick": "2025-08-24 20:31:46 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/wooden_hoe": { + "criteria": { + "has_stick": "2025-08-24 20:31:46 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/wooden_pickaxe": { + "criteria": { + "has_stick": "2025-08-24 20:31:46 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/wooden_shovel": { + "criteria": { + "has_stick": "2025-08-24 20:31:46 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/wooden_sword": { + "criteria": { + "has_stick": "2025-08-24 20:31:46 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/lever": { + "criteria": { + "has_cobblestone": "2025-08-24 20:32:35 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/stone_sword": { + "criteria": { + "has_cobblestone": "2025-08-24 20:32:35 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/cobblestone_wall": { + "criteria": { + "has_cobblestone": "2025-08-24 20:32:35 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/stone_axe": { + "criteria": { + "has_cobblestone": "2025-08-24 20:32:35 -0500" + }, + "done": true + }, + "minecraft:story/mine_stone": { + "criteria": { + "get_stone": "2025-08-24 20:32:35 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/furnace": { + "criteria": { + "has_cobblestone": "2025-08-24 20:32:35 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/cobblestone_slab_from_cobblestone_stonecutting": { + "criteria": { + "has_cobblestone": "2025-08-24 20:32:35 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/stone": { + "criteria": { + "has_cobblestone": "2025-08-24 20:32:35 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/stone_pickaxe": { + "criteria": { + "has_cobblestone": "2025-08-24 20:32:35 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/cobblestone_slab": { + "criteria": { + "has_cobblestone": "2025-08-24 20:32:35 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/cobblestone_wall_from_cobblestone_stonecutting": { + "criteria": { + "has_cobblestone": "2025-08-24 20:32:35 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/cobblestone_stairs_from_cobblestone_stonecutting": { + "criteria": { + "has_cobblestone": "2025-08-24 20:32:35 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/cobblestone_stairs": { + "criteria": { + "has_cobblestone": "2025-08-24 20:32:35 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/stone_hoe": { + "criteria": { + "has_cobblestone": "2025-08-24 20:32:35 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/stone_shovel": { + "criteria": { + "has_cobblestone": "2025-08-24 20:32:35 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/torch": { + "criteria": { + "has_stone_pickaxe": "2025-08-24 20:32:44 -0500" + }, + "done": true + }, + "minecraft:story/upgrade_tools": { + "criteria": { + "stone_pickaxe": "2025-08-24 20:32:44 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/painting": { + "criteria": { + "has_wool": "2025-08-24 20:32:54 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/chest": { + "criteria": { + "has_lots_of_items": "2025-08-24 20:32:54 -0500" + }, + "done": true + }, + "minecraft:adventure/root": { + "criteria": { + "killed_something": "2025-08-24 20:32:54 -0500" + }, + "done": true + }, + "minecraft:recipes/food/cooked_mutton_from_smoking": { + "criteria": { + "has_mutton": "2025-08-24 20:32:54 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/white_carpet": { + "criteria": { + "has_white_wool": "2025-08-24 20:32:54 -0500" + }, + "done": true + }, + "minecraft:recipes/food/cooked_mutton": { + "criteria": { + "has_mutton": "2025-08-24 20:32:54 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/white_banner": { + "criteria": { + "has_white_wool": "2025-08-24 20:32:54 -0500" + }, + "done": true + }, + "minecraft:recipes/food/cooked_mutton_from_campfire_cooking": { + "criteria": { + "has_mutton": "2025-08-24 20:32:54 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/white_bed": { + "criteria": { + "has_white_wool": "2025-08-24 20:32:54 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/birch_planks": { + "criteria": { + "has_logs": "2025-08-24 20:33:08 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/birch_wood": { + "criteria": { + "has_log": "2025-08-24 20:33:08 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/birch_planks_from_birch_logs_stonecutting": { + "criteria": { + "has_birch_logs": "2025-08-24 20:33:08 -0500" + }, + "done": true + }, + "minecraft:recipes/transportation/mangrove_boat": { + "criteria": { + "in_water": "2025-08-24 20:34:19 -0500" + }, + "done": true + }, + "minecraft:recipes/transportation/acacia_boat": { + "criteria": { + "in_water": "2025-08-24 20:34:19 -0500" + }, + "done": true + }, + "minecraft:recipes/transportation/cherry_boat": { + "criteria": { + "in_water": "2025-08-24 20:34:19 -0500" + }, + "done": true + }, + "minecraft:recipes/transportation/pale_oak_boat": { + "criteria": { + "in_water": "2025-08-24 20:34:19 -0500" + }, + "done": true + }, + "minecraft:recipes/transportation/bamboo_raft": { + "criteria": { + "in_water": "2025-08-24 20:34:19 -0500" + }, + "done": true + }, + "minecraft:recipes/transportation/spruce_boat": { + "criteria": { + "in_water": "2025-08-24 20:34:19 -0500" + }, + "done": true + }, + "minecraft:recipes/transportation/birch_boat": { + "criteria": { + "in_water": "2025-08-24 20:34:19 -0500" + }, + "done": true + }, + "minecraft:recipes/transportation/oak_boat": { + "criteria": { + "in_water": "2025-08-24 20:34:19 -0500" + }, + "done": true + }, + "minecraft:recipes/transportation/jungle_boat": { + "criteria": { + "in_water": "2025-08-24 20:34:19 -0500" + }, + "done": true + }, + "minecraft:recipes/transportation/dark_oak_boat": { + "criteria": { + "in_water": "2025-08-24 20:34:19 -0500" + }, + "done": true + }, + "minecraft:adventure/kill_all_mobs": { + "criteria": { + "minecraft:pillager": "2025-08-27 12:06:09 -0500", + "minecraft:skeleton": "2025-08-24 20:49:04 -0500", + "minecraft:enderman": "2025-08-24 20:47:04 -0500", + "minecraft:spider": "2025-08-24 20:36:05 -0500", + "minecraft:zombie": "2025-08-24 20:36:30 -0500", + "minecraft:creeper": "2025-08-24 20:36:25 -0500", + "minecraft:drowned": "2025-08-24 20:40:20 -0500", + "minecraft:zombie_villager": "2025-08-27 19:31:46 -0500" + }, + "done": false + }, + "minecraft:adventure/kill_a_mob": { + "criteria": { + "minecraft:spider": "2025-08-24 20:36:05 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/bow": { + "criteria": { + "has_string": "2025-08-24 20:36:06 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/fishing_rod": { + "criteria": { + "has_string": "2025-08-24 20:36:06 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/tripwire_hook": { + "criteria": { + "has_string": "2025-08-24 20:36:06 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/candle": { + "criteria": { + "has_string": "2025-08-24 20:36:06 -0500" + }, + "done": true + }, + "minecraft:recipes/brewing/fermented_spider_eye": { + "criteria": { + "has_spider_eye": "2025-08-24 20:36:06 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/white_wool_from_string": { + "criteria": { + "has_string": "2025-08-24 20:36:06 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/crossbow": { + "criteria": { + "has_string": "2025-08-24 20:36:06 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/loom": { + "criteria": { + "has_string": "2025-08-24 20:36:06 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/bundle": { + "criteria": { + "has_string": "2025-08-24 20:36:06 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/leather_helmet": { + "criteria": { + "has_leather": "2025-08-24 20:36:44 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/leather_leggings": { + "criteria": { + "has_leather": "2025-08-24 20:36:44 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/leather_chestplate": { + "criteria": { + "has_leather": "2025-08-24 20:36:44 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/leather_horse_armor": { + "criteria": { + "has_leather": "2025-08-24 20:36:44 -0500" + }, + "done": true + }, + "minecraft:recipes/food/cooked_beef_from_smoking": { + "criteria": { + "has_beef": "2025-08-24 20:36:44 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/item_frame": { + "criteria": { + "has_leather": "2025-08-24 20:36:44 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/leather_boots": { + "criteria": { + "has_leather": "2025-08-24 20:36:44 -0500" + }, + "done": true + }, + "minecraft:recipes/food/cooked_beef": { + "criteria": { + "has_beef": "2025-08-24 20:36:44 -0500" + }, + "done": true + }, + "minecraft:recipes/food/cooked_beef_from_campfire_cooking": { + "criteria": { + "has_beef": "2025-08-24 20:36:44 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/firework_rocket_simple": { + "criteria": { + "has_gunpowder": "2025-08-24 20:36:50 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/tnt": { + "criteria": { + "has_gunpowder": "2025-08-24 20:36:50 -0500" + }, + "done": true + }, + "minecraft:husbandry/root": { + "criteria": { + "consumed_item": "2025-08-24 20:37:23 -0500" + }, + "done": true + }, + "minecraft:husbandry/balanced_diet": { + "criteria": { + "cooked_porkchop": "2025-08-25 14:53:29 -0500", + "mutton": "2025-08-25 10:31:08 -0500", + "apple": "2025-08-24 20:37:23 -0500", + "bread": "2025-08-24 22:38:12 -0500", + "cooked_chicken": "2025-08-25 23:04:10 -0500", + "rotten_flesh": "2025-08-24 21:07:24 -0500", + "cooked_mutton": "2025-08-24 20:46:15 -0500", + "cooked_beef": "2025-08-24 20:39:44 -0500", + "baked_potato": "2025-08-26 20:31:42 -0500" + }, + "done": false + }, + "minecraft:recipes/decorations/smoker": { + "criteria": { + "has_furnace": "2025-08-24 20:37:50 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/light_gray_dye_from_white_tulip": { + "criteria": { + "has_white_tulip": "2025-08-24 20:40:47 -0500" + }, + "done": true + }, + "minecraft:recipes/food/suspicious_stew_from_white_tulip": { + "criteria": { + "has_white_tulip": "2025-08-24 20:40:47 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/magenta_dye_from_lilac": { + "criteria": { + "has_lilac": "2025-08-24 20:41:45 -0500" + }, + "done": true + }, + "minecraft:recipes/food/suspicious_stew_from_red_tulip": { + "criteria": { + "has_red_tulip": "2025-08-24 20:41:45 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/red_dye_from_tulip": { + "criteria": { + "has_red_flower": "2025-08-24 20:41:45 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/pink_dye_from_peony": { + "criteria": { + "has_peony": "2025-08-24 20:41:45 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/red_dye_from_rose_bush": { + "criteria": { + "has_rose_bush": "2025-08-24 20:41:47 -0500" + }, + "done": true + }, + "minecraft:recipes/food/suspicious_stew_from_azure_bluet": { + "criteria": { + "has_azure_bluet": "2025-08-24 20:41:48 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/light_gray_dye_from_azure_bluet": { + "criteria": { + "has_azure_bluet": "2025-08-24 20:41:48 -0500" + }, + "done": true + }, + "minecraft:recipes/food/suspicious_stew_from_orange_tulip": { + "criteria": { + "has_orange_tulip": "2025-08-24 20:41:56 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/orange_dye_from_orange_tulip": { + "criteria": { + "has_orange_tulip": "2025-08-24 20:41:56 -0500" + }, + "done": true + }, + "minecraft:recipes/food/suspicious_stew_from_pink_tulip": { + "criteria": { + "has_pink_tulip": "2025-08-24 20:42:04 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/pink_dye_from_pink_tulip": { + "criteria": { + "has_pink_tulip": "2025-08-24 20:42:04 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/dye_red_bed": { + "criteria": { + "has_needed_dye": "2025-08-24 20:42:29 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/dye_red_wool": { + "criteria": { + "has_needed_dye": "2025-08-24 20:42:29 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/purple_dye": { + "criteria": { + "has_red_dye": "2025-08-24 20:42:29 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/orange_dye_from_red_yellow": { + "criteria": { + "has_red_dye": "2025-08-24 20:42:29 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/red_candle": { + "criteria": { + "has_red_dye": "2025-08-24 20:42:29 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/magenta_dye_from_blue_red_pink": { + "criteria": { + "has_red_dye": "2025-08-24 20:42:29 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/red_bundle": { + "criteria": { + "has_red_dye": "2025-08-24 20:42:29 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/red_stained_glass_pane_from_glass_pane": { + "criteria": { + "has_red_dye": "2025-08-24 20:42:29 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/pink_dye_from_red_white_dye": { + "criteria": { + "has_red_dye": "2025-08-24 20:42:29 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/dye_red_carpet": { + "criteria": { + "has_needed_dye": "2025-08-24 20:42:29 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/magenta_dye_from_blue_red_white_dye": { + "criteria": { + "has_rose_red": "2025-08-24 20:42:29 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/orange_bundle": { + "criteria": { + "has_orange_dye": "2025-08-24 20:42:31 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/orange_candle": { + "criteria": { + "has_orange_dye": "2025-08-24 20:42:31 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/dye_orange_carpet": { + "criteria": { + "has_needed_dye": "2025-08-24 20:42:31 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/pink_candle": { + "criteria": { + "has_pink_dye": "2025-08-24 20:42:31 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/dye_pink_wool": { + "criteria": { + "has_needed_dye": "2025-08-24 20:42:31 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/dye_pink_bed": { + "criteria": { + "has_needed_dye": "2025-08-24 20:42:31 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/magenta_dye_from_purple_and_pink": { + "criteria": { + "has_pink_dye": "2025-08-24 20:42:31 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/pink_bundle": { + "criteria": { + "has_pink_dye": "2025-08-24 20:42:31 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/orange_stained_glass_pane_from_glass_pane": { + "criteria": { + "has_orange_dye": "2025-08-24 20:42:31 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/dye_pink_carpet": { + "criteria": { + "has_needed_dye": "2025-08-24 20:42:31 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/pink_stained_glass_pane_from_glass_pane": { + "criteria": { + "has_pink_dye": "2025-08-24 20:42:31 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/dye_orange_bed": { + "criteria": { + "has_needed_dye": "2025-08-24 20:42:31 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/dye_orange_wool": { + "criteria": { + "has_needed_dye": "2025-08-24 20:42:31 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/dye_light_gray_bed": { + "criteria": { + "has_needed_dye": "2025-08-24 20:42:32 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/light_gray_bundle": { + "criteria": { + "has_light_gray_dye": "2025-08-24 20:42:32 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/light_gray_stained_glass_pane_from_glass_pane": { + "criteria": { + "has_light_gray_dye": "2025-08-24 20:42:32 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/dye_light_gray_carpet": { + "criteria": { + "has_needed_dye": "2025-08-24 20:42:32 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/dye_light_gray_wool": { + "criteria": { + "has_needed_dye": "2025-08-24 20:42:32 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/light_gray_candle": { + "criteria": { + "has_light_gray_dye": "2025-08-24 20:42:32 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/dye_magenta_carpet": { + "criteria": { + "has_needed_dye": "2025-08-24 20:42:33 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/magenta_candle": { + "criteria": { + "has_magenta_dye": "2025-08-24 20:42:33 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/magenta_bundle": { + "criteria": { + "has_magenta_dye": "2025-08-24 20:42:33 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/dye_magenta_bed": { + "criteria": { + "has_needed_dye": "2025-08-24 20:42:33 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/dye_magenta_wool": { + "criteria": { + "has_needed_dye": "2025-08-24 20:42:33 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/magenta_stained_glass_pane_from_glass_pane": { + "criteria": { + "has_magenta_dye": "2025-08-24 20:42:33 -0500" + }, + "done": true + }, + "minecraft:recipes/food/suspicious_stew_from_allium": { + "criteria": { + "has_allium": "2025-08-24 20:43:51 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/magenta_dye_from_allium": { + "criteria": { + "has_allium": "2025-08-24 20:43:51 -0500" + }, + "done": true + }, + "minecraft:recipes/food/suspicious_stew_from_lily_of_the_valley": { + "criteria": { + "has_lily_of_the_valley": "2025-08-24 20:43:59 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/white_dye_from_lily_of_the_valley": { + "criteria": { + "has_lily_of_the_valley": "2025-08-24 20:43:59 -0500" + }, + "done": true + }, + "minecraft:recipes/food/suspicious_stew_from_oxeye_daisy": { + "criteria": { + "has_oxeye_daisy": "2025-08-24 20:44:22 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/flower_banner_pattern": { + "criteria": { + "has_oxeye_daisy": "2025-08-24 20:44:22 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/light_gray_dye_from_oxeye_daisy": { + "criteria": { + "has_oxeye_daisy": "2025-08-24 20:44:22 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/black_carpet": { + "criteria": { + "has_black_wool": "2025-08-24 20:44:30 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/black_banner": { + "criteria": { + "has_black_wool": "2025-08-24 20:44:30 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/black_bed": { + "criteria": { + "has_black_wool": "2025-08-24 20:44:30 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/light_blue_dye_from_blue_white_dye": { + "criteria": { + "has_white_dye": "2025-08-24 20:46:02 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/white_bundle": { + "criteria": { + "has_white_dye": "2025-08-24 20:46:02 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/white_candle": { + "criteria": { + "has_white_dye": "2025-08-24 20:46:02 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/dye_white_bed": { + "criteria": { + "has_needed_dye": "2025-08-24 20:46:02 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/white_stained_glass_pane_from_glass_pane": { + "criteria": { + "has_white_dye": "2025-08-24 20:46:02 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/lime_dye": { + "criteria": { + "has_white_dye": "2025-08-24 20:46:02 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/light_gray_dye_from_gray_white_dye": { + "criteria": { + "has_white_dye": "2025-08-24 20:46:02 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/dye_white_carpet": { + "criteria": { + "has_needed_dye": "2025-08-24 20:46:02 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/dye_white_wool": { + "criteria": { + "has_needed_dye": "2025-08-24 20:46:02 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/gray_dye": { + "criteria": { + "has_white_dye": "2025-08-24 20:46:02 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/light_gray_dye_from_black_white_dye": { + "criteria": { + "has_white_dye": "2025-08-24 20:46:02 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/paper": { + "criteria": { + "has_reeds": "2025-08-24 20:46:43 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/sugar_from_sugar_cane": { + "criteria": { + "has_sugar_cane": "2025-08-24 20:46:43 -0500" + }, + "done": true + }, + "chunk_loader:recipes/chunk_loader_copper": { + "criteria": { + "has_items": "2025-08-24 20:47:05 -0500" + }, + "done": true + }, + "chunk_loader:recipes/chunk_loader_iron": { + "criteria": { + "has_items": "2025-08-24 20:47:05 -0500" + }, + "done": true + }, + "chunk_loader:recipes/upgrade_netherite": { + "criteria": { + "has_items": "2025-08-24 20:47:05 -0500" + }, + "done": true + }, + "chunk_loader:recipes/chunk_loader_diamond": { + "criteria": { + "has_items": "2025-08-24 20:47:05 -0500" + }, + "done": true + }, + "chunk_loader:recipes/upgrade_diamond": { + "criteria": { + "has_items": "2025-08-24 20:47:05 -0500" + }, + "done": true + }, + "chunk_loader:recipes/chunk_checker": { + "criteria": { + "has_items": "2025-08-24 20:47:05 -0500" + }, + "done": true + }, + "chunk_loader:recipes/chunk_loader_netherite": { + "criteria": { + "has_items": "2025-08-24 20:47:05 -0500" + }, + "done": true + }, + "chunk_loader:recipes/chunk_loader_gold": { + "criteria": { + "has_items": "2025-08-24 20:47:05 -0500" + }, + "done": true + }, + "chunk_loader:recipes/upgrade_gold": { + "criteria": { + "has_items": "2025-08-24 20:47:05 -0500" + }, + "done": true + }, + "chunk_loader:recipes/upgrade_iron": { + "criteria": { + "has_items": "2025-08-24 20:47:05 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/bone_meal": { + "criteria": { + "has_bone": "2025-08-24 20:49:46 -0500" + }, + "done": true + }, + "dispenser:recipes/redstone/dispenser": { + "criteria": { + "has_the_recipe": "2025-08-24 20:56:26 -0500" + }, + "done": true + }, + "dispenser:recipes/redstone/dispenser_dropper": { + "criteria": { + "has_bow": "2025-08-24 20:56:26 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/dispenser": { + "criteria": { + "has_bow": "2025-08-24 20:56:26 -0500" + }, + "done": true + }, + "blastbuff:recipes/misc/glass_from_blasting_sand": { + "criteria": { + "has_sand": "2025-08-24 20:57:57 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/light_gray_concrete_powder": { + "criteria": { + "has_sand": "2025-08-24 20:57:57 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/pink_concrete_powder": { + "criteria": { + "has_sand": "2025-08-24 20:57:57 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/red_concrete_powder": { + "criteria": { + "has_sand": "2025-08-24 20:57:57 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/brown_concrete_powder": { + "criteria": { + "has_sand": "2025-08-24 20:57:57 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/light_blue_concrete_powder": { + "criteria": { + "has_sand": "2025-08-24 20:57:57 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/glass": { + "criteria": { + "has_smelts_to_glass": "2025-08-24 20:57:57 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/green_concrete_powder": { + "criteria": { + "has_sand": "2025-08-24 20:57:57 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/blue_concrete_powder": { + "criteria": { + "has_sand": "2025-08-24 20:57:57 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/white_concrete_powder": { + "criteria": { + "has_sand": "2025-08-24 20:57:57 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/lime_concrete_powder": { + "criteria": { + "has_sand": "2025-08-24 20:57:57 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/orange_concrete_powder": { + "criteria": { + "has_sand": "2025-08-24 20:57:57 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/magenta_concrete_powder": { + "criteria": { + "has_sand": "2025-08-24 20:57:57 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/yellow_concrete_powder": { + "criteria": { + "has_sand": "2025-08-24 20:57:57 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/sandstone": { + "criteria": { + "has_sand": "2025-08-24 20:57:57 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/gray_concrete_powder": { + "criteria": { + "has_sand": "2025-08-24 20:57:57 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/black_concrete_powder": { + "criteria": { + "has_sand": "2025-08-24 20:57:57 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/purple_concrete_powder": { + "criteria": { + "has_sand": "2025-08-24 20:57:57 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/cyan_concrete_powder": { + "criteria": { + "has_sand": "2025-08-24 20:57:57 -0500" + }, + "done": true + }, + "minecraft:adventure/shoot_arrow": { + "criteria": { + "shot_arrow": "2025-08-24 20:58:45 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/coarse_dirt": { + "criteria": { + "has_gravel": "2025-08-24 21:03:32 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/fletching_table": { + "criteria": { + "has_flint": "2025-08-24 21:03:33 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/arrow": { + "criteria": { + "has_flint": "2025-08-24 21:03:33 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/flint_and_steel": { + "criteria": { + "has_flint": "2025-08-24 21:03:33 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/birch_button": { + "criteria": { + "has_planks": "2025-08-24 21:13:31 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/birch_pressure_plate_from_birch_planks_stonecutting": { + "criteria": { + "has_birch_planks": "2025-08-24 21:13:31 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/birch_door": { + "criteria": { + "has_planks": "2025-08-24 21:13:31 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/birch_fence": { + "criteria": { + "has_planks": "2025-08-24 21:13:31 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/birch_sign": { + "criteria": { + "has_planks": "2025-08-24 21:13:31 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/birch_fence_gate": { + "criteria": { + "has_planks": "2025-08-24 21:13:31 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/birch_stairs_from_birch_planks_stonecutting": { + "criteria": { + "has_birch_planks": "2025-08-24 21:13:31 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/birch_slab": { + "criteria": { + "has_planks": "2025-08-24 21:13:31 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/birch_stairs": { + "criteria": { + "has_planks": "2025-08-24 21:13:31 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/birch_trapdoor_from_birch_planks_stonecutting": { + "criteria": { + "has_birch_planks": "2025-08-24 21:13:31 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/birch_button_from_birch_planks_stonecutting": { + "criteria": { + "has_birch_planks": "2025-08-24 21:13:31 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/birch_slab_from_birch_planks_stonecutting": { + "criteria": { + "has_birch_planks": "2025-08-24 21:13:31 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/birch_trapdoor": { + "criteria": { + "has_planks": "2025-08-24 21:13:31 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/birch_pressure_plate": { + "criteria": { + "has_planks": "2025-08-24 21:13:31 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/white_dye": { + "criteria": { + "has_bone_meal": "2025-08-24 22:36:45 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/bone_block": { + "criteria": { + "has_bone_meal": "2025-08-24 22:36:45 -0500" + }, + "done": true + }, + "minecraft:husbandry/plant_seed": { + "criteria": { + "wheat": "2025-08-24 22:37:07 -0500" + }, + "done": true + }, + "minecraft:recipes/food/bread": { + "criteria": { + "has_wheat": "2025-08-24 22:37:10 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/hay_block": { + "criteria": { + "has_wheat": "2025-08-24 22:37:10 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/composter": { + "criteria": { + "has_wood_slab": "2025-08-24 22:39:22 -0500" + }, + "done": true + }, + "minecraft:recipes/transportation/spruce_chest_boat": { + "criteria": { + "has_boat": "2025-08-25 14:30:50 -0500" + }, + "done": true + }, + "minecraft:recipes/transportation/pale_oak_chest_boat": { + "criteria": { + "has_boat": "2025-08-25 14:30:50 -0500" + }, + "done": true + }, + "minecraft:recipes/transportation/jungle_chest_boat": { + "criteria": { + "has_boat": "2025-08-25 14:30:50 -0500" + }, + "done": true + }, + "minecraft:recipes/transportation/acacia_chest_boat": { + "criteria": { + "has_boat": "2025-08-25 14:30:50 -0500" + }, + "done": true + }, + "minecraft:recipes/transportation/mangrove_chest_boat": { + "criteria": { + "has_boat": "2025-08-25 14:30:50 -0500" + }, + "done": true + }, + "minecraft:recipes/transportation/oak_chest_boat": { + "criteria": { + "has_boat": "2025-08-25 14:30:50 -0500" + }, + "done": true + }, + "minecraft:recipes/transportation/cherry_chest_boat": { + "criteria": { + "has_boat": "2025-08-25 14:30:50 -0500" + }, + "done": true + }, + "minecraft:recipes/transportation/birch_chest_boat": { + "criteria": { + "has_boat": "2025-08-25 14:30:50 -0500" + }, + "done": true + }, + "minecraft:recipes/transportation/dark_oak_chest_boat": { + "criteria": { + "has_boat": "2025-08-25 14:30:50 -0500" + }, + "done": true + }, + "minecraft:recipes/transportation/bamboo_chest_raft": { + "criteria": { + "has_boat": "2025-08-25 14:30:50 -0500" + }, + "done": true + }, + "minecraft:recipes/food/cooked_chicken_from_campfire_cooking": { + "criteria": { + "has_chicken": "2025-08-25 14:31:34 -0500" + }, + "done": true + }, + "minecraft:recipes/food/cooked_chicken": { + "criteria": { + "has_chicken": "2025-08-25 14:31:34 -0500" + }, + "done": true + }, + "minecraft:recipes/food/cooked_chicken_from_smoking": { + "criteria": { + "has_chicken": "2025-08-25 14:31:34 -0500" + }, + "done": true + }, + "minecraft:recipes/food/cake": { + "criteria": { + "has_egg": "2025-08-25 14:32:58 -0500" + }, + "done": true + }, + "minecraft:recipes/food/cooked_porkchop_from_campfire_cooking": { + "criteria": { + "has_porkchop": "2025-08-25 14:33:41 -0500" + }, + "done": true + }, + "minecraft:recipes/food/cooked_porkchop": { + "criteria": { + "has_porkchop": "2025-08-25 14:33:41 -0500" + }, + "done": true + }, + "minecraft:recipes/food/cooked_porkchop_from_smoking": { + "criteria": { + "has_porkchop": "2025-08-25 14:33:41 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/yellow_dye_from_sunflower": { + "criteria": { + "has_sunflower": "2025-08-25 14:35:05 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/brown_banner": { + "criteria": { + "has_brown_wool": "2025-08-25 14:35:25 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/brown_bed": { + "criteria": { + "has_brown_wool": "2025-08-25 14:35:25 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/brown_carpet": { + "criteria": { + "has_brown_wool": "2025-08-25 14:35:25 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/coal_block": { + "criteria": { + "has_coal": "2025-08-25 14:39:18 -0500" + }, + "done": true + }, + "minecraft:story/obtain_armor": { + "criteria": { + "iron_leggings": "2025-08-25 14:39:29 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/iron_nugget_from_smelting": { + "criteria": { + "has_iron_leggings": "2025-08-25 14:39:29 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/iron_nugget_from_blasting": { + "criteria": { + "has_iron_leggings": "2025-08-25 14:39:29 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/yellow_candle": { + "criteria": { + "has_yellow_dye": "2025-08-25 14:42:54 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/dye_yellow_wool": { + "criteria": { + "has_needed_dye": "2025-08-25 14:42:54 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/yellow_bundle": { + "criteria": { + "has_yellow_dye": "2025-08-25 14:42:54 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/dye_yellow_carpet": { + "criteria": { + "has_needed_dye": "2025-08-25 14:42:54 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/yellow_stained_glass_pane_from_glass_pane": { + "criteria": { + "has_yellow_dye": "2025-08-25 14:42:54 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/dye_yellow_bed": { + "criteria": { + "has_needed_dye": "2025-08-25 14:42:54 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/sandstone_slab": { + "criteria": { + "has_sandstone": "2025-08-25 14:45:30 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/smooth_sandstone": { + "criteria": { + "has_sandstone": "2025-08-25 14:45:30 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/sandstone_wall_from_sandstone_stonecutting": { + "criteria": { + "has_sandstone": "2025-08-25 14:45:30 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/cut_sandstone": { + "criteria": { + "has_sandstone": "2025-08-25 14:45:30 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/sandstone_stairs_from_sandstone_stonecutting": { + "criteria": { + "has_sandstone": "2025-08-25 14:45:30 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/sandstone_stairs": { + "criteria": { + "has_sandstone": "2025-08-25 14:45:30 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/cut_sandstone_from_sandstone_stonecutting": { + "criteria": { + "has_sandstone": "2025-08-25 14:45:30 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/chiseled_sandstone_from_sandstone_stonecutting": { + "criteria": { + "has_sandstone": "2025-08-25 14:45:30 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/cut_sandstone_slab_from_sandstone_stonecutting": { + "criteria": { + "has_sandstone": "2025-08-25 14:45:30 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/sandstone_slab_from_sandstone_stonecutting": { + "criteria": { + "has_sandstone": "2025-08-25 14:45:30 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/sandstone_wall": { + "criteria": { + "has_sandstone": "2025-08-25 14:45:30 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/polished_diorite": { + "criteria": { + "has_diorite": "2025-08-25 14:56:50 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/diorite_slab": { + "criteria": { + "has_diorite": "2025-08-25 14:56:50 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/diorite_wall": { + "criteria": { + "has_diorite": "2025-08-25 14:56:50 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/polished_diorite_stairs_from_diorite_stonecutting": { + "criteria": { + "has_diorite": "2025-08-25 14:56:50 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/diorite_stairs_from_diorite_stonecutting": { + "criteria": { + "has_diorite": "2025-08-25 14:56:50 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/diorite_wall_from_diorite_stonecutting": { + "criteria": { + "has_diorite": "2025-08-25 14:56:50 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/andesite": { + "criteria": { + "has_stone": "2025-08-25 14:56:50 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/polished_diorite_from_diorite_stonecutting": { + "criteria": { + "has_diorite": "2025-08-25 14:56:50 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/diorite_slab_from_diorite_stonecutting": { + "criteria": { + "has_diorite": "2025-08-25 14:56:50 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/polished_diorite_slab_from_diorite_stonecutting": { + "criteria": { + "has_diorite": "2025-08-25 14:56:50 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/diorite_stairs": { + "criteria": { + "has_diorite": "2025-08-25 14:56:50 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/raw_iron_block": { + "criteria": { + "has_raw_iron": "2025-08-25 14:57:24 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/iron_ingot_from_smelting_raw_iron": { + "criteria": { + "has_raw_iron": "2025-08-25 14:57:24 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/iron_ingot_from_blasting_raw_iron": { + "criteria": { + "has_raw_iron": "2025-08-25 14:57:24 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/copper_ingot_from_blasting_raw_copper": { + "criteria": { + "has_raw_copper": "2025-08-25 14:57:29 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/raw_copper_block": { + "criteria": { + "has_raw_copper": "2025-08-25 14:57:29 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/copper_ingot_from_smelting_raw_copper": { + "criteria": { + "has_raw_copper": "2025-08-25 14:57:29 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/andesite_stairs": { + "criteria": { + "has_andesite": "2025-08-25 15:05:12 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/andesite_wall_from_andesite_stonecutting": { + "criteria": { + "has_andesite": "2025-08-25 15:05:12 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/polished_andesite_slab_from_andesite_stonecutting": { + "criteria": { + "has_andesite": "2025-08-25 15:05:12 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/andesite_slab_from_andesite_stonecutting": { + "criteria": { + "has_andesite": "2025-08-25 15:05:12 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/andesite_stairs_from_andesite_stonecutting": { + "criteria": { + "has_andesite": "2025-08-25 15:05:12 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/polished_andesite_from_andesite_stonecutting": { + "criteria": { + "has_andesite": "2025-08-25 15:05:12 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/polished_andesite": { + "criteria": { + "has_andesite": "2025-08-25 15:05:12 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/andesite_wall": { + "criteria": { + "has_andesite": "2025-08-25 15:05:12 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/andesite_slab": { + "criteria": { + "has_andesite": "2025-08-25 15:05:12 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/polished_andesite_stairs_from_andesite_stonecutting": { + "criteria": { + "has_andesite": "2025-08-25 15:05:12 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/polished_deepslate": { + "criteria": { + "has_cobbled_deepslate": "2025-08-25 15:24:51 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/deepslate_tile_stairs_from_cobbled_deepslate_stonecutting": { + "criteria": { + "has_cobbled_deepslate": "2025-08-25 15:24:51 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/deepslate_brick_stairs_from_cobbled_deepslate_stonecutting": { + "criteria": { + "has_cobbled_deepslate": "2025-08-25 15:24:51 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/chiseled_deepslate_from_cobbled_deepslate_stonecutting": { + "criteria": { + "has_cobbled_deepslate": "2025-08-25 15:24:51 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/cobbled_deepslate_slab": { + "criteria": { + "has_cobbled_deepslate": "2025-08-25 15:24:51 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/cobbled_deepslate_wall_from_cobbled_deepslate_stonecutting": { + "criteria": { + "has_cobbled_deepslate": "2025-08-25 15:24:51 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/cobbled_deepslate_wall": { + "criteria": { + "has_cobbled_deepslate": "2025-08-25 15:24:51 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/polished_deepslate_wall_from_cobbled_deepslate_stonecutting": { + "criteria": { + "has_cobbled_deepslate": "2025-08-25 15:24:51 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/cobbled_deepslate_stairs_from_cobbled_deepslate_stonecutting": { + "criteria": { + "has_cobbled_deepslate": "2025-08-25 15:24:51 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/deepslate": { + "criteria": { + "has_cobbled_deepslate": "2025-08-25 15:24:51 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/polished_deepslate_stairs_from_cobbled_deepslate_stonecutting": { + "criteria": { + "has_cobbled_deepslate": "2025-08-25 15:24:51 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/deepslate_brick_wall_from_cobbled_deepslate_stonecutting": { + "criteria": { + "has_cobbled_deepslate": "2025-08-25 15:24:51 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/polished_deepslate_from_cobbled_deepslate_stonecutting": { + "criteria": { + "has_cobbled_deepslate": "2025-08-25 15:24:51 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/polished_deepslate_slab_from_cobbled_deepslate_stonecutting": { + "criteria": { + "has_cobbled_deepslate": "2025-08-25 15:24:51 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/deepslate_brick_slab_from_cobbled_deepslate_stonecutting": { + "criteria": { + "has_cobbled_deepslate": "2025-08-25 15:24:51 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/cobbled_deepslate_slab_from_cobbled_deepslate_stonecutting": { + "criteria": { + "has_cobbled_deepslate": "2025-08-25 15:24:51 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/deepslate_tile_slab_from_cobbled_deepslate_stonecutting": { + "criteria": { + "has_cobbled_deepslate": "2025-08-25 15:24:51 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/cobbled_deepslate_stairs": { + "criteria": { + "has_cobbled_deepslate": "2025-08-25 15:24:51 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/deepslate_tile_wall_from_cobbled_deepslate_stonecutting": { + "criteria": { + "has_cobbled_deepslate": "2025-08-25 15:24:51 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/deepslate_bricks_from_cobbled_deepslate_stonecutting": { + "criteria": { + "has_cobbled_deepslate": "2025-08-25 15:24:51 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/deepslate_tiles_from_cobbled_deepslate_stonecutting": { + "criteria": { + "has_cobbled_deepslate": "2025-08-25 15:24:51 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/blue_dye": { + "criteria": { + "has_lapis_lazuli": "2025-08-25 15:25:22 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/lapis_block": { + "criteria": { + "has_lapis_lazuli": "2025-08-25 15:25:22 -0500" + }, + "done": true + }, + "minecraft:recipes/food/cooked_rabbit": { + "criteria": { + "has_rabbit": "2025-08-25 15:57:04 -0500" + }, + "done": true + }, + "minecraft:recipes/food/cooked_rabbit_from_smoking": { + "criteria": { + "has_rabbit": "2025-08-25 15:57:04 -0500" + }, + "done": true + }, + "minecraft:recipes/food/cooked_rabbit_from_campfire_cooking": { + "criteria": { + "has_rabbit": "2025-08-25 15:57:04 -0500" + }, + "done": true + }, + "minecraft:recipes/food/suspicious_stew_from_cornflower": { + "criteria": { + "has_cornflower": "2025-08-25 15:57:39 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/blue_dye_from_cornflower": { + "criteria": { + "has_cornflower": "2025-08-25 15:57:39 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/cyan_dye": { + "criteria": { + "has_blue_dye": "2025-08-25 16:02:41 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/blue_candle": { + "criteria": { + "has_blue_dye": "2025-08-25 16:02:41 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/blue_stained_glass_pane_from_glass_pane": { + "criteria": { + "has_blue_dye": "2025-08-25 16:02:41 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/blue_bundle": { + "criteria": { + "has_blue_dye": "2025-08-25 16:02:41 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/dye_blue_wool": { + "criteria": { + "has_needed_dye": "2025-08-25 16:02:41 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/dye_blue_carpet": { + "criteria": { + "has_needed_dye": "2025-08-25 16:02:41 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/dye_blue_bed": { + "criteria": { + "has_needed_dye": "2025-08-25 16:02:41 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/light_blue_stained_glass": { + "criteria": { + "has_glass": "2025-08-25 16:04:15 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/green_stained_glass": { + "criteria": { + "has_glass": "2025-08-25 16:04:15 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/brown_stained_glass": { + "criteria": { + "has_glass": "2025-08-25 16:04:15 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/blue_stained_glass": { + "criteria": { + "has_glass": "2025-08-25 16:04:15 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/orange_stained_glass": { + "criteria": { + "has_glass": "2025-08-25 16:04:15 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/pink_stained_glass": { + "criteria": { + "has_glass": "2025-08-25 16:04:15 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/black_stained_glass": { + "criteria": { + "has_glass": "2025-08-25 16:04:15 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/gray_stained_glass": { + "criteria": { + "has_glass": "2025-08-25 16:04:15 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/lime_stained_glass": { + "criteria": { + "has_glass": "2025-08-25 16:04:15 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/glass_pane": { + "criteria": { + "has_glass": "2025-08-25 16:04:15 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/magenta_stained_glass": { + "criteria": { + "has_glass": "2025-08-25 16:04:15 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/white_stained_glass": { + "criteria": { + "has_glass": "2025-08-25 16:04:15 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/red_stained_glass": { + "criteria": { + "has_glass": "2025-08-25 16:04:15 -0500" + }, + "done": true + }, + "minecraft:recipes/brewing/glass_bottle": { + "criteria": { + "has_glass": "2025-08-25 16:04:15 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/light_gray_stained_glass": { + "criteria": { + "has_glass": "2025-08-25 16:04:15 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/cyan_stained_glass": { + "criteria": { + "has_glass": "2025-08-25 16:04:15 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/purple_stained_glass": { + "criteria": { + "has_glass": "2025-08-25 16:04:15 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/yellow_stained_glass": { + "criteria": { + "has_glass": "2025-08-25 16:04:15 -0500" + }, + "done": true + }, + "minecraft:recipes/food/rabbit_stew_from_brown_mushroom": { + "criteria": { + "has_cooked_rabbit": "2025-08-25 16:05:38 -0500" + }, + "done": true + }, + "minecraft:recipes/food/rabbit_stew_from_red_mushroom": { + "criteria": { + "has_cooked_rabbit": "2025-08-25 16:05:38 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/iron_leggings": { + "criteria": { + "has_iron_ingot": "2025-08-25 16:17:02 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/iron_chestplate": { + "criteria": { + "has_iron_ingot": "2025-08-25 16:17:02 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/iron_nugget": { + "criteria": { + "has_iron_ingot": "2025-08-25 16:17:02 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/bucket": { + "criteria": { + "has_iron_ingot": "2025-08-25 16:17:02 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/iron_helmet": { + "criteria": { + "has_iron_ingot": "2025-08-25 16:17:02 -0500" + }, + "done": true + }, + "minecraft:recipes/transportation/minecart": { + "criteria": { + "has_iron_ingot": "2025-08-25 16:17:02 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/iron_hoe": { + "criteria": { + "has_iron_ingot": "2025-08-25 16:17:02 -0500" + }, + "done": true + }, + "minecraft:story/smelt_iron": { + "criteria": { + "iron": "2025-08-25 16:17:02 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/shears": { + "criteria": { + "has_iron_ingot": "2025-08-25 16:17:02 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/chain": { + "criteria": { + "has_iron_ingot": "2025-08-25 16:17:02 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/iron_block": { + "criteria": { + "has_iron_ingot": "2025-08-25 16:17:02 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/smithing_table": { + "criteria": { + "has_iron_ingot": "2025-08-25 16:17:02 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/iron_sword": { + "criteria": { + "has_iron_ingot": "2025-08-25 16:17:02 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/iron_pickaxe": { + "criteria": { + "has_iron_ingot": "2025-08-25 16:17:02 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/shield": { + "criteria": { + "has_iron_ingot": "2025-08-25 16:17:02 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/hopper": { + "criteria": { + "has_iron_ingot": "2025-08-25 16:17:02 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/iron_bars": { + "criteria": { + "has_iron_ingot": "2025-08-25 16:17:02 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/iron_boots": { + "criteria": { + "has_iron_ingot": "2025-08-25 16:17:02 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/lantern": { + "criteria": { + "has_iron_ingot": "2025-08-25 16:17:02 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/iron_shovel": { + "criteria": { + "has_iron_ingot": "2025-08-25 16:17:02 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/iron_trapdoor": { + "criteria": { + "has_iron_ingot": "2025-08-25 16:17:02 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/iron_axe": { + "criteria": { + "has_iron_ingot": "2025-08-25 16:17:02 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/iron_door": { + "criteria": { + "has_iron_ingot": "2025-08-25 16:17:02 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/heavy_weighted_pressure_plate": { + "criteria": { + "has_iron_ingot": "2025-08-25 16:17:02 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/bowl": { + "criteria": { + "has_red_mushroom": "2025-08-25 21:11:56 -0500" + }, + "done": true + }, + "minecraft:recipes/food/mushroom_stew": { + "criteria": { + "has_red_mushroom": "2025-08-25 21:11:56 -0500" + }, + "done": true + }, + "minecraft:story/iron_tools": { + "criteria": { + "iron_pickaxe": "2025-08-25 22:36:29 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/light_gray_bed": { + "criteria": { + "has_light_gray_wool": "2025-08-26 09:23:20 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/light_gray_banner": { + "criteria": { + "has_light_gray_wool": "2025-08-26 09:23:20 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/light_gray_carpet": { + "criteria": { + "has_light_gray_wool": "2025-08-26 09:23:20 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/target": { + "criteria": { + "has_hay_block": "2025-08-26 09:24:04 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/wheat": { + "criteria": { + "has_hay_block": "2025-08-26 09:24:04 -0500" + }, + "done": true + }, + "minecraft:recipes/food/baked_potato_from_campfire_cooking": { + "criteria": { + "has_potato": "2025-08-26 09:25:03 -0500" + }, + "done": true + }, + "minecraft:recipes/food/baked_potato": { + "criteria": { + "has_potato": "2025-08-26 09:25:03 -0500" + }, + "done": true + }, + "minecraft:recipes/food/baked_potato_from_smoking": { + "criteria": { + "has_potato": "2025-08-26 09:25:03 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/emerald_block": { + "criteria": { + "has_emerald": "2025-08-26 09:25:04 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/yellow_dye_from_dandelion": { + "criteria": { + "has_dandelion": "2025-08-26 09:25:05 -0500" + }, + "done": true + }, + "minecraft:recipes/food/suspicious_stew_from_dandelion": { + "criteria": { + "has_dandelion": "2025-08-26 09:25:05 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/book": { + "criteria": { + "has_paper": "2025-08-26 09:25:46 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/cartography_table": { + "criteria": { + "has_paper": "2025-08-26 09:25:46 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/map": { + "criteria": { + "has_compass": "2025-08-26 09:25:47 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/gold_ingot_from_blasting_raw_gold": { + "criteria": { + "has_raw_gold": "2025-08-26 09:26:02 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/gold_ingot_from_smelting_raw_gold": { + "criteria": { + "has_raw_gold": "2025-08-26 09:26:02 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/raw_gold_block": { + "criteria": { + "has_raw_gold": "2025-08-26 09:26:02 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/gold_ingot_from_nuggets": { + "criteria": { + "has_gold_nugget": "2025-08-26 09:26:26 -0500" + }, + "done": true + }, + "minecraft:recipes/brewing/golden_carrot": { + "criteria": { + "has_gold_nugget": "2025-08-26 09:26:26 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/gray_bed": { + "criteria": { + "has_gray_wool": "2025-08-26 09:27:35 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/gray_carpet": { + "criteria": { + "has_gray_wool": "2025-08-26 09:27:35 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/gray_banner": { + "criteria": { + "has_gray_wool": "2025-08-26 09:27:35 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/stone_bricks": { + "criteria": { + "has_stone": "2025-08-26 09:32:39 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/stone_bricks_from_stone_stonecutting": { + "criteria": { + "has_stone": "2025-08-26 09:32:39 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/stone_slab": { + "criteria": { + "has_stone": "2025-08-26 09:32:39 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/stone_stairs_from_stone_stonecutting": { + "criteria": { + "has_stone": "2025-08-26 09:32:39 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/stone_button": { + "criteria": { + "has_stone": "2025-08-26 09:32:39 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/stone_pressure_plate_from_stone_stonecutting": { + "criteria": { + "has_stone": "2025-08-26 09:32:39 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/stonecutter": { + "criteria": { + "has_stone": "2025-08-26 09:32:39 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/stone_pressure_plate": { + "criteria": { + "has_stone": "2025-08-26 09:32:39 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/smooth_stone": { + "criteria": { + "has_stone": "2025-08-26 09:32:39 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/stone_brick_walls_from_stone_stonecutting": { + "criteria": { + "has_stone": "2025-08-26 09:32:39 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/stone_brick_slab_from_stone_stonecutting": { + "criteria": { + "has_stone": "2025-08-26 09:32:39 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/stone_brick_stairs_from_stone_stonecutting": { + "criteria": { + "has_stone": "2025-08-26 09:32:39 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/stone_button_from_stone_stonecutting": { + "criteria": { + "has_stone": "2025-08-26 09:32:39 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/stone_slab_from_stone_stonecutting": { + "criteria": { + "has_stone": "2025-08-26 09:32:39 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/chiseled_stone_bricks_stone_from_stonecutting": { + "criteria": { + "has_stone": "2025-08-26 09:32:39 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/cobblestone_from_stone_stonecutting": { + "criteria": { + "has_stone": "2025-08-26 09:32:39 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/stone_stairs": { + "criteria": { + "has_stone": "2025-08-26 09:32:39 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/granite_slab_from_granite_stonecutting": { + "criteria": { + "has_granite": "2025-08-26 11:12:40 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/granite_wall_from_granite_stonecutting": { + "criteria": { + "has_granite": "2025-08-26 11:12:40 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/polished_granite_from_granite_stonecutting": { + "criteria": { + "has_granite": "2025-08-26 11:12:40 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/granite_slab": { + "criteria": { + "has_granite": "2025-08-26 11:12:40 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/granite_stairs": { + "criteria": { + "has_granite": "2025-08-26 11:12:40 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/granite_stairs_from_granite_stonecutting": { + "criteria": { + "has_granite": "2025-08-26 11:12:40 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/granite_wall": { + "criteria": { + "has_granite": "2025-08-26 11:12:40 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/polished_granite_slab_from_granite_stonecutting": { + "criteria": { + "has_granite": "2025-08-26 11:12:40 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/polished_granite": { + "criteria": { + "has_granite": "2025-08-26 11:12:40 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/polished_granite_stairs_from_granite_stonecutting": { + "criteria": { + "has_granite": "2025-08-26 11:12:40 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/glow_item_frame": { + "criteria": { + "has_glow_ink_sac": "2025-08-26 12:51:23 -0500" + }, + "done": true + }, + "minecraft:husbandry/make_a_sign_glow": { + "criteria": { + "make_a_sign_glow": "2025-08-26 12:51:24 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/dark_oak_fence_gate": { + "criteria": { + "has_planks": "2025-08-26 16:13:15 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/dark_oak_trapdoor": { + "criteria": { + "has_planks": "2025-08-26 16:13:15 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/dark_oak_button": { + "criteria": { + "has_planks": "2025-08-26 16:13:15 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/dark_oak_stairs": { + "criteria": { + "has_planks": "2025-08-26 16:13:15 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/dark_oak_slab_from_dark_oak_planks_stonecutting": { + "criteria": { + "has_dark_oak_planks": "2025-08-26 16:13:15 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/dark_oak_pressure_plate": { + "criteria": { + "has_planks": "2025-08-26 16:13:15 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/dark_oak_fence": { + "criteria": { + "has_planks": "2025-08-26 16:13:15 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/dark_oak_slab": { + "criteria": { + "has_planks": "2025-08-26 16:13:15 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/dark_oak_stairs_from_dark_oak_planks_stonecutting": { + "criteria": { + "has_dark_oak_planks": "2025-08-26 16:13:15 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/dark_oak_door": { + "criteria": { + "has_planks": "2025-08-26 16:13:15 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/dark_oak_pressure_plate_from_dark_oak_planks_stonecutting": { + "criteria": { + "has_dark_oak_planks": "2025-08-26 16:13:15 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/dark_oak_button_from_dark_oak_planks_stonecutting": { + "criteria": { + "has_dark_oak_planks": "2025-08-26 16:13:15 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/dark_oak_trapdoor_from_dark_oak_planks_stonecutting": { + "criteria": { + "has_dark_oak_planks": "2025-08-26 16:13:15 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/dark_oak_sign": { + "criteria": { + "has_planks": "2025-08-26 16:13:15 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/dark_oak_planks_from_dark_oak_logs_stonecutting": { + "criteria": { + "has_dark_oak_logs": "2025-08-26 16:13:28 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/dark_oak_planks": { + "criteria": { + "has_log": "2025-08-26 16:13:28 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/warped_planks_from_warped_stems_stonecutting": { + "criteria": { + "has_warped_stems": "2025-08-26 16:17:15 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/warped_planks": { + "criteria": { + "has_logs": "2025-08-26 16:17:15 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/crimson_planks_from_crimson_stems_stonecutting": { + "criteria": { + "has_crimson_stems": "2025-08-26 16:17:18 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/crimson_planks": { + "criteria": { + "has_logs": "2025-08-26 16:17:18 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/warped_fence_gate": { + "criteria": { + "has_planks": "2025-08-26 16:26:01 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/warped_stairs_from_warped_planks_stonecutting": { + "criteria": { + "has_warped_planks": "2025-08-26 16:26:01 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/warped_pressure_plate_from_warped_planks_stonecutting": { + "criteria": { + "has_warped_planks": "2025-08-26 16:26:01 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/warped_button": { + "criteria": { + "has_planks": "2025-08-26 16:26:01 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/warped_stairs": { + "criteria": { + "has_planks": "2025-08-26 16:26:01 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/warped_trapdoor": { + "criteria": { + "has_planks": "2025-08-26 16:26:01 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/warped_sign": { + "criteria": { + "has_planks": "2025-08-26 16:26:01 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/warped_door": { + "criteria": { + "has_planks": "2025-08-26 16:26:01 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/warped_slab_from_warped_planks_stonecutting": { + "criteria": { + "has_warped_planks": "2025-08-26 16:26:01 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/warped_button_from_warped_planks_stonecutting": { + "criteria": { + "has_warped_planks": "2025-08-26 16:26:01 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/warped_pressure_plate": { + "criteria": { + "has_planks": "2025-08-26 16:26:01 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/warped_slab": { + "criteria": { + "has_planks": "2025-08-26 16:26:01 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/warped_trapdoor_from_warped_planks_stonecutting": { + "criteria": { + "has_warped_planks": "2025-08-26 16:26:01 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/warped_fence": { + "criteria": { + "has_planks": "2025-08-26 16:26:01 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/crimson_button": { + "criteria": { + "has_planks": "2025-08-26 16:26:03 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/crimson_slab": { + "criteria": { + "has_planks": "2025-08-26 16:26:03 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/crimson_stairs": { + "criteria": { + "has_planks": "2025-08-26 16:26:03 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/crimson_pressure_plate": { + "criteria": { + "has_planks": "2025-08-26 16:26:03 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/crimson_button_from_crimson_planks_stonecutting": { + "criteria": { + "has_crimson_planks": "2025-08-26 16:26:03 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/crimson_trapdoor_from_crimson_planks_stonecutting": { + "criteria": { + "has_crimson_planks": "2025-08-26 16:26:03 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/crimson_sign": { + "criteria": { + "has_planks": "2025-08-26 16:26:03 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/crimson_stairs_from_crimson_planks_stonecutting": { + "criteria": { + "has_crimson_planks": "2025-08-26 16:26:03 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/crimson_door": { + "criteria": { + "has_planks": "2025-08-26 16:26:03 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/crimson_trapdoor": { + "criteria": { + "has_planks": "2025-08-26 16:26:03 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/crimson_fence": { + "criteria": { + "has_planks": "2025-08-26 16:26:03 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/crimson_fence_gate": { + "criteria": { + "has_planks": "2025-08-26 16:26:03 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/crimson_slab_from_crimson_planks_stonecutting": { + "criteria": { + "has_crimson_planks": "2025-08-26 16:26:03 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/crimson_pressure_plate_from_crimson_planks_stonecutting": { + "criteria": { + "has_crimson_planks": "2025-08-26 16:26:03 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/spruce_stairs_from_spruce_planks_stonecutting": { + "criteria": { + "has_spruce_planks": "2025-08-26 16:33:33 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/spruce_sign": { + "criteria": { + "has_planks": "2025-08-26 16:33:33 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/spruce_trapdoor_from_spruce_planks_stonecutting": { + "criteria": { + "has_spruce_planks": "2025-08-26 16:33:33 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/spruce_fence": { + "criteria": { + "has_planks": "2025-08-26 16:33:33 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/spruce_slab": { + "criteria": { + "has_planks": "2025-08-26 16:33:33 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/spruce_pressure_plate_from_spruce_planks_stonecutting": { + "criteria": { + "has_spruce_planks": "2025-08-26 16:33:33 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/spruce_button": { + "criteria": { + "has_planks": "2025-08-26 16:33:33 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/spruce_pressure_plate": { + "criteria": { + "has_planks": "2025-08-26 16:33:33 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/spruce_trapdoor": { + "criteria": { + "has_planks": "2025-08-26 16:33:33 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/spruce_door": { + "criteria": { + "has_planks": "2025-08-26 16:33:33 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/spruce_fence_gate": { + "criteria": { + "has_planks": "2025-08-26 16:33:33 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/spruce_slab_from_spruce_planks_stonecutting": { + "criteria": { + "has_spruce_planks": "2025-08-26 16:33:33 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/spruce_stairs": { + "criteria": { + "has_planks": "2025-08-26 16:33:33 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/spruce_button_from_spruce_planks_stonecutting": { + "criteria": { + "has_spruce_planks": "2025-08-26 16:33:33 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/blast_furnace": { + "criteria": { + "has_smooth_stone": "2025-08-26 16:36:00 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/smooth_stone_slab": { + "criteria": { + "has_smooth_stone": "2025-08-26 16:36:00 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/smooth_stone_slab_from_smooth_stone_stonecutting": { + "criteria": { + "has_smooth_stone": "2025-08-26 16:36:00 -0500" + }, + "done": true + }, + "misc:recipes/building_blocks/unpacked_ice": { + "criteria": { + "has_blue_ice": "2025-08-26 17:05:57 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/mossy_cobblestone_from_moss_block": { + "criteria": { + "has_moss_block": "2025-08-26 17:14:56 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/moss_carpet": { + "criteria": { + "has_moss_block": "2025-08-26 17:14:56 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/mossy_stone_bricks_from_moss_block": { + "criteria": { + "has_moss_block": "2025-08-26 17:14:56 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/prismarine_brick_stairs": { + "criteria": { + "has_prismarine_bricks": "2025-08-26 17:15:07 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/prismarine_brick_slab_from_prismarine_stonecutting": { + "criteria": { + "has_prismarine_brick": "2025-08-26 17:15:07 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/prismarine_brick_stairs_from_prismarine_stonecutting": { + "criteria": { + "has_prismarine_brick": "2025-08-26 17:15:07 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/prismarine_brick_slab": { + "criteria": { + "has_prismarine_bricks": "2025-08-26 17:15:07 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/red_nether_brick_wall": { + "criteria": { + "has_red_nether_bricks": "2025-08-26 17:15:17 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/red_nether_brick_stairs_from_red_nether_bricks_stonecutting": { + "criteria": { + "has_red_nether_bricks": "2025-08-26 17:15:17 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/red_nether_brick_stairs": { + "criteria": { + "has_red_nether_bricks": "2025-08-26 17:15:17 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/red_nether_brick_slab_from_red_nether_bricks_stonecutting": { + "criteria": { + "has_red_nether_bricks": "2025-08-26 17:15:17 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/red_nether_brick_wall_from_red_nether_bricks_stonecutting": { + "criteria": { + "has_red_nether_bricks": "2025-08-26 17:15:17 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/red_nether_brick_slab": { + "criteria": { + "has_red_nether_bricks": "2025-08-26 17:15:17 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/end_stone_brick_stairs_from_end_stone_brick_stonecutting": { + "criteria": { + "has_end_stone_brick": "2025-08-26 17:15:24 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/end_stone_brick_slab": { + "criteria": { + "has_end_stone_bricks": "2025-08-26 17:15:24 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/end_stone_brick_wall": { + "criteria": { + "has_end_stone_bricks": "2025-08-26 17:15:24 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/end_stone_brick_slab_from_end_stone_brick_stonecutting": { + "criteria": { + "has_end_stone_brick": "2025-08-26 17:15:24 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/end_stone_brick_wall_from_end_stone_brick_stonecutting": { + "criteria": { + "has_end_stone_brick": "2025-08-26 17:15:24 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/end_stone_brick_stairs": { + "criteria": { + "has_end_stone_bricks": "2025-08-26 17:15:24 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/smooth_sandstone_slab_from_smooth_sandstone_stonecutting": { + "criteria": { + "has_smooth_sandstone": "2025-08-26 17:15:25 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/smooth_sandstone_slab": { + "criteria": { + "has_smooth_sandstone": "2025-08-26 17:15:25 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/smooth_sandstone_stairs_from_smooth_sandstone_stonecutting": { + "criteria": { + "has_smooth_sandstone": "2025-08-26 17:15:25 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/smooth_sandstone_stairs": { + "criteria": { + "has_smooth_sandstone": "2025-08-26 17:15:25 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/nether_brick": { + "criteria": { + "has_netherrack": "2025-08-26 17:19:19 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/slime_ball": { + "criteria": { + "has_slime_block": "2025-08-26 17:25:55 -0500" + }, + "done": true + }, + "minecraft:story/form_obsidian": { + "criteria": { + "obsidian": "2025-08-26 17:25:59 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/enchanting_table": { + "criteria": { + "has_obsidian": "2025-08-26 17:25:59 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/redstone_torch": { + "criteria": { + "has_redstone": "2025-08-26 17:27:31 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/clock": { + "criteria": { + "has_redstone": "2025-08-26 17:27:31 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/note_block": { + "criteria": { + "has_redstone": "2025-08-26 17:27:31 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/compass": { + "criteria": { + "has_redstone": "2025-08-26 17:27:31 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/dropper": { + "criteria": { + "has_redstone": "2025-08-26 17:27:31 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/redstone_block": { + "criteria": { + "has_redstone": "2025-08-26 17:27:31 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/piston": { + "criteria": { + "has_redstone": "2025-08-26 17:27:31 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/repeater": { + "criteria": { + "has_redstone_torch": "2025-08-26 17:28:36 -0500" + }, + "done": true + }, + "minecraft:recipes/food/honey_bottle": { + "criteria": { + "has_honey_block": "2025-08-26 17:29:33 -0500" + }, + "done": true + }, + "minecraft:adventure/who_needs_rockets": { + "criteria": { + "who_needs_rockets": "2025-08-26 18:10:17 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/dye_black_carpet": { + "criteria": { + "has_needed_dye": "2025-08-26 19:30:55 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/black_bundle": { + "criteria": { + "has_black_dye": "2025-08-26 19:30:55 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/dye_black_bed": { + "criteria": { + "has_needed_dye": "2025-08-26 19:30:55 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/black_stained_glass_pane_from_glass_pane": { + "criteria": { + "has_black_dye": "2025-08-26 19:30:55 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/black_candle": { + "criteria": { + "has_black_dye": "2025-08-26 19:30:55 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/dye_black_wool": { + "criteria": { + "has_needed_dye": "2025-08-26 19:30:55 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/bricks": { + "criteria": { + "has_brick": "2025-08-26 19:51:09 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/decorated_pot_simple": { + "criteria": { + "has_brick": "2025-08-26 19:51:09 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/flower_pot": { + "criteria": { + "has_brick": "2025-08-26 19:51:09 -0500" + }, + "done": true + }, + "minecraft:adventure/voluntary_exile": { + "criteria": { + "voluntary_exile": "2025-08-27 12:06:11 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/gold_nugget_from_smelting": { + "criteria": { + "has_golden_hoe": "2025-08-27 15:15:39 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/gold_nugget_from_blasting": { + "criteria": { + "has_golden_hoe": "2025-08-27 15:15:39 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/pumpkin_seeds": { + "criteria": { + "has_pumpkin": "2025-08-27 17:39:37 -0500" + }, + "done": true + }, + "minecraft:recipes/food/pumpkin_pie": { + "criteria": { + "has_pumpkin": "2025-08-27 17:39:37 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/diamond_leggings": { + "criteria": { + "has_diamond": "2025-08-27 17:55:36 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/diamond_sword": { + "criteria": { + "has_diamond": "2025-08-27 17:55:36 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/jukebox": { + "criteria": { + "has_diamond": "2025-08-27 17:55:36 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/diamond_chestplate": { + "criteria": { + "has_diamond": "2025-08-27 17:55:36 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/diamond_pickaxe": { + "criteria": { + "has_diamond": "2025-08-27 17:55:36 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/diamond_hoe": { + "criteria": { + "has_diamond": "2025-08-27 17:55:36 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/diamond_shovel": { + "criteria": { + "has_diamond": "2025-08-27 17:55:36 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/diamond_boots": { + "criteria": { + "has_diamond": "2025-08-27 17:55:36 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/diamond_helmet": { + "criteria": { + "has_diamond": "2025-08-27 17:55:36 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/diamond_block": { + "criteria": { + "has_diamond": "2025-08-27 17:55:36 -0500" + }, + "done": true + }, + "minecraft:story/mine_diamond": { + "criteria": { + "diamond": "2025-08-27 17:55:36 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/diamond_axe": { + "criteria": { + "has_diamond": "2025-08-27 17:55:36 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/chiseled_tuff_bricks_from_tuff_stonecutting": { + "criteria": { + "has_tuff": "2025-08-27 18:00:17 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/tuff_bricks_from_tuff_stonecutting": { + "criteria": { + "has_tuff": "2025-08-27 18:00:17 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/polished_tuff_slab_from_tuff_stonecutting": { + "criteria": { + "has_tuff": "2025-08-27 18:00:17 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/tuff_stairs": { + "criteria": { + "has_tuff": "2025-08-27 18:00:17 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/tuff_brick_wall_from_tuff_stonecutting": { + "criteria": { + "has_tuff": "2025-08-27 18:00:17 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/chiseled_tuff_from_tuff_stonecutting": { + "criteria": { + "has_tuff": "2025-08-27 18:00:17 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/polished_tuff_stairs_from_tuff_stonecutting": { + "criteria": { + "has_tuff": "2025-08-27 18:00:17 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/tuff_brick_stairs_from_tuff_stonecutting": { + "criteria": { + "has_tuff": "2025-08-27 18:00:17 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/tuff_slab_from_tuff_stonecutting": { + "criteria": { + "has_tuff": "2025-08-27 18:00:17 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/polished_tuff_from_tuff_stonecutting": { + "criteria": { + "has_tuff": "2025-08-27 18:00:17 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/tuff_slab": { + "criteria": { + "has_tuff": "2025-08-27 18:00:17 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/tuff_brick_slab_from_tuff_stonecutting": { + "criteria": { + "has_tuff": "2025-08-27 18:00:17 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/polished_tuff_wall_from_tuff_stonecutting": { + "criteria": { + "has_tuff": "2025-08-27 18:00:17 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/tuff_wall": { + "criteria": { + "has_tuff": "2025-08-27 18:00:17 -0500" + }, + "done": true + }, + "minecraft:recipes/decorations/tuff_wall_from_tuff_stonecutting": { + "criteria": { + "has_tuff": "2025-08-27 18:00:17 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/tuff_stairs_from_tuff_stonecutting": { + "criteria": { + "has_tuff": "2025-08-27 18:00:17 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/polished_tuff": { + "criteria": { + "has_tuff": "2025-08-27 18:00:17 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/golden_axe": { + "criteria": { + "has_gold_ingot": "2025-08-27 18:18:54 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/golden_pickaxe": { + "criteria": { + "has_gold_ingot": "2025-08-27 18:18:54 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/gold_nugget": { + "criteria": { + "has_gold_ingot": "2025-08-27 18:18:54 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/golden_shovel": { + "criteria": { + "has_gold_ingot": "2025-08-27 18:18:54 -0500" + }, + "done": true + }, + "minecraft:recipes/food/golden_apple": { + "criteria": { + "has_gold_ingot": "2025-08-27 18:18:54 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/golden_boots": { + "criteria": { + "has_gold_ingot": "2025-08-27 18:18:54 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/golden_helmet": { + "criteria": { + "has_gold_ingot": "2025-08-27 18:18:54 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/golden_chestplate": { + "criteria": { + "has_gold_ingot": "2025-08-27 18:18:54 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/light_weighted_pressure_plate": { + "criteria": { + "has_gold_ingot": "2025-08-27 18:18:54 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/golden_sword": { + "criteria": { + "has_gold_ingot": "2025-08-27 18:18:54 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/gold_block": { + "criteria": { + "has_gold_ingot": "2025-08-27 18:18:54 -0500" + }, + "done": true + }, + "minecraft:recipes/tools/golden_hoe": { + "criteria": { + "has_gold_ingot": "2025-08-27 18:18:54 -0500" + }, + "done": true + }, + "minecraft:recipes/combat/golden_leggings": { + "criteria": { + "has_gold_ingot": "2025-08-27 18:18:54 -0500" + }, + "done": true + }, + "minecraft:recipes/brewing/cauldron": { + "criteria": { + "has_water_bucket": "2025-08-27 18:21:30 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/bookshelf": { + "criteria": { + "has_book": "2025-08-27 18:32:37 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/lectern": { + "criteria": { + "has_book": "2025-08-27 18:32:37 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/chiseled_bookshelf": { + "criteria": { + "has_book": "2025-08-27 18:32:37 -0500" + }, + "done": true + }, + "minecraft:recipes/misc/writable_book": { + "criteria": { + "has_book": "2025-08-27 18:32:37 -0500" + }, + "done": true + }, + "minecraft:recipes/redstone/trapped_chest": { + "criteria": { + "has_tripwire_hook": "2025-08-27 19:27:14 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/dark_oak_wood": { + "criteria": { + "has_log": "2025-08-27 19:27:14 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/cherry_planks": { + "criteria": { + "has_log": "2025-08-27 19:32:29 -0500" + }, + "done": true + }, + "minecraft:recipes/building_blocks/cherry_wood": { + "criteria": { + "has_log": "2025-08-27 19:32:29 -0500" + }, + "done": true + }, + "woodcutter:recipes/misc/cherry_planks_from_cherry_logs_stonecutting": { + "criteria": { + "has_cherry_logs": "2025-08-27 19:32:29 -0500" + }, + "done": true + }, + "DataVersion": 4189 +} \ No newline at end of file diff --git a/alternate-current.conf b/alternate-current.conf new file mode 100755 index 0000000..4b3cdf0 --- /dev/null +++ b/alternate-current.conf @@ -0,0 +1,2 @@ +enabled=true +update-order=horizontal_first_outward diff --git a/data/chunks.dat b/data/chunks.dat new file mode 100755 index 0000000..3fb4459 Binary files /dev/null and b/data/chunks.dat differ diff --git a/data/claims/!AdminClaims.json b/data/claims/!AdminClaims.json new file mode 100755 index 0000000..57e06ad --- /dev/null +++ b/data/claims/!AdminClaims.json @@ -0,0 +1,42 @@ +[ + { + "ID": "f9ecbec9-f04e-468e-ac89-d2089c494088", + "Name": "My Claim", + "PosxXzZY": [ + 0, + 15, + 0, + 15, + -62 + ], + "Home": [ + 7, + 75, + 7 + ], + "EnterTitle": "", + "EnterSubtitle": "", + "LeaveTitle": "", + "LeaveSubtitle": "", + "Potions": {}, + "AllowedItems": [], + "AllowedUseBlocks": [], + "AllowedBreakBlocks": [], + "AllowedEntityAttack": [], + "AllowedEntityUse": [], + "GlobalPerms": [ + "flan:enderman", + "flan:drop", + "flan:can_stay", + "flan:open_container", + "flan:snow_golem", + "flan:enchantment", + "flan:lock_items", + "flan:portal", + "flan:interact_block", + "flan:flight", + "flan:pickup", + "flan:enderchest" + ] + } +] \ No newline at end of file diff --git a/data/command_storage_graves.dat b/data/command_storage_graves.dat new file mode 100755 index 0000000..48e74f0 Binary files /dev/null and b/data/command_storage_graves.dat differ diff --git a/data/cpm.json b/data/cpm.json new file mode 100755 index 0000000..e305e78 --- /dev/null +++ b/data/cpm.json @@ -0,0 +1,47 @@ +{ + "__COMMENT1": "To apply this configuration to all newly generated worlds", + "__COMMENT2": "please place this configuration file into your config directory", + "__COMMENT3": "with the following name: cpm-server-default.json", + "player_scaling": { + "c6a465aa-1a67-4cc5-b25b-c0c3239a340f": { + "scale": 1.0, + "motion": 1.0, + "stepHeight": 1.0, + "fdmg": 1.0, + "reach": 1.0, + "msp": 1.0, + "asp": 1.0, + "akb": 1.0, + "attack": 1.0, + "defense": 1.0, + "health": 1.0, + "mob_vis": 1.0, + "jump_height": 1.0, + "kbr": 1.0, + "safe_fall": 1.0 + }, + "9cbe1283-aabc-477d-a8a2-4d06902e7545": {} + }, + "player_scaling_settings": {}, + "scaling_settings": { + "mining_speed": {}, + "motion": {}, + "mob_visibility": {}, + "knockback_resist": {}, + "reach": {}, + "health": {}, + "jump_height": {}, + "attack_speed": {}, + "safe_fall_distance": {}, + "defense": {}, + "attack_knockback": {}, + "step_height": {}, + "attack_dmg": {}, + "fall_damage": {}, + "entity": {} + }, + "skins": { + "a8430355-4d85-4c50-bbf8-e55332bd255b": {}, + "4e643a75-854d-48fc-8167-ecaefd25657a": {} + } +} \ No newline at end of file diff --git a/data/gamerules.dat b/data/gamerules.dat new file mode 100755 index 0000000..0dba993 Binary files /dev/null and b/data/gamerules.dat differ diff --git a/data/home-utilities.dat b/data/home-utilities.dat new file mode 100755 index 0000000..0131f82 Binary files /dev/null and b/data/home-utilities.dat differ diff --git a/data/loot4everyone.dat b/data/loot4everyone.dat new file mode 100755 index 0000000..9b18930 Binary files /dev/null and b/data/loot4everyone.dat differ diff --git a/data/neruina.dat b/data/neruina.dat new file mode 100755 index 0000000..7345e98 Binary files /dev/null and b/data/neruina.dat differ diff --git a/data/raids.dat b/data/raids.dat new file mode 100755 index 0000000..c4c412b Binary files /dev/null and b/data/raids.dat differ diff --git a/data/random_sequences.dat b/data/random_sequences.dat new file mode 100755 index 0000000..685a7a3 Binary files /dev/null and b/data/random_sequences.dat differ diff --git a/data/scoreboard.dat b/data/scoreboard.dat new file mode 100755 index 0000000..93b7610 Binary files /dev/null and b/data/scoreboard.dat differ diff --git a/data/simplechestlocker_data.dat b/data/simplechestlocker_data.dat new file mode 100755 index 0000000..0b221ea Binary files /dev/null and b/data/simplechestlocker_data.dat differ diff --git a/data/world_level_data.dat b/data/world_level_data.dat new file mode 100755 index 0000000..c1bd20c Binary files /dev/null and b/data/world_level_data.dat differ diff --git a/data/worldmanager.dat b/data/worldmanager.dat new file mode 100755 index 0000000..7d8931c Binary files /dev/null and b/data/worldmanager.dat differ diff --git a/datapacks/armored-elytra/data/armored_elytra/advancement/break_armored_elytra.json b/datapacks/armored-elytra/data/armored_elytra/advancement/break_armored_elytra.json new file mode 100755 index 0000000..ef9fbc5 --- /dev/null +++ b/datapacks/armored-elytra/data/armored_elytra/advancement/break_armored_elytra.json @@ -0,0 +1,25 @@ +{ + "criteria": { + "item_durability_changed": { + "trigger": "minecraft:item_durability_changed", + "conditions": { + "durability": { + "max": 1 + }, + "item": { + "items": "minecraft:elytra", + "predicates": { + "minecraft:custom_data": { + "armored_elytra": { + "armored": true + } + } + } + } + } + } + }, + "rewards": { + "function": "armored_elytra:break_armored_elytra" + } +} diff --git a/datapacks/armored-elytra/data/armored_elytra/function/armor_elytra.mcfunction b/datapacks/armored-elytra/data/armored_elytra/function/armor_elytra.mcfunction new file mode 100755 index 0000000..300b3b2 --- /dev/null +++ b/datapacks/armored-elytra/data/armored_elytra/function/armor_elytra.mcfunction @@ -0,0 +1,21 @@ +data modify entity @s Item.components.minecraft:bundle_contents append from entity @s Item +data modify entity @s Item.components.minecraft:bundle_contents prepend from entity @e[type=minecraft:item,tag=armored_elytra.chestplate,distance=..2,limit=1] Item +data modify entity @s PickupDelay set value 0s +execute if items entity @e[type=minecraft:item,tag=armored_elytra.chestplate,distance=..2,limit=1] contents minecraft:netherite_chestplate run item modify entity @s contents armored_elytra:armor/netherite +execute if items entity @e[type=minecraft:item,tag=armored_elytra.chestplate,distance=..2,limit=1] contents minecraft:diamond_chestplate run item modify entity @s contents armored_elytra:armor/diamond +execute if items entity @e[type=minecraft:item,tag=armored_elytra.chestplate,distance=..2,limit=1] contents minecraft:iron_chestplate run item modify entity @s contents armored_elytra:armor/iron +execute if items entity @e[type=minecraft:item,tag=armored_elytra.chestplate,distance=..2,limit=1] contents minecraft:golden_chestplate run item modify entity @s contents armored_elytra:armor/gold +execute if items entity @e[type=minecraft:item,tag=armored_elytra.chestplate,distance=..2,limit=1] contents minecraft:chainmail_chestplate run item modify entity @s contents armored_elytra:armor/chain +execute if items entity @e[type=minecraft:item,tag=armored_elytra.chestplate,distance=..2,limit=1] contents minecraft:leather_chestplate run item modify entity @s contents armored_elytra:armor/leather +execute store success score #success armEly.dummy if items entity @e[type=minecraft:item,tag=armored_elytra.chestplate,distance=..2,limit=1] contents *[minecraft:custom_name] +execute if score #success armEly.dummy matches 1 run item modify entity @s contents armored_elytra:named_lore +execute unless score #success armEly.dummy matches 1 run item modify entity @s contents armored_elytra:lore +execute store result score #elytraValue armEly.dummy run data get entity @s Item.components.minecraft:repair_cost +data modify storage armored_elytra:storage enchantments set value [] +function armored_elytra:parse_enchantments/start with entity @s Item.components.minecraft:enchantments +data modify storage armored_elytra:storage elytraEnch set from storage armored_elytra:storage enchantments +execute as @e[type=minecraft:item,tag=armored_elytra.chestplate,distance=..2,limit=1] run function armored_elytra:store_chestplate_values +execute store result entity @s Item.components.minecraft:repair_cost int 1 run scoreboard players operation #elytraValue armEly.dummy += #chestplateValue armEly.dummy +function armored_elytra:merge_enchantments/start +kill @e[type=minecraft:item,tag=armored_elytra.chestplate,distance=..2,limit=1] +playsound minecraft:block.anvil.use block @a \ No newline at end of file diff --git a/datapacks/armored-elytra/data/armored_elytra/function/break_armored_elytra.mcfunction b/datapacks/armored-elytra/data/armored_elytra/function/break_armored_elytra.mcfunction new file mode 100755 index 0000000..2f1b009 --- /dev/null +++ b/datapacks/armored-elytra/data/armored_elytra/function/break_armored_elytra.mcfunction @@ -0,0 +1,8 @@ +advancement revoke @s only armored_elytra:break_armored_elytra +tag @s add armored_elytra.subject +data modify storage armored_elytra:storage item set from entity @s Inventory[{Slot:102b}] +data modify storage armored_elytra:storage item.components.minecraft:damage set value 431 +function armored_elytra:separate_enchantments/start +execute as @e[type=minecraft:item,tag=armored_elytra.separated] run function armored_elytra:set_owner +item replace entity @s armor.chest with minecraft:air +tag @s remove armored_elytra.subject \ No newline at end of file diff --git a/datapacks/armored-elytra/data/armored_elytra/function/burn_elytra.mcfunction b/datapacks/armored-elytra/data/armored_elytra/function/burn_elytra.mcfunction new file mode 100755 index 0000000..6ac6f9f --- /dev/null +++ b/datapacks/armored-elytra/data/armored_elytra/function/burn_elytra.mcfunction @@ -0,0 +1,5 @@ +tag @s add armored_elytra.subject +data modify storage armored_elytra:storage item set from entity @s Item +function armored_elytra:separate_enchantments/start +execute as @e[type=minecraft:item,tag=armored_elytra.separated] run function armored_elytra:copy_burning_elytra_tags +kill @s \ No newline at end of file diff --git a/datapacks/armored-elytra/data/armored_elytra/function/check_for_chestplate.mcfunction b/datapacks/armored-elytra/data/armored_elytra/function/check_for_chestplate.mcfunction new file mode 100755 index 0000000..8b8c6a0 --- /dev/null +++ b/datapacks/armored-elytra/data/armored_elytra/function/check_for_chestplate.mcfunction @@ -0,0 +1,4 @@ +tag @s add armored_elytra.elytra +scoreboard players set #found_chestplate armEly.dummy 0 +execute align xyz as @e[type=minecraft:item,dx=0,dy=0,dz=0,sort=nearest] if items entity @s contents #armored_elytra:chestplates run function armored_elytra:try_to_armor_elytra +tag @s remove armored_elytra.elytra \ No newline at end of file diff --git a/datapacks/armored-elytra/data/armored_elytra/function/check_for_elytra_on_fire.mcfunction b/datapacks/armored-elytra/data/armored_elytra/function/check_for_elytra_on_fire.mcfunction new file mode 100755 index 0000000..235ded4 --- /dev/null +++ b/datapacks/armored-elytra/data/armored_elytra/function/check_for_elytra_on_fire.mcfunction @@ -0,0 +1,2 @@ +execute if items entity @s contents minecraft:elytra[minecraft:custom_data~{armored_elytra:{armored:true}}] at @s run function armored_elytra:burn_elytra +tag @s add armored_elytra.checked_for_elytra_on_fire \ No newline at end of file diff --git a/datapacks/armored-elytra/data/armored_elytra/function/construct_levels_compound/next_enchantment.mcfunction b/datapacks/armored-elytra/data/armored_elytra/function/construct_levels_compound/next_enchantment.mcfunction new file mode 100755 index 0000000..d1a40b7 --- /dev/null +++ b/datapacks/armored-elytra/data/armored_elytra/function/construct_levels_compound/next_enchantment.mcfunction @@ -0,0 +1,4 @@ +execute unless data storage armored_elytra:storage enchantments[0] run return 0 +function armored_elytra:construct_levels_compound/process_enchantment with storage armored_elytra:storage enchantments[0] +data remove storage armored_elytra:storage enchantments[0] +function armored_elytra:construct_levels_compound/next_enchantment \ No newline at end of file diff --git a/datapacks/armored-elytra/data/armored_elytra/function/construct_levels_compound/process_enchantment.mcfunction b/datapacks/armored-elytra/data/armored_elytra/function/construct_levels_compound/process_enchantment.mcfunction new file mode 100755 index 0000000..1dfbcc0 --- /dev/null +++ b/datapacks/armored-elytra/data/armored_elytra/function/construct_levels_compound/process_enchantment.mcfunction @@ -0,0 +1 @@ +$data modify storage armored_elytra:storage levels."$(id)" set value $(lvl) \ No newline at end of file diff --git a/datapacks/armored-elytra/data/armored_elytra/function/construct_levels_compound/start.mcfunction b/datapacks/armored-elytra/data/armored_elytra/function/construct_levels_compound/start.mcfunction new file mode 100755 index 0000000..ed6ca78 --- /dev/null +++ b/datapacks/armored-elytra/data/armored_elytra/function/construct_levels_compound/start.mcfunction @@ -0,0 +1,2 @@ +data modify storage armored_elytra:storage levels set value {} +function armored_elytra:construct_levels_compound/next_enchantment \ No newline at end of file diff --git a/datapacks/armored-elytra/data/armored_elytra/function/copy_burning_elytra_tags.mcfunction b/datapacks/armored-elytra/data/armored_elytra/function/copy_burning_elytra_tags.mcfunction new file mode 100755 index 0000000..e747584 --- /dev/null +++ b/datapacks/armored-elytra/data/armored_elytra/function/copy_burning_elytra_tags.mcfunction @@ -0,0 +1,6 @@ +data modify storage armored_elytra:storage temp set from entity @e[type=minecraft:item,tag=armored_elytra.subject,limit=1] {} +data modify entity @s Motion set from storage armored_elytra:storage temp.Motion +data modify entity @s Fire set from storage armored_elytra:storage temp.Fire +data modify entity @s PickupDelay set from storage armored_elytra:storage temp.PickupDelay +data modify entity @s Owner set from storage armored_elytra:storage temp.Owner +tag @s remove armored_elytra.separated \ No newline at end of file diff --git a/datapacks/armored-elytra/data/armored_elytra/function/grind_elytra.mcfunction b/datapacks/armored-elytra/data/armored_elytra/function/grind_elytra.mcfunction new file mode 100755 index 0000000..ab9734b --- /dev/null +++ b/datapacks/armored-elytra/data/armored_elytra/function/grind_elytra.mcfunction @@ -0,0 +1,4 @@ +playsound minecraft:block.grindstone.use block @a +data modify storage armored_elytra:storage item set from entity @s Item +function armored_elytra:separate_enchantments/start +kill @s \ No newline at end of file diff --git a/datapacks/armored-elytra/data/armored_elytra/function/load.mcfunction b/datapacks/armored-elytra/data/armored_elytra/function/load.mcfunction new file mode 100755 index 0000000..61bc549 --- /dev/null +++ b/datapacks/armored-elytra/data/armored_elytra/function/load.mcfunction @@ -0,0 +1,2 @@ +scoreboard objectives add armEly.dummy dummy +advancement revoke @a only armored_elytra:break_armored_elytra \ No newline at end of file diff --git a/datapacks/armored-elytra/data/armored_elytra/function/merge_enchantments/add_enchantment_from_chestplate.mcfunction b/datapacks/armored-elytra/data/armored_elytra/function/merge_enchantments/add_enchantment_from_chestplate.mcfunction new file mode 100755 index 0000000..703c206 --- /dev/null +++ b/datapacks/armored-elytra/data/armored_elytra/function/merge_enchantments/add_enchantment_from_chestplate.mcfunction @@ -0,0 +1,2 @@ +data modify storage armored_elytra:storage finalEnch append from storage armored_elytra:storage chestplateEnch[0] +data remove storage armored_elytra:storage chestplateEnch[0] \ No newline at end of file diff --git a/datapacks/armored-elytra/data/armored_elytra/function/merge_enchantments/add_enchantment_from_elytra.mcfunction b/datapacks/armored-elytra/data/armored_elytra/function/merge_enchantments/add_enchantment_from_elytra.mcfunction new file mode 100755 index 0000000..2fa3c95 --- /dev/null +++ b/datapacks/armored-elytra/data/armored_elytra/function/merge_enchantments/add_enchantment_from_elytra.mcfunction @@ -0,0 +1,4 @@ +data modify storage armored_elytra:storage finalEnch append from storage armored_elytra:storage elytraEnch[-1] +data remove storage armored_elytra:storage elytraEnch[-1] +scoreboard players remove #elytraTotal armEly.dummy 1 +execute unless score #elytraTotal armEly.dummy matches 0 run function armored_elytra:merge_enchantments/add_enchantment_from_elytra \ No newline at end of file diff --git a/datapacks/armored-elytra/data/armored_elytra/function/merge_enchantments/check_elytra_enchantment.mcfunction b/datapacks/armored-elytra/data/armored_elytra/function/merge_enchantments/check_elytra_enchantment.mcfunction new file mode 100755 index 0000000..f8d4b19 --- /dev/null +++ b/datapacks/armored-elytra/data/armored_elytra/function/merge_enchantments/check_elytra_enchantment.mcfunction @@ -0,0 +1,4 @@ +data modify storage armored_elytra:storage temp set from storage armored_elytra:storage elytraEnch[0].id +execute store success score #success armEly.dummy run data modify storage armored_elytra:storage temp set from storage armored_elytra:storage chestplateEnch[0].id +execute if score #success armEly.dummy matches 0 run function armored_elytra:merge_enchantments/compare_levels +execute if score #found armEly.dummy matches 0 run function armored_elytra:merge_enchantments/rotate_elytra_enchantment \ No newline at end of file diff --git a/datapacks/armored-elytra/data/armored_elytra/function/merge_enchantments/compare_levels.mcfunction b/datapacks/armored-elytra/data/armored_elytra/function/merge_enchantments/compare_levels.mcfunction new file mode 100755 index 0000000..7819b1d --- /dev/null +++ b/datapacks/armored-elytra/data/armored_elytra/function/merge_enchantments/compare_levels.mcfunction @@ -0,0 +1,8 @@ +execute store result score #elytraValue armEly.dummy run data get storage armored_elytra:storage elytraEnch[0].lvl +execute store result score #chestplateValue armEly.dummy run data get storage armored_elytra:storage chestplateEnch[0].lvl +execute if score #chestplateValue armEly.dummy > #elytraValue armEly.dummy run data modify storage armored_elytra:storage finalEnch append from storage armored_elytra:storage chestplateEnch[0] +execute unless score #chestplateValue armEly.dummy > #elytraValue armEly.dummy run data modify storage armored_elytra:storage finalEnch append from storage armored_elytra:storage elytraEnch[0] +data remove storage armored_elytra:storage elytraEnch[0] +scoreboard players remove #elytraTotal armEly.dummy 1 +data remove storage armored_elytra:storage chestplateEnch[0] +scoreboard players set #found armEly.dummy 1 \ No newline at end of file diff --git a/datapacks/armored-elytra/data/armored_elytra/function/merge_enchantments/rotate_elytra_enchantment.mcfunction b/datapacks/armored-elytra/data/armored_elytra/function/merge_enchantments/rotate_elytra_enchantment.mcfunction new file mode 100755 index 0000000..b8741ed --- /dev/null +++ b/datapacks/armored-elytra/data/armored_elytra/function/merge_enchantments/rotate_elytra_enchantment.mcfunction @@ -0,0 +1,4 @@ +data modify storage armored_elytra:storage elytraEnch append from storage armored_elytra:storage elytraEnch[0] +data remove storage armored_elytra:storage elytraEnch[0] +scoreboard players remove #elytraRemaining armEly.dummy 1 +execute unless score #elytraRemaining armEly.dummy matches 0 run function armored_elytra:merge_enchantments/check_elytra_enchantment \ No newline at end of file diff --git a/datapacks/armored-elytra/data/armored_elytra/function/merge_enchantments/shift_chestplate_enchantment.mcfunction b/datapacks/armored-elytra/data/armored_elytra/function/merge_enchantments/shift_chestplate_enchantment.mcfunction new file mode 100755 index 0000000..ad32ca1 --- /dev/null +++ b/datapacks/armored-elytra/data/armored_elytra/function/merge_enchantments/shift_chestplate_enchantment.mcfunction @@ -0,0 +1,6 @@ +scoreboard players set #found armEly.dummy 0 +scoreboard players operation #elytraRemaining armEly.dummy = #elytraTotal armEly.dummy +execute unless score #elytraTotal armEly.dummy matches 0 run function armored_elytra:merge_enchantments/check_elytra_enchantment +execute if score #found armEly.dummy matches 0 run function armored_elytra:merge_enchantments/add_enchantment_from_chestplate +scoreboard players remove #chestplateRemaining armEly.dummy 1 +execute unless score #chestplateRemaining armEly.dummy matches 0 run function armored_elytra:merge_enchantments/shift_chestplate_enchantment \ No newline at end of file diff --git a/datapacks/armored-elytra/data/armored_elytra/function/merge_enchantments/start.mcfunction b/datapacks/armored-elytra/data/armored_elytra/function/merge_enchantments/start.mcfunction new file mode 100755 index 0000000..f6ca4b9 --- /dev/null +++ b/datapacks/armored-elytra/data/armored_elytra/function/merge_enchantments/start.mcfunction @@ -0,0 +1,8 @@ +data modify storage armored_elytra:storage finalEnch set value [] +execute store result score #chestplateRemaining armEly.dummy run data get storage armored_elytra:storage chestplateEnch +execute store result score #elytraTotal armEly.dummy run data get storage armored_elytra:storage elytraEnch +execute unless score #chestplateRemaining armEly.dummy matches 0 run function armored_elytra:merge_enchantments/shift_chestplate_enchantment +execute unless score #elytraTotal armEly.dummy matches 0 run function armored_elytra:merge_enchantments/add_enchantment_from_elytra +data modify storage armored_elytra:storage enchantments set from storage armored_elytra:storage finalEnch +function armored_elytra:construct_levels_compound/start +data modify entity @s Item.components.minecraft:enchantments.levels set from storage armored_elytra:storage levels \ No newline at end of file diff --git a/datapacks/armored-elytra/data/armored_elytra/function/parse_enchantments/append_char_to_id.mcfunction b/datapacks/armored-elytra/data/armored_elytra/function/parse_enchantments/append_char_to_id.mcfunction new file mode 100755 index 0000000..f33b3d9 --- /dev/null +++ b/datapacks/armored-elytra/data/armored_elytra/function/parse_enchantments/append_char_to_id.mcfunction @@ -0,0 +1 @@ +$data modify storage armored_elytra:storage id set value "$(id)$(char)" \ No newline at end of file diff --git a/datapacks/armored-elytra/data/armored_elytra/function/parse_enchantments/append_digit_to_lvl.mcfunction b/datapacks/armored-elytra/data/armored_elytra/function/parse_enchantments/append_digit_to_lvl.mcfunction new file mode 100755 index 0000000..e18e495 --- /dev/null +++ b/datapacks/armored-elytra/data/armored_elytra/function/parse_enchantments/append_digit_to_lvl.mcfunction @@ -0,0 +1 @@ +$data modify storage armored_elytra:storage lvl set value $(lvl)$(char) \ No newline at end of file diff --git a/datapacks/armored-elytra/data/armored_elytra/function/parse_enchantments/append_enchantment.mcfunction b/datapacks/armored-elytra/data/armored_elytra/function/parse_enchantments/append_enchantment.mcfunction new file mode 100755 index 0000000..827a367 --- /dev/null +++ b/datapacks/armored-elytra/data/armored_elytra/function/parse_enchantments/append_enchantment.mcfunction @@ -0,0 +1,5 @@ +data modify storage armored_elytra:storage enchantments append value {} +data modify storage armored_elytra:storage enchantments[-1].id set from storage armored_elytra:storage id +data modify storage armored_elytra:storage enchantments[-1].lvl set from storage armored_elytra:storage lvl +data modify storage armored_elytra:storage id set value "" +data modify storage armored_elytra:storage lvl set value "" \ No newline at end of file diff --git a/datapacks/armored-elytra/data/armored_elytra/function/parse_enchantments/next_char.mcfunction b/datapacks/armored-elytra/data/armored_elytra/function/parse_enchantments/next_char.mcfunction new file mode 100755 index 0000000..ba279ef --- /dev/null +++ b/datapacks/armored-elytra/data/armored_elytra/function/parse_enchantments/next_char.mcfunction @@ -0,0 +1,6 @@ +data remove storage armored_elytra:storage char +execute store success score #success armEly.dummy run data modify storage armored_elytra:storage char set string storage armored_elytra:storage levels_string 0 1 +execute unless score #success armEly.dummy matches 1 run return 0 +function armored_elytra:parse_enchantments/process_char +data modify storage armored_elytra:storage levels_string set string storage armored_elytra:storage levels_string 1 +function armored_elytra:parse_enchantments/next_char \ No newline at end of file diff --git a/datapacks/armored-elytra/data/armored_elytra/function/parse_enchantments/process_char.mcfunction b/datapacks/armored-elytra/data/armored_elytra/function/parse_enchantments/process_char.mcfunction new file mode 100755 index 0000000..2d51873 --- /dev/null +++ b/datapacks/armored-elytra/data/armored_elytra/function/parse_enchantments/process_char.mcfunction @@ -0,0 +1,7 @@ +execute if data storage armored_elytra:storage {char:'"'} store success score #in_id armEly.dummy unless score #in_id armEly.dummy matches 1 +execute if data storage armored_elytra:storage {char:'"'} run return 0 +execute if score #in_id armEly.dummy matches 1 run return run function armored_elytra:parse_enchantments/append_char_to_id with storage armored_elytra:storage +execute if data storage armored_elytra:storage {char:':'} run return 0 +execute if data storage armored_elytra:storage {char:','} run return run function armored_elytra:parse_enchantments/append_enchantment +execute if data storage armored_elytra:storage {char:'}'} run return run function armored_elytra:parse_enchantments/append_enchantment +function armored_elytra:parse_enchantments/append_digit_to_lvl with storage armored_elytra:storage \ No newline at end of file diff --git a/datapacks/armored-elytra/data/armored_elytra/function/parse_enchantments/start.mcfunction b/datapacks/armored-elytra/data/armored_elytra/function/parse_enchantments/start.mcfunction new file mode 100755 index 0000000..377e89a --- /dev/null +++ b/datapacks/armored-elytra/data/armored_elytra/function/parse_enchantments/start.mcfunction @@ -0,0 +1,10 @@ +# Thanks Darukshock for drafting this algorithm! +$data modify storage armored_elytra:storage levels_string set value '$(levels)' +data modify storage armored_elytra:storage enchantments set value [] +data modify storage armored_elytra:storage id set value "" +data modify storage armored_elytra:storage lvl set value "" +scoreboard players set #in_id armEly.dummy 0 +function armored_elytra:parse_enchantments/next_char +data remove storage armored_elytra:storage id +data remove storage armored_elytra:storage lvl +data remove storage armored_elytra:storage levels_string \ No newline at end of file diff --git a/datapacks/armored-elytra/data/armored_elytra/function/schedule.mcfunction b/datapacks/armored-elytra/data/armored_elytra/function/schedule.mcfunction new file mode 100755 index 0000000..1c0fcc3 --- /dev/null +++ b/datapacks/armored-elytra/data/armored_elytra/function/schedule.mcfunction @@ -0,0 +1,3 @@ +schedule function armored_elytra:schedule 1s +execute as @e[type=minecraft:item] if items entity @s contents minecraft:elytra[minecraft:damage~{durability:{min:2}},!minecraft:custom_data~{armored_elytra:{armored:true}}] at @s if block ~ ~-0.01 ~ #minecraft:anvil run function armored_elytra:check_for_chestplate +execute as @e[type=minecraft:item] if items entity @s contents minecraft:elytra[minecraft:custom_data~{armored_elytra:{armored:true}}] at @s if block ~ ~-0.01 ~ minecraft:grindstone positioned ~ ~-0.01 ~ align xyz positioned ~0.5 ~0.5 ~0.5 run function armored_elytra:grind_elytra \ No newline at end of file diff --git a/datapacks/armored-elytra/data/armored_elytra/function/separate_enchantments/add_chestplate_enchantment.mcfunction b/datapacks/armored-elytra/data/armored_elytra/function/separate_enchantments/add_chestplate_enchantment.mcfunction new file mode 100755 index 0000000..8a7d9e1 --- /dev/null +++ b/datapacks/armored-elytra/data/armored_elytra/function/separate_enchantments/add_chestplate_enchantment.mcfunction @@ -0,0 +1,3 @@ +data modify storage armored_elytra:storage chestplateFinalEnch append from storage armored_elytra:storage chestplateEnch[0] +data remove storage armored_elytra:storage chestplateEnch[0] +scoreboard players remove #chestplateTotal armEly.dummy 1 \ No newline at end of file diff --git a/datapacks/armored-elytra/data/armored_elytra/function/separate_enchantments/add_elytra_enchantment.mcfunction b/datapacks/armored-elytra/data/armored_elytra/function/separate_enchantments/add_elytra_enchantment.mcfunction new file mode 100755 index 0000000..93e9ce5 --- /dev/null +++ b/datapacks/armored-elytra/data/armored_elytra/function/separate_enchantments/add_elytra_enchantment.mcfunction @@ -0,0 +1,3 @@ +data modify storage armored_elytra:storage elytraFinalEnch append from storage armored_elytra:storage elytraEnch[0] +data remove storage armored_elytra:storage elytraEnch[0] +scoreboard players remove #elytraTotal armEly.dummy 1 \ No newline at end of file diff --git a/datapacks/armored-elytra/data/armored_elytra/function/separate_enchantments/add_enchantment_to_chestplate.mcfunction b/datapacks/armored-elytra/data/armored_elytra/function/separate_enchantments/add_enchantment_to_chestplate.mcfunction new file mode 100755 index 0000000..e424cd7 --- /dev/null +++ b/datapacks/armored-elytra/data/armored_elytra/function/separate_enchantments/add_enchantment_to_chestplate.mcfunction @@ -0,0 +1,4 @@ +scoreboard players set #found armEly.dummy 1 +data modify storage armored_elytra:storage chestplateFinalEnch append from storage armored_elytra:storage enchantments[0] +data remove storage armored_elytra:storage chestplateEnch[0] +scoreboard players remove #chestplateTotal armEly.dummy 1 \ No newline at end of file diff --git a/datapacks/armored-elytra/data/armored_elytra/function/separate_enchantments/check_chestplate_enchantment.mcfunction b/datapacks/armored-elytra/data/armored_elytra/function/separate_enchantments/check_chestplate_enchantment.mcfunction new file mode 100755 index 0000000..06243f8 --- /dev/null +++ b/datapacks/armored-elytra/data/armored_elytra/function/separate_enchantments/check_chestplate_enchantment.mcfunction @@ -0,0 +1,4 @@ +data modify storage armored_elytra:storage temp set from storage armored_elytra:storage enchantments[0].id +execute store success score #success armEly.dummy run data modify storage armored_elytra:storage temp set from storage armored_elytra:storage chestplateEnch[0].id +execute if score #success armEly.dummy matches 0 run function armored_elytra:separate_enchantments/add_enchantment_to_chestplate +execute if score #found armEly.dummy matches 0 run function armored_elytra:separate_enchantments/rotate_chestplate_enchantment_2 \ No newline at end of file diff --git a/datapacks/armored-elytra/data/armored_elytra/function/separate_enchantments/check_chestplate_enchantments.mcfunction b/datapacks/armored-elytra/data/armored_elytra/function/separate_enchantments/check_chestplate_enchantments.mcfunction new file mode 100755 index 0000000..d71c694 --- /dev/null +++ b/datapacks/armored-elytra/data/armored_elytra/function/separate_enchantments/check_chestplate_enchantments.mcfunction @@ -0,0 +1,2 @@ +scoreboard players operation #chestplateRemaining armEly.dummy = #chestplateTotal armEly.dummy +function armored_elytra:separate_enchantments/check_chestplate_enchantment \ No newline at end of file diff --git a/datapacks/armored-elytra/data/armored_elytra/function/separate_enchantments/compare_levels.mcfunction b/datapacks/armored-elytra/data/armored_elytra/function/separate_enchantments/compare_levels.mcfunction new file mode 100755 index 0000000..2d1b789 --- /dev/null +++ b/datapacks/armored-elytra/data/armored_elytra/function/separate_enchantments/compare_levels.mcfunction @@ -0,0 +1,4 @@ +execute store result score #elytraValue armEly.dummy run data get storage armored_elytra:storage elytraEnch[0].lvl +execute store result score #chestplateValue armEly.dummy run data get storage armored_elytra:storage chestplateEnch[0].lvl +execute if score #chestplateValue armEly.dummy > #elytraValue armEly.dummy run function armored_elytra:separate_enchantments/add_elytra_enchantment +execute unless score #chestplateValue armEly.dummy > #elytraValue armEly.dummy run function armored_elytra:separate_enchantments/add_chestplate_enchantment \ No newline at end of file diff --git a/datapacks/armored-elytra/data/armored_elytra/function/separate_enchantments/iterate_chestplate_enchantments.mcfunction b/datapacks/armored-elytra/data/armored_elytra/function/separate_enchantments/iterate_chestplate_enchantments.mcfunction new file mode 100755 index 0000000..496dbb2 --- /dev/null +++ b/datapacks/armored-elytra/data/armored_elytra/function/separate_enchantments/iterate_chestplate_enchantments.mcfunction @@ -0,0 +1,4 @@ +data modify storage armored_elytra:storage temp set from storage armored_elytra:storage elytraEnch[0].id +execute store success score #success armEly.dummy run data modify storage armored_elytra:storage temp set from storage armored_elytra:storage chestplateEnch[0].id +execute if score #success armEly.dummy matches 0 run function armored_elytra:separate_enchantments/compare_levels +execute unless score #success armEly.dummy matches 0 run function armored_elytra:separate_enchantments/rotate_chestplate_enchantment \ No newline at end of file diff --git a/datapacks/armored-elytra/data/armored_elytra/function/separate_enchantments/iterate_elytra_enchantments.mcfunction b/datapacks/armored-elytra/data/armored_elytra/function/separate_enchantments/iterate_elytra_enchantments.mcfunction new file mode 100755 index 0000000..2d362b5 --- /dev/null +++ b/datapacks/armored-elytra/data/armored_elytra/function/separate_enchantments/iterate_elytra_enchantments.mcfunction @@ -0,0 +1,3 @@ +scoreboard players operation #chestplateRemaining armEly.dummy = #chestplateTotal armEly.dummy +function armored_elytra:separate_enchantments/iterate_chestplate_enchantments +execute unless score #elytraTotal armEly.dummy matches 0 unless score #chestplateTotal armEly.dummy matches 0 run function armored_elytra:separate_enchantments/rotate_elytra_enchantment \ No newline at end of file diff --git a/datapacks/armored-elytra/data/armored_elytra/function/separate_enchantments/rotate_chestplate_enchantment.mcfunction b/datapacks/armored-elytra/data/armored_elytra/function/separate_enchantments/rotate_chestplate_enchantment.mcfunction new file mode 100755 index 0000000..57b2380 --- /dev/null +++ b/datapacks/armored-elytra/data/armored_elytra/function/separate_enchantments/rotate_chestplate_enchantment.mcfunction @@ -0,0 +1,4 @@ +data modify storage armored_elytra:storage chestplateEnch append from storage armored_elytra:storage chestplateEnch[0] +data remove storage armored_elytra:storage chestplateEnch[0] +scoreboard players remove #chestplateRemaining armEly.dummy 1 +execute unless score #chestplateRemaining armEly.dummy matches 0 run function armored_elytra:separate_enchantments/iterate_chestplate_enchantments \ No newline at end of file diff --git a/datapacks/armored-elytra/data/armored_elytra/function/separate_enchantments/rotate_chestplate_enchantment_2.mcfunction b/datapacks/armored-elytra/data/armored_elytra/function/separate_enchantments/rotate_chestplate_enchantment_2.mcfunction new file mode 100755 index 0000000..86e9919 --- /dev/null +++ b/datapacks/armored-elytra/data/armored_elytra/function/separate_enchantments/rotate_chestplate_enchantment_2.mcfunction @@ -0,0 +1,4 @@ +data modify storage armored_elytra:storage chestplateEnch append from storage armored_elytra:storage chestplateEnch[0] +data remove storage armored_elytra:storage chestplateEnch[0] +scoreboard players remove #chestplateRemaining armEly.dummy 1 +execute unless score #chestplateRemaining armEly.dummy matches 0 run function armored_elytra:separate_enchantments/check_chestplate_enchantment \ No newline at end of file diff --git a/datapacks/armored-elytra/data/armored_elytra/function/separate_enchantments/rotate_elytra_enchantment.mcfunction b/datapacks/armored-elytra/data/armored_elytra/function/separate_enchantments/rotate_elytra_enchantment.mcfunction new file mode 100755 index 0000000..45f8fd3 --- /dev/null +++ b/datapacks/armored-elytra/data/armored_elytra/function/separate_enchantments/rotate_elytra_enchantment.mcfunction @@ -0,0 +1,4 @@ +data modify storage armored_elytra:storage elytraEnch append from storage armored_elytra:storage elytraEnch[0] +data remove storage armored_elytra:storage elytraEnch[0] +scoreboard players remove #elytraRemaining armEly.dummy 1 +execute unless score #elytraRemaining armEly.dummy matches 0 run function armored_elytra:separate_enchantments/iterate_elytra_enchantments \ No newline at end of file diff --git a/datapacks/armored-elytra/data/armored_elytra/function/separate_enchantments/shift_enchantment.mcfunction b/datapacks/armored-elytra/data/armored_elytra/function/separate_enchantments/shift_enchantment.mcfunction new file mode 100755 index 0000000..84046b6 --- /dev/null +++ b/datapacks/armored-elytra/data/armored_elytra/function/separate_enchantments/shift_enchantment.mcfunction @@ -0,0 +1,6 @@ +scoreboard players set #found armEly.dummy 0 +execute unless score #chestplateTotal armEly.dummy matches 0 run function armored_elytra:separate_enchantments/check_chestplate_enchantments +execute if score #found armEly.dummy matches 0 run data modify storage armored_elytra:storage elytraFinalEnch append from storage armored_elytra:storage enchantments[0] +data remove storage armored_elytra:storage enchantments[0] +scoreboard players remove #remaining armEly.dummy 1 +execute unless score #remaining armEly.dummy matches 0 run function armored_elytra:separate_enchantments/shift_enchantment \ No newline at end of file diff --git a/datapacks/armored-elytra/data/armored_elytra/function/separate_enchantments/start.mcfunction b/datapacks/armored-elytra/data/armored_elytra/function/separate_enchantments/start.mcfunction new file mode 100755 index 0000000..453269c --- /dev/null +++ b/datapacks/armored-elytra/data/armored_elytra/function/separate_enchantments/start.mcfunction @@ -0,0 +1,37 @@ +summon minecraft:item ~ ~ ~ {Tags:["armored_elytra.separated","armored_elytra.elytra"],Item:{id:"minecraft:elytra"}} +summon minecraft:item ~ ~ ~ {Tags:["armored_elytra.separated","armored_elytra.chestplate"],Item:{id:"minecraft:chainmail_chestplate"}} +data modify storage armored_elytra:storage chestplate set from storage armored_elytra:storage item.components.minecraft:bundle_contents[0] +data modify storage armored_elytra:storage elytra set from storage armored_elytra:storage item.components.minecraft:bundle_contents[1] +data modify storage armored_elytra:storage enchantments set value [] +function armored_elytra:parse_enchantments/start with storage armored_elytra:storage elytra.components.minecraft:enchantments +data modify storage armored_elytra:storage elytraEnch set from storage armored_elytra:storage enchantments +data modify storage armored_elytra:storage enchantments set value [] +function armored_elytra:parse_enchantments/start with storage armored_elytra:storage chestplate.components.minecraft:enchantments +data modify storage armored_elytra:storage chestplateEnch set from storage armored_elytra:storage enchantments +data modify storage armored_elytra:storage enchantments set value [] +function armored_elytra:parse_enchantments/start with storage armored_elytra:storage item.components.minecraft:enchantments +execute store result score #elytraTotal armEly.dummy run data get storage armored_elytra:storage elytraEnch +execute store result score #chestplateTotal armEly.dummy run data get storage armored_elytra:storage chestplateEnch +execute unless score #elytraTotal armEly.dummy matches 0 unless score #chestplateTotal armEly.dummy matches 0 run function armored_elytra:separate_enchantments/start_to_iterate +execute store result score #remaining armEly.dummy run data get storage armored_elytra:storage enchantments +execute unless score #remaining armEly.dummy matches 0 run function armored_elytra:separate_enchantments/shift_enchantment +data modify storage armored_elytra:storage enchantments set from storage armored_elytra:storage elytraFinalEnch +function armored_elytra:construct_levels_compound/start +data modify storage armored_elytra:storage elytra.components.minecraft:enchantments.levels set from storage armored_elytra:storage levels +data modify storage armored_elytra:storage enchantments set from storage armored_elytra:storage chestplateFinalEnch +function armored_elytra:construct_levels_compound/start +data modify storage armored_elytra:storage chestplate.components.minecraft:enchantments.levels set from storage armored_elytra:storage levels +execute store success score #success armEly.dummy if data storage armored_elytra:storage item.components.minecraft:damage +execute if score #success armEly.dummy matches 1 run data modify storage armored_elytra:storage elytra.components.minecraft:damage set from storage armored_elytra:storage item.components.minecraft:damage +execute unless score #success armEly.dummy matches 1 run data remove storage armored_elytra:storage elytra.components.minecraft:damage +execute store success score #success armEly.dummy if data storage armored_elytra:storage item.components.minecraft:custom_name +execute if score #success armEly.dummy matches 1 run data modify storage armored_elytra:storage elytra.components.minecraft:custom_name set from storage armored_elytra:storage item.components.minecraft:custom_name +execute unless score #success armEly.dummy matches 1 run data remove storage armored_elytra:storage elytra.components.minecraft:custom_name +data modify entity @e[type=minecraft:item,tag=armored_elytra.elytra,distance=..0.01,limit=1] Item set from storage armored_elytra:storage elytra +data modify entity @e[type=minecraft:item,tag=armored_elytra.chestplate,distance=..0.01,limit=1] Item set from storage armored_elytra:storage chestplate +data remove storage armored_elytra:storage elytraFinalEnch +data remove storage armored_elytra:storage chestplateFinalEnch +data remove storage armored_elytra:storage elytra +data remove storage armored_elytra:storage chestplate +tag @e[type=minecraft:item,distance=..0.01] remove armored_elytra.elytra +tag @e[type=minecraft:item,distance=..0.01] remove armored_elytra.chestplate \ No newline at end of file diff --git a/datapacks/armored-elytra/data/armored_elytra/function/separate_enchantments/start_to_iterate.mcfunction b/datapacks/armored-elytra/data/armored_elytra/function/separate_enchantments/start_to_iterate.mcfunction new file mode 100755 index 0000000..b19d667 --- /dev/null +++ b/datapacks/armored-elytra/data/armored_elytra/function/separate_enchantments/start_to_iterate.mcfunction @@ -0,0 +1,2 @@ +scoreboard players operation #elytraRemaining armEly.dummy = #elytraTotal armEly.dummy +function armored_elytra:separate_enchantments/iterate_elytra_enchantments \ No newline at end of file diff --git a/datapacks/armored-elytra/data/armored_elytra/function/set_owner.mcfunction b/datapacks/armored-elytra/data/armored_elytra/function/set_owner.mcfunction new file mode 100755 index 0000000..b0caa6b --- /dev/null +++ b/datapacks/armored-elytra/data/armored_elytra/function/set_owner.mcfunction @@ -0,0 +1,2 @@ +data modify entity @s Owner set from entity @a[tag=armored_elytra.subject,limit=1] UUID +tag @s remove armored_elytra.separated \ No newline at end of file diff --git a/datapacks/armored-elytra/data/armored_elytra/function/store_chestplate_values.mcfunction b/datapacks/armored-elytra/data/armored_elytra/function/store_chestplate_values.mcfunction new file mode 100755 index 0000000..3e79994 --- /dev/null +++ b/datapacks/armored-elytra/data/armored_elytra/function/store_chestplate_values.mcfunction @@ -0,0 +1,4 @@ +execute store result score #chestplateValue armEly.dummy run data get entity @s Item.components.minecraft:repair_cost +data modify storage armored_elytra:storage enchantments set value [] +function armored_elytra:parse_enchantments/start with entity @s Item.components.minecraft:enchantments +data modify storage armored_elytra:storage chestplateEnch set from storage armored_elytra:storage enchantments \ No newline at end of file diff --git a/datapacks/armored-elytra/data/armored_elytra/function/tick.mcfunction b/datapacks/armored-elytra/data/armored_elytra/function/tick.mcfunction new file mode 100755 index 0000000..9f8451b --- /dev/null +++ b/datapacks/armored-elytra/data/armored_elytra/function/tick.mcfunction @@ -0,0 +1,2 @@ +schedule function armored_elytra:tick 1t +execute as @e[type=minecraft:item,tag=!armored_elytra.checked_for_elytra_on_fire,predicate=armored_elytra:on_fire] run function armored_elytra:check_for_elytra_on_fire \ No newline at end of file diff --git a/datapacks/armored-elytra/data/armored_elytra/function/try_to_armor_elytra.mcfunction b/datapacks/armored-elytra/data/armored_elytra/function/try_to_armor_elytra.mcfunction new file mode 100755 index 0000000..40ddb89 --- /dev/null +++ b/datapacks/armored-elytra/data/armored_elytra/function/try_to_armor_elytra.mcfunction @@ -0,0 +1,5 @@ +execute if score #found_chestplate armEly.dummy matches 1 run return 0 +scoreboard players set #found_chestplate armEly.dummy 1 +tag @s add armored_elytra.chestplate +execute as @e[type=minecraft:item,tag=armored_elytra.elytra,dx=0,dy=0,dz=0,limit=1] at @s run function armored_elytra:armor_elytra +tag @s remove armored_elytra.chestplate \ No newline at end of file diff --git a/datapacks/armored-elytra/data/armored_elytra/function/uninstall.mcfunction b/datapacks/armored-elytra/data/armored_elytra/function/uninstall.mcfunction new file mode 100755 index 0000000..20733d0 --- /dev/null +++ b/datapacks/armored-elytra/data/armored_elytra/function/uninstall.mcfunction @@ -0,0 +1,9 @@ +schedule clear armored_elytra:tick +scoreboard objectives remove armEly.dummy +data remove storage armored_elytra:storage elytraEnch +data remove storage armored_elytra:storage chestplateEnch +data remove storage armored_elytra:storage finalEnch +data remove storage armored_elytra:storage enchantments +data remove storage armored_elytra:storage levels +data remove storage armored_elytra:storage item +data remove storage armored_elytra:storage temp \ No newline at end of file diff --git a/datapacks/armored-elytra/data/armored_elytra/item_modifier/armor/chain.json b/datapacks/armored-elytra/data/armored_elytra/item_modifier/armor/chain.json new file mode 100755 index 0000000..1627b31 --- /dev/null +++ b/datapacks/armored-elytra/data/armored_elytra/item_modifier/armor/chain.json @@ -0,0 +1,26 @@ +{ + "function": "minecraft:sequence", + "functions": [ + { + "function": "minecraft:set_custom_data", + "tag": "{armored_elytra:{armored:true}}" + }, + { + "function": "minecraft:set_attributes", + "replace": false, + "modifiers": [ + { + "id": "armored_elytra:armor", + "attribute": "minecraft:generic.armor", + "operation": "add_value", + "amount": 5.0, + "slot": "chest" + } + ] + }, + { + "function": "minecraft:set_custom_model_data", + "value": 13522552 + } + ] +} \ No newline at end of file diff --git a/datapacks/armored-elytra/data/armored_elytra/item_modifier/armor/diamond.json b/datapacks/armored-elytra/data/armored_elytra/item_modifier/armor/diamond.json new file mode 100755 index 0000000..dfe516b --- /dev/null +++ b/datapacks/armored-elytra/data/armored_elytra/item_modifier/armor/diamond.json @@ -0,0 +1,33 @@ +{ + "function": "minecraft:sequence", + "functions": [ + { + "function": "minecraft:set_custom_data", + "tag": "{armored_elytra:{armored:true}}" + }, + { + "function": "minecraft:set_attributes", + "replace": false, + "modifiers": [ + { + "id": "armored_elytra:armor", + "attribute": "minecraft:generic.armor", + "operation": "add_value", + "amount": 8.0, + "slot": "chest" + }, + { + "id": "armored_elytra:armor_toughness", + "attribute": "minecraft:generic.armor_toughness", + "operation": "add_value", + "amount": 2.0, + "slot": "chest" + } + ] + }, + { + "function": "minecraft:set_custom_model_data", + "value": 13522555 + } + ] +} \ No newline at end of file diff --git a/datapacks/armored-elytra/data/armored_elytra/item_modifier/armor/gold.json b/datapacks/armored-elytra/data/armored_elytra/item_modifier/armor/gold.json new file mode 100755 index 0000000..0fa7d60 --- /dev/null +++ b/datapacks/armored-elytra/data/armored_elytra/item_modifier/armor/gold.json @@ -0,0 +1,26 @@ +{ + "function": "minecraft:sequence", + "functions": [ + { + "function": "minecraft:set_custom_data", + "tag": "{armored_elytra:{armored:true}}" + }, + { + "function": "minecraft:set_attributes", + "replace": false, + "modifiers": [ + { + "id": "armored_elytra:armor", + "attribute": "minecraft:generic.armor", + "operation": "add_value", + "amount": 5.0, + "slot": "chest" + } + ] + }, + { + "function": "minecraft:set_custom_model_data", + "value": 13522553 + } + ] +} \ No newline at end of file diff --git a/datapacks/armored-elytra/data/armored_elytra/item_modifier/armor/iron.json b/datapacks/armored-elytra/data/armored_elytra/item_modifier/armor/iron.json new file mode 100755 index 0000000..fd1b08e --- /dev/null +++ b/datapacks/armored-elytra/data/armored_elytra/item_modifier/armor/iron.json @@ -0,0 +1,26 @@ +{ + "function": "minecraft:sequence", + "functions": [ + { + "function": "minecraft:set_custom_data", + "tag": "{armored_elytra:{armored:true}}" + }, + { + "function": "minecraft:set_attributes", + "replace": false, + "modifiers": [ + { + "id": "armored_elytra:armor", + "attribute": "minecraft:generic.armor", + "operation": "add_value", + "amount": 6.0, + "slot": "chest" + } + ] + }, + { + "function": "minecraft:set_custom_model_data", + "value": 13522554 + } + ] +} \ No newline at end of file diff --git a/datapacks/armored-elytra/data/armored_elytra/item_modifier/armor/leather.json b/datapacks/armored-elytra/data/armored_elytra/item_modifier/armor/leather.json new file mode 100755 index 0000000..0e21df8 --- /dev/null +++ b/datapacks/armored-elytra/data/armored_elytra/item_modifier/armor/leather.json @@ -0,0 +1,26 @@ +{ + "function": "minecraft:sequence", + "functions": [ + { + "function": "minecraft:set_custom_data", + "tag": "{armored_elytra:{armored:true}}" + }, + { + "function": "minecraft:set_attributes", + "replace": false, + "modifiers": [ + { + "id": "armored_elytra:armor", + "attribute": "minecraft:generic.armor", + "operation": "add_value", + "amount": 3.0, + "slot": "chest" + } + ] + }, + { + "function": "minecraft:set_custom_model_data", + "value": 13522551 + } + ] +} \ No newline at end of file diff --git a/datapacks/armored-elytra/data/armored_elytra/item_modifier/armor/netherite.json b/datapacks/armored-elytra/data/armored_elytra/item_modifier/armor/netherite.json new file mode 100755 index 0000000..7f7dcf9 --- /dev/null +++ b/datapacks/armored-elytra/data/armored_elytra/item_modifier/armor/netherite.json @@ -0,0 +1,40 @@ +{ + "function": "minecraft:sequence", + "functions": [ + { + "function": "minecraft:set_custom_data", + "tag": "{armored_elytra:{armored:true}}" + }, + { + "function": "minecraft:set_attributes", + "replace": false, + "modifiers": [ + { + "id": "armored_elytra:armor", + "attribute": "minecraft:generic.armor", + "operation": "add_value", + "amount": 8.0, + "slot": "chest" + }, + { + "id": "armored_elytra:armor_toughness", + "attribute": "minecraft:generic.armor_toughness", + "operation": "add_value", + "amount": 3.0, + "slot": "chest" + }, + { + "id": "armored_elytra:knockback_resistance", + "attribute": "minecraft:generic.knockback_resistance", + "operation": "add_value", + "amount": 0.1, + "slot": "chest" + } + ] + }, + { + "function": "minecraft:set_custom_model_data", + "value": 13522556 + } + ] +} \ No newline at end of file diff --git a/datapacks/armored-elytra/data/armored_elytra/item_modifier/lore.json b/datapacks/armored-elytra/data/armored_elytra/item_modifier/lore.json new file mode 100755 index 0000000..6e18794 --- /dev/null +++ b/datapacks/armored-elytra/data/armored_elytra/item_modifier/lore.json @@ -0,0 +1,8 @@ +{ + "function": "minecraft:set_lore", + "entity": "this", + "mode": "append", + "lore": [ + ["",{"text":"+ ","color":"gold","italic":false},{"selector":"@e[type=minecraft:item,tag=armored_elytra.chestplate,limit=1]","color":"gold","italic":false}] + ] +} \ No newline at end of file diff --git a/datapacks/armored-elytra/data/armored_elytra/item_modifier/named_lore.json b/datapacks/armored-elytra/data/armored_elytra/item_modifier/named_lore.json new file mode 100755 index 0000000..d9ffe61 --- /dev/null +++ b/datapacks/armored-elytra/data/armored_elytra/item_modifier/named_lore.json @@ -0,0 +1,8 @@ +{ + "function": "minecraft:set_lore", + "entity": "this", + "mode": "append", + "lore": [ + ["",{"text":"+ ","color":"gold","italic":false},{"entity":"@e[type=minecraft:item,tag=armored_elytra.chestplate,limit=1]","nbt":"Item.components.minecraft:custom_name","interpret":true,"color":"gold","italic":true}] + ] +} \ No newline at end of file diff --git a/datapacks/armored-elytra/data/armored_elytra/predicate/on_fire.json b/datapacks/armored-elytra/data/armored_elytra/predicate/on_fire.json new file mode 100755 index 0000000..92cb51a --- /dev/null +++ b/datapacks/armored-elytra/data/armored_elytra/predicate/on_fire.json @@ -0,0 +1,9 @@ +{ + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "flags": { + "is_on_fire": true + } + } +} diff --git a/datapacks/armored-elytra/data/armored_elytra/tags/item/chestplates.json b/datapacks/armored-elytra/data/armored_elytra/tags/item/chestplates.json new file mode 100755 index 0000000..a6dde8a --- /dev/null +++ b/datapacks/armored-elytra/data/armored_elytra/tags/item/chestplates.json @@ -0,0 +1,10 @@ +{ + "values": [ + "minecraft:leather_chestplate", + "minecraft:chainmail_chestplate", + "minecraft:iron_chestplate", + "minecraft:diamond_chestplate", + "minecraft:golden_chestplate", + "minecraft:netherite_chestplate" + ] +} diff --git a/datapacks/armored-elytra/data/minecraft/tags/function/load.json b/datapacks/armored-elytra/data/minecraft/tags/function/load.json new file mode 100755 index 0000000..aab3a67 --- /dev/null +++ b/datapacks/armored-elytra/data/minecraft/tags/function/load.json @@ -0,0 +1 @@ +{"replace":false,"values":["armored_elytra:load","armored_elytra:tick","armored_elytra:schedule"]} \ No newline at end of file diff --git a/datapacks/armored-elytra/data/vanillatweaks/advancement/armored_elytra.json b/datapacks/armored-elytra/data/vanillatweaks/advancement/armored_elytra.json new file mode 100755 index 0000000..8935b01 --- /dev/null +++ b/datapacks/armored-elytra/data/vanillatweaks/advancement/armored_elytra.json @@ -0,0 +1,18 @@ +{ + "display": { + "icon": { + "id": "minecraft:elytra", + "components": {"minecraft:custom_model_data":13522556} + }, + "title": "Armored Elytra ", + "description": ["",{"text":"Drop","color":"green"},{"text":" elytra and a chestplate above an anvil to merge them into one item.\n","color":"gold"},{"text":"Drop","color":"green"},{"text":" the merged item above a grindstone to separate them again.\n","color":"gold"},{"text":"Enchantments","color":"green"},{"text":" are kept safely between merging and separating.\n","color":"gold"},{"text":"Burning","color":"green"},{"text":" netherite armored elytra will keep the chestplate but burn off the elytra.","color":"gold"}], + "show_toast": false, + "announce_to_chat": false + }, + "parent": "vanillatweaks:root", + "criteria": { + "tick": { + "trigger": "minecraft:tick" + } + } +} diff --git a/datapacks/armored-elytra/data/vanillatweaks/advancement/root.json b/datapacks/armored-elytra/data/vanillatweaks/advancement/root.json new file mode 100755 index 0000000..f8494e1 --- /dev/null +++ b/datapacks/armored-elytra/data/vanillatweaks/advancement/root.json @@ -0,0 +1,19 @@ +{ + "display": { + "icon": { + "id": "minecraft:player_head", + "components": {"profile":{"properties":[{"name":"textures","value":"eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMTg1YzMzNWM1MjVjZGFkY2Q4MmU4MDA4MzU1N2M2OTYzMGRmYjlhMWVkZjU5OTc0YzdmNjU4ZGI1MWEwYTFkOSJ9fX0="}]}} + }, + "title": "Vanilla Tweaks", + "frame": "challenge", + "description": ["",{"text":"All loaded Vanilla Tweaks data packs\n","color":"gold"},{"text":"vanillatweaks.net","color":"yellow"}], + "background": "minecraft:textures/block/black_concrete.png", + "show_toast": false, + "announce_to_chat": false + }, + "criteria": { + "tick": { + "trigger": "minecraft:tick" + } + } +} diff --git a/datapacks/armored-elytra/data/vanillatweaks/tags/function/uninstall.json b/datapacks/armored-elytra/data/vanillatweaks/tags/function/uninstall.json new file mode 100755 index 0000000..6f08960 --- /dev/null +++ b/datapacks/armored-elytra/data/vanillatweaks/tags/function/uninstall.json @@ -0,0 +1,5 @@ +{ + "values": [ + "armored_elytra:uninstall" + ] +} diff --git a/datapacks/armored-elytra/overlay_57/data/armored_elytra/item_modifier/armor/chain.json b/datapacks/armored-elytra/overlay_57/data/armored_elytra/item_modifier/armor/chain.json new file mode 100755 index 0000000..6f171f8 --- /dev/null +++ b/datapacks/armored-elytra/overlay_57/data/armored_elytra/item_modifier/armor/chain.json @@ -0,0 +1,26 @@ +{ + "function": "minecraft:sequence", + "functions": [ + { + "function": "minecraft:set_custom_data", + "tag": "{armored_elytra:{armored:true}}" + }, + { + "function": "minecraft:set_attributes", + "replace": false, + "modifiers": [ + { + "id": "armored_elytra:armor", + "attribute": "minecraft:armor", + "operation": "add_value", + "amount": 5.0, + "slot": "chest" + } + ] + }, + { + "function": "minecraft:set_custom_model_data", + "value": 13522552 + } + ] +} \ No newline at end of file diff --git a/datapacks/armored-elytra/overlay_57/data/armored_elytra/item_modifier/armor/diamond.json b/datapacks/armored-elytra/overlay_57/data/armored_elytra/item_modifier/armor/diamond.json new file mode 100755 index 0000000..af030a6 --- /dev/null +++ b/datapacks/armored-elytra/overlay_57/data/armored_elytra/item_modifier/armor/diamond.json @@ -0,0 +1,33 @@ +{ + "function": "minecraft:sequence", + "functions": [ + { + "function": "minecraft:set_custom_data", + "tag": "{armored_elytra:{armored:true}}" + }, + { + "function": "minecraft:set_attributes", + "replace": false, + "modifiers": [ + { + "id": "armored_elytra:armor", + "attribute": "minecraft:armor", + "operation": "add_value", + "amount": 8.0, + "slot": "chest" + }, + { + "id": "armored_elytra:armor_toughness", + "attribute": "minecraft:armor_toughness", + "operation": "add_value", + "amount": 2.0, + "slot": "chest" + } + ] + }, + { + "function": "minecraft:set_custom_model_data", + "value": 13522555 + } + ] +} \ No newline at end of file diff --git a/datapacks/armored-elytra/overlay_57/data/armored_elytra/item_modifier/armor/gold.json b/datapacks/armored-elytra/overlay_57/data/armored_elytra/item_modifier/armor/gold.json new file mode 100755 index 0000000..4ffd7e5 --- /dev/null +++ b/datapacks/armored-elytra/overlay_57/data/armored_elytra/item_modifier/armor/gold.json @@ -0,0 +1,26 @@ +{ + "function": "minecraft:sequence", + "functions": [ + { + "function": "minecraft:set_custom_data", + "tag": "{armored_elytra:{armored:true}}" + }, + { + "function": "minecraft:set_attributes", + "replace": false, + "modifiers": [ + { + "id": "armored_elytra:armor", + "attribute": "minecraft:armor", + "operation": "add_value", + "amount": 5.0, + "slot": "chest" + } + ] + }, + { + "function": "minecraft:set_custom_model_data", + "value": 13522553 + } + ] +} \ No newline at end of file diff --git a/datapacks/armored-elytra/overlay_57/data/armored_elytra/item_modifier/armor/iron.json b/datapacks/armored-elytra/overlay_57/data/armored_elytra/item_modifier/armor/iron.json new file mode 100755 index 0000000..c58980a --- /dev/null +++ b/datapacks/armored-elytra/overlay_57/data/armored_elytra/item_modifier/armor/iron.json @@ -0,0 +1,26 @@ +{ + "function": "minecraft:sequence", + "functions": [ + { + "function": "minecraft:set_custom_data", + "tag": "{armored_elytra:{armored:true}}" + }, + { + "function": "minecraft:set_attributes", + "replace": false, + "modifiers": [ + { + "id": "armored_elytra:armor", + "attribute": "minecraft:armor", + "operation": "add_value", + "amount": 6.0, + "slot": "chest" + } + ] + }, + { + "function": "minecraft:set_custom_model_data", + "value": 13522554 + } + ] +} \ No newline at end of file diff --git a/datapacks/armored-elytra/overlay_57/data/armored_elytra/item_modifier/armor/leather.json b/datapacks/armored-elytra/overlay_57/data/armored_elytra/item_modifier/armor/leather.json new file mode 100755 index 0000000..946a0f5 --- /dev/null +++ b/datapacks/armored-elytra/overlay_57/data/armored_elytra/item_modifier/armor/leather.json @@ -0,0 +1,26 @@ +{ + "function": "minecraft:sequence", + "functions": [ + { + "function": "minecraft:set_custom_data", + "tag": "{armored_elytra:{armored:true}}" + }, + { + "function": "minecraft:set_attributes", + "replace": false, + "modifiers": [ + { + "id": "armored_elytra:armor", + "attribute": "minecraft:armor", + "operation": "add_value", + "amount": 3.0, + "slot": "chest" + } + ] + }, + { + "function": "minecraft:set_custom_model_data", + "value": 13522551 + } + ] +} \ No newline at end of file diff --git a/datapacks/armored-elytra/overlay_57/data/armored_elytra/item_modifier/armor/netherite.json b/datapacks/armored-elytra/overlay_57/data/armored_elytra/item_modifier/armor/netherite.json new file mode 100755 index 0000000..336c3e2 --- /dev/null +++ b/datapacks/armored-elytra/overlay_57/data/armored_elytra/item_modifier/armor/netherite.json @@ -0,0 +1,40 @@ +{ + "function": "minecraft:sequence", + "functions": [ + { + "function": "minecraft:set_custom_data", + "tag": "{armored_elytra:{armored:true}}" + }, + { + "function": "minecraft:set_attributes", + "replace": false, + "modifiers": [ + { + "id": "armored_elytra:armor", + "attribute": "minecraft:armor", + "operation": "add_value", + "amount": 8.0, + "slot": "chest" + }, + { + "id": "armored_elytra:armor_toughness", + "attribute": "minecraft:armor_toughness", + "operation": "add_value", + "amount": 3.0, + "slot": "chest" + }, + { + "id": "armored_elytra:knockback_resistance", + "attribute": "minecraft:knockback_resistance", + "operation": "add_value", + "amount": 0.1, + "slot": "chest" + } + ] + }, + { + "function": "minecraft:set_custom_model_data", + "value": 13522556 + } + ] +} \ No newline at end of file diff --git a/datapacks/armored-elytra/overlay_61/data/armored_elytra/item_modifier/armor/chain.json b/datapacks/armored-elytra/overlay_61/data/armored_elytra/item_modifier/armor/chain.json new file mode 100755 index 0000000..9c522d1 --- /dev/null +++ b/datapacks/armored-elytra/overlay_61/data/armored_elytra/item_modifier/armor/chain.json @@ -0,0 +1,29 @@ +{ + "function": "minecraft:sequence", + "functions": [ + { + "function": "minecraft:set_custom_data", + "tag": "{armored_elytra:{armored:true}}" + }, + { + "function": "minecraft:set_attributes", + "replace": false, + "modifiers": [ + { + "id": "armored_elytra:armor", + "attribute": "minecraft:armor", + "operation": "add_value", + "amount": 5.0, + "slot": "chest" + } + ] + }, + { + "function": "minecraft:set_custom_model_data", + "floats": { + "values": [13522552], + "mode": "replace_all" + } + } + ] +} \ No newline at end of file diff --git a/datapacks/armored-elytra/overlay_61/data/armored_elytra/item_modifier/armor/diamond.json b/datapacks/armored-elytra/overlay_61/data/armored_elytra/item_modifier/armor/diamond.json new file mode 100755 index 0000000..25cc137 --- /dev/null +++ b/datapacks/armored-elytra/overlay_61/data/armored_elytra/item_modifier/armor/diamond.json @@ -0,0 +1,36 @@ +{ + "function": "minecraft:sequence", + "functions": [ + { + "function": "minecraft:set_custom_data", + "tag": "{armored_elytra:{armored:true}}" + }, + { + "function": "minecraft:set_attributes", + "replace": false, + "modifiers": [ + { + "id": "armored_elytra:armor", + "attribute": "minecraft:armor", + "operation": "add_value", + "amount": 8.0, + "slot": "chest" + }, + { + "id": "armored_elytra:armor_toughness", + "attribute": "minecraft:armor_toughness", + "operation": "add_value", + "amount": 2.0, + "slot": "chest" + } + ] + }, + { + "function": "minecraft:set_custom_model_data", + "floats": { + "values": [13522555], + "mode": "replace_all" + } + } + ] +} \ No newline at end of file diff --git a/datapacks/armored-elytra/overlay_61/data/armored_elytra/item_modifier/armor/gold.json b/datapacks/armored-elytra/overlay_61/data/armored_elytra/item_modifier/armor/gold.json new file mode 100755 index 0000000..cf9a9a4 --- /dev/null +++ b/datapacks/armored-elytra/overlay_61/data/armored_elytra/item_modifier/armor/gold.json @@ -0,0 +1,29 @@ +{ + "function": "minecraft:sequence", + "functions": [ + { + "function": "minecraft:set_custom_data", + "tag": "{armored_elytra:{armored:true}}" + }, + { + "function": "minecraft:set_attributes", + "replace": false, + "modifiers": [ + { + "id": "armored_elytra:armor", + "attribute": "minecraft:armor", + "operation": "add_value", + "amount": 5.0, + "slot": "chest" + } + ] + }, + { + "function": "minecraft:set_custom_model_data", + "floats": { + "values": [13522553], + "mode": "replace_all" + } + } + ] +} \ No newline at end of file diff --git a/datapacks/armored-elytra/overlay_61/data/armored_elytra/item_modifier/armor/iron.json b/datapacks/armored-elytra/overlay_61/data/armored_elytra/item_modifier/armor/iron.json new file mode 100755 index 0000000..5a08dc7 --- /dev/null +++ b/datapacks/armored-elytra/overlay_61/data/armored_elytra/item_modifier/armor/iron.json @@ -0,0 +1,29 @@ +{ + "function": "minecraft:sequence", + "functions": [ + { + "function": "minecraft:set_custom_data", + "tag": "{armored_elytra:{armored:true}}" + }, + { + "function": "minecraft:set_attributes", + "replace": false, + "modifiers": [ + { + "id": "armored_elytra:armor", + "attribute": "minecraft:armor", + "operation": "add_value", + "amount": 6.0, + "slot": "chest" + } + ] + }, + { + "function": "minecraft:set_custom_model_data", + "floats": { + "values": [13522554], + "mode": "replace_all" + } + } + ] +} \ No newline at end of file diff --git a/datapacks/armored-elytra/overlay_61/data/armored_elytra/item_modifier/armor/leather.json b/datapacks/armored-elytra/overlay_61/data/armored_elytra/item_modifier/armor/leather.json new file mode 100755 index 0000000..29fff4b --- /dev/null +++ b/datapacks/armored-elytra/overlay_61/data/armored_elytra/item_modifier/armor/leather.json @@ -0,0 +1,29 @@ +{ + "function": "minecraft:sequence", + "functions": [ + { + "function": "minecraft:set_custom_data", + "tag": "{armored_elytra:{armored:true}}" + }, + { + "function": "minecraft:set_attributes", + "replace": false, + "modifiers": [ + { + "id": "armored_elytra:armor", + "attribute": "minecraft:armor", + "operation": "add_value", + "amount": 3.0, + "slot": "chest" + } + ] + }, + { + "function": "minecraft:set_custom_model_data", + "floats": { + "values": [13522551], + "mode": "replace_all" + } + } + ] +} \ No newline at end of file diff --git a/datapacks/armored-elytra/overlay_61/data/armored_elytra/item_modifier/armor/netherite.json b/datapacks/armored-elytra/overlay_61/data/armored_elytra/item_modifier/armor/netherite.json new file mode 100755 index 0000000..97826ae --- /dev/null +++ b/datapacks/armored-elytra/overlay_61/data/armored_elytra/item_modifier/armor/netherite.json @@ -0,0 +1,43 @@ +{ + "function": "minecraft:sequence", + "functions": [ + { + "function": "minecraft:set_custom_data", + "tag": "{armored_elytra:{armored:true}}" + }, + { + "function": "minecraft:set_attributes", + "replace": false, + "modifiers": [ + { + "id": "armored_elytra:armor", + "attribute": "minecraft:armor", + "operation": "add_value", + "amount": 8.0, + "slot": "chest" + }, + { + "id": "armored_elytra:armor_toughness", + "attribute": "minecraft:armor_toughness", + "operation": "add_value", + "amount": 3.0, + "slot": "chest" + }, + { + "id": "armored_elytra:knockback_resistance", + "attribute": "minecraft:knockback_resistance", + "operation": "add_value", + "amount": 0.1, + "slot": "chest" + } + ] + }, + { + "function": "minecraft:set_custom_model_data", + "floats": { + "values": [13522556], + "mode": "replace_all" + } + } + ] +} \ No newline at end of file diff --git a/datapacks/armored-elytra/overlay_61/data/vanillatweaks/advancement/armored_elytra.json b/datapacks/armored-elytra/overlay_61/data/vanillatweaks/advancement/armored_elytra.json new file mode 100755 index 0000000..04a9360 --- /dev/null +++ b/datapacks/armored-elytra/overlay_61/data/vanillatweaks/advancement/armored_elytra.json @@ -0,0 +1,18 @@ +{ + "display": { + "icon": { + "id": "minecraft:elytra", + "components": {"minecraft:custom_model_data":{"floats":[13522556]}} + }, + "title": "Armored Elytra ", + "description": ["",{"text":"Drop","color":"green"},{"text":" elytra and a chestplate above an anvil to merge them into one item.\n","color":"gold"},{"text":"Drop","color":"green"},{"text":" the merged item above a grindstone to separate them again.\n","color":"gold"},{"text":"Enchantments","color":"green"},{"text":" are kept safely between merging and separating.\n","color":"gold"},{"text":"Burning","color":"green"},{"text":" netherite armored elytra will keep the chestplate but burn off the elytra.","color":"gold"}], + "show_toast": false, + "announce_to_chat": false + }, + "parent": "vanillatweaks:root", + "criteria": { + "tick": { + "trigger": "minecraft:tick" + } + } +} diff --git a/datapacks/armored-elytra/overlay_71/data/armored_elytra/function/armor_elytra.mcfunction b/datapacks/armored-elytra/overlay_71/data/armored_elytra/function/armor_elytra.mcfunction new file mode 100755 index 0000000..ac2006e --- /dev/null +++ b/datapacks/armored-elytra/overlay_71/data/armored_elytra/function/armor_elytra.mcfunction @@ -0,0 +1,22 @@ +data modify entity @s Item.components.minecraft:bundle_contents append from entity @s Item +data modify entity @s Item.components.minecraft:bundle_contents prepend from entity @e[type=minecraft:item,tag=armored_elytra.chestplate,distance=..2,limit=1] Item +data modify entity @s PickupDelay set value 0s +execute if items entity @e[type=minecraft:item,tag=armored_elytra.chestplate,distance=..2,limit=1] contents minecraft:netherite_chestplate run item modify entity @s contents armored_elytra:armor/netherite +execute if items entity @e[type=minecraft:item,tag=armored_elytra.chestplate,distance=..2,limit=1] contents minecraft:diamond_chestplate run item modify entity @s contents armored_elytra:armor/diamond +execute if items entity @e[type=minecraft:item,tag=armored_elytra.chestplate,distance=..2,limit=1] contents minecraft:iron_chestplate run item modify entity @s contents armored_elytra:armor/iron +execute if items entity @e[type=minecraft:item,tag=armored_elytra.chestplate,distance=..2,limit=1] contents minecraft:golden_chestplate run item modify entity @s contents armored_elytra:armor/gold +execute if items entity @e[type=minecraft:item,tag=armored_elytra.chestplate,distance=..2,limit=1] contents minecraft:chainmail_chestplate run item modify entity @s contents armored_elytra:armor/chain +execute if items entity @e[type=minecraft:item,tag=armored_elytra.chestplate,distance=..2,limit=1] contents minecraft:leather_chestplate run item modify entity @s contents armored_elytra:armor/leather +execute store success score #success armEly.dummy if items entity @e[type=minecraft:item,tag=armored_elytra.chestplate,distance=..2,limit=1] contents *[minecraft:custom_name] +execute if score #success armEly.dummy matches 1 run item modify entity @s contents armored_elytra:named_lore +execute unless score #success armEly.dummy matches 1 run item modify entity @s contents armored_elytra:lore +execute store result score #elytraValue armEly.dummy run data get entity @s Item.components.minecraft:repair_cost +data modify storage armored_elytra:storage enchantments set value [] +data modify storage armored_elytra:storage parse_enchantments_args.levels set from entity @s Item.components.minecraft:enchantments +function armored_elytra:parse_enchantments/start with storage armored_elytra:storage parse_enchantments_args +data modify storage armored_elytra:storage elytraEnch set from storage armored_elytra:storage enchantments +execute as @e[type=minecraft:item,tag=armored_elytra.chestplate,distance=..2,limit=1] run function armored_elytra:store_chestplate_values +execute store result entity @s Item.components.minecraft:repair_cost int 1 run scoreboard players operation #elytraValue armEly.dummy += #chestplateValue armEly.dummy +function armored_elytra:merge_enchantments/start +kill @e[type=minecraft:item,tag=armored_elytra.chestplate,distance=..2,limit=1] +playsound minecraft:block.anvil.use block @a \ No newline at end of file diff --git a/datapacks/armored-elytra/overlay_71/data/armored_elytra/function/break_armored_elytra.mcfunction b/datapacks/armored-elytra/overlay_71/data/armored_elytra/function/break_armored_elytra.mcfunction new file mode 100755 index 0000000..c7a8526 --- /dev/null +++ b/datapacks/armored-elytra/overlay_71/data/armored_elytra/function/break_armored_elytra.mcfunction @@ -0,0 +1,8 @@ +advancement revoke @s only armored_elytra:break_armored_elytra +tag @s add armored_elytra.subject +data modify storage armored_elytra:storage item set from entity @s equipment.chest +data modify storage armored_elytra:storage item.components.minecraft:damage set value 431 +function armored_elytra:separate_enchantments/start +execute as @e[type=minecraft:item,tag=armored_elytra.separated] run function armored_elytra:set_owner +item replace entity @s armor.chest with minecraft:air +tag @s remove armored_elytra.subject \ No newline at end of file diff --git a/datapacks/armored-elytra/overlay_71/data/armored_elytra/function/merge_enchantments/start.mcfunction b/datapacks/armored-elytra/overlay_71/data/armored_elytra/function/merge_enchantments/start.mcfunction new file mode 100755 index 0000000..127372a --- /dev/null +++ b/datapacks/armored-elytra/overlay_71/data/armored_elytra/function/merge_enchantments/start.mcfunction @@ -0,0 +1,8 @@ +data modify storage armored_elytra:storage finalEnch set value [] +execute store result score #chestplateRemaining armEly.dummy run data get storage armored_elytra:storage chestplateEnch +execute store result score #elytraTotal armEly.dummy run data get storage armored_elytra:storage elytraEnch +execute unless score #chestplateRemaining armEly.dummy matches 0 run function armored_elytra:merge_enchantments/shift_chestplate_enchantment +execute unless score #elytraTotal armEly.dummy matches 0 run function armored_elytra:merge_enchantments/add_enchantment_from_elytra +data modify storage armored_elytra:storage enchantments set from storage armored_elytra:storage finalEnch +function armored_elytra:construct_levels_compound/start +data modify entity @s Item.components.minecraft:enchantments set from storage armored_elytra:storage levels \ No newline at end of file diff --git a/datapacks/armored-elytra/overlay_71/data/armored_elytra/function/parse_enchantments/start.mcfunction b/datapacks/armored-elytra/overlay_71/data/armored_elytra/function/parse_enchantments/start.mcfunction new file mode 100755 index 0000000..e3cf9e6 --- /dev/null +++ b/datapacks/armored-elytra/overlay_71/data/armored_elytra/function/parse_enchantments/start.mcfunction @@ -0,0 +1,11 @@ +# Thanks Darukshock for drafting this algorithm! +$data modify storage armored_elytra:storage levels_string set value '$(levels)' +data remove storage armored_elytra:storage parse_enchantments_args +data modify storage armored_elytra:storage enchantments set value [] +data modify storage armored_elytra:storage id set value "" +data modify storage armored_elytra:storage lvl set value "" +scoreboard players set #in_id armEly.dummy 0 +function armored_elytra:parse_enchantments/next_char +data remove storage armored_elytra:storage id +data remove storage armored_elytra:storage lvl +data remove storage armored_elytra:storage levels_string \ No newline at end of file diff --git a/datapacks/armored-elytra/overlay_71/data/armored_elytra/function/separate_enchantments/start.mcfunction b/datapacks/armored-elytra/overlay_71/data/armored_elytra/function/separate_enchantments/start.mcfunction new file mode 100755 index 0000000..94e1ebd --- /dev/null +++ b/datapacks/armored-elytra/overlay_71/data/armored_elytra/function/separate_enchantments/start.mcfunction @@ -0,0 +1,40 @@ +summon minecraft:item ~ ~ ~ {Tags:["armored_elytra.separated","armored_elytra.elytra"],Item:{id:"minecraft:elytra"}} +summon minecraft:item ~ ~ ~ {Tags:["armored_elytra.separated","armored_elytra.chestplate"],Item:{id:"minecraft:chainmail_chestplate"}} +data modify storage armored_elytra:storage chestplate set from storage armored_elytra:storage item.components.minecraft:bundle_contents[0] +data modify storage armored_elytra:storage elytra set from storage armored_elytra:storage item.components.minecraft:bundle_contents[1] +data modify storage armored_elytra:storage enchantments set value [] +data modify storage armored_elytra:storage parse_enchantments_args.levels set from storage armored_elytra:storage elytra.components.minecraft:enchantments +function armored_elytra:parse_enchantments/start with storage armored_elytra:storage parse_enchantments_args +data modify storage armored_elytra:storage elytraEnch set from storage armored_elytra:storage enchantments +data modify storage armored_elytra:storage enchantments set value [] +data modify storage armored_elytra:storage parse_enchantments_args.levels set from storage armored_elytra:storage chestplate.components.minecraft:enchantments +function armored_elytra:parse_enchantments/start with storage armored_elytra:storage parse_enchantments_args +data modify storage armored_elytra:storage chestplateEnch set from storage armored_elytra:storage enchantments +data modify storage armored_elytra:storage enchantments set value [] +data modify storage armored_elytra:storage parse_enchantments_args.levels set from storage armored_elytra:storage item.components.minecraft:enchantments +function armored_elytra:parse_enchantments/start with storage armored_elytra:storage parse_enchantments_args +execute store result score #elytraTotal armEly.dummy run data get storage armored_elytra:storage elytraEnch +execute store result score #chestplateTotal armEly.dummy run data get storage armored_elytra:storage chestplateEnch +execute unless score #elytraTotal armEly.dummy matches 0 unless score #chestplateTotal armEly.dummy matches 0 run function armored_elytra:separate_enchantments/start_to_iterate +execute store result score #remaining armEly.dummy run data get storage armored_elytra:storage enchantments +execute unless score #remaining armEly.dummy matches 0 run function armored_elytra:separate_enchantments/shift_enchantment +data modify storage armored_elytra:storage enchantments set from storage armored_elytra:storage elytraFinalEnch +function armored_elytra:construct_levels_compound/start +data modify storage armored_elytra:storage elytra.components.minecraft:enchantments set from storage armored_elytra:storage levels +data modify storage armored_elytra:storage enchantments set from storage armored_elytra:storage chestplateFinalEnch +function armored_elytra:construct_levels_compound/start +data modify storage armored_elytra:storage chestplate.components.minecraft:enchantments set from storage armored_elytra:storage levels +execute store success score #success armEly.dummy if data storage armored_elytra:storage item.components.minecraft:damage +execute if score #success armEly.dummy matches 1 run data modify storage armored_elytra:storage elytra.components.minecraft:damage set from storage armored_elytra:storage item.components.minecraft:damage +execute unless score #success armEly.dummy matches 1 run data remove storage armored_elytra:storage elytra.components.minecraft:damage +execute store success score #success armEly.dummy if data storage armored_elytra:storage item.components.minecraft:custom_name +execute if score #success armEly.dummy matches 1 run data modify storage armored_elytra:storage elytra.components.minecraft:custom_name set from storage armored_elytra:storage item.components.minecraft:custom_name +execute unless score #success armEly.dummy matches 1 run data remove storage armored_elytra:storage elytra.components.minecraft:custom_name +data modify entity @e[type=minecraft:item,tag=armored_elytra.elytra,distance=..0.01,limit=1] Item set from storage armored_elytra:storage elytra +data modify entity @e[type=minecraft:item,tag=armored_elytra.chestplate,distance=..0.01,limit=1] Item set from storage armored_elytra:storage chestplate +data remove storage armored_elytra:storage elytraFinalEnch +data remove storage armored_elytra:storage chestplateFinalEnch +data remove storage armored_elytra:storage elytra +data remove storage armored_elytra:storage chestplate +tag @e[type=minecraft:item,distance=..0.01] remove armored_elytra.elytra +tag @e[type=minecraft:item,distance=..0.01] remove armored_elytra.chestplate \ No newline at end of file diff --git a/datapacks/armored-elytra/overlay_71/data/armored_elytra/function/store_chestplate_values.mcfunction b/datapacks/armored-elytra/overlay_71/data/armored_elytra/function/store_chestplate_values.mcfunction new file mode 100755 index 0000000..761657d --- /dev/null +++ b/datapacks/armored-elytra/overlay_71/data/armored_elytra/function/store_chestplate_values.mcfunction @@ -0,0 +1,5 @@ +execute store result score #chestplateValue armEly.dummy run data get entity @s Item.components.minecraft:repair_cost +data modify storage armored_elytra:storage enchantments set value [] +data modify storage armored_elytra:storage parse_enchantments_args.levels set from entity @s Item.components.minecraft:enchantments +function armored_elytra:parse_enchantments/start with storage armored_elytra:storage parse_enchantments_args +data modify storage armored_elytra:storage chestplateEnch set from storage armored_elytra:storage enchantments \ No newline at end of file diff --git a/datapacks/armored-elytra/overlay_71/data/vanillatweaks/advancement/root.json b/datapacks/armored-elytra/overlay_71/data/vanillatweaks/advancement/root.json new file mode 100755 index 0000000..cd6751e --- /dev/null +++ b/datapacks/armored-elytra/overlay_71/data/vanillatweaks/advancement/root.json @@ -0,0 +1,38 @@ +{ + "display": { + "icon": { + "id": "minecraft:player_head", + "components": { + "profile": { + "properties": [ + { + "name": "textures", + "value": "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMTg1YzMzNWM1MjVjZGFkY2Q4MmU4MDA4MzU1N2M2OTYzMGRmYjlhMWVkZjU5OTc0YzdmNjU4ZGI1MWEwYTFkOSJ9fX0=" + } + ] + } + } + }, + "title": "Vanilla Tweaks", + "frame": "challenge", + "description": [ + "", + { + "text": "All loaded Vanilla Tweaks data packs\n", + "color": "gold" + }, + { + "text": "vanillatweaks.net", + "color": "yellow" + } + ], + "background": "minecraft:block/black_concrete", + "show_toast": false, + "announce_to_chat": false + }, + "criteria": { + "tick": { + "trigger": "minecraft:tick" + } + } +} \ No newline at end of file diff --git a/datapacks/armored-elytra/pack.mcmeta b/datapacks/armored-elytra/pack.mcmeta new file mode 100755 index 0000000..283d507 --- /dev/null +++ b/datapacks/armored-elytra/pack.mcmeta @@ -0,0 +1,44 @@ +{ + "pack": { + "pack_format": 48, + "supported_formats": { + "min_inclusive": 48, + "max_inclusive": 80 + }, + "description": [ + { + "text": "Armored Elytra", + "color": "gold" + }, + { + "text": "\nvanillatweaks.net", + "color": "yellow" + } + ] + }, + "overlays": { + "entries": [ + { + "formats": { + "min_inclusive": 57, + "max_inclusive": 2147483647 + }, + "directory": "overlay_57" + }, + { + "formats": { + "min_inclusive": 61, + "max_inclusive": 2147483647 + }, + "directory": "overlay_61" + }, + { + "formats": { + "min_inclusive": 71, + "max_inclusive": 2147483647 + }, + "directory": "overlay_71" + } + ] + } +} \ No newline at end of file diff --git a/datapacks/armored-elytra/pack.png b/datapacks/armored-elytra/pack.png new file mode 100755 index 0000000..bb05645 Binary files /dev/null and b/datapacks/armored-elytra/pack.png differ diff --git a/datapacks/bat-membranes/data/bat_membranes/function/load.mcfunction b/datapacks/bat-membranes/data/bat_membranes/function/load.mcfunction new file mode 100755 index 0000000..74c969a --- /dev/null +++ b/datapacks/bat-membranes/data/bat_membranes/function/load.mcfunction @@ -0,0 +1 @@ +gamerule doInsomnia false \ No newline at end of file diff --git a/datapacks/bat-membranes/data/bat_membranes/function/uninstall.mcfunction b/datapacks/bat-membranes/data/bat_membranes/function/uninstall.mcfunction new file mode 100755 index 0000000..beed684 --- /dev/null +++ b/datapacks/bat-membranes/data/bat_membranes/function/uninstall.mcfunction @@ -0,0 +1 @@ +gamerule doInsomnia true \ No newline at end of file diff --git a/datapacks/bat-membranes/data/bat_membranes/loot_table/entities/bat.json b/datapacks/bat-membranes/data/bat_membranes/loot_table/entities/bat.json new file mode 100755 index 0000000..7cac2f1 --- /dev/null +++ b/datapacks/bat-membranes/data/bat_membranes/loot_table/entities/bat.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:loot_table", + "value": "vanilla:entities/phantom" + } + ] + } + ] +} \ No newline at end of file diff --git a/datapacks/bat-membranes/data/minecraft/loot_table/entities/bat.json b/datapacks/bat-membranes/data/minecraft/loot_table/entities/bat.json new file mode 100755 index 0000000..7d36eda --- /dev/null +++ b/datapacks/bat-membranes/data/minecraft/loot_table/entities/bat.json @@ -0,0 +1,32 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:loot_table", + "value": "vanilla:entities/bat" + } + ] + }, + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:loot_table", + "value": "bat_membranes:entities/bat" + } + ] + }, + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:loot_table", + "value": "more_mob_heads:entities/bat" + } + ] + } + ] +} \ No newline at end of file diff --git a/datapacks/bat-membranes/data/minecraft/tags/function/load.json b/datapacks/bat-membranes/data/minecraft/tags/function/load.json new file mode 100755 index 0000000..d000968 --- /dev/null +++ b/datapacks/bat-membranes/data/minecraft/tags/function/load.json @@ -0,0 +1 @@ +{"replace":false,"values":["bat_membranes:load"]} \ No newline at end of file diff --git a/datapacks/bat-membranes/data/vanilla/loot_table/entities/bat.json b/datapacks/bat-membranes/data/vanilla/loot_table/entities/bat.json new file mode 100755 index 0000000..9b01c0f --- /dev/null +++ b/datapacks/bat-membranes/data/vanilla/loot_table/entities/bat.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:entity", + "random_sequence": "minecraft:entities/bat" +} \ No newline at end of file diff --git a/datapacks/bat-membranes/data/vanilla/loot_table/entities/phantom.json b/datapacks/bat-membranes/data/vanilla/loot_table/entities/phantom.json new file mode 100755 index 0000000..41254d6 --- /dev/null +++ b/datapacks/bat-membranes/data/vanilla/loot_table/entities/phantom.json @@ -0,0 +1,41 @@ +{ + "type": "minecraft:entity", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:killed_by_player" + } + ], + "entries": [ + { + "type": "minecraft:item", + "functions": [ + { + "add": false, + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "function": "minecraft:set_count" + }, + { + "count": { + "type": "minecraft:uniform", + "max": 1.0, + "min": 0.0 + }, + "enchantment": "minecraft:looting", + "function": "minecraft:enchanted_count_increase" + } + ], + "name": "minecraft:phantom_membrane" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:entities/phantom" +} \ No newline at end of file diff --git a/datapacks/bat-membranes/data/vanillatweaks/advancement/bat_membranes.json b/datapacks/bat-membranes/data/vanillatweaks/advancement/bat_membranes.json new file mode 100755 index 0000000..151042e --- /dev/null +++ b/datapacks/bat-membranes/data/vanillatweaks/advancement/bat_membranes.json @@ -0,0 +1,23 @@ +{ + "display": { + "icon": { + "id": "minecraft:phantom_membrane" + }, + "title": "Bat Membranes", + "description": [ + "", + { + "text": "Disable phantoms and get membranes from bats instead.", + "color": "gold" + } + ], + "show_toast": false, + "announce_to_chat": false + }, + "parent": "vanillatweaks:root", + "criteria": { + "tick": { + "trigger": "minecraft:tick" + } + } +} \ No newline at end of file diff --git a/datapacks/bat-membranes/data/vanillatweaks/advancement/root.json b/datapacks/bat-membranes/data/vanillatweaks/advancement/root.json new file mode 100755 index 0000000..962ef9d --- /dev/null +++ b/datapacks/bat-membranes/data/vanillatweaks/advancement/root.json @@ -0,0 +1,38 @@ +{ + "display": { + "icon": { + "id": "minecraft:player_head", + "components": { + "minecraft:profile": { + "properties": [ + { + "name": "textures", + "value": "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMTg1YzMzNWM1MjVjZGFkY2Q4MmU4MDA4MzU1N2M2OTYzMGRmYjlhMWVkZjU5OTc0YzdmNjU4ZGI1MWEwYTFkOSJ9fX0=" + } + ] + } + } + }, + "title": "Vanilla Tweaks", + "frame": "challenge", + "description": [ + "", + { + "text": "All loaded Vanilla Tweaks data packs\n", + "color": "gold" + }, + { + "text": "vanillatweaks.net", + "color": "yellow" + } + ], + "background": "minecraft:textures/block/black_concrete.png", + "show_toast": false, + "announce_to_chat": false + }, + "criteria": { + "tick": { + "trigger": "minecraft:tick" + } + } +} \ No newline at end of file diff --git a/datapacks/bat-membranes/data/vanillatweaks/tags/function/uninstall.json b/datapacks/bat-membranes/data/vanillatweaks/tags/function/uninstall.json new file mode 100755 index 0000000..2fb9878 --- /dev/null +++ b/datapacks/bat-membranes/data/vanillatweaks/tags/function/uninstall.json @@ -0,0 +1,5 @@ +{ + "values": [ + "bat_membranes:uninstall" + ] +} diff --git a/datapacks/bat-membranes/overlay_71/data/vanillatweaks/advancement/root.json b/datapacks/bat-membranes/overlay_71/data/vanillatweaks/advancement/root.json new file mode 100755 index 0000000..ee397ab --- /dev/null +++ b/datapacks/bat-membranes/overlay_71/data/vanillatweaks/advancement/root.json @@ -0,0 +1,38 @@ +{ + "display": { + "icon": { + "id": "minecraft:player_head", + "components": { + "minecraft:profile": { + "properties": [ + { + "name": "textures", + "value": "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMTg1YzMzNWM1MjVjZGFkY2Q4MmU4MDA4MzU1N2M2OTYzMGRmYjlhMWVkZjU5OTc0YzdmNjU4ZGI1MWEwYTFkOSJ9fX0=" + } + ] + } + } + }, + "title": "Vanilla Tweaks", + "frame": "challenge", + "description": [ + "", + { + "text": "All loaded Vanilla Tweaks data packs\n", + "color": "gold" + }, + { + "text": "vanillatweaks.net", + "color": "yellow" + } + ], + "background": "minecraft:block/black_concrete", + "show_toast": false, + "announce_to_chat": false + }, + "criteria": { + "tick": { + "trigger": "minecraft:tick" + } + } +} \ No newline at end of file diff --git a/datapacks/bat-membranes/pack.mcmeta b/datapacks/bat-membranes/pack.mcmeta new file mode 100755 index 0000000..bff9fd3 --- /dev/null +++ b/datapacks/bat-membranes/pack.mcmeta @@ -0,0 +1,30 @@ +{ + "pack": { + "pack_format": 48, + "supported_formats": { + "min_inclusive": 48, + "max_inclusive": 80 + }, + "description": [ + { + "text": "Bat Membranes", + "color": "gold" + }, + { + "text": "\nvanillatweaks.net", + "color": "yellow" + } + ] + }, + "overlays": { + "entries": [ + { + "formats": { + "min_inclusive": 71, + "max_inclusive": 2147483647 + }, + "directory": "overlay_71" + } + ] + } +} \ No newline at end of file diff --git a/datapacks/bat-membranes/pack.png b/datapacks/bat-membranes/pack.png new file mode 100755 index 0000000..a06a961 Binary files /dev/null and b/datapacks/bat-membranes/pack.png differ diff --git a/datapacks/craft-refine/data/bamboo/advancement/recipes/building_blocks/bamboo.json b/datapacks/craft-refine/data/bamboo/advancement/recipes/building_blocks/bamboo.json new file mode 100755 index 0000000..fd48189 --- /dev/null +++ b/datapacks/craft-refine/data/bamboo/advancement/recipes/building_blocks/bamboo.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_bamboo_block": { + "conditions": { + "items": [ + { + "items": "minecraft:bamboo_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "bamboo:bamboo" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_bamboo_block" + ] + ], + "rewards": { + "recipes": [ + "bamboo:bamboo" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/bamboo/recipe/bamboo.json b/datapacks/craft-refine/data/bamboo/recipe/bamboo.json new file mode 100755 index 0000000..3668dc1 --- /dev/null +++ b/datapacks/craft-refine/data/bamboo/recipe/bamboo.json @@ -0,0 +1,11 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "ingredients": [ + "#minecraft:bamboo_blocks" + ], + "result": { + "count": 9, + "id": "minecraft:bamboo" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/blastbuff/advancement/recipes/misc/copper_block_from_blasting_raw_copper_block.json b/datapacks/craft-refine/data/blastbuff/advancement/recipes/misc/copper_block_from_blasting_raw_copper_block.json new file mode 100755 index 0000000..797728e --- /dev/null +++ b/datapacks/craft-refine/data/blastbuff/advancement/recipes/misc/copper_block_from_blasting_raw_copper_block.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_raw_copper_block": { + "conditions": { + "items": [ + { + "items": "minecraft:raw_copper_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "blastbuff:copper_block_from_blasting_raw_copper_block" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_raw_copper_block" + ] + ], + "rewards": { + "recipes": [ + "blastbuff:copper_block_from_blasting_raw_copper_block" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/blastbuff/advancement/recipes/misc/glass_from_blasting_sand.json b/datapacks/craft-refine/data/blastbuff/advancement/recipes/misc/glass_from_blasting_sand.json new file mode 100755 index 0000000..1a28339 --- /dev/null +++ b/datapacks/craft-refine/data/blastbuff/advancement/recipes/misc/glass_from_blasting_sand.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_red_sand": { + "conditions": { + "items": [ + { + "items": "minecraft:red_sand" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_sand": { + "conditions": { + "items": [ + { + "items": "minecraft:sand" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "blastbuff:glass_from_blasting_sand" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_sand", + "has_red_sand" + ] + ], + "rewards": { + "recipes": [ + "blastbuff:glass_from_blasting_sand" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/blastbuff/advancement/recipes/misc/gold_block_from_blasting_raw_gold_block.json b/datapacks/craft-refine/data/blastbuff/advancement/recipes/misc/gold_block_from_blasting_raw_gold_block.json new file mode 100755 index 0000000..166f0e4 --- /dev/null +++ b/datapacks/craft-refine/data/blastbuff/advancement/recipes/misc/gold_block_from_blasting_raw_gold_block.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_raw_gold_block": { + "conditions": { + "items": [ + { + "items": "minecraft:raw_gold_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "blastbuff:gold_block_from_blasting_raw_gold_block" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_raw_gold_block" + ] + ], + "rewards": { + "recipes": [ + "blastbuff:gold_block_from_blasting_raw_gold_block" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/blastbuff/advancement/recipes/misc/iron_block_from_blasting_raw_iron_block.json b/datapacks/craft-refine/data/blastbuff/advancement/recipes/misc/iron_block_from_blasting_raw_iron_block.json new file mode 100755 index 0000000..0f525bc --- /dev/null +++ b/datapacks/craft-refine/data/blastbuff/advancement/recipes/misc/iron_block_from_blasting_raw_iron_block.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_raw_iron_block": { + "conditions": { + "items": [ + { + "items": "minecraft:raw_iron_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "blastbuff:iron_block_from_blasting_raw_iron_block" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_raw_iron_block" + ] + ], + "rewards": { + "recipes": [ + "blastbuff:iron_block_from_blasting_raw_iron_block" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/blastbuff/recipe/copper_block_from_blasting_raw_copper_block.json b/datapacks/craft-refine/data/blastbuff/recipe/copper_block_from_blasting_raw_copper_block.json new file mode 100755 index 0000000..03348dc --- /dev/null +++ b/datapacks/craft-refine/data/blastbuff/recipe/copper_block_from_blasting_raw_copper_block.json @@ -0,0 +1,11 @@ +{ + "type": "minecraft:blasting", + "category": "misc", + "cookingtime": 800, + "experience": 6.3, + "group": "copper_block", + "ingredient": "minecraft:raw_copper_block", + "result": { + "id": "minecraft:copper_block" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/blastbuff/recipe/glass_from_blasting_sand.json b/datapacks/craft-refine/data/blastbuff/recipe/glass_from_blasting_sand.json new file mode 100755 index 0000000..d8cfc6e --- /dev/null +++ b/datapacks/craft-refine/data/blastbuff/recipe/glass_from_blasting_sand.json @@ -0,0 +1,14 @@ +{ + "type": "minecraft:blasting", + "category": "misc", + "cookingtime": 100, + "experience": 0.1, + "group": "glass_block", + "ingredient": [ + "minecraft:sand", + "minecraft:red_sand" + ], + "result": { + "id": "minecraft:glass" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/blastbuff/recipe/gold_block_from_blasting_raw_gold_block.json b/datapacks/craft-refine/data/blastbuff/recipe/gold_block_from_blasting_raw_gold_block.json new file mode 100755 index 0000000..5db0332 --- /dev/null +++ b/datapacks/craft-refine/data/blastbuff/recipe/gold_block_from_blasting_raw_gold_block.json @@ -0,0 +1,11 @@ +{ + "type": "minecraft:blasting", + "category": "misc", + "cookingtime": 800, + "experience": 9.0, + "group": "gold_block", + "ingredient": "minecraft:raw_gold_block", + "result": { + "id": "minecraft:gold_block" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/blastbuff/recipe/iron_block_from_blasting_raw_iron_block.json b/datapacks/craft-refine/data/blastbuff/recipe/iron_block_from_blasting_raw_iron_block.json new file mode 100755 index 0000000..bf9c086 --- /dev/null +++ b/datapacks/craft-refine/data/blastbuff/recipe/iron_block_from_blasting_raw_iron_block.json @@ -0,0 +1,11 @@ +{ + "type": "minecraft:blasting", + "category": "misc", + "cookingtime": 800, + "experience": 6.3, + "group": "iron_block", + "ingredient": "minecraft:raw_iron_block", + "result": { + "id": "minecraft:iron_block" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/calcite/advancement/recipes/building_blocks/calcite.json b/datapacks/craft-refine/data/calcite/advancement/recipes/building_blocks/calcite.json new file mode 100755 index 0000000..da51927 --- /dev/null +++ b/datapacks/craft-refine/data/calcite/advancement/recipes/building_blocks/calcite.json @@ -0,0 +1,76 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_dead_brain_coral_block": { + "conditions": { + "items": [ + { + "items": "minecraft:dead_brain_coral_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_dead_bubble_coral_block": { + "conditions": { + "items": [ + { + "items": "minecraft:dead_bubble_coral_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_dead_fire_coral_block": { + "conditions": { + "items": [ + { + "items": "minecraft:dead_fire_coral_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_dead_horn_coral_block": { + "conditions": { + "items": [ + { + "items": "minecraft:dead_horn_coral_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_dead_tube_coral_block": { + "conditions": { + "items": [ + { + "items": "minecraft:dead_tube_coral_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "calcite:calcite" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_dead_brain_coral_block", + "has_dead_bubble_coral_block", + "has_dead_fire_coral_block", + "has_dead_horn_coral_block", + "has_dead_tube_coral_block" + ] + ], + "rewards": { + "recipes": [ + "calcite:calcite" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/calcite/recipe/calcite.json b/datapacks/craft-refine/data/calcite/recipe/calcite.json new file mode 100755 index 0000000..9de2fb3 --- /dev/null +++ b/datapacks/craft-refine/data/calcite/recipe/calcite.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": "#calcite:dead_coral_blocks" + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 4, + "id": "minecraft:calcite" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/calcite/tags/item/dead_coral_blocks.json b/datapacks/craft-refine/data/calcite/tags/item/dead_coral_blocks.json new file mode 100755 index 0000000..24a4ddf --- /dev/null +++ b/datapacks/craft-refine/data/calcite/tags/item/dead_coral_blocks.json @@ -0,0 +1,9 @@ +{ + "values": [ + "minecraft:dead_tube_coral_block", + "minecraft:dead_brain_coral_block", + "minecraft:dead_bubble_coral_block", + "minecraft:dead_fire_coral_block", + "minecraft:dead_horn_coral_block" + ] +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/coral/advancement/recipes/building_blocks/brain_coral_block.json b/datapacks/craft-refine/data/coral/advancement/recipes/building_blocks/brain_coral_block.json new file mode 100755 index 0000000..67fed1c --- /dev/null +++ b/datapacks/craft-refine/data/coral/advancement/recipes/building_blocks/brain_coral_block.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_brain_coral": { + "conditions": { + "items": [ + { + "items": "minecraft:brain_coral" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_brain_coral_fan": { + "conditions": { + "items": [ + { + "items": "minecraft:brain_coral_fan" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "coral:brain_coral_block" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_brain_coral", + "has_brain_coral_fan" + ] + ], + "rewards": { + "recipes": [ + "coral:brain_coral_block" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/coral/advancement/recipes/building_blocks/bubble_coral_block.json b/datapacks/craft-refine/data/coral/advancement/recipes/building_blocks/bubble_coral_block.json new file mode 100755 index 0000000..68bbadb --- /dev/null +++ b/datapacks/craft-refine/data/coral/advancement/recipes/building_blocks/bubble_coral_block.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_bubble_coral": { + "conditions": { + "items": [ + { + "items": "minecraft:bubble_coral" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_bubble_coral_fan": { + "conditions": { + "items": [ + { + "items": "minecraft:bubble_coral_fan" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "coral:bubble_coral_block" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_bubble_coral", + "has_bubble_coral_fan" + ] + ], + "rewards": { + "recipes": [ + "coral:bubble_coral_block" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/coral/advancement/recipes/building_blocks/dead_brain_coral_block.json b/datapacks/craft-refine/data/coral/advancement/recipes/building_blocks/dead_brain_coral_block.json new file mode 100755 index 0000000..0de4eae --- /dev/null +++ b/datapacks/craft-refine/data/coral/advancement/recipes/building_blocks/dead_brain_coral_block.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_dead_brain_coral": { + "conditions": { + "items": [ + { + "items": "minecraft:dead_brain_coral" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_dead_brain_coral_fan": { + "conditions": { + "items": [ + { + "items": "minecraft:dead_brain_coral_fan" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "coral:dead_brain_coral_block" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_dead_brain_coral", + "has_dead_brain_coral_fan" + ] + ], + "rewards": { + "recipes": [ + "coral:dead_brain_coral_block" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/coral/advancement/recipes/building_blocks/dead_bubble_coral_block.json b/datapacks/craft-refine/data/coral/advancement/recipes/building_blocks/dead_bubble_coral_block.json new file mode 100755 index 0000000..68d33ec --- /dev/null +++ b/datapacks/craft-refine/data/coral/advancement/recipes/building_blocks/dead_bubble_coral_block.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_dead_bubble_coral": { + "conditions": { + "items": [ + { + "items": "minecraft:dead_bubble_coral" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_dead_bubble_coral_fan": { + "conditions": { + "items": [ + { + "items": "minecraft:dead_bubble_coral_fan" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "coral:dead_bubble_coral_block" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_dead_bubble_coral", + "has_dead_bubble_coral_fan" + ] + ], + "rewards": { + "recipes": [ + "coral:dead_bubble_coral_block" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/coral/advancement/recipes/building_blocks/dead_fire_coral_block.json b/datapacks/craft-refine/data/coral/advancement/recipes/building_blocks/dead_fire_coral_block.json new file mode 100755 index 0000000..72c2181 --- /dev/null +++ b/datapacks/craft-refine/data/coral/advancement/recipes/building_blocks/dead_fire_coral_block.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_dead_fire_coral": { + "conditions": { + "items": [ + { + "items": "minecraft:dead_fire_coral" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_dead_fire_coral_fan": { + "conditions": { + "items": [ + { + "items": "minecraft:dead_fire_coral_fan" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "coral:dead_fire_coral_block" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_dead_fire_coral", + "has_dead_fire_coral_fan" + ] + ], + "rewards": { + "recipes": [ + "coral:dead_fire_coral_block" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/coral/advancement/recipes/building_blocks/dead_horn_coral_block.json b/datapacks/craft-refine/data/coral/advancement/recipes/building_blocks/dead_horn_coral_block.json new file mode 100755 index 0000000..2623982 --- /dev/null +++ b/datapacks/craft-refine/data/coral/advancement/recipes/building_blocks/dead_horn_coral_block.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_dead_horn_coral": { + "conditions": { + "items": [ + { + "items": "minecraft:dead_horn_coral" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_dead_horn_coral_fan": { + "conditions": { + "items": [ + { + "items": "minecraft:dead_horn_coral_fan" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "coral:dead_horn_coral_block" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_dead_horn_coral", + "has_dead_horn_coral_fan" + ] + ], + "rewards": { + "recipes": [ + "coral:dead_horn_coral_block" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/coral/advancement/recipes/building_blocks/dead_tube_coral_block.json b/datapacks/craft-refine/data/coral/advancement/recipes/building_blocks/dead_tube_coral_block.json new file mode 100755 index 0000000..74f81e5 --- /dev/null +++ b/datapacks/craft-refine/data/coral/advancement/recipes/building_blocks/dead_tube_coral_block.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_dead_tube_coral": { + "conditions": { + "items": [ + { + "items": "minecraft:dead_tube_coral" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_dead_tube_coral_fan": { + "conditions": { + "items": [ + { + "items": "minecraft:dead_tube_coral_fan" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "coral:dead_tube_coral_block" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_dead_tube_coral", + "has_dead_tube_coral_fan" + ] + ], + "rewards": { + "recipes": [ + "coral:dead_tube_coral_block" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/coral/advancement/recipes/building_blocks/fire_coral_block.json b/datapacks/craft-refine/data/coral/advancement/recipes/building_blocks/fire_coral_block.json new file mode 100755 index 0000000..b00d312 --- /dev/null +++ b/datapacks/craft-refine/data/coral/advancement/recipes/building_blocks/fire_coral_block.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_fire_coral": { + "conditions": { + "items": [ + { + "items": "minecraft:fire_coral" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_fire_coral_fan": { + "conditions": { + "items": [ + { + "items": "minecraft:fire_coral_fan" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "coral:fire_coral_block" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_fire_coral", + "has_fire_coral_fan" + ] + ], + "rewards": { + "recipes": [ + "coral:fire_coral_block" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/coral/advancement/recipes/building_blocks/horn_coral_block.json b/datapacks/craft-refine/data/coral/advancement/recipes/building_blocks/horn_coral_block.json new file mode 100755 index 0000000..af23b3d --- /dev/null +++ b/datapacks/craft-refine/data/coral/advancement/recipes/building_blocks/horn_coral_block.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_horn_coral": { + "conditions": { + "items": [ + { + "items": "minecraft:horn_coral" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_horn_coral_fan": { + "conditions": { + "items": [ + { + "items": "minecraft:horn_coral_fan" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "coral:horn_coral_block" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_horn_coral", + "has_horn_coral_fan" + ] + ], + "rewards": { + "recipes": [ + "coral:horn_coral_block" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/coral/advancement/recipes/building_blocks/tube_coral_block.json b/datapacks/craft-refine/data/coral/advancement/recipes/building_blocks/tube_coral_block.json new file mode 100755 index 0000000..22a3c1c --- /dev/null +++ b/datapacks/craft-refine/data/coral/advancement/recipes/building_blocks/tube_coral_block.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "coral:tube_coral_block" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_tube_coral": { + "conditions": { + "items": [ + { + "items": "minecraft:tube_coral" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_tube_coral_fan": { + "conditions": { + "items": [ + { + "items": "minecraft:tube_coral_fan" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_tube_coral", + "has_tube_coral_fan" + ] + ], + "rewards": { + "recipes": [ + "coral:tube_coral_block" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/coral/recipe/brain_coral_block.json b/datapacks/craft-refine/data/coral/recipe/brain_coral_block.json new file mode 100755 index 0000000..fa1229c --- /dev/null +++ b/datapacks/craft-refine/data/coral/recipe/brain_coral_block.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "coral", + "key": { + "#": "#coral:brain_corals" + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 1, + "id": "minecraft:brain_coral_block" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/coral/recipe/bubble_coral_block.json b/datapacks/craft-refine/data/coral/recipe/bubble_coral_block.json new file mode 100755 index 0000000..20f0418 --- /dev/null +++ b/datapacks/craft-refine/data/coral/recipe/bubble_coral_block.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "coral", + "key": { + "#": "#coral:bubble_corals" + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 1, + "id": "minecraft:bubble_coral_block" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/coral/recipe/dead_brain_coral_block.json b/datapacks/craft-refine/data/coral/recipe/dead_brain_coral_block.json new file mode 100755 index 0000000..b171047 --- /dev/null +++ b/datapacks/craft-refine/data/coral/recipe/dead_brain_coral_block.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "dead_coral", + "key": { + "#": "#coral:dead_brain_corals" + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 1, + "id": "minecraft:dead_brain_coral_block" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/coral/recipe/dead_bubble_coral_block.json b/datapacks/craft-refine/data/coral/recipe/dead_bubble_coral_block.json new file mode 100755 index 0000000..abd03d4 --- /dev/null +++ b/datapacks/craft-refine/data/coral/recipe/dead_bubble_coral_block.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "dead_coral", + "key": { + "#": "#coral:dead_bubble_corals" + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 1, + "id": "minecraft:dead_bubble_coral_block" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/coral/recipe/dead_fire_coral_block.json b/datapacks/craft-refine/data/coral/recipe/dead_fire_coral_block.json new file mode 100755 index 0000000..44f6d72 --- /dev/null +++ b/datapacks/craft-refine/data/coral/recipe/dead_fire_coral_block.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "dead_coral", + "key": { + "#": "#coral:dead_fire_corals" + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 1, + "id": "minecraft:dead_fire_coral_block" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/coral/recipe/dead_horn_coral_block.json b/datapacks/craft-refine/data/coral/recipe/dead_horn_coral_block.json new file mode 100755 index 0000000..cd35660 --- /dev/null +++ b/datapacks/craft-refine/data/coral/recipe/dead_horn_coral_block.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "dead_coral", + "key": { + "#": "#coral:dead_horn_corals" + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 1, + "id": "minecraft:dead_horn_coral_block" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/coral/recipe/dead_tube_coral_block.json b/datapacks/craft-refine/data/coral/recipe/dead_tube_coral_block.json new file mode 100755 index 0000000..ec1a6b6 --- /dev/null +++ b/datapacks/craft-refine/data/coral/recipe/dead_tube_coral_block.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "dead_coral", + "key": { + "#": "#coral:dead_tube_corals" + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 1, + "id": "minecraft:dead_tube_coral_block" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/coral/recipe/fire_coral_block.json b/datapacks/craft-refine/data/coral/recipe/fire_coral_block.json new file mode 100755 index 0000000..42db07e --- /dev/null +++ b/datapacks/craft-refine/data/coral/recipe/fire_coral_block.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "coral", + "key": { + "#": "#coral:fire_corals" + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 1, + "id": "minecraft:fire_coral_block" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/coral/recipe/horn_coral_block.json b/datapacks/craft-refine/data/coral/recipe/horn_coral_block.json new file mode 100755 index 0000000..5169c3b --- /dev/null +++ b/datapacks/craft-refine/data/coral/recipe/horn_coral_block.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "coral", + "key": { + "#": "#coral:horn_corals" + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 1, + "id": "minecraft:horn_coral_block" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/coral/recipe/tube_coral_block.json b/datapacks/craft-refine/data/coral/recipe/tube_coral_block.json new file mode 100755 index 0000000..1dc6110 --- /dev/null +++ b/datapacks/craft-refine/data/coral/recipe/tube_coral_block.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "coral", + "key": { + "#": "#coral:tube_corals" + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 1, + "id": "minecraft:tube_coral_block" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/coral/tags/item/brain_corals.json b/datapacks/craft-refine/data/coral/tags/item/brain_corals.json new file mode 100755 index 0000000..8a0ec73 --- /dev/null +++ b/datapacks/craft-refine/data/coral/tags/item/brain_corals.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:brain_coral", + "minecraft:brain_coral_fan" + ] +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/coral/tags/item/bubble_corals.json b/datapacks/craft-refine/data/coral/tags/item/bubble_corals.json new file mode 100755 index 0000000..ef3ec93 --- /dev/null +++ b/datapacks/craft-refine/data/coral/tags/item/bubble_corals.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:bubble_coral", + "minecraft:bubble_coral_fan" + ] +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/coral/tags/item/dead_brain_corals.json b/datapacks/craft-refine/data/coral/tags/item/dead_brain_corals.json new file mode 100755 index 0000000..03cc74f --- /dev/null +++ b/datapacks/craft-refine/data/coral/tags/item/dead_brain_corals.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:dead_brain_coral", + "minecraft:dead_brain_coral_fan" + ] +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/coral/tags/item/dead_bubble_corals.json b/datapacks/craft-refine/data/coral/tags/item/dead_bubble_corals.json new file mode 100755 index 0000000..31e2fbc --- /dev/null +++ b/datapacks/craft-refine/data/coral/tags/item/dead_bubble_corals.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:dead_bubble_coral", + "minecraft:dead_bubble_coral_fan" + ] +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/coral/tags/item/dead_fire_corals.json b/datapacks/craft-refine/data/coral/tags/item/dead_fire_corals.json new file mode 100755 index 0000000..e3a7821 --- /dev/null +++ b/datapacks/craft-refine/data/coral/tags/item/dead_fire_corals.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:dead_fire_coral", + "minecraft:dead_fire_coral_fan" + ] +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/coral/tags/item/dead_horn_corals.json b/datapacks/craft-refine/data/coral/tags/item/dead_horn_corals.json new file mode 100755 index 0000000..e00bc87 --- /dev/null +++ b/datapacks/craft-refine/data/coral/tags/item/dead_horn_corals.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:dead_horn_coral", + "minecraft:dead_horn_coral_fan" + ] +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/coral/tags/item/dead_tube_corals.json b/datapacks/craft-refine/data/coral/tags/item/dead_tube_corals.json new file mode 100755 index 0000000..233d387 --- /dev/null +++ b/datapacks/craft-refine/data/coral/tags/item/dead_tube_corals.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:dead_tube_coral", + "minecraft:dead_tube_coral_fan" + ] +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/coral/tags/item/fire_corals.json b/datapacks/craft-refine/data/coral/tags/item/fire_corals.json new file mode 100755 index 0000000..0c8e730 --- /dev/null +++ b/datapacks/craft-refine/data/coral/tags/item/fire_corals.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:fire_coral", + "minecraft:fire_coral_fan" + ] +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/coral/tags/item/horn_corals.json b/datapacks/craft-refine/data/coral/tags/item/horn_corals.json new file mode 100755 index 0000000..a74a81f --- /dev/null +++ b/datapacks/craft-refine/data/coral/tags/item/horn_corals.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:horn_coral", + "minecraft:horn_coral_fan" + ] +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/coral/tags/item/tube_corals.json b/datapacks/craft-refine/data/coral/tags/item/tube_corals.json new file mode 100755 index 0000000..81a3827 --- /dev/null +++ b/datapacks/craft-refine/data/coral/tags/item/tube_corals.json @@ -0,0 +1,6 @@ +{ + "values": [ + "minecraft:tube_coral", + "minecraft:tube_coral_fan" + ] +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/dispenser/advancement/recipes/redstone/dispenser.json b/datapacks/craft-refine/data/dispenser/advancement/recipes/redstone/dispenser.json new file mode 100755 index 0000000..ad584c0 --- /dev/null +++ b/datapacks/craft-refine/data/dispenser/advancement/recipes/redstone/dispenser.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_dropper": { + "conditions": { + "items": [ + { + "items": "minecraft:dropper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "minecraft:dispenser" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_dropper" + ] + ], + "rewards": { + "recipes": [ + "minecraft:dispenser" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/dispenser/advancement/recipes/redstone/dispenser_dropper.json b/datapacks/craft-refine/data/dispenser/advancement/recipes/redstone/dispenser_dropper.json new file mode 100755 index 0000000..56fd087 --- /dev/null +++ b/datapacks/craft-refine/data/dispenser/advancement/recipes/redstone/dispenser_dropper.json @@ -0,0 +1,43 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_bow": { + "conditions": { + "items": [ + { + "items": "minecraft:bow" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_dropper": { + "conditions": { + "items": [ + { + "items": "minecraft:dropper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "dispenser:dispenser_dropper" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_dropper", + "has_bow" + ] + ], + "rewards": { + "recipes": [ + "dispenser:dispenser_dropper" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/dispenser/advancement/recipes/redstone/dispenser_stackable.json b/datapacks/craft-refine/data/dispenser/advancement/recipes/redstone/dispenser_stackable.json new file mode 100755 index 0000000..a3b00e1 --- /dev/null +++ b/datapacks/craft-refine/data/dispenser/advancement/recipes/redstone/dispenser_stackable.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_dropper": { + "conditions": { + "items": [ + { + "items": "minecraft:dropper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "dispenser:dispenser_stackable" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_dropper" + ] + ], + "rewards": { + "recipes": [ + "dispenser:dispenser_stackable" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/dispenser/recipe/dispenser_dropper.json b/datapacks/craft-refine/data/dispenser/recipe/dispenser_dropper.json new file mode 100755 index 0000000..2152403 --- /dev/null +++ b/datapacks/craft-refine/data/dispenser/recipe/dispenser_dropper.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "redstone", + "group": "dispenser", + "ingredients": [ + "minecraft:dropper", + "minecraft:bow" + ], + "result": { + "count": 1, + "id": "minecraft:dispenser" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/dispenser/recipe/dispenser_stackable.json b/datapacks/craft-refine/data/dispenser/recipe/dispenser_stackable.json new file mode 100755 index 0000000..421047b --- /dev/null +++ b/datapacks/craft-refine/data/dispenser/recipe/dispenser_stackable.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "dispenser", + "key": { + "D": "minecraft:dropper", + "S": "minecraft:string", + "W": "minecraft:stick" + }, + "pattern": [ + " WS", + "WDS", + " WS" + ], + "result": { + "count": 1, + "id": "minecraft:dispenser" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/acacia_fence_gate.json b/datapacks/craft-refine/data/minecraft/recipe/acacia_fence_gate.json new file mode 100755 index 0000000..2ec2d64 --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/acacia_fence_gate.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_fence_gate", + "key": { + "#": "minecraft:stick", + "P": "minecraft:acacia_planks" + }, + "pattern": [ + "#P#", + "#P#" + ], + "result": { + "count": 2, + "id": "minecraft:acacia_fence_gate" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/acacia_stairs.json b/datapacks/craft-refine/data/minecraft/recipe/acacia_stairs.json new file mode 100755 index 0000000..b9c7df7 --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/acacia_stairs.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "wooden_stairs", + "key": { + "#": "minecraft:acacia_planks" + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:acacia_stairs" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/acacia_trapdoor.json b/datapacks/craft-refine/data/minecraft/recipe/acacia_trapdoor.json new file mode 100755 index 0000000..590451e --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/acacia_trapdoor.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_trapdoor", + "key": { + "#": "minecraft:acacia_planks" + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:acacia_trapdoor" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/acacia_wood.json b/datapacks/craft-refine/data/minecraft/recipe/acacia_wood.json new file mode 100755 index 0000000..2c91231 --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/acacia_wood.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "bark", + "key": { + "#": "minecraft:acacia_log" + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 4, + "id": "minecraft:acacia_wood" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/andesite_stairs.json b/datapacks/craft-refine/data/minecraft/recipe/andesite_stairs.json new file mode 100755 index 0000000..7fe14a4 --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/andesite_stairs.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": "minecraft:andesite" + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:andesite_stairs" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/bamboo_fence_gate.json b/datapacks/craft-refine/data/minecraft/recipe/bamboo_fence_gate.json new file mode 100755 index 0000000..cda06bb --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/bamboo_fence_gate.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_fence_gate", + "key": { + "#": "minecraft:stick", + "P": "minecraft:bamboo_planks" + }, + "pattern": [ + "#P#", + "#P#" + ], + "result": { + "count": 2, + "id": "minecraft:bamboo_fence_gate" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/bamboo_mosaic_stairs.json b/datapacks/craft-refine/data/minecraft/recipe/bamboo_mosaic_stairs.json new file mode 100755 index 0000000..e467eaa --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/bamboo_mosaic_stairs.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "wooden_stairs", + "key": { + "#": "minecraft:bamboo_mosaic" + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:bamboo_mosaic_stairs" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/bamboo_planks.json b/datapacks/craft-refine/data/minecraft/recipe/bamboo_planks.json new file mode 100755 index 0000000..2b8b9fe --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/bamboo_planks.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": "#minecraft:bamboo_blocks" + }, + "pattern": [ + "#", + "#" + ], + "result": { + "count": 4, + "id": "minecraft:bamboo_planks" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/bamboo_stairs.json b/datapacks/craft-refine/data/minecraft/recipe/bamboo_stairs.json new file mode 100755 index 0000000..f324f19 --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/bamboo_stairs.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "wooden_stairs", + "key": { + "#": "minecraft:bamboo_planks" + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:bamboo_stairs" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/bamboo_trapdoor.json b/datapacks/craft-refine/data/minecraft/recipe/bamboo_trapdoor.json new file mode 100755 index 0000000..0a841f0 --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/bamboo_trapdoor.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_trapdoor", + "key": { + "#": "minecraft:bamboo_planks" + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:bamboo_trapdoor" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/birch_fence_gate.json b/datapacks/craft-refine/data/minecraft/recipe/birch_fence_gate.json new file mode 100755 index 0000000..5c8a492 --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/birch_fence_gate.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_fence_gate", + "key": { + "#": "minecraft:stick", + "P": "minecraft:birch_planks" + }, + "pattern": [ + "#P#", + "#P#" + ], + "result": { + "count": 2, + "id": "minecraft:birch_fence_gate" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/birch_stairs.json b/datapacks/craft-refine/data/minecraft/recipe/birch_stairs.json new file mode 100755 index 0000000..48c2dd8 --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/birch_stairs.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "wooden_stairs", + "key": { + "#": "minecraft:birch_planks" + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:birch_stairs" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/birch_trapdoor.json b/datapacks/craft-refine/data/minecraft/recipe/birch_trapdoor.json new file mode 100755 index 0000000..bd31f48 --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/birch_trapdoor.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_trapdoor", + "key": { + "#": "minecraft:birch_planks" + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:birch_trapdoor" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/birch_wood.json b/datapacks/craft-refine/data/minecraft/recipe/birch_wood.json new file mode 100755 index 0000000..3dbf36e --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/birch_wood.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "bark", + "key": { + "#": "minecraft:birch_log" + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 4, + "id": "minecraft:birch_wood" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/blackstone_stairs.json b/datapacks/craft-refine/data/minecraft/recipe/blackstone_stairs.json new file mode 100755 index 0000000..966bb02 --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/blackstone_stairs.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": "minecraft:blackstone" + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:blackstone_stairs" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/brick_stairs.json b/datapacks/craft-refine/data/minecraft/recipe/brick_stairs.json new file mode 100755 index 0000000..9f75fb8 --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/brick_stairs.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": "minecraft:bricks" + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:brick_stairs" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/chain.json b/datapacks/craft-refine/data/minecraft/recipe/chain.json new file mode 100755 index 0000000..0625f78 --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/chain.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": "minecraft:iron_nugget", + "I": "minecraft:iron_ingot" + }, + "pattern": [ + "#", + "I", + "#" + ], + "result": { + "count": 4, + "id": "minecraft:chain" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/cherry_fence_gate.json b/datapacks/craft-refine/data/minecraft/recipe/cherry_fence_gate.json new file mode 100755 index 0000000..52a100c --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/cherry_fence_gate.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_fence_gate", + "key": { + "#": "minecraft:stick", + "P": "minecraft:cherry_planks" + }, + "pattern": [ + "#P#", + "#P#" + ], + "result": { + "count": 2, + "id": "minecraft:cherry_fence_gate" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/cherry_stairs.json b/datapacks/craft-refine/data/minecraft/recipe/cherry_stairs.json new file mode 100755 index 0000000..595a241 --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/cherry_stairs.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "wooden_stairs", + "key": { + "#": "minecraft:cherry_planks" + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:cherry_stairs" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/cherry_trapdoor.json b/datapacks/craft-refine/data/minecraft/recipe/cherry_trapdoor.json new file mode 100755 index 0000000..21a66e0 --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/cherry_trapdoor.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_trapdoor", + "key": { + "#": "minecraft:cherry_planks" + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:cherry_trapdoor" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/cherry_wood.json b/datapacks/craft-refine/data/minecraft/recipe/cherry_wood.json new file mode 100755 index 0000000..17a73a3 --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/cherry_wood.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "bark", + "key": { + "#": "minecraft:cherry_log" + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 4, + "id": "minecraft:cherry_wood" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/cobbled_deepslate_stairs.json b/datapacks/craft-refine/data/minecraft/recipe/cobbled_deepslate_stairs.json new file mode 100755 index 0000000..ad85ee7 --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/cobbled_deepslate_stairs.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": "minecraft:cobbled_deepslate" + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:cobbled_deepslate_stairs" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/cobblestone_stairs.json b/datapacks/craft-refine/data/minecraft/recipe/cobblestone_stairs.json new file mode 100755 index 0000000..dce24f9 --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/cobblestone_stairs.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": "minecraft:cobblestone" + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:cobblestone_stairs" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/crimson_fence_gate.json b/datapacks/craft-refine/data/minecraft/recipe/crimson_fence_gate.json new file mode 100755 index 0000000..f4f1b85 --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/crimson_fence_gate.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_fence_gate", + "key": { + "#": "minecraft:stick", + "P": "minecraft:crimson_planks" + }, + "pattern": [ + "#P#", + "#P#" + ], + "result": { + "count": 2, + "id": "minecraft:crimson_fence_gate" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/crimson_hyphae.json b/datapacks/craft-refine/data/minecraft/recipe/crimson_hyphae.json new file mode 100755 index 0000000..3d9b52e --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/crimson_hyphae.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "bark", + "key": { + "#": "minecraft:crimson_stem" + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 4, + "id": "minecraft:crimson_hyphae" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/crimson_stairs.json b/datapacks/craft-refine/data/minecraft/recipe/crimson_stairs.json new file mode 100755 index 0000000..f23a928 --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/crimson_stairs.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "wooden_stairs", + "key": { + "#": "minecraft:crimson_planks" + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:crimson_stairs" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/crimson_trapdoor.json b/datapacks/craft-refine/data/minecraft/recipe/crimson_trapdoor.json new file mode 100755 index 0000000..5328d51 --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/crimson_trapdoor.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_trapdoor", + "key": { + "#": "minecraft:crimson_planks" + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:crimson_trapdoor" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/cut_copper_stairs.json b/datapacks/craft-refine/data/minecraft/recipe/cut_copper_stairs.json new file mode 100755 index 0000000..ca48fcd --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/cut_copper_stairs.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "cut_copper_stairs", + "key": { + "#": "minecraft:cut_copper" + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:cut_copper_stairs" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/dark_oak_fence_gate.json b/datapacks/craft-refine/data/minecraft/recipe/dark_oak_fence_gate.json new file mode 100755 index 0000000..c9e5070 --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/dark_oak_fence_gate.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_fence_gate", + "key": { + "#": "minecraft:stick", + "P": "minecraft:dark_oak_planks" + }, + "pattern": [ + "#P#", + "#P#" + ], + "result": { + "count": 2, + "id": "minecraft:dark_oak_fence_gate" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/dark_oak_stairs.json b/datapacks/craft-refine/data/minecraft/recipe/dark_oak_stairs.json new file mode 100755 index 0000000..b40e9c2 --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/dark_oak_stairs.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "wooden_stairs", + "key": { + "#": "minecraft:dark_oak_planks" + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:dark_oak_stairs" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/dark_oak_trapdoor.json b/datapacks/craft-refine/data/minecraft/recipe/dark_oak_trapdoor.json new file mode 100755 index 0000000..871630b --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/dark_oak_trapdoor.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_trapdoor", + "key": { + "#": "minecraft:dark_oak_planks" + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:dark_oak_trapdoor" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/dark_oak_wood.json b/datapacks/craft-refine/data/minecraft/recipe/dark_oak_wood.json new file mode 100755 index 0000000..1b3becc --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/dark_oak_wood.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "bark", + "key": { + "#": "minecraft:dark_oak_log" + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 4, + "id": "minecraft:dark_oak_wood" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/dark_prismarine_stairs.json b/datapacks/craft-refine/data/minecraft/recipe/dark_prismarine_stairs.json new file mode 100755 index 0000000..f2a7361 --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/dark_prismarine_stairs.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": "minecraft:dark_prismarine" + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:dark_prismarine_stairs" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/deepslate_brick_stairs.json b/datapacks/craft-refine/data/minecraft/recipe/deepslate_brick_stairs.json new file mode 100755 index 0000000..efc5c00 --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/deepslate_brick_stairs.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": "minecraft:deepslate_bricks" + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:deepslate_brick_stairs" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/deepslate_tile_stairs.json b/datapacks/craft-refine/data/minecraft/recipe/deepslate_tile_stairs.json new file mode 100755 index 0000000..4e3b262 --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/deepslate_tile_stairs.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": "minecraft:deepslate_tiles" + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:deepslate_tile_stairs" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/diorite_stairs.json b/datapacks/craft-refine/data/minecraft/recipe/diorite_stairs.json new file mode 100755 index 0000000..2dfdbca --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/diorite_stairs.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": "minecraft:diorite" + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:diorite_stairs" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/dispenser.json b/datapacks/craft-refine/data/minecraft/recipe/dispenser.json new file mode 100755 index 0000000..8b30315 --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/dispenser.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "dispenser", + "key": { + "B": "minecraft:bow", + "R": "minecraft:redstone", + "S": "minecraft:cobblestone" + }, + "pattern": [ + "SSS", + "SBS", + "SRS" + ], + "result": { + "count": 1, + "id": "minecraft:dispenser" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/end_stone_brick_stairs.json b/datapacks/craft-refine/data/minecraft/recipe/end_stone_brick_stairs.json new file mode 100755 index 0000000..7e868f2 --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/end_stone_brick_stairs.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": "minecraft:end_stone_bricks" + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:end_stone_brick_stairs" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/exposed_cut_copper_stairs.json b/datapacks/craft-refine/data/minecraft/recipe/exposed_cut_copper_stairs.json new file mode 100755 index 0000000..9332b5b --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/exposed_cut_copper_stairs.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "cut_copper_stairs", + "key": { + "#": "minecraft:exposed_cut_copper" + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:exposed_cut_copper_stairs" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/granite_stairs.json b/datapacks/craft-refine/data/minecraft/recipe/granite_stairs.json new file mode 100755 index 0000000..aaca66b --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/granite_stairs.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": "minecraft:granite" + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:granite_stairs" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/iron_bars.json b/datapacks/craft-refine/data/minecraft/recipe/iron_bars.json new file mode 100755 index 0000000..0f82765 --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/iron_bars.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "misc", + "key": { + "#": "minecraft:iron_ingot" + }, + "pattern": [ + "# #", + "# #", + "# #" + ], + "result": { + "count": 16, + "id": "minecraft:iron_bars" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/iron_trapdoor.json b/datapacks/craft-refine/data/minecraft/recipe/iron_trapdoor.json new file mode 100755 index 0000000..2218979 --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/iron_trapdoor.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "#": "minecraft:iron_ingot" + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 2, + "id": "minecraft:iron_trapdoor" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/jungle_fence_gate.json b/datapacks/craft-refine/data/minecraft/recipe/jungle_fence_gate.json new file mode 100755 index 0000000..83f9707 --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/jungle_fence_gate.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_fence_gate", + "key": { + "#": "minecraft:stick", + "P": "minecraft:jungle_planks" + }, + "pattern": [ + "#P#", + "#P#" + ], + "result": { + "count": 2, + "id": "minecraft:jungle_fence_gate" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/jungle_stairs.json b/datapacks/craft-refine/data/minecraft/recipe/jungle_stairs.json new file mode 100755 index 0000000..55b7a6a --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/jungle_stairs.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "wooden_stairs", + "key": { + "#": "minecraft:jungle_planks" + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:jungle_stairs" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/jungle_trapdoor.json b/datapacks/craft-refine/data/minecraft/recipe/jungle_trapdoor.json new file mode 100755 index 0000000..5237946 --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/jungle_trapdoor.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_trapdoor", + "key": { + "#": "minecraft:jungle_planks" + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:jungle_trapdoor" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/jungle_wood.json b/datapacks/craft-refine/data/minecraft/recipe/jungle_wood.json new file mode 100755 index 0000000..35a4bc8 --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/jungle_wood.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "bark", + "key": { + "#": "minecraft:jungle_log" + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 4, + "id": "minecraft:jungle_wood" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/mangrove_fence_gate.json b/datapacks/craft-refine/data/minecraft/recipe/mangrove_fence_gate.json new file mode 100755 index 0000000..aed6bf6 --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/mangrove_fence_gate.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_fence_gate", + "key": { + "#": "minecraft:stick", + "P": "minecraft:mangrove_planks" + }, + "pattern": [ + "#P#", + "#P#" + ], + "result": { + "count": 2, + "id": "minecraft:mangrove_fence_gate" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/mangrove_stairs.json b/datapacks/craft-refine/data/minecraft/recipe/mangrove_stairs.json new file mode 100755 index 0000000..1d7d568 --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/mangrove_stairs.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "wooden_stairs", + "key": { + "#": "minecraft:mangrove_planks" + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:mangrove_stairs" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/mangrove_trapdoor.json b/datapacks/craft-refine/data/minecraft/recipe/mangrove_trapdoor.json new file mode 100755 index 0000000..063e502 --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/mangrove_trapdoor.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_trapdoor", + "key": { + "#": "minecraft:mangrove_planks" + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:mangrove_trapdoor" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/mangrove_wood.json b/datapacks/craft-refine/data/minecraft/recipe/mangrove_wood.json new file mode 100755 index 0000000..49e0145 --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/mangrove_wood.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "bark", + "key": { + "#": "minecraft:mangrove_log" + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 4, + "id": "minecraft:mangrove_wood" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/mossy_cobblestone_stairs.json b/datapacks/craft-refine/data/minecraft/recipe/mossy_cobblestone_stairs.json new file mode 100755 index 0000000..1674ced --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/mossy_cobblestone_stairs.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": "minecraft:mossy_cobblestone" + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:mossy_cobblestone_stairs" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/mossy_stone_brick_stairs.json b/datapacks/craft-refine/data/minecraft/recipe/mossy_stone_brick_stairs.json new file mode 100755 index 0000000..149bae6 --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/mossy_stone_brick_stairs.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": "minecraft:mossy_stone_bricks" + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:mossy_stone_brick_stairs" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/mud_brick_stairs.json b/datapacks/craft-refine/data/minecraft/recipe/mud_brick_stairs.json new file mode 100755 index 0000000..649aa97 --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/mud_brick_stairs.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": "minecraft:mud_bricks" + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:mud_brick_stairs" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/nether_brick_stairs.json b/datapacks/craft-refine/data/minecraft/recipe/nether_brick_stairs.json new file mode 100755 index 0000000..72ce865 --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/nether_brick_stairs.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": "minecraft:nether_bricks" + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:nether_brick_stairs" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/nether_wart_block.json b/datapacks/craft-refine/data/minecraft/recipe/nether_wart_block.json new file mode 100755 index 0000000..6f8fb52 --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/nether_wart_block.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": "minecraft:nether_wart" + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 1, + "id": "minecraft:nether_wart_block" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/oak_fence_gate.json b/datapacks/craft-refine/data/minecraft/recipe/oak_fence_gate.json new file mode 100755 index 0000000..43f7253 --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/oak_fence_gate.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_fence_gate", + "key": { + "#": "minecraft:stick", + "P": "minecraft:oak_planks" + }, + "pattern": [ + "#P#", + "#P#" + ], + "result": { + "count": 2, + "id": "minecraft:oak_fence_gate" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/oak_stairs.json b/datapacks/craft-refine/data/minecraft/recipe/oak_stairs.json new file mode 100755 index 0000000..bcd6a1d --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/oak_stairs.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "wooden_stairs", + "key": { + "#": "minecraft:oak_planks" + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:oak_stairs" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/oak_trapdoor.json b/datapacks/craft-refine/data/minecraft/recipe/oak_trapdoor.json new file mode 100755 index 0000000..7be50f6 --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/oak_trapdoor.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_trapdoor", + "key": { + "#": "minecraft:oak_planks" + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:oak_trapdoor" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/oak_wood.json b/datapacks/craft-refine/data/minecraft/recipe/oak_wood.json new file mode 100755 index 0000000..135d16b --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/oak_wood.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "bark", + "key": { + "#": "minecraft:oak_log" + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 4, + "id": "minecraft:oak_wood" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/oxidized_cut_copper_stairs.json b/datapacks/craft-refine/data/minecraft/recipe/oxidized_cut_copper_stairs.json new file mode 100755 index 0000000..b36b3c3 --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/oxidized_cut_copper_stairs.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "cut_copper_stairs", + "key": { + "#": "minecraft:oxidized_cut_copper" + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:oxidized_cut_copper_stairs" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/packed_ice.json b/datapacks/craft-refine/data/minecraft/recipe/packed_ice.json new file mode 100755 index 0000000..121c3fc --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/packed_ice.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "packed_ice", + "key": { + "#": "minecraft:ice" + }, + "pattern": [ + "###", + "###", + "###" + ], + "result": { + "count": 1, + "id": "minecraft:packed_ice" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/pale_oak_fence_gate.json b/datapacks/craft-refine/data/minecraft/recipe/pale_oak_fence_gate.json new file mode 100755 index 0000000..b754cb8 --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/pale_oak_fence_gate.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_fence_gate", + "key": { + "#": "minecraft:stick", + "P": "minecraft:pale_oak_planks" + }, + "pattern": [ + "#P#", + "#P#" + ], + "result": { + "count": 2, + "id": "minecraft:pale_oak_fence_gate" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/pale_oak_stairs.json b/datapacks/craft-refine/data/minecraft/recipe/pale_oak_stairs.json new file mode 100755 index 0000000..5d29529 --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/pale_oak_stairs.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": "minecraft:pale_oak_planks" + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:pale_oak_stairs" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/pale_oak_trapdoor.json b/datapacks/craft-refine/data/minecraft/recipe/pale_oak_trapdoor.json new file mode 100755 index 0000000..a6331e8 --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/pale_oak_trapdoor.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_trapdoor", + "key": { + "#": "minecraft:pale_oak_planks" + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:pale_oak_trapdoor" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/pale_oak_wood.json b/datapacks/craft-refine/data/minecraft/recipe/pale_oak_wood.json new file mode 100755 index 0000000..c10ed6b --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/pale_oak_wood.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "bark", + "key": { + "#": "minecraft:pale_oak_log" + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 4, + "id": "minecraft:pale_oak_wood" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/polished_andesite_stairs.json b/datapacks/craft-refine/data/minecraft/recipe/polished_andesite_stairs.json new file mode 100755 index 0000000..fc9ee74 --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/polished_andesite_stairs.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": "minecraft:polished_andesite" + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:polished_andesite_stairs" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/polished_blackstone_brick_stairs.json b/datapacks/craft-refine/data/minecraft/recipe/polished_blackstone_brick_stairs.json new file mode 100755 index 0000000..7ec1a5e --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/polished_blackstone_brick_stairs.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": "minecraft:polished_blackstone_bricks" + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:polished_blackstone_brick_stairs" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/polished_blackstone_stairs.json b/datapacks/craft-refine/data/minecraft/recipe/polished_blackstone_stairs.json new file mode 100755 index 0000000..08e223b --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/polished_blackstone_stairs.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": "minecraft:polished_blackstone" + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:polished_blackstone_stairs" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/polished_deepslate_stairs.json b/datapacks/craft-refine/data/minecraft/recipe/polished_deepslate_stairs.json new file mode 100755 index 0000000..db19a4f --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/polished_deepslate_stairs.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": "minecraft:polished_deepslate" + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:polished_deepslate_stairs" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/polished_diorite_stairs.json b/datapacks/craft-refine/data/minecraft/recipe/polished_diorite_stairs.json new file mode 100755 index 0000000..0fb6a18 --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/polished_diorite_stairs.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": "minecraft:polished_diorite" + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:polished_diorite_stairs" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/polished_granite_stairs.json b/datapacks/craft-refine/data/minecraft/recipe/polished_granite_stairs.json new file mode 100755 index 0000000..d9c8ee0 --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/polished_granite_stairs.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": "minecraft:polished_granite" + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:polished_granite_stairs" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/polished_tuff_stairs.json b/datapacks/craft-refine/data/minecraft/recipe/polished_tuff_stairs.json new file mode 100755 index 0000000..62bb0cd --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/polished_tuff_stairs.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": "minecraft:polished_tuff" + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:polished_tuff_stairs" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/prismarine_brick_stairs.json b/datapacks/craft-refine/data/minecraft/recipe/prismarine_brick_stairs.json new file mode 100755 index 0000000..a4c9834 --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/prismarine_brick_stairs.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": "minecraft:prismarine_bricks" + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:prismarine_brick_stairs" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/prismarine_stairs.json b/datapacks/craft-refine/data/minecraft/recipe/prismarine_stairs.json new file mode 100755 index 0000000..6857fa7 --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/prismarine_stairs.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": "minecraft:prismarine" + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:prismarine_stairs" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/purpur_stairs.json b/datapacks/craft-refine/data/minecraft/recipe/purpur_stairs.json new file mode 100755 index 0000000..00fd359 --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/purpur_stairs.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": "minecraft:purpur_block" + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:purpur_stairs" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/quartz_stairs.json b/datapacks/craft-refine/data/minecraft/recipe/quartz_stairs.json new file mode 100755 index 0000000..c34b655 --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/quartz_stairs.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": "#more-stairs:quartz_blocks" + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:quartz_stairs" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/red_nether_brick_stairs.json b/datapacks/craft-refine/data/minecraft/recipe/red_nether_brick_stairs.json new file mode 100755 index 0000000..fa626e8 --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/red_nether_brick_stairs.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": "minecraft:red_nether_bricks" + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:red_nether_brick_stairs" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/red_sandstone.json b/datapacks/craft-refine/data/minecraft/recipe/red_sandstone.json new file mode 100755 index 0000000..680a9d4 --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/red_sandstone.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": "minecraft:red_sandstone" + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 2, + "id": "minecraft:red_sandstone" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/red_sandstone_stairs.json b/datapacks/craft-refine/data/minecraft/recipe/red_sandstone_stairs.json new file mode 100755 index 0000000..cb9977d --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/red_sandstone_stairs.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": "minecraft:red_sandstone" + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:red_sandstone_stairs" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/redstone_torch.json b/datapacks/craft-refine/data/minecraft/recipe/redstone_torch.json new file mode 100755 index 0000000..f212216 --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/redstone_torch.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "key": { + "#": "minecraft:redstone", + "S": "minecraft:stick" + }, + "pattern": [ + "#", + "S" + ], + "result": { + "count": 4, + "id": "minecraft:redstone_torch" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/resin_brick_stairs.json b/datapacks/craft-refine/data/minecraft/recipe/resin_brick_stairs.json new file mode 100755 index 0000000..7b9c417 --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/resin_brick_stairs.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": "minecraft:resin_bricks" + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:resin_brick_stairs" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/sandstone.json b/datapacks/craft-refine/data/minecraft/recipe/sandstone.json new file mode 100755 index 0000000..33726bc --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/sandstone.json @@ -0,0 +1,15 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": "minecraft:sand" + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 2, + "id": "minecraft:sandstone" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/sandstone_stairs.json b/datapacks/craft-refine/data/minecraft/recipe/sandstone_stairs.json new file mode 100755 index 0000000..813144c --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/sandstone_stairs.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": "minecraft:sandstone" + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:sandstone_stairs" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/smooth_quartz_stairs.json b/datapacks/craft-refine/data/minecraft/recipe/smooth_quartz_stairs.json new file mode 100755 index 0000000..1dd301a --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/smooth_quartz_stairs.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": "minecraft:smooth_quartz" + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:smooth_quartz_stairs" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/smooth_red_sandstone_stairs.json b/datapacks/craft-refine/data/minecraft/recipe/smooth_red_sandstone_stairs.json new file mode 100755 index 0000000..c7d3cb7 --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/smooth_red_sandstone_stairs.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": "minecraft:smooth_red_sandstone" + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:smooth_red_sandstone_stairs" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/smooth_sandstone_stairs.json b/datapacks/craft-refine/data/minecraft/recipe/smooth_sandstone_stairs.json new file mode 100755 index 0000000..98302b3 --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/smooth_sandstone_stairs.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": "minecraft:smooth_sandstone" + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:smooth_sandstone_stairs" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/spruce_fence_gate.json b/datapacks/craft-refine/data/minecraft/recipe/spruce_fence_gate.json new file mode 100755 index 0000000..b60148a --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/spruce_fence_gate.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_fence_gate", + "key": { + "#": "minecraft:stick", + "P": "minecraft:spruce_planks" + }, + "pattern": [ + "#P#", + "#P#" + ], + "result": { + "count": 2, + "id": "minecraft:spruce_fence_gate" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/spruce_stairs.json b/datapacks/craft-refine/data/minecraft/recipe/spruce_stairs.json new file mode 100755 index 0000000..e98b01b --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/spruce_stairs.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "wooden_stairs", + "key": { + "#": "minecraft:spruce_planks" + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:spruce_stairs" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/spruce_trapdoor.json b/datapacks/craft-refine/data/minecraft/recipe/spruce_trapdoor.json new file mode 100755 index 0000000..525b018 --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/spruce_trapdoor.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_trapdoor", + "key": { + "#": "minecraft:spruce_planks" + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:spruce_trapdoor" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/spruce_wood.json b/datapacks/craft-refine/data/minecraft/recipe/spruce_wood.json new file mode 100755 index 0000000..8f18d2f --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/spruce_wood.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "bark", + "key": { + "#": "minecraft:spruce_log" + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 4, + "id": "minecraft:spruce_wood" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/stone_brick_stairs.json b/datapacks/craft-refine/data/minecraft/recipe/stone_brick_stairs.json new file mode 100755 index 0000000..b0852ae --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/stone_brick_stairs.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": "minecraft:stone_bricks" + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:stone_brick_stairs" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/stone_stairs.json b/datapacks/craft-refine/data/minecraft/recipe/stone_stairs.json new file mode 100755 index 0000000..146f8e1 --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/stone_stairs.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": "minecraft:stone" + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:stone_stairs" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/tuff_brick_stairs.json b/datapacks/craft-refine/data/minecraft/recipe/tuff_brick_stairs.json new file mode 100755 index 0000000..1bc4497 --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/tuff_brick_stairs.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": "minecraft:tuff_bricks" + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:tuff_brick_stairs" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/tuff_stairs.json b/datapacks/craft-refine/data/minecraft/recipe/tuff_stairs.json new file mode 100755 index 0000000..08a586c --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/tuff_stairs.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "key": { + "#": "minecraft:tuff" + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:tuff_stairs" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/warped_fence_gate.json b/datapacks/craft-refine/data/minecraft/recipe/warped_fence_gate.json new file mode 100755 index 0000000..f6a1c3c --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/warped_fence_gate.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_fence_gate", + "key": { + "#": "minecraft:stick", + "P": "minecraft:warped_planks" + }, + "pattern": [ + "#P#", + "#P#" + ], + "result": { + "count": 2, + "id": "minecraft:warped_fence_gate" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/warped_hyphae.json b/datapacks/craft-refine/data/minecraft/recipe/warped_hyphae.json new file mode 100755 index 0000000..d6ed5fd --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/warped_hyphae.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "bark", + "key": { + "#": "minecraft:warped_stem" + }, + "pattern": [ + "##", + "##" + ], + "result": { + "count": 4, + "id": "minecraft:warped_hyphae" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/warped_stairs.json b/datapacks/craft-refine/data/minecraft/recipe/warped_stairs.json new file mode 100755 index 0000000..74818e1 --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/warped_stairs.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "wooden_stairs", + "key": { + "#": "minecraft:warped_planks" + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:warped_stairs" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/warped_trapdoor.json b/datapacks/craft-refine/data/minecraft/recipe/warped_trapdoor.json new file mode 100755 index 0000000..c68c10f --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/warped_trapdoor.json @@ -0,0 +1,16 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "group": "wooden_trapdoor", + "key": { + "#": "minecraft:warped_planks" + }, + "pattern": [ + "###", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:warped_trapdoor" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/waxed_cut_copper_stairs.json b/datapacks/craft-refine/data/minecraft/recipe/waxed_cut_copper_stairs.json new file mode 100755 index 0000000..c60b3cd --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/waxed_cut_copper_stairs.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "waxed_cut_copper_stairs", + "key": { + "#": "minecraft:waxed_cut_copper" + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:waxed_cut_copper_stairs" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/waxed_cut_copper_stairs_from_honeycomb.json b/datapacks/craft-refine/data/minecraft/recipe/waxed_cut_copper_stairs_from_honeycomb.json new file mode 100755 index 0000000..680cbb1 --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/waxed_cut_copper_stairs_from_honeycomb.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "waxed_cut_copper_stairs_from_honeycomb", + "ingredients": [ + "minecraft:cut_copper_stairs", + "minecraft:honeycomb" + ], + "result": { + "count": 1, + "id": "minecraft:waxed_cut_copper_stairs" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/waxed_exposed_cut_copper_stairs.json b/datapacks/craft-refine/data/minecraft/recipe/waxed_exposed_cut_copper_stairs.json new file mode 100755 index 0000000..4d27da4 --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/waxed_exposed_cut_copper_stairs.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "waxed_cut_copper_stairs", + "key": { + "#": "minecraft:waxed_exposed_cut_copper" + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:waxed_exposed_cut_copper_stairs" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/waxed_exposed_cut_copper_stairs_from_honeycomb.json b/datapacks/craft-refine/data/minecraft/recipe/waxed_exposed_cut_copper_stairs_from_honeycomb.json new file mode 100755 index 0000000..9b92e2e --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/waxed_exposed_cut_copper_stairs_from_honeycomb.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "waxed_cut_copper_stairs_from_honeycomb", + "ingredients": [ + "minecraft:exposed_cut_copper_stairs", + "minecraft:honeycomb" + ], + "result": { + "count": 1, + "id": "minecraft:waxed_exposed_cut_copper_stairs" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/waxed_oxidized_cut_copper_stairs.json b/datapacks/craft-refine/data/minecraft/recipe/waxed_oxidized_cut_copper_stairs.json new file mode 100755 index 0000000..0462dd9 --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/waxed_oxidized_cut_copper_stairs.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "waxed_cut_copper_stairs", + "key": { + "#": "minecraft:waxed_oxidized_cut_copper" + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:waxed_oxidized_cut_copper_stairs" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/waxed_oxidized_cut_copper_stairs_from_honeycomb.json b/datapacks/craft-refine/data/minecraft/recipe/waxed_oxidized_cut_copper_stairs_from_honeycomb.json new file mode 100755 index 0000000..0fedd3e --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/waxed_oxidized_cut_copper_stairs_from_honeycomb.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "waxed_cut_copper_stairs_from_honeycomb", + "ingredients": [ + "minecraft:oxidized_cut_copper_stairs", + "minecraft:honeycomb" + ], + "result": { + "count": 1, + "id": "minecraft:waxed_oxidized_cut_copper_stairs" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/waxed_weathered_cut_copper_stairs.json b/datapacks/craft-refine/data/minecraft/recipe/waxed_weathered_cut_copper_stairs.json new file mode 100755 index 0000000..cb01ae4 --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/waxed_weathered_cut_copper_stairs.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "waxed_cut_copper_stairs", + "key": { + "#": "minecraft:waxed_weathered_cut_copper" + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:waxed_weathered_cut_copper_stairs" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/waxed_weathered_cut_copper_stairs_from_honeycomb.json b/datapacks/craft-refine/data/minecraft/recipe/waxed_weathered_cut_copper_stairs_from_honeycomb.json new file mode 100755 index 0000000..398d313 --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/waxed_weathered_cut_copper_stairs_from_honeycomb.json @@ -0,0 +1,13 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "waxed_cut_copper_stairs_from_honeycomb", + "ingredients": [ + "minecraft:weathered_cut_copper_stairs", + "minecraft:honeycomb" + ], + "result": { + "count": 1, + "id": "minecraft:waxed_weathered_cut_copper_stairs" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/minecraft/recipe/weathered_cut_copper_stairs.json b/datapacks/craft-refine/data/minecraft/recipe/weathered_cut_copper_stairs.json new file mode 100755 index 0000000..8fc5ddf --- /dev/null +++ b/datapacks/craft-refine/data/minecraft/recipe/weathered_cut_copper_stairs.json @@ -0,0 +1,17 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "building", + "group": "cut_copper_stairs", + "key": { + "#": "minecraft:weathered_cut_copper" + }, + "pattern": [ + "# ", + "## ", + "###" + ], + "result": { + "count": 6, + "id": "minecraft:weathered_cut_copper_stairs" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/misc/advancement/recipes/building_blocks/ice.json b/datapacks/craft-refine/data/misc/advancement/recipes/building_blocks/ice.json new file mode 100755 index 0000000..210ff67 --- /dev/null +++ b/datapacks/craft-refine/data/misc/advancement/recipes/building_blocks/ice.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_packed_ice": { + "conditions": { + "items": [ + { + "items": "minecraft:packed_ice" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "misc:ice" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_packed_ice" + ] + ], + "rewards": { + "recipes": [ + "misc:ice" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/misc/advancement/recipes/building_blocks/unpacked_ice.json b/datapacks/craft-refine/data/misc/advancement/recipes/building_blocks/unpacked_ice.json new file mode 100755 index 0000000..dfe7f54 --- /dev/null +++ b/datapacks/craft-refine/data/misc/advancement/recipes/building_blocks/unpacked_ice.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blue_ice": { + "conditions": { + "items": [ + { + "items": "minecraft:blue_ice" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "misc:unpacked_ice" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blue_ice" + ] + ], + "rewards": { + "recipes": [ + "misc:unpacked_ice" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/misc/recipe/ice.json b/datapacks/craft-refine/data/misc/recipe/ice.json new file mode 100755 index 0000000..9396dd9 --- /dev/null +++ b/datapacks/craft-refine/data/misc/recipe/ice.json @@ -0,0 +1,11 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "ingredients": [ + "minecraft:packed_ice" + ], + "result": { + "count": 9, + "id": "minecraft:ice" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/misc/recipe/unpacked_ice.json b/datapacks/craft-refine/data/misc/recipe/unpacked_ice.json new file mode 100755 index 0000000..f9cfa75 --- /dev/null +++ b/datapacks/craft-refine/data/misc/recipe/unpacked_ice.json @@ -0,0 +1,12 @@ +{ + "type": "minecraft:crafting_shapeless", + "category": "building", + "group": "packed_ice", + "ingredients": [ + "minecraft:blue_ice" + ], + "result": { + "count": 9, + "id": "minecraft:packed_ice" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/more_stairs/tags/item/quartz_blocks.json b/datapacks/craft-refine/data/more_stairs/tags/item/quartz_blocks.json new file mode 100755 index 0000000..8cb7cbf --- /dev/null +++ b/datapacks/craft-refine/data/more_stairs/tags/item/quartz_blocks.json @@ -0,0 +1,7 @@ +{ + "values": [ + "minecraft:quartz_block", + "minecraft:quartz_pillar", + "minecraft:chiseled_quartz_block" + ] +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/acacia_button_from_acacia_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/acacia_button_from_acacia_planks_stonecutting.json new file mode 100755 index 0000000..848f710 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/acacia_button_from_acacia_planks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_acacia_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:acacia_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:acacia_button_from_acacia_planks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_acacia_planks" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:acacia_button_from_acacia_planks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/acacia_planks_from_acacia_logs_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/acacia_planks_from_acacia_logs_stonecutting.json new file mode 100755 index 0000000..f5db47d --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/acacia_planks_from_acacia_logs_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_acacia_logs": { + "conditions": { + "items": [ + { + "items": "#minecraft:acacia_logs" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:acacia_planks_from_acacia_logs_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_acacia_logs" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:acacia_planks_from_acacia_logs_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/acacia_pressure_plate_from_acacia_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/acacia_pressure_plate_from_acacia_planks_stonecutting.json new file mode 100755 index 0000000..35905b5 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/acacia_pressure_plate_from_acacia_planks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_acacia_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:acacia_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:acacia_pressure_plate_from_acacia_planks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_acacia_planks" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:acacia_pressure_plate_from_acacia_planks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/acacia_slab_from_acacia_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/acacia_slab_from_acacia_planks_stonecutting.json new file mode 100755 index 0000000..17f53f1 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/acacia_slab_from_acacia_planks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_acacia_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:acacia_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:acacia_slab_from_acacia_planks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_acacia_planks" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:acacia_slab_from_acacia_planks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/acacia_stairs_from_acacia_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/acacia_stairs_from_acacia_planks_stonecutting.json new file mode 100755 index 0000000..056dd21 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/acacia_stairs_from_acacia_planks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_acacia_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:acacia_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:acacia_stairs_from_acacia_planks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_acacia_planks" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:acacia_stairs_from_acacia_planks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/acacia_trapdoor_from_acacia_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/acacia_trapdoor_from_acacia_planks_stonecutting.json new file mode 100755 index 0000000..e0e0543 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/acacia_trapdoor_from_acacia_planks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_acacia_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:acacia_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:acacia_trapdoor_from_acacia_planks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_acacia_planks" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:acacia_trapdoor_from_acacia_planks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/bamboo_button_from_bamboo_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/bamboo_button_from_bamboo_planks_stonecutting.json new file mode 100755 index 0000000..b47fdf2 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/bamboo_button_from_bamboo_planks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_bamboo_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:bamboo_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:bamboo_button_from_bamboo_planks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_bamboo_planks" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:bamboo_button_from_bamboo_planks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/bamboo_mosaic_slab_from_bamboo_mosaic_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/bamboo_mosaic_slab_from_bamboo_mosaic_stonecutting.json new file mode 100755 index 0000000..da8f38b --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/bamboo_mosaic_slab_from_bamboo_mosaic_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_bamboo_mosaic": { + "conditions": { + "items": [ + { + "items": "minecraft:bamboo_mosaic" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:bamboo_mosaic_slab_from_bamboo_mosaic_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_bamboo_mosaic" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:bamboo_mosaic_slab_from_bamboo_mosaic_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/bamboo_mosaic_stairs_from_bamboo_mosaic_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/bamboo_mosaic_stairs_from_bamboo_mosaic_stonecutting.json new file mode 100755 index 0000000..cc47e58 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/bamboo_mosaic_stairs_from_bamboo_mosaic_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_bamboo_mosaic": { + "conditions": { + "items": [ + { + "items": "minecraft:bamboo_mosaic" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:bamboo_mosaic_stairs_from_bamboo_mosaic_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_bamboo_mosaic" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:bamboo_mosaic_stairs_from_bamboo_mosaic_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/bamboo_planks_from_bamboo_blocks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/bamboo_planks_from_bamboo_blocks_stonecutting.json new file mode 100755 index 0000000..c98dca9 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/bamboo_planks_from_bamboo_blocks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_bamboo_blocks": { + "conditions": { + "items": [ + { + "items": "#minecraft:bamboo_blocks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:bamboo_planks_from_bamboo_blocks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_bamboo_blocks" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:bamboo_planks_from_bamboo_blocks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/bamboo_pressure_plate_from_bamboo_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/bamboo_pressure_plate_from_bamboo_planks_stonecutting.json new file mode 100755 index 0000000..50e8f56 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/bamboo_pressure_plate_from_bamboo_planks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_bamboo_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:bamboo_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:bamboo_pressure_plate_from_bamboo_planks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_bamboo_planks" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:bamboo_pressure_plate_from_bamboo_planks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/bamboo_slab_from_bamboo_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/bamboo_slab_from_bamboo_planks_stonecutting.json new file mode 100755 index 0000000..75933ab --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/bamboo_slab_from_bamboo_planks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_bamboo_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:bamboo_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:bamboo_slab_from_bamboo_planks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_bamboo_planks" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:bamboo_slab_from_bamboo_planks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/bamboo_stairs_from_bamboo_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/bamboo_stairs_from_bamboo_planks_stonecutting.json new file mode 100755 index 0000000..8817144 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/bamboo_stairs_from_bamboo_planks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_bamboo_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:bamboo_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:bamboo_stairs_from_bamboo_planks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_bamboo_planks" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:bamboo_stairs_from_bamboo_planks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/bamboo_trapdoor_from_bamboo_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/bamboo_trapdoor_from_bamboo_planks_stonecutting.json new file mode 100755 index 0000000..c51b2d4 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/bamboo_trapdoor_from_bamboo_planks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_bamboo_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:bamboo_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:bamboo_trapdoor_from_bamboo_planks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_bamboo_planks" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:bamboo_trapdoor_from_bamboo_planks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/birch_button_from_birch_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/birch_button_from_birch_planks_stonecutting.json new file mode 100755 index 0000000..2474612 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/birch_button_from_birch_planks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_birch_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:birch_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:birch_button_from_birch_planks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_birch_planks" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:birch_button_from_birch_planks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/birch_planks_from_birch_logs_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/birch_planks_from_birch_logs_stonecutting.json new file mode 100755 index 0000000..f780894 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/birch_planks_from_birch_logs_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_birch_logs": { + "conditions": { + "items": [ + { + "items": "#minecraft:birch_logs" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:birch_planks_from_birch_logs_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_birch_logs" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:birch_planks_from_birch_logs_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/birch_pressure_plate_from_birch_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/birch_pressure_plate_from_birch_planks_stonecutting.json new file mode 100755 index 0000000..7794dd8 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/birch_pressure_plate_from_birch_planks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_birch_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:birch_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:birch_pressure_plate_from_birch_planks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_birch_planks" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:birch_pressure_plate_from_birch_planks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/birch_slab_from_birch_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/birch_slab_from_birch_planks_stonecutting.json new file mode 100755 index 0000000..06dd634 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/birch_slab_from_birch_planks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_birch_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:birch_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:birch_slab_from_birch_planks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_birch_planks" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:birch_slab_from_birch_planks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/birch_stairs_from_birch_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/birch_stairs_from_birch_planks_stonecutting.json new file mode 100755 index 0000000..d696ac2 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/birch_stairs_from_birch_planks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_birch_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:birch_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:birch_stairs_from_birch_planks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_birch_planks" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:birch_stairs_from_birch_planks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/birch_trapdoor_from_birch_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/birch_trapdoor_from_birch_planks_stonecutting.json new file mode 100755 index 0000000..e87b246 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/birch_trapdoor_from_birch_planks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_birch_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:birch_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:birch_trapdoor_from_birch_planks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_birch_planks" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:birch_trapdoor_from_birch_planks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/cherry_button_from_cherry_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/cherry_button_from_cherry_planks_stonecutting.json new file mode 100755 index 0000000..e4b71c7 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/cherry_button_from_cherry_planks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cherry_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:cherry_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:cherry_button_from_cherry_planks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cherry_planks" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:cherry_button_from_cherry_planks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/cherry_planks_from_cherry_logs_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/cherry_planks_from_cherry_logs_stonecutting.json new file mode 100755 index 0000000..7be04ad --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/cherry_planks_from_cherry_logs_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cherry_logs": { + "conditions": { + "items": [ + { + "items": "#minecraft:cherry_logs" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:cherry_planks_from_cherry_logs_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cherry_logs" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:cherry_planks_from_cherry_logs_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/cherry_pressure_plate_from_cherry_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/cherry_pressure_plate_from_cherry_planks_stonecutting.json new file mode 100755 index 0000000..34a5a98 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/cherry_pressure_plate_from_cherry_planks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cherry_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:cherry_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:cherry_pressure_plate_from_cherry_planks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cherry_planks" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:cherry_pressure_plate_from_cherry_planks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/cherry_slab_from_cherry_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/cherry_slab_from_cherry_planks_stonecutting.json new file mode 100755 index 0000000..962fd80 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/cherry_slab_from_cherry_planks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cherry_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:cherry_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:cherry_slab_from_cherry_planks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cherry_planks" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:cherry_slab_from_cherry_planks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/cherry_stairs_from_cherry_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/cherry_stairs_from_cherry_planks_stonecutting.json new file mode 100755 index 0000000..83e50e4 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/cherry_stairs_from_cherry_planks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cherry_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:cherry_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:cherry_stairs_from_cherry_planks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cherry_planks" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:cherry_stairs_from_cherry_planks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/cherry_trapdoor_from_cherry_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/cherry_trapdoor_from_cherry_planks_stonecutting.json new file mode 100755 index 0000000..b9c9dba --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/cherry_trapdoor_from_cherry_planks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_cherry_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:cherry_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:cherry_trapdoor_from_cherry_planks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_cherry_planks" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:cherry_trapdoor_from_cherry_planks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/cobbled_deepslate_from_deepslate_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/cobbled_deepslate_from_deepslate_stonecutting.json new file mode 100755 index 0000000..392859d --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/cobbled_deepslate_from_deepslate_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_deepslate": { + "conditions": { + "items": [ + { + "items": "minecraft:deepslate" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:cobbled_deepslate_from_deepslate_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_deepslate" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:cobbled_deepslate_from_deepslate_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/cobblestone_from_stone_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/cobblestone_from_stone_stonecutting.json new file mode 100755 index 0000000..188b4e7 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/cobblestone_from_stone_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_stone": { + "conditions": { + "items": [ + { + "items": "minecraft:stone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:cobblestone_from_stone_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_stone" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:cobblestone_from_stone_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/copper_trapdoor_from_copper_block_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/copper_trapdoor_from_copper_block_stonecutting.json new file mode 100755 index 0000000..2cdeb7b --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/copper_trapdoor_from_copper_block_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_copper_block": { + "conditions": { + "items": [ + { + "items": "minecraft:copper_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:copper_trapdoor_from_copper_block_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_copper_block" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:copper_trapdoor_from_copper_block_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/crimson_button_from_crimson_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/crimson_button_from_crimson_planks_stonecutting.json new file mode 100755 index 0000000..8d82bb0 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/crimson_button_from_crimson_planks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_crimson_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:crimson_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:crimson_button_from_crimson_planks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_crimson_planks" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:crimson_button_from_crimson_planks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/crimson_planks_from_crimson_stems_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/crimson_planks_from_crimson_stems_stonecutting.json new file mode 100755 index 0000000..803b728 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/crimson_planks_from_crimson_stems_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_crimson_stems": { + "conditions": { + "items": [ + { + "items": "#minecraft:crimson_stems" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:crimson_planks_from_crimson_stems_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_crimson_stems" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:crimson_planks_from_crimson_stems_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/crimson_pressure_plate_from_crimson_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/crimson_pressure_plate_from_crimson_planks_stonecutting.json new file mode 100755 index 0000000..9ebc314 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/crimson_pressure_plate_from_crimson_planks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_crimson_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:crimson_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:crimson_pressure_plate_from_crimson_planks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_crimson_planks" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:crimson_pressure_plate_from_crimson_planks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/crimson_slab_from_crimson_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/crimson_slab_from_crimson_planks_stonecutting.json new file mode 100755 index 0000000..d622190 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/crimson_slab_from_crimson_planks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_crimson_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:crimson_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:crimson_slab_from_crimson_planks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_crimson_planks" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:crimson_slab_from_crimson_planks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/crimson_stairs_from_crimson_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/crimson_stairs_from_crimson_planks_stonecutting.json new file mode 100755 index 0000000..3b0be02 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/crimson_stairs_from_crimson_planks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_crimson_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:crimson_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:crimson_stairs_from_crimson_planks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_crimson_planks" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:crimson_stairs_from_crimson_planks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/crimson_trapdoor_from_crimson_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/crimson_trapdoor_from_crimson_planks_stonecutting.json new file mode 100755 index 0000000..8aad749 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/crimson_trapdoor_from_crimson_planks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_crimson_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:crimson_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:crimson_trapdoor_from_crimson_planks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_crimson_planks" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:crimson_trapdoor_from_crimson_planks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/dark_oak_button_from_dark_oak_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/dark_oak_button_from_dark_oak_planks_stonecutting.json new file mode 100755 index 0000000..80b2265 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/dark_oak_button_from_dark_oak_planks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_dark_oak_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:dark_oak_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:dark_oak_button_from_dark_oak_planks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_dark_oak_planks" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:dark_oak_button_from_dark_oak_planks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/dark_oak_planks_from_dark_oak_logs_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/dark_oak_planks_from_dark_oak_logs_stonecutting.json new file mode 100755 index 0000000..b62aa20 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/dark_oak_planks_from_dark_oak_logs_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_dark_oak_logs": { + "conditions": { + "items": [ + { + "items": "#minecraft:dark_oak_logs" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:dark_oak_planks_from_dark_oak_logs_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_dark_oak_logs" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:dark_oak_planks_from_dark_oak_logs_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/dark_oak_pressure_plate_from_dark_oak_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/dark_oak_pressure_plate_from_dark_oak_planks_stonecutting.json new file mode 100755 index 0000000..90d5e09 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/dark_oak_pressure_plate_from_dark_oak_planks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_dark_oak_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:dark_oak_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:dark_oak_pressure_plate_from_dark_oak_planks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_dark_oak_planks" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:dark_oak_pressure_plate_from_dark_oak_planks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/dark_oak_slab_from_dark_oak_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/dark_oak_slab_from_dark_oak_planks_stonecutting.json new file mode 100755 index 0000000..8900cc6 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/dark_oak_slab_from_dark_oak_planks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_dark_oak_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:dark_oak_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:dark_oak_slab_from_dark_oak_planks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_dark_oak_planks" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:dark_oak_slab_from_dark_oak_planks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/dark_oak_stairs_from_dark_oak_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/dark_oak_stairs_from_dark_oak_planks_stonecutting.json new file mode 100755 index 0000000..0fe9844 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/dark_oak_stairs_from_dark_oak_planks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_dark_oak_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:dark_oak_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:dark_oak_stairs_from_dark_oak_planks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_dark_oak_planks" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:dark_oak_stairs_from_dark_oak_planks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/dark_oak_trapdoor_from_dark_oak_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/dark_oak_trapdoor_from_dark_oak_planks_stonecutting.json new file mode 100755 index 0000000..a5f8dad --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/dark_oak_trapdoor_from_dark_oak_planks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_dark_oak_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:dark_oak_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:dark_oak_trapdoor_from_dark_oak_planks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_dark_oak_planks" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:dark_oak_trapdoor_from_dark_oak_planks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/exposed_copper_trapdoor_from_exposed_copper_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/exposed_copper_trapdoor_from_exposed_copper_stonecutting.json new file mode 100755 index 0000000..b817256 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/exposed_copper_trapdoor_from_exposed_copper_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_exposed_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:exposed_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:exposed_copper_trapdoor_from_exposed_copper_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_exposed_copper" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:exposed_copper_trapdoor_from_exposed_copper_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/iron_trapdoor_from_iron_block_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/iron_trapdoor_from_iron_block_stonecutting.json new file mode 100755 index 0000000..ce38bfe --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/iron_trapdoor_from_iron_block_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_iron_block": { + "conditions": { + "items": [ + { + "items": "minecraft:iron_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:iron_trapdoor_from_iron_block_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_iron_block" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:iron_trapdoor_from_iron_block_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/jungle_button_from_jungle_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/jungle_button_from_jungle_planks_stonecutting.json new file mode 100755 index 0000000..ce15ca0 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/jungle_button_from_jungle_planks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_jungle_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:jungle_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:jungle_button_from_jungle_planks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_jungle_planks" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:jungle_button_from_jungle_planks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/jungle_planks_from_jungle_logs_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/jungle_planks_from_jungle_logs_stonecutting.json new file mode 100755 index 0000000..bcdef10 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/jungle_planks_from_jungle_logs_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_jungle_logs": { + "conditions": { + "items": [ + { + "items": "#minecraft:jungle_logs" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:jungle_planks_from_jungle_logs_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_jungle_logs" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:jungle_planks_from_jungle_logs_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/jungle_pressure_plate_from_jungle_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/jungle_pressure_plate_from_jungle_planks_stonecutting.json new file mode 100755 index 0000000..2e519e9 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/jungle_pressure_plate_from_jungle_planks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_jungle_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:jungle_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:jungle_pressure_plate_from_jungle_planks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_jungle_planks" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:jungle_pressure_plate_from_jungle_planks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/jungle_slab_from_jungle_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/jungle_slab_from_jungle_planks_stonecutting.json new file mode 100755 index 0000000..bb3843e --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/jungle_slab_from_jungle_planks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_jungle_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:jungle_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:jungle_slab_from_jungle_planks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_jungle_planks" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:jungle_slab_from_jungle_planks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/jungle_stairs_from_jungle_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/jungle_stairs_from_jungle_planks_stonecutting.json new file mode 100755 index 0000000..f910030 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/jungle_stairs_from_jungle_planks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_jungle_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:jungle_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:jungle_stairs_from_jungle_planks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_jungle_planks" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:jungle_stairs_from_jungle_planks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/jungle_trapdoor_from_jungle_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/jungle_trapdoor_from_jungle_planks_stonecutting.json new file mode 100755 index 0000000..d944095 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/jungle_trapdoor_from_jungle_planks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_jungle_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:jungle_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:jungle_trapdoor_from_jungle_planks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_jungle_planks" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:jungle_trapdoor_from_jungle_planks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/mangrove_button_from_mangrove_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/mangrove_button_from_mangrove_planks_stonecutting.json new file mode 100755 index 0000000..c44cdf6 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/mangrove_button_from_mangrove_planks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_mangrove_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:mangrove_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:mangrove_button_from_mangrove_planks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_mangrove_planks" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:mangrove_button_from_mangrove_planks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/mangrove_planks_from_mangrove_logs_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/mangrove_planks_from_mangrove_logs_stonecutting.json new file mode 100755 index 0000000..c509751 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/mangrove_planks_from_mangrove_logs_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_mangrove_logs": { + "conditions": { + "items": [ + { + "items": "#minecraft:mangrove_logs" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:mangrove_planks_from_mangrove_logs_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_mangrove_logs" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:mangrove_planks_from_mangrove_logs_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/mangrove_pressure_plate_from_mangrove_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/mangrove_pressure_plate_from_mangrove_planks_stonecutting.json new file mode 100755 index 0000000..1493fa7 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/mangrove_pressure_plate_from_mangrove_planks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_mangrove_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:mangrove_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:mangrove_pressure_plate_from_mangrove_planks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_mangrove_planks" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:mangrove_pressure_plate_from_mangrove_planks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/mangrove_slab_from_mangrove_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/mangrove_slab_from_mangrove_planks_stonecutting.json new file mode 100755 index 0000000..330da05 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/mangrove_slab_from_mangrove_planks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_mangrove_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:mangrove_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:mangrove_slab_from_mangrove_planks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_mangrove_planks" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:mangrove_slab_from_mangrove_planks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/mangrove_stairs_from_mangrove_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/mangrove_stairs_from_mangrove_planks_stonecutting.json new file mode 100755 index 0000000..374d030 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/mangrove_stairs_from_mangrove_planks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_mangrove_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:mangrove_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:mangrove_stairs_from_mangrove_planks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_mangrove_planks" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:mangrove_stairs_from_mangrove_planks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/mangrove_trapdoor_from_mangrove_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/mangrove_trapdoor_from_mangrove_planks_stonecutting.json new file mode 100755 index 0000000..024f6e5 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/mangrove_trapdoor_from_mangrove_planks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_mangrove_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:mangrove_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:mangrove_trapdoor_from_mangrove_planks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_mangrove_planks" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:mangrove_trapdoor_from_mangrove_planks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/oak_button_from_oak_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/oak_button_from_oak_planks_stonecutting.json new file mode 100755 index 0000000..52f1b44 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/oak_button_from_oak_planks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_oak_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:oak_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:oak_button_from_oak_planks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_oak_planks" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:oak_button_from_oak_planks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/oak_planks_from_oak_logs_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/oak_planks_from_oak_logs_stonecutting.json new file mode 100755 index 0000000..3f43cbf --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/oak_planks_from_oak_logs_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_oak_logs": { + "conditions": { + "items": [ + { + "items": "#minecraft:oak_logs" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:oak_planks_from_oak_logs_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_oak_logs" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:oak_planks_from_oak_logs_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/oak_pressure_plate_from_oak_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/oak_pressure_plate_from_oak_planks_stonecutting.json new file mode 100755 index 0000000..5a3ea17 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/oak_pressure_plate_from_oak_planks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_oak_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:oak_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:oak_pressure_plate_from_oak_planks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_oak_planks" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:oak_pressure_plate_from_oak_planks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/oak_slab_from_oak_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/oak_slab_from_oak_planks_stonecutting.json new file mode 100755 index 0000000..8892d2d --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/oak_slab_from_oak_planks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_oak_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:oak_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:oak_slab_from_oak_planks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_oak_planks" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:oak_slab_from_oak_planks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/oak_stairs_from_oak_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/oak_stairs_from_oak_planks_stonecutting.json new file mode 100755 index 0000000..350e905 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/oak_stairs_from_oak_planks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_oak_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:oak_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:oak_stairs_from_oak_planks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_oak_planks" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:oak_stairs_from_oak_planks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/oak_trapdoor_from_oak_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/oak_trapdoor_from_oak_planks_stonecutting.json new file mode 100755 index 0000000..f0c3427 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/oak_trapdoor_from_oak_planks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_oak_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:oak_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:oak_trapdoor_from_oak_planks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_oak_planks" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:oak_trapdoor_from_oak_planks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/oxidized_copper_trapdoor_from_oxidized_copper_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/oxidized_copper_trapdoor_from_oxidized_copper_stonecutting.json new file mode 100755 index 0000000..e800576 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/oxidized_copper_trapdoor_from_oxidized_copper_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_oxidized_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:oxidized_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:oxidized_copper_trapdoor_from_oxidized_copper_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_oxidized_copper" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:oxidized_copper_trapdoor_from_oxidized_copper_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/pale_oak_button_from_pale_oak_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/pale_oak_button_from_pale_oak_planks_stonecutting.json new file mode 100755 index 0000000..7c2d20c --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/pale_oak_button_from_pale_oak_planks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_pale_oak_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:pale_oak_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:pale_oak_button_from_pale_oak_planks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_pale_oak_planks" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:pale_oak_button_from_pale_oak_planks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/pale_oak_planks_from_pale_oak_logs_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/pale_oak_planks_from_pale_oak_logs_stonecutting.json new file mode 100755 index 0000000..58167d5 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/pale_oak_planks_from_pale_oak_logs_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_pale_oak_logs": { + "conditions": { + "items": [ + { + "items": "#minecraft:pale_oak_logs" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:pale_oak_planks_from_pale_oak_logs_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_pale_oak_logs" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:pale_oak_planks_from_pale_oak_logs_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/pale_oak_pressure_plate_from_pale_oak_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/pale_oak_pressure_plate_from_pale_oak_planks_stonecutting.json new file mode 100755 index 0000000..04b768f --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/pale_oak_pressure_plate_from_pale_oak_planks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_pale_oak_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:pale_oak_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:pale_oak_pressure_plate_from_pale_oak_planks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_pale_oak_planks" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:pale_oak_pressure_plate_from_pale_oak_planks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/pale_oak_slab_from_pale_oak_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/pale_oak_slab_from_pale_oak_planks_stonecutting.json new file mode 100755 index 0000000..74ab224 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/pale_oak_slab_from_pale_oak_planks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_pale_oak_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:pale_oak_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:pale_oak_slab_from_pale_oak_planks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_pale_oak_planks" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:pale_oak_slab_from_pale_oak_planks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/pale_oak_stairs_from_pale_oak_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/pale_oak_stairs_from_pale_oak_planks_stonecutting.json new file mode 100755 index 0000000..22f6c45 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/pale_oak_stairs_from_pale_oak_planks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_pale_oak_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:pale_oak_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:pale_oak_stairs_from_pale_oak_planks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_pale_oak_planks" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:pale_oak_stairs_from_pale_oak_planks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/pale_oak_trapdoor_from_pale_oak_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/pale_oak_trapdoor_from_pale_oak_planks_stonecutting.json new file mode 100755 index 0000000..7444d47 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/pale_oak_trapdoor_from_pale_oak_planks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_pale_oak_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:pale_oak_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:pale_oak_trapdoor_from_pale_oak_planks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_pale_oak_planks" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:pale_oak_trapdoor_from_pale_oak_planks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/polished_blackstone_button_from_blackstone_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/polished_blackstone_button_from_blackstone_stonecutting.json new file mode 100755 index 0000000..ea032ec --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/polished_blackstone_button_from_blackstone_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blackstone": { + "conditions": { + "items": [ + { + "items": "minecraft:blackstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:polished_blackstone_button_from_blackstone_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blackstone" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:polished_blackstone_button_from_blackstone_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/polished_blackstone_button_from_polished_blackstone_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/polished_blackstone_button_from_polished_blackstone_stonecutting.json new file mode 100755 index 0000000..6378095 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/polished_blackstone_button_from_polished_blackstone_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_polished_blackstone": { + "conditions": { + "items": [ + { + "items": "minecraft:polished_blackstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:polished_blackstone_button_from_polished_blackstone_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_polished_blackstone" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:polished_blackstone_button_from_polished_blackstone_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/polished_blackstone_pressure_plate_from_blackstone_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/polished_blackstone_pressure_plate_from_blackstone_stonecutting.json new file mode 100755 index 0000000..df74bb2 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/polished_blackstone_pressure_plate_from_blackstone_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_blackstone": { + "conditions": { + "items": [ + { + "items": "minecraft:blackstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:polished_blackstone_pressure_plate_from_blackstone_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_blackstone" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:polished_blackstone_pressure_plate_from_blackstone_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/polished_blackstone_pressure_plate_from_polished_blackstone_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/polished_blackstone_pressure_plate_from_polished_blackstone_stonecutting.json new file mode 100755 index 0000000..31a39b1 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/polished_blackstone_pressure_plate_from_polished_blackstone_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_polished_blackstone": { + "conditions": { + "items": [ + { + "items": "minecraft:polished_blackstone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:polished_blackstone_pressure_plate_from_polished_blackstone_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_polished_blackstone" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:polished_blackstone_pressure_plate_from_polished_blackstone_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/spruce_button_from_spruce_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/spruce_button_from_spruce_planks_stonecutting.json new file mode 100755 index 0000000..c1efcd1 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/spruce_button_from_spruce_planks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_spruce_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:spruce_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:spruce_button_from_spruce_planks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_spruce_planks" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:spruce_button_from_spruce_planks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/spruce_planks_from_spruce_logs_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/spruce_planks_from_spruce_logs_stonecutting.json new file mode 100755 index 0000000..b53c0a3 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/spruce_planks_from_spruce_logs_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_spruce_logs": { + "conditions": { + "items": [ + { + "items": "#minecraft:spruce_logs" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:spruce_planks_from_spruce_logs_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_spruce_logs" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:spruce_planks_from_spruce_logs_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/spruce_pressure_plate_from_spruce_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/spruce_pressure_plate_from_spruce_planks_stonecutting.json new file mode 100755 index 0000000..50062c1 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/spruce_pressure_plate_from_spruce_planks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_spruce_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:spruce_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:spruce_pressure_plate_from_spruce_planks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_spruce_planks" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:spruce_pressure_plate_from_spruce_planks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/spruce_slab_from_spruce_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/spruce_slab_from_spruce_planks_stonecutting.json new file mode 100755 index 0000000..6307de7 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/spruce_slab_from_spruce_planks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_spruce_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:spruce_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:spruce_slab_from_spruce_planks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_spruce_planks" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:spruce_slab_from_spruce_planks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/spruce_stairs_from_spruce_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/spruce_stairs_from_spruce_planks_stonecutting.json new file mode 100755 index 0000000..19c7926 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/spruce_stairs_from_spruce_planks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_spruce_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:spruce_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:spruce_stairs_from_spruce_planks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_spruce_planks" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:spruce_stairs_from_spruce_planks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/spruce_trapdoor_from_spruce_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/spruce_trapdoor_from_spruce_planks_stonecutting.json new file mode 100755 index 0000000..b67223b --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/spruce_trapdoor_from_spruce_planks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_spruce_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:spruce_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:spruce_trapdoor_from_spruce_planks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_spruce_planks" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:spruce_trapdoor_from_spruce_planks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/stone_button_from_stone_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/stone_button_from_stone_stonecutting.json new file mode 100755 index 0000000..c9bfd4e --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/stone_button_from_stone_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_stone": { + "conditions": { + "items": [ + { + "items": "minecraft:stone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:stone_button_from_stone_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_stone" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:stone_button_from_stone_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/stone_pressure_plate_from_stone_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/stone_pressure_plate_from_stone_stonecutting.json new file mode 100755 index 0000000..e55ed17 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/stone_pressure_plate_from_stone_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_stone": { + "conditions": { + "items": [ + { + "items": "minecraft:stone" + } + ] + }, + "trigger": "minecraft:inventory_changed" + }, + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:stone_pressure_plate_from_stone_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_stone" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:stone_pressure_plate_from_stone_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/warped_button_from_warped_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/warped_button_from_warped_planks_stonecutting.json new file mode 100755 index 0000000..4195825 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/warped_button_from_warped_planks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:warped_button_from_warped_planks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_warped_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:warped_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_warped_planks" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:warped_button_from_warped_planks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/warped_planks_from_warped_stems_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/warped_planks_from_warped_stems_stonecutting.json new file mode 100755 index 0000000..545a5cf --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/warped_planks_from_warped_stems_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:warped_planks_from_warped_stems_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_warped_stems": { + "conditions": { + "items": [ + { + "items": "#minecraft:warped_stems" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_warped_stems" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:warped_planks_from_warped_stems_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/warped_pressure_plate_from_warped_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/warped_pressure_plate_from_warped_planks_stonecutting.json new file mode 100755 index 0000000..03e110f --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/warped_pressure_plate_from_warped_planks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:warped_pressure_plate_from_warped_planks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_warped_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:warped_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_warped_planks" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:warped_pressure_plate_from_warped_planks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/warped_slab_from_warped_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/warped_slab_from_warped_planks_stonecutting.json new file mode 100755 index 0000000..ef7ea4a --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/warped_slab_from_warped_planks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:warped_slab_from_warped_planks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_warped_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:warped_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_warped_planks" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:warped_slab_from_warped_planks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/warped_stairs_from_warped_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/warped_stairs_from_warped_planks_stonecutting.json new file mode 100755 index 0000000..c300e56 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/warped_stairs_from_warped_planks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:warped_stairs_from_warped_planks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_warped_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:warped_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_warped_planks" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:warped_stairs_from_warped_planks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/warped_trapdoor_from_warped_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/warped_trapdoor_from_warped_planks_stonecutting.json new file mode 100755 index 0000000..ad7ef8d --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/warped_trapdoor_from_warped_planks_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:warped_trapdoor_from_warped_planks_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_warped_planks": { + "conditions": { + "items": [ + { + "items": "minecraft:warped_planks" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_warped_planks" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:warped_trapdoor_from_warped_planks_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/waxed_copper_trapdoor_from_waxed_copper_block_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/waxed_copper_trapdoor_from_waxed_copper_block_stonecutting.json new file mode 100755 index 0000000..5bfab6d --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/waxed_copper_trapdoor_from_waxed_copper_block_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:waxed_copper_trapdoor_from_waxed_copper_block_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_waxed_copper_block": { + "conditions": { + "items": [ + { + "items": "minecraft:waxed_copper_block" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_waxed_copper_block" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:waxed_copper_trapdoor_from_waxed_copper_block_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/waxed_exposed_copper_trapdoor_from_waxed_exposed_copper_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/waxed_exposed_copper_trapdoor_from_waxed_exposed_copper_stonecutting.json new file mode 100755 index 0000000..2dd977a --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/waxed_exposed_copper_trapdoor_from_waxed_exposed_copper_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:waxed_exposed_copper_trapdoor_from_waxed_exposed_copper_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_waxed_exposed_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:waxed_exposed_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_waxed_exposed_copper" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:waxed_exposed_copper_trapdoor_from_waxed_exposed_copper_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/waxed_oxidized_copper_trapdoor_from_waxed_oxidized_copper_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/waxed_oxidized_copper_trapdoor_from_waxed_oxidized_copper_stonecutting.json new file mode 100755 index 0000000..e26b407 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/waxed_oxidized_copper_trapdoor_from_waxed_oxidized_copper_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:waxed_oxidized_copper_trapdoor_from_waxed_oxidized_copper_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_waxed_oxidized_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:waxed_oxidized_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_waxed_oxidized_copper" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:waxed_oxidized_copper_trapdoor_from_waxed_oxidized_copper_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/waxed_weathered_copper_trapdoor_from_waxed_weathered_copper_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/waxed_weathered_copper_trapdoor_from_waxed_weathered_copper_stonecutting.json new file mode 100755 index 0000000..6d0330f --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/waxed_weathered_copper_trapdoor_from_waxed_weathered_copper_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:waxed_weathered_copper_trapdoor_from_waxed_weathered_copper_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_waxed_weathered_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:waxed_weathered_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_waxed_weathered_copper" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:waxed_weathered_copper_trapdoor_from_waxed_weathered_copper_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/weathered_copper_trapdoor_from_weathered_copper_stonecutting.json b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/weathered_copper_trapdoor_from_weathered_copper_stonecutting.json new file mode 100755 index 0000000..8eaff94 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/advancement/recipes/misc/weathered_copper_trapdoor_from_weathered_copper_stonecutting.json @@ -0,0 +1,32 @@ +{ + "parent": "minecraft:recipes/root", + "criteria": { + "has_the_recipe": { + "conditions": { + "recipe": "woodcutter:weathered_copper_trapdoor_from_weathered_copper_stonecutting" + }, + "trigger": "minecraft:recipe_unlocked" + }, + "has_weathered_copper": { + "conditions": { + "items": [ + { + "items": "minecraft:weathered_copper" + } + ] + }, + "trigger": "minecraft:inventory_changed" + } + }, + "requirements": [ + [ + "has_the_recipe", + "has_weathered_copper" + ] + ], + "rewards": { + "recipes": [ + "woodcutter:weathered_copper_trapdoor_from_weathered_copper_stonecutting" + ] + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/acacia_button_from_acacia_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/acacia_button_from_acacia_planks_stonecutting.json new file mode 100755 index 0000000..baff357 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/acacia_button_from_acacia_planks_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "minecraft:acacia_planks", + "result": { + "count": 4, + "id": "minecraft:acacia_button" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/acacia_planks_from_acacia_logs_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/acacia_planks_from_acacia_logs_stonecutting.json new file mode 100755 index 0000000..9cd81bb --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/acacia_planks_from_acacia_logs_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "#minecraft:acacia_logs", + "result": { + "count": 4, + "id": "minecraft:acacia_planks" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/acacia_pressure_plate_from_acacia_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/acacia_pressure_plate_from_acacia_planks_stonecutting.json new file mode 100755 index 0000000..66ca00d --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/acacia_pressure_plate_from_acacia_planks_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "minecraft:acacia_planks", + "result": { + "count": 2, + "id": "minecraft:acacia_pressure_plate" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/acacia_slab_from_acacia_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/acacia_slab_from_acacia_planks_stonecutting.json new file mode 100755 index 0000000..1df065e --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/acacia_slab_from_acacia_planks_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "minecraft:acacia_planks", + "result": { + "count": 2, + "id": "minecraft:acacia_slab" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/acacia_stairs_from_acacia_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/acacia_stairs_from_acacia_planks_stonecutting.json new file mode 100755 index 0000000..67b566f --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/acacia_stairs_from_acacia_planks_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "minecraft:acacia_planks", + "result": { + "count": 1, + "id": "minecraft:acacia_stairs" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/acacia_trapdoor_from_acacia_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/acacia_trapdoor_from_acacia_planks_stonecutting.json new file mode 100755 index 0000000..e6a5034 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/acacia_trapdoor_from_acacia_planks_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "minecraft:acacia_planks", + "result": { + "count": 2, + "id": "minecraft:acacia_trapdoor" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/bamboo_button_from_bamboo_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/bamboo_button_from_bamboo_planks_stonecutting.json new file mode 100755 index 0000000..f3c7d52 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/bamboo_button_from_bamboo_planks_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "minecraft:bamboo_planks", + "result": { + "count": 4, + "id": "minecraft:bamboo_button" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/bamboo_mosaic_slab_from_bamboo_mosaic_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/bamboo_mosaic_slab_from_bamboo_mosaic_stonecutting.json new file mode 100755 index 0000000..295f09f --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/bamboo_mosaic_slab_from_bamboo_mosaic_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "minecraft:bamboo_mosaic", + "result": { + "count": 2, + "id": "minecraft:bamboo_mosaic_slab" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/bamboo_mosaic_stairs_from_bamboo_mosaic_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/bamboo_mosaic_stairs_from_bamboo_mosaic_stonecutting.json new file mode 100755 index 0000000..b4493a7 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/bamboo_mosaic_stairs_from_bamboo_mosaic_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "minecraft:bamboo_mosaic", + "result": { + "count": 1, + "id": "minecraft:bamboo_mosaic_stairs" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/bamboo_planks_from_bamboo_blocks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/bamboo_planks_from_bamboo_blocks_stonecutting.json new file mode 100755 index 0000000..599e7cd --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/bamboo_planks_from_bamboo_blocks_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "#minecraft:bamboo_blocks", + "result": { + "count": 2, + "id": "minecraft:bamboo_planks" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/bamboo_pressure_plate_from_bamboo_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/bamboo_pressure_plate_from_bamboo_planks_stonecutting.json new file mode 100755 index 0000000..a12d22e --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/bamboo_pressure_plate_from_bamboo_planks_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "minecraft:bamboo_planks", + "result": { + "count": 2, + "id": "minecraft:bamboo_pressure_plate" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/bamboo_slab_from_bamboo_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/bamboo_slab_from_bamboo_planks_stonecutting.json new file mode 100755 index 0000000..983bbd1 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/bamboo_slab_from_bamboo_planks_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "minecraft:bamboo_planks", + "result": { + "count": 2, + "id": "minecraft:bamboo_slab" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/bamboo_stairs_from_bamboo_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/bamboo_stairs_from_bamboo_planks_stonecutting.json new file mode 100755 index 0000000..dd8c677 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/bamboo_stairs_from_bamboo_planks_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "minecraft:bamboo_planks", + "result": { + "count": 1, + "id": "minecraft:bamboo_stairs" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/bamboo_trapdoor_from_bamboo_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/bamboo_trapdoor_from_bamboo_planks_stonecutting.json new file mode 100755 index 0000000..c8fa306 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/bamboo_trapdoor_from_bamboo_planks_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "minecraft:bamboo_planks", + "result": { + "count": 2, + "id": "minecraft:bamboo_trapdoor" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/birch_button_from_birch_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/birch_button_from_birch_planks_stonecutting.json new file mode 100755 index 0000000..1385633 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/birch_button_from_birch_planks_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "minecraft:birch_planks", + "result": { + "count": 4, + "id": "minecraft:birch_button" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/birch_planks_from_birch_logs_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/birch_planks_from_birch_logs_stonecutting.json new file mode 100755 index 0000000..ac88f86 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/birch_planks_from_birch_logs_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "#minecraft:birch_logs", + "result": { + "count": 4, + "id": "minecraft:birch_planks" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/birch_pressure_plate_from_birch_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/birch_pressure_plate_from_birch_planks_stonecutting.json new file mode 100755 index 0000000..e62a8f5 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/birch_pressure_plate_from_birch_planks_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "minecraft:birch_planks", + "result": { + "count": 2, + "id": "minecraft:birch_pressure_plate" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/birch_slab_from_birch_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/birch_slab_from_birch_planks_stonecutting.json new file mode 100755 index 0000000..bf073be --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/birch_slab_from_birch_planks_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "minecraft:birch_planks", + "result": { + "count": 2, + "id": "minecraft:birch_slab" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/birch_stairs_from_birch_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/birch_stairs_from_birch_planks_stonecutting.json new file mode 100755 index 0000000..08f8a94 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/birch_stairs_from_birch_planks_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "minecraft:birch_planks", + "result": { + "count": 1, + "id": "minecraft:birch_stairs" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/birch_trapdoor_from_birch_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/birch_trapdoor_from_birch_planks_stonecutting.json new file mode 100755 index 0000000..19fb350 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/birch_trapdoor_from_birch_planks_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "minecraft:birch_planks", + "result": { + "count": 2, + "id": "minecraft:birch_trapdoor" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/cherry_button_from_cherry_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/cherry_button_from_cherry_planks_stonecutting.json new file mode 100755 index 0000000..515cdbf --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/cherry_button_from_cherry_planks_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "minecraft:cherry_planks", + "result": { + "count": 4, + "id": "minecraft:cherry_button" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/cherry_planks_from_cherry_logs_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/cherry_planks_from_cherry_logs_stonecutting.json new file mode 100755 index 0000000..ef4082b --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/cherry_planks_from_cherry_logs_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "#minecraft:cherry_logs", + "result": { + "count": 4, + "id": "minecraft:cherry_planks" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/cherry_pressure_plate_from_cherry_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/cherry_pressure_plate_from_cherry_planks_stonecutting.json new file mode 100755 index 0000000..135216c --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/cherry_pressure_plate_from_cherry_planks_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "minecraft:cherry_planks", + "result": { + "count": 2, + "id": "minecraft:cherry_pressure_plate" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/cherry_slab_from_cherry_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/cherry_slab_from_cherry_planks_stonecutting.json new file mode 100755 index 0000000..2d3c1c5 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/cherry_slab_from_cherry_planks_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "minecraft:cherry_planks", + "result": { + "count": 2, + "id": "minecraft:cherry_slab" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/cherry_stairs_from_cherry_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/cherry_stairs_from_cherry_planks_stonecutting.json new file mode 100755 index 0000000..631bd00 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/cherry_stairs_from_cherry_planks_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "minecraft:cherry_planks", + "result": { + "count": 1, + "id": "minecraft:cherry_stairs" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/cherry_trapdoor_from_cherry_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/cherry_trapdoor_from_cherry_planks_stonecutting.json new file mode 100755 index 0000000..e2ad878 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/cherry_trapdoor_from_cherry_planks_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "minecraft:cherry_planks", + "result": { + "count": 2, + "id": "minecraft:cherry_trapdoor" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/cobbled_deepslate_from_deepslate_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/cobbled_deepslate_from_deepslate_stonecutting.json new file mode 100755 index 0000000..7768fcb --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/cobbled_deepslate_from_deepslate_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "minecraft:deepslate", + "result": { + "count": 1, + "id": "minecraft:cobbled_deepslate" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/cobblestone_from_stone_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/cobblestone_from_stone_stonecutting.json new file mode 100755 index 0000000..b892cdf --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/cobblestone_from_stone_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "minecraft:stone", + "result": { + "count": 1, + "id": "minecraft:cobblestone" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/copper_trapdoor_from_copper_block_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/copper_trapdoor_from_copper_block_stonecutting.json new file mode 100755 index 0000000..cb64de2 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/copper_trapdoor_from_copper_block_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "minecraft:copper_block", + "result": { + "count": 3, + "id": "minecraft:copper_trapdoor" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/crimson_button_from_crimson_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/crimson_button_from_crimson_planks_stonecutting.json new file mode 100755 index 0000000..e545e10 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/crimson_button_from_crimson_planks_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "minecraft:crimson_planks", + "result": { + "count": 4, + "id": "minecraft:crimson_button" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/crimson_planks_from_crimson_stems_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/crimson_planks_from_crimson_stems_stonecutting.json new file mode 100755 index 0000000..bee7b9e --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/crimson_planks_from_crimson_stems_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "#minecraft:crimson_stems", + "result": { + "count": 4, + "id": "minecraft:crimson_planks" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/crimson_pressure_plate_from_crimson_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/crimson_pressure_plate_from_crimson_planks_stonecutting.json new file mode 100755 index 0000000..19b676b --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/crimson_pressure_plate_from_crimson_planks_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "minecraft:crimson_planks", + "result": { + "count": 2, + "id": "minecraft:crimson_pressure_plate" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/crimson_slab_from_crimson_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/crimson_slab_from_crimson_planks_stonecutting.json new file mode 100755 index 0000000..cb13c3f --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/crimson_slab_from_crimson_planks_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "minecraft:crimson_planks", + "result": { + "count": 2, + "id": "minecraft:crimson_slab" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/crimson_stairs_from_crimson_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/crimson_stairs_from_crimson_planks_stonecutting.json new file mode 100755 index 0000000..e2ca6dd --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/crimson_stairs_from_crimson_planks_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "minecraft:crimson_planks", + "result": { + "count": 1, + "id": "minecraft:crimson_stairs" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/crimson_trapdoor_from_crimson_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/crimson_trapdoor_from_crimson_planks_stonecutting.json new file mode 100755 index 0000000..e2d5051 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/crimson_trapdoor_from_crimson_planks_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "minecraft:crimson_planks", + "result": { + "count": 2, + "id": "minecraft:crimson_trapdoor" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/dark_oak_button_from_dark_oak_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/dark_oak_button_from_dark_oak_planks_stonecutting.json new file mode 100755 index 0000000..9f32a8b --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/dark_oak_button_from_dark_oak_planks_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "minecraft:dark_oak_planks", + "result": { + "count": 4, + "id": "minecraft:dark_oak_button" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/dark_oak_planks_from_dark_oak_logs_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/dark_oak_planks_from_dark_oak_logs_stonecutting.json new file mode 100755 index 0000000..da6cbb4 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/dark_oak_planks_from_dark_oak_logs_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "#minecraft:dark_oak_logs", + "result": { + "count": 4, + "id": "minecraft:dark_oak_planks" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/dark_oak_pressure_plate_from_dark_oak_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/dark_oak_pressure_plate_from_dark_oak_planks_stonecutting.json new file mode 100755 index 0000000..f119b9d --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/dark_oak_pressure_plate_from_dark_oak_planks_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "minecraft:dark_oak_planks", + "result": { + "count": 2, + "id": "minecraft:dark_oak_pressure_plate" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/dark_oak_slab_from_dark_oak_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/dark_oak_slab_from_dark_oak_planks_stonecutting.json new file mode 100755 index 0000000..6dfd35c --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/dark_oak_slab_from_dark_oak_planks_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "minecraft:dark_oak_planks", + "result": { + "count": 2, + "id": "minecraft:dark_oak_slab" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/dark_oak_stairs_from_dark_oak_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/dark_oak_stairs_from_dark_oak_planks_stonecutting.json new file mode 100755 index 0000000..c60fff6 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/dark_oak_stairs_from_dark_oak_planks_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "minecraft:dark_oak_planks", + "result": { + "count": 1, + "id": "minecraft:dark_oak_stairs" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/dark_oak_trapdoor_from_dark_oak_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/dark_oak_trapdoor_from_dark_oak_planks_stonecutting.json new file mode 100755 index 0000000..6de547f --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/dark_oak_trapdoor_from_dark_oak_planks_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "minecraft:dark_oak_planks", + "result": { + "count": 2, + "id": "minecraft:dark_oak_trapdoor" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/exposed_copper_trapdoor_from_exposed_copper_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/exposed_copper_trapdoor_from_exposed_copper_stonecutting.json new file mode 100755 index 0000000..463b055 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/exposed_copper_trapdoor_from_exposed_copper_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "minecraft:exposed_copper", + "result": { + "count": 3, + "id": "minecraft:exposed_copper_trapdoor" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/iron_trapdoor_from_iron_block_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/iron_trapdoor_from_iron_block_stonecutting.json new file mode 100755 index 0000000..f13c193 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/iron_trapdoor_from_iron_block_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "minecraft:iron_block", + "result": { + "count": 3, + "id": "minecraft:iron_trapdoor" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/jungle_button_from_jungle_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/jungle_button_from_jungle_planks_stonecutting.json new file mode 100755 index 0000000..0a2d676 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/jungle_button_from_jungle_planks_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "minecraft:jungle_planks", + "result": { + "count": 4, + "id": "minecraft:jungle_button" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/jungle_planks_from_jungle_logs_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/jungle_planks_from_jungle_logs_stonecutting.json new file mode 100755 index 0000000..b7ae84c --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/jungle_planks_from_jungle_logs_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "#minecraft:jungle_logs", + "result": { + "count": 4, + "id": "minecraft:jungle_planks" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/jungle_pressure_plate_from_jungle_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/jungle_pressure_plate_from_jungle_planks_stonecutting.json new file mode 100755 index 0000000..0796847 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/jungle_pressure_plate_from_jungle_planks_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "minecraft:jungle_planks", + "result": { + "count": 2, + "id": "minecraft:jungle_pressure_plate" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/jungle_slab_from_jungle_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/jungle_slab_from_jungle_planks_stonecutting.json new file mode 100755 index 0000000..b25c937 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/jungle_slab_from_jungle_planks_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "minecraft:jungle_planks", + "result": { + "count": 2, + "id": "minecraft:jungle_slab" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/jungle_stairs_from_jungle_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/jungle_stairs_from_jungle_planks_stonecutting.json new file mode 100755 index 0000000..500b20d --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/jungle_stairs_from_jungle_planks_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "minecraft:jungle_planks", + "result": { + "count": 1, + "id": "minecraft:jungle_stairs" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/jungle_trapdoor_from_jungle_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/jungle_trapdoor_from_jungle_planks_stonecutting.json new file mode 100755 index 0000000..0e8caa3 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/jungle_trapdoor_from_jungle_planks_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "minecraft:jungle_planks", + "result": { + "count": 2, + "id": "minecraft:jungle_trapdoor" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/mangrove_button_from_mangrove_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/mangrove_button_from_mangrove_planks_stonecutting.json new file mode 100755 index 0000000..6bbc88c --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/mangrove_button_from_mangrove_planks_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "minecraft:mangrove_planks", + "result": { + "count": 4, + "id": "minecraft:mangrove_button" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/mangrove_planks_from_mangrove_logs_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/mangrove_planks_from_mangrove_logs_stonecutting.json new file mode 100755 index 0000000..fd9949a --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/mangrove_planks_from_mangrove_logs_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "#minecraft:mangrove_logs", + "result": { + "count": 4, + "id": "minecraft:mangrove_planks" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/mangrove_pressure_plate_from_mangrove_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/mangrove_pressure_plate_from_mangrove_planks_stonecutting.json new file mode 100755 index 0000000..dc0558a --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/mangrove_pressure_plate_from_mangrove_planks_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "minecraft:mangrove_planks", + "result": { + "count": 2, + "id": "minecraft:mangrove_pressure_plate" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/mangrove_slab_from_mangrove_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/mangrove_slab_from_mangrove_planks_stonecutting.json new file mode 100755 index 0000000..c9e8df8 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/mangrove_slab_from_mangrove_planks_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "minecraft:mangrove_planks", + "result": { + "count": 2, + "id": "minecraft:mangrove_slab" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/mangrove_stairs_from_mangrove_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/mangrove_stairs_from_mangrove_planks_stonecutting.json new file mode 100755 index 0000000..3360984 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/mangrove_stairs_from_mangrove_planks_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "minecraft:mangrove_planks", + "result": { + "count": 1, + "id": "minecraft:mangrove_stairs" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/mangrove_trapdoor_from_mangrove_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/mangrove_trapdoor_from_mangrove_planks_stonecutting.json new file mode 100755 index 0000000..49fe936 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/mangrove_trapdoor_from_mangrove_planks_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "minecraft:mangrove_planks", + "result": { + "count": 2, + "id": "minecraft:mangrove_trapdoor" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/oak_button_from_oak_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/oak_button_from_oak_planks_stonecutting.json new file mode 100755 index 0000000..dc07c13 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/oak_button_from_oak_planks_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "minecraft:oak_planks", + "result": { + "count": 4, + "id": "minecraft:oak_button" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/oak_planks_from_oak_logs_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/oak_planks_from_oak_logs_stonecutting.json new file mode 100755 index 0000000..a1878f0 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/oak_planks_from_oak_logs_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "#minecraft:oak_logs", + "result": { + "count": 4, + "id": "minecraft:oak_planks" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/oak_pressure_plate_from_oak_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/oak_pressure_plate_from_oak_planks_stonecutting.json new file mode 100755 index 0000000..e66bb1b --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/oak_pressure_plate_from_oak_planks_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "minecraft:oak_planks", + "result": { + "count": 2, + "id": "minecraft:oak_pressure_plate" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/oak_slab_from_oak_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/oak_slab_from_oak_planks_stonecutting.json new file mode 100755 index 0000000..14391a0 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/oak_slab_from_oak_planks_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "minecraft:oak_planks", + "result": { + "count": 2, + "id": "minecraft:oak_slab" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/oak_stairs_from_oak_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/oak_stairs_from_oak_planks_stonecutting.json new file mode 100755 index 0000000..5cbaeaa --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/oak_stairs_from_oak_planks_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "minecraft:oak_planks", + "result": { + "count": 1, + "id": "minecraft:oak_stairs" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/oak_trapdoor_from_oak_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/oak_trapdoor_from_oak_planks_stonecutting.json new file mode 100755 index 0000000..768a1bf --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/oak_trapdoor_from_oak_planks_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "minecraft:oak_planks", + "result": { + "count": 2, + "id": "minecraft:oak_trapdoor" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/oxidized_copper_trapdoor_from_oxidized_copper_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/oxidized_copper_trapdoor_from_oxidized_copper_stonecutting.json new file mode 100755 index 0000000..d428291 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/oxidized_copper_trapdoor_from_oxidized_copper_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "minecraft:oxidized_copper", + "result": { + "count": 3, + "id": "minecraft:oxidized_copper_trapdoor" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/pale_oak_button_from_pale_oak_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/pale_oak_button_from_pale_oak_planks_stonecutting.json new file mode 100755 index 0000000..dd68c8d --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/pale_oak_button_from_pale_oak_planks_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "minecraft:pale_oak_planks", + "result": { + "count": 4, + "id": "minecraft:pale_oak_button" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/pale_oak_planks_from_pale_oak_logs_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/pale_oak_planks_from_pale_oak_logs_stonecutting.json new file mode 100755 index 0000000..fd20c65 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/pale_oak_planks_from_pale_oak_logs_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "#minecraft:pale_oak_logs", + "result": { + "count": 4, + "id": "minecraft:pale_oak_planks" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/pale_oak_pressure_plate_from_pale_oak_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/pale_oak_pressure_plate_from_pale_oak_planks_stonecutting.json new file mode 100755 index 0000000..9d3b8f8 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/pale_oak_pressure_plate_from_pale_oak_planks_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "minecraft:pale_oak_planks", + "result": { + "count": 2, + "id": "minecraft:pale_oak_pressure_plate" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/pale_oak_slab_from_pale_oak_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/pale_oak_slab_from_pale_oak_planks_stonecutting.json new file mode 100755 index 0000000..8b65588 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/pale_oak_slab_from_pale_oak_planks_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "minecraft:pale_oak_planks", + "result": { + "count": 2, + "id": "minecraft:pale_oak_slab" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/pale_oak_stairs_from_pale_oak_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/pale_oak_stairs_from_pale_oak_planks_stonecutting.json new file mode 100755 index 0000000..0daec17 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/pale_oak_stairs_from_pale_oak_planks_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "minecraft:pale_oak_planks", + "result": { + "count": 1, + "id": "minecraft:pale_oak_stairs" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/pale_oak_trapdoor_from_pale_oak_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/pale_oak_trapdoor_from_pale_oak_planks_stonecutting.json new file mode 100755 index 0000000..333abcc --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/pale_oak_trapdoor_from_pale_oak_planks_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "minecraft:pale_oak_planks", + "result": { + "count": 2, + "id": "minecraft:pale_oak_trapdoor" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/polished_blackstone_button_from_blackstone_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/polished_blackstone_button_from_blackstone_stonecutting.json new file mode 100755 index 0000000..9276400 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/polished_blackstone_button_from_blackstone_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "minecraft:blackstone", + "result": { + "count": 4, + "id": "minecraft:polished_blackstone_button" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/polished_blackstone_button_from_polished_blackstone_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/polished_blackstone_button_from_polished_blackstone_stonecutting.json new file mode 100755 index 0000000..2da4451 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/polished_blackstone_button_from_polished_blackstone_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "minecraft:polished_blackstone", + "result": { + "count": 4, + "id": "minecraft:polished_blackstone_button" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/polished_blackstone_pressure_plate_from_blackstone_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/polished_blackstone_pressure_plate_from_blackstone_stonecutting.json new file mode 100755 index 0000000..e2a2a9e --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/polished_blackstone_pressure_plate_from_blackstone_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "minecraft:blackstone", + "result": { + "count": 2, + "id": "minecraft:polished_blackstone_pressure_plate" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/polished_blackstone_pressure_plate_from_polished_blackstone_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/polished_blackstone_pressure_plate_from_polished_blackstone_stonecutting.json new file mode 100755 index 0000000..6a9506b --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/polished_blackstone_pressure_plate_from_polished_blackstone_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "minecraft:polished_blackstone", + "result": { + "count": 2, + "id": "minecraft:polished_blackstone_pressure_plate" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/spruce_button_from_spruce_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/spruce_button_from_spruce_planks_stonecutting.json new file mode 100755 index 0000000..0596166 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/spruce_button_from_spruce_planks_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "minecraft:spruce_planks", + "result": { + "count": 4, + "id": "minecraft:spruce_button" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/spruce_planks_from_spruce_logs_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/spruce_planks_from_spruce_logs_stonecutting.json new file mode 100755 index 0000000..a575870 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/spruce_planks_from_spruce_logs_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "#minecraft:spruce_logs", + "result": { + "count": 4, + "id": "minecraft:spruce_planks" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/spruce_pressure_plate_from_spruce_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/spruce_pressure_plate_from_spruce_planks_stonecutting.json new file mode 100755 index 0000000..b7fa243 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/spruce_pressure_plate_from_spruce_planks_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "minecraft:spruce_planks", + "result": { + "count": 2, + "id": "minecraft:spruce_pressure_plate" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/spruce_slab_from_spruce_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/spruce_slab_from_spruce_planks_stonecutting.json new file mode 100755 index 0000000..974d078 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/spruce_slab_from_spruce_planks_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "minecraft:spruce_planks", + "result": { + "count": 2, + "id": "minecraft:spruce_slab" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/spruce_stairs_from_spruce_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/spruce_stairs_from_spruce_planks_stonecutting.json new file mode 100755 index 0000000..dc7511a --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/spruce_stairs_from_spruce_planks_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "minecraft:spruce_planks", + "result": { + "count": 1, + "id": "minecraft:spruce_stairs" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/spruce_trapdoor_from_spruce_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/spruce_trapdoor_from_spruce_planks_stonecutting.json new file mode 100755 index 0000000..70fcaa8 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/spruce_trapdoor_from_spruce_planks_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "minecraft:spruce_planks", + "result": { + "count": 2, + "id": "minecraft:spruce_trapdoor" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/stone_button_from_stone_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/stone_button_from_stone_stonecutting.json new file mode 100755 index 0000000..8d36021 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/stone_button_from_stone_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "minecraft:stone", + "result": { + "count": 4, + "id": "minecraft:stone_button" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/stone_pressure_plate_from_stone_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/stone_pressure_plate_from_stone_stonecutting.json new file mode 100755 index 0000000..144988c --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/stone_pressure_plate_from_stone_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "minecraft:stone", + "result": { + "count": 2, + "id": "minecraft:stone_pressure_plate" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/warped_button_from_warped_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/warped_button_from_warped_planks_stonecutting.json new file mode 100755 index 0000000..9ca3d81 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/warped_button_from_warped_planks_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "minecraft:warped_planks", + "result": { + "count": 4, + "id": "minecraft:warped_button" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/warped_planks_from_warped_stems_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/warped_planks_from_warped_stems_stonecutting.json new file mode 100755 index 0000000..4050539 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/warped_planks_from_warped_stems_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "#minecraft:warped_stems", + "result": { + "count": 4, + "id": "minecraft:warped_planks" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/warped_pressure_plate_from_warped_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/warped_pressure_plate_from_warped_planks_stonecutting.json new file mode 100755 index 0000000..97e3c66 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/warped_pressure_plate_from_warped_planks_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "minecraft:warped_planks", + "result": { + "count": 2, + "id": "minecraft:warped_pressure_plate" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/warped_slab_from_warped_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/warped_slab_from_warped_planks_stonecutting.json new file mode 100755 index 0000000..5fa8719 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/warped_slab_from_warped_planks_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "minecraft:warped_planks", + "result": { + "count": 2, + "id": "minecraft:warped_slab" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/warped_stairs_from_warped_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/warped_stairs_from_warped_planks_stonecutting.json new file mode 100755 index 0000000..2c51a63 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/warped_stairs_from_warped_planks_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "minecraft:warped_planks", + "result": { + "count": 1, + "id": "minecraft:warped_stairs" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/warped_trapdoor_from_warped_planks_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/warped_trapdoor_from_warped_planks_stonecutting.json new file mode 100755 index 0000000..28496a2 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/warped_trapdoor_from_warped_planks_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "minecraft:warped_planks", + "result": { + "count": 2, + "id": "minecraft:warped_trapdoor" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/waxed_copper_trapdoor_from_waxed_copper_block_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/waxed_copper_trapdoor_from_waxed_copper_block_stonecutting.json new file mode 100755 index 0000000..5dbdc8f --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/waxed_copper_trapdoor_from_waxed_copper_block_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "minecraft:waxed_copper_block", + "result": { + "count": 3, + "id": "minecraft:waxed_copper_trapdoor" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/waxed_exposed_copper_trapdoor_from_waxed_exposed_copper_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/waxed_exposed_copper_trapdoor_from_waxed_exposed_copper_stonecutting.json new file mode 100755 index 0000000..977150f --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/waxed_exposed_copper_trapdoor_from_waxed_exposed_copper_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "minecraft:waxed_exposed_copper", + "result": { + "count": 3, + "id": "minecraft:waxed_exposed_copper_trapdoor" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/waxed_oxidized_copper_trapdoor_from_waxed_oxidized_copper_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/waxed_oxidized_copper_trapdoor_from_waxed_oxidized_copper_stonecutting.json new file mode 100755 index 0000000..1d3f216 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/waxed_oxidized_copper_trapdoor_from_waxed_oxidized_copper_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "minecraft:waxed_oxidized_copper", + "result": { + "count": 3, + "id": "minecraft:waxed_oxidized_copper_trapdoor" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/waxed_weathered_copper_trapdoor_from_waxed_weathered_copper_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/waxed_weathered_copper_trapdoor_from_waxed_weathered_copper_stonecutting.json new file mode 100755 index 0000000..f8d2ce4 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/waxed_weathered_copper_trapdoor_from_waxed_weathered_copper_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "minecraft:waxed_weathered_copper", + "result": { + "count": 3, + "id": "minecraft:waxed_weathered_copper_trapdoor" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/data/woodcutter/recipe/weathered_copper_trapdoor_from_weathered_copper_stonecutting.json b/datapacks/craft-refine/data/woodcutter/recipe/weathered_copper_trapdoor_from_weathered_copper_stonecutting.json new file mode 100755 index 0000000..f947d30 --- /dev/null +++ b/datapacks/craft-refine/data/woodcutter/recipe/weathered_copper_trapdoor_from_weathered_copper_stonecutting.json @@ -0,0 +1,8 @@ +{ + "type": "minecraft:stonecutting", + "ingredient": "minecraft:weathered_copper", + "result": { + "count": 3, + "id": "minecraft:weathered_copper_trapdoor" + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/pack.mcmeta b/datapacks/craft-refine/pack.mcmeta new file mode 100755 index 0000000..21c9f20 --- /dev/null +++ b/datapacks/craft-refine/pack.mcmeta @@ -0,0 +1,10 @@ +{ + "pack": { + "pack_format": 61, + "supported_formats": { + "min_inclusive": 57, + "max_inclusive": 61 + }, + "description": "Refines and adds various crafting, blasting, and stonecutting recipes to provide a balenced, convenient, and consistent crafting experience." + } +} \ No newline at end of file diff --git a/datapacks/craft-refine/pack.png b/datapacks/craft-refine/pack.png new file mode 100755 index 0000000..bb304cb Binary files /dev/null and b/datapacks/craft-refine/pack.png differ diff --git a/datapacks/crafting refinements v1.zip b/datapacks/crafting refinements v1.zip new file mode 100755 index 0000000..18b8735 Binary files /dev/null and b/datapacks/crafting refinements v1.zip differ diff --git a/datapacks/creeper-no-grief/data/confetti_creepers/function/check_effect_cloud.mcfunction b/datapacks/creeper-no-grief/data/confetti_creepers/function/check_effect_cloud.mcfunction new file mode 100755 index 0000000..0ff0637 --- /dev/null +++ b/datapacks/creeper-no-grief/data/confetti_creepers/function/check_effect_cloud.mcfunction @@ -0,0 +1,2 @@ +tag @s add cftCreep.done +execute if data entity @s potion_contents.custom_effects[{id:"minecraft:luck",amplifier:10b,show_particles:0b}] at @s run function confetti_creepers:create_confetti \ No newline at end of file diff --git a/datapacks/creeper-no-grief/data/confetti_creepers/function/check_trigger.mcfunction b/datapacks/creeper-no-grief/data/confetti_creepers/function/check_trigger.mcfunction new file mode 100755 index 0000000..f9548d9 --- /dev/null +++ b/datapacks/creeper-no-grief/data/confetti_creepers/function/check_trigger.mcfunction @@ -0,0 +1,3 @@ +schedule function confetti_creepers:check_trigger 10t +scoreboard players enable @a cftCreep +execute as @a[scores={cftCreep=1}] run function confetti_creepers:trigger \ No newline at end of file diff --git a/datapacks/creeper-no-grief/data/confetti_creepers/function/config.mcfunction b/datapacks/creeper-no-grief/data/confetti_creepers/function/config.mcfunction new file mode 100755 index 0000000..7793b14 --- /dev/null +++ b/datapacks/creeper-no-grief/data/confetti_creepers/function/config.mcfunction @@ -0,0 +1,7 @@ +tellraw @s {"text":" ","color":"dark_gray","strikethrough":true} +tellraw @s [" Confetti Creepers",{"text":" / ","color":"gray"},"Global Settings "] +tellraw @s {"text":" ","color":"dark_gray","strikethrough":true} +tellraw @s ["",{"text":"[ ✎ ]","color":"gray","clickEvent":{"action":"suggest_command","value":"/scoreboard players set #chance cftCreep.config "},"hoverEvent":{"action":"show_text","contents":["",{"text":"Click to enter the percent chance each creeper will be a confetti creeper.\nSet this to a low but not-too-low value like 20 for pleasant surprises. :)","color":"gray"},{"text":"\nAccepts: whole numbers 0-100\nDefault: 100","color":"dark_gray"}]}}," Confetti Chance ",{"text":"(Current: ","color":"gray"},{"score":{"name":"#chance","objective":"cftCreep.config"},"color":"gray"},{"text":"%)","color":"gray"}] +tellraw @s {"text":" ","color":"dark_gray","strikethrough":true} +execute store result score #sendCommandFeedback cftCreep.config run gamerule sendCommandFeedback +execute if score #sendCommandFeedback cftCreep.config matches 1 run function confetti_creepers:hide_command_feedback \ No newline at end of file diff --git a/datapacks/creeper-no-grief/data/confetti_creepers/function/create_confetti.mcfunction b/datapacks/creeper-no-grief/data/confetti_creepers/function/create_confetti.mcfunction new file mode 100755 index 0000000..315f20c --- /dev/null +++ b/datapacks/creeper-no-grief/data/confetti_creepers/function/create_confetti.mcfunction @@ -0,0 +1,3 @@ +summon minecraft:firework_rocket ~ ~ ~ {LifeTime:0,FireworksItem:{id:"minecraft:creeper_head",count:1,components:{"minecraft:fireworks":{explosions:[{shape:"burst",colors:[I;11743532,15435844,14602026,4312372,6719955,8073150,14188952],has_trail:0b,has_twinkle:0b}]}}}} +data remove entity @s potion_contents.custom_effects[{id:"minecraft:luck",amplifier:10b,show_particles:0b}] +execute unless data entity @s potion_contents.custom_effects[0] run kill @s \ No newline at end of file diff --git a/datapacks/creeper-no-grief/data/confetti_creepers/function/give_effects.mcfunction b/datapacks/creeper-no-grief/data/confetti_creepers/function/give_effects.mcfunction new file mode 100755 index 0000000..2be0550 --- /dev/null +++ b/datapacks/creeper-no-grief/data/confetti_creepers/function/give_effects.mcfunction @@ -0,0 +1,2 @@ +schedule function confetti_creepers:give_effects 1000000t +effect give @e[type=minecraft:creeper,tag=cftCreep.confetti] minecraft:luck 1000000 10 true \ No newline at end of file diff --git a/datapacks/creeper-no-grief/data/confetti_creepers/function/hide_command_feedback.mcfunction b/datapacks/creeper-no-grief/data/confetti_creepers/function/hide_command_feedback.mcfunction new file mode 100755 index 0000000..f3ef9b8 --- /dev/null +++ b/datapacks/creeper-no-grief/data/confetti_creepers/function/hide_command_feedback.mcfunction @@ -0,0 +1,2 @@ +gamerule sendCommandFeedback false +schedule function confetti_creepers:restore_command_feedback 1t replace \ No newline at end of file diff --git a/datapacks/creeper-no-grief/data/confetti_creepers/function/initiate_creeper.mcfunction b/datapacks/creeper-no-grief/data/confetti_creepers/function/initiate_creeper.mcfunction new file mode 100755 index 0000000..9cacf64 --- /dev/null +++ b/datapacks/creeper-no-grief/data/confetti_creepers/function/initiate_creeper.mcfunction @@ -0,0 +1,4 @@ +tag @s add cftCreep.done +execute store result score #value cftCreep.config run data get entity @s UUID[0] +scoreboard players operation #value cftCreep.config %= #total cftCreep.config +execute if score #value cftCreep.config < #chance cftCreep.config run function confetti_creepers:set_confetti \ No newline at end of file diff --git a/datapacks/creeper-no-grief/data/confetti_creepers/function/load.mcfunction b/datapacks/creeper-no-grief/data/confetti_creepers/function/load.mcfunction new file mode 100755 index 0000000..120fa55 --- /dev/null +++ b/datapacks/creeper-no-grief/data/confetti_creepers/function/load.mcfunction @@ -0,0 +1,4 @@ +scoreboard objectives add cftCreep.config dummy "Confetti Creepers Config" +scoreboard objectives add cftCreep trigger "Confetti Creepers" +scoreboard players set #total cftCreep.config 100 +execute unless score #chance cftCreep.config matches 0..100 run scoreboard players set #chance cftCreep.config 100 \ No newline at end of file diff --git a/datapacks/creeper-no-grief/data/confetti_creepers/function/restore_command_feedback.mcfunction b/datapacks/creeper-no-grief/data/confetti_creepers/function/restore_command_feedback.mcfunction new file mode 100755 index 0000000..b466492 --- /dev/null +++ b/datapacks/creeper-no-grief/data/confetti_creepers/function/restore_command_feedback.mcfunction @@ -0,0 +1 @@ +gamerule sendCommandFeedback true \ No newline at end of file diff --git a/datapacks/creeper-no-grief/data/confetti_creepers/function/set_confetti.mcfunction b/datapacks/creeper-no-grief/data/confetti_creepers/function/set_confetti.mcfunction new file mode 100755 index 0000000..21f4b23 --- /dev/null +++ b/datapacks/creeper-no-grief/data/confetti_creepers/function/set_confetti.mcfunction @@ -0,0 +1,3 @@ +data modify entity @s ExplosionRadius set value 0b +effect give @s minecraft:luck 1000000 10 true +tag @s add cftCreep.confetti \ No newline at end of file diff --git a/datapacks/creeper-no-grief/data/confetti_creepers/function/tick.mcfunction b/datapacks/creeper-no-grief/data/confetti_creepers/function/tick.mcfunction new file mode 100755 index 0000000..6fc01e2 --- /dev/null +++ b/datapacks/creeper-no-grief/data/confetti_creepers/function/tick.mcfunction @@ -0,0 +1,3 @@ +schedule function confetti_creepers:tick 1t +execute as @e[type=minecraft:creeper,tag=!cftCreep.done] at @s run function confetti_creepers:initiate_creeper +execute as @e[type=minecraft:area_effect_cloud,tag=!cftCreep.done] run function confetti_creepers:check_effect_cloud \ No newline at end of file diff --git a/datapacks/creeper-no-grief/data/confetti_creepers/function/trigger.mcfunction b/datapacks/creeper-no-grief/data/confetti_creepers/function/trigger.mcfunction new file mode 100755 index 0000000..3c4f3bc --- /dev/null +++ b/datapacks/creeper-no-grief/data/confetti_creepers/function/trigger.mcfunction @@ -0,0 +1,6 @@ +tellraw @s {"text":" ","color":"dark_gray","strikethrough":true} +tellraw @s [" Confetti Creepers",{"text":" / ","color":"gray"},"Info "] +tellraw @s {"text":" ","color":"dark_gray","strikethrough":true} +tellraw @s ["",{"text":">> ","color":"gray"},"There is a ",{"score":{"name":"#chance","objective":"cftCreep.config"}},"% chance each creeper will explode into confetti and do no damage to blocks."] +tellraw @s {"text":" ","color":"dark_gray","strikethrough":true} +scoreboard players set @s cftCreep 0 \ No newline at end of file diff --git a/datapacks/creeper-no-grief/data/confetti_creepers/function/uninstall.mcfunction b/datapacks/creeper-no-grief/data/confetti_creepers/function/uninstall.mcfunction new file mode 100755 index 0000000..1aeb5ae --- /dev/null +++ b/datapacks/creeper-no-grief/data/confetti_creepers/function/uninstall.mcfunction @@ -0,0 +1,5 @@ +schedule clear confetti_creepers:tick +schedule clear confetti_creepers:check_trigger +schedule clear confetti_creepers:give_effects +scoreboard objectives remove cftCreep +scoreboard objectives remove cftCreep.config \ No newline at end of file diff --git a/datapacks/creeper-no-grief/data/minecraft/tags/function/load.json b/datapacks/creeper-no-grief/data/minecraft/tags/function/load.json new file mode 100755 index 0000000..5e41413 --- /dev/null +++ b/datapacks/creeper-no-grief/data/minecraft/tags/function/load.json @@ -0,0 +1 @@ +{"replace":false,"values":["confetti_creepers:load","confetti_creepers:tick","confetti_creepers:check_trigger","confetti_creepers:give_effects"]} \ No newline at end of file diff --git a/datapacks/creeper-no-grief/data/vanillatweaks/advancement/confetti_creepers.json b/datapacks/creeper-no-grief/data/vanillatweaks/advancement/confetti_creepers.json new file mode 100755 index 0000000..b819512 --- /dev/null +++ b/datapacks/creeper-no-grief/data/vanillatweaks/advancement/confetti_creepers.json @@ -0,0 +1,55 @@ +{ + "display": { + "icon": { + "id": "minecraft:creeper_head" + }, + "title": "Confetti Creepers ", + "description": [ + "", + { + "text": "There is a chance each creeper will explode into confetti and do no damage to blocks.\n", + "color": "gold" + }, + { + "text": "Enter", + "color": "green" + }, + { + "text": " ", + "color": "gold" + }, + { + "text": "/trigger cftCreep", + "color": "yellow" + }, + { + "text": " for details.\n", + "color": "gold" + }, + { + "text": "Enter", + "color": "green" + }, + { + "text": " ", + "color": "gold" + }, + { + "text": "/function confetti_creepers:config", + "color": "yellow" + }, + { + "text": " for config options.", + "color": "gold" + } + ], + "show_toast": false, + "announce_to_chat": false + }, + "parent": "vanillatweaks:root", + "criteria": { + "tick": { + "trigger": "minecraft:tick" + } + } +} \ No newline at end of file diff --git a/datapacks/creeper-no-grief/data/vanillatweaks/advancement/root.json b/datapacks/creeper-no-grief/data/vanillatweaks/advancement/root.json new file mode 100755 index 0000000..962ef9d --- /dev/null +++ b/datapacks/creeper-no-grief/data/vanillatweaks/advancement/root.json @@ -0,0 +1,38 @@ +{ + "display": { + "icon": { + "id": "minecraft:player_head", + "components": { + "minecraft:profile": { + "properties": [ + { + "name": "textures", + "value": "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMTg1YzMzNWM1MjVjZGFkY2Q4MmU4MDA4MzU1N2M2OTYzMGRmYjlhMWVkZjU5OTc0YzdmNjU4ZGI1MWEwYTFkOSJ9fX0=" + } + ] + } + } + }, + "title": "Vanilla Tweaks", + "frame": "challenge", + "description": [ + "", + { + "text": "All loaded Vanilla Tweaks data packs\n", + "color": "gold" + }, + { + "text": "vanillatweaks.net", + "color": "yellow" + } + ], + "background": "minecraft:textures/block/black_concrete.png", + "show_toast": false, + "announce_to_chat": false + }, + "criteria": { + "tick": { + "trigger": "minecraft:tick" + } + } +} \ No newline at end of file diff --git a/datapacks/creeper-no-grief/data/vanillatweaks/tags/function/uninstall.json b/datapacks/creeper-no-grief/data/vanillatweaks/tags/function/uninstall.json new file mode 100755 index 0000000..1697a2a --- /dev/null +++ b/datapacks/creeper-no-grief/data/vanillatweaks/tags/function/uninstall.json @@ -0,0 +1,5 @@ +{ + "values": [ + "confetti_creepers:uninstall" + ] +} diff --git a/datapacks/creeper-no-grief/overlay_71/data/confetti_creepers/function/config.mcfunction b/datapacks/creeper-no-grief/overlay_71/data/confetti_creepers/function/config.mcfunction new file mode 100755 index 0000000..fcb293b --- /dev/null +++ b/datapacks/creeper-no-grief/overlay_71/data/confetti_creepers/function/config.mcfunction @@ -0,0 +1,7 @@ +tellraw @s {"text":" ","color":"dark_gray","strikethrough":true} +tellraw @s [" Confetti Creepers",{"text":" / ","color":"gray"},"Global Settings "] +tellraw @s {"text":" ","color":"dark_gray","strikethrough":true} +tellraw @s ["",{"text":"[ ✎ ]","color":"gray","click_event":{"action":"suggest_command","command":"/scoreboard players set #chance cftCreep.config "},"hover_event":{"action":"show_text","value":["",{"text":"Click to enter the percent chance each creeper will be a confetti creeper.\nSet this to a low but not-too-low value like 20 for pleasant surprises. :)","color":"gray"},{"text":"\nAccepts: whole numbers 0-100\nDefault: 100","color":"dark_gray"}]}}," Confetti Chance ",{"text":"(Current: ","color":"gray"},{"score":{"name":"#chance","objective":"cftCreep.config"},"color":"gray"},{"text":"%)","color":"gray"}] +tellraw @s {"text":" ","color":"dark_gray","strikethrough":true} +execute store result score #sendCommandFeedback cftCreep.config run gamerule sendCommandFeedback +execute if score #sendCommandFeedback cftCreep.config matches 1 run function confetti_creepers:hide_command_feedback \ No newline at end of file diff --git a/datapacks/creeper-no-grief/overlay_71/data/vanillatweaks/advancement/root.json b/datapacks/creeper-no-grief/overlay_71/data/vanillatweaks/advancement/root.json new file mode 100755 index 0000000..ee397ab --- /dev/null +++ b/datapacks/creeper-no-grief/overlay_71/data/vanillatweaks/advancement/root.json @@ -0,0 +1,38 @@ +{ + "display": { + "icon": { + "id": "minecraft:player_head", + "components": { + "minecraft:profile": { + "properties": [ + { + "name": "textures", + "value": "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMTg1YzMzNWM1MjVjZGFkY2Q4MmU4MDA4MzU1N2M2OTYzMGRmYjlhMWVkZjU5OTc0YzdmNjU4ZGI1MWEwYTFkOSJ9fX0=" + } + ] + } + } + }, + "title": "Vanilla Tweaks", + "frame": "challenge", + "description": [ + "", + { + "text": "All loaded Vanilla Tweaks data packs\n", + "color": "gold" + }, + { + "text": "vanillatweaks.net", + "color": "yellow" + } + ], + "background": "minecraft:block/black_concrete", + "show_toast": false, + "announce_to_chat": false + }, + "criteria": { + "tick": { + "trigger": "minecraft:tick" + } + } +} \ No newline at end of file diff --git a/datapacks/creeper-no-grief/pack.mcmeta b/datapacks/creeper-no-grief/pack.mcmeta new file mode 100755 index 0000000..3e1b71b --- /dev/null +++ b/datapacks/creeper-no-grief/pack.mcmeta @@ -0,0 +1,30 @@ +{ + "pack": { + "pack_format": 48, + "supported_formats": { + "min_inclusive": 48, + "max_inclusive": 80 + }, + "description": [ + { + "text": "Confetti Creepers", + "color": "gold" + }, + { + "text": "\nvanillatweaks.net", + "color": "yellow" + } + ] + }, + "overlays": { + "entries": [ + { + "formats": { + "min_inclusive": 71, + "max_inclusive": 2147483647 + }, + "directory": "overlay_71" + } + ] + } +} \ No newline at end of file diff --git a/datapacks/creeper-no-grief/pack.png b/datapacks/creeper-no-grief/pack.png new file mode 100755 index 0000000..3759d04 Binary files /dev/null and b/datapacks/creeper-no-grief/pack.png differ diff --git a/datapacks/ender-chest-drops/data/minecraft/loot_table/blocks/ender_chest.json b/datapacks/ender-chest-drops/data/minecraft/loot_table/blocks/ender_chest.json new file mode 100755 index 0000000..1ae07ac --- /dev/null +++ b/datapacks/ender-chest-drops/data/minecraft/loot_table/blocks/ender_chest.json @@ -0,0 +1,21 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "bonus_rolls": 0.0, + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ], + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:ender_chest" + } + ], + "rolls": 1.0 + } + ], + "random_sequence": "minecraft:blocks/ender_chest" +} \ No newline at end of file diff --git a/datapacks/ender-chest-drops/data/vanillatweaks/advancement/ender_chest_always_drops.json b/datapacks/ender-chest-drops/data/vanillatweaks/advancement/ender_chest_always_drops.json new file mode 100755 index 0000000..735bf1f --- /dev/null +++ b/datapacks/ender-chest-drops/data/vanillatweaks/advancement/ender_chest_always_drops.json @@ -0,0 +1,11 @@ +{ + "display": { + "icon": {"id": "minecraft:ender_chest"}, + "title": "Ender Chest Always Drops", + "description": {"text":"Gone are the days of accidentally mining your ender chest with the wrong pickaxe. Now it drops without Silk Touch.","color":"gold"}, + "show_toast": false, + "announce_to_chat": false + }, + "parent": "vanillatweaks:root", + "criteria": {"tick": {"trigger": "minecraft:tick"}} +} \ No newline at end of file diff --git a/datapacks/ender-chest-drops/data/vanillatweaks/advancement/root.json b/datapacks/ender-chest-drops/data/vanillatweaks/advancement/root.json new file mode 100755 index 0000000..962ef9d --- /dev/null +++ b/datapacks/ender-chest-drops/data/vanillatweaks/advancement/root.json @@ -0,0 +1,38 @@ +{ + "display": { + "icon": { + "id": "minecraft:player_head", + "components": { + "minecraft:profile": { + "properties": [ + { + "name": "textures", + "value": "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMTg1YzMzNWM1MjVjZGFkY2Q4MmU4MDA4MzU1N2M2OTYzMGRmYjlhMWVkZjU5OTc0YzdmNjU4ZGI1MWEwYTFkOSJ9fX0=" + } + ] + } + } + }, + "title": "Vanilla Tweaks", + "frame": "challenge", + "description": [ + "", + { + "text": "All loaded Vanilla Tweaks data packs\n", + "color": "gold" + }, + { + "text": "vanillatweaks.net", + "color": "yellow" + } + ], + "background": "minecraft:textures/block/black_concrete.png", + "show_toast": false, + "announce_to_chat": false + }, + "criteria": { + "tick": { + "trigger": "minecraft:tick" + } + } +} \ No newline at end of file diff --git a/datapacks/ender-chest-drops/overlay_71/data/vanillatweaks/advancement/root.json b/datapacks/ender-chest-drops/overlay_71/data/vanillatweaks/advancement/root.json new file mode 100755 index 0000000..ee397ab --- /dev/null +++ b/datapacks/ender-chest-drops/overlay_71/data/vanillatweaks/advancement/root.json @@ -0,0 +1,38 @@ +{ + "display": { + "icon": { + "id": "minecraft:player_head", + "components": { + "minecraft:profile": { + "properties": [ + { + "name": "textures", + "value": "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMTg1YzMzNWM1MjVjZGFkY2Q4MmU4MDA4MzU1N2M2OTYzMGRmYjlhMWVkZjU5OTc0YzdmNjU4ZGI1MWEwYTFkOSJ9fX0=" + } + ] + } + } + }, + "title": "Vanilla Tweaks", + "frame": "challenge", + "description": [ + "", + { + "text": "All loaded Vanilla Tweaks data packs\n", + "color": "gold" + }, + { + "text": "vanillatweaks.net", + "color": "yellow" + } + ], + "background": "minecraft:block/black_concrete", + "show_toast": false, + "announce_to_chat": false + }, + "criteria": { + "tick": { + "trigger": "minecraft:tick" + } + } +} \ No newline at end of file diff --git a/datapacks/ender-chest-drops/pack.mcmeta b/datapacks/ender-chest-drops/pack.mcmeta new file mode 100755 index 0000000..c8036a6 --- /dev/null +++ b/datapacks/ender-chest-drops/pack.mcmeta @@ -0,0 +1,30 @@ +{ + "pack": { + "pack_format": 48, + "supported_formats": { + "min_inclusive": 48, + "max_inclusive": 80 + }, + "description": [ + { + "text": "Ender Chest Always Drops", + "color": "gold" + }, + { + "text": "\nvanillatweaks.net", + "color": "yellow" + } + ] + }, + "overlays": { + "entries": [ + { + "formats": { + "min_inclusive": 71, + "max_inclusive": 2147483647 + }, + "directory": "overlay_71" + } + ] + } +} \ No newline at end of file diff --git a/datapacks/ender-chest-drops/pack.png b/datapacks/ender-chest-drops/pack.png new file mode 100755 index 0000000..24ad85d Binary files /dev/null and b/datapacks/ender-chest-drops/pack.png differ diff --git a/datapacks/graves/data/graves/advancement/attack_grave.json b/datapacks/graves/data/graves/advancement/attack_grave.json new file mode 100755 index 0000000..c70b2c5 --- /dev/null +++ b/datapacks/graves/data/graves/advancement/attack_grave.json @@ -0,0 +1 @@ +{"criteria":{"hurt":{"trigger":"minecraft:player_hurt_entity","conditions":{"entity":{"type":"minecraft:interaction","nbt":"{Tags:['graves.grave']}"}}}},"rewards":{"function":"graves:opening/attack_grave"}} \ No newline at end of file diff --git a/datapacks/graves/data/graves/advancement/check_death_markers_later_in_tick.json b/datapacks/graves/data/graves/advancement/check_death_markers_later_in_tick.json new file mode 100755 index 0000000..f681e0b --- /dev/null +++ b/datapacks/graves/data/graves/advancement/check_death_markers_later_in_tick.json @@ -0,0 +1 @@ +{"criteria":{"tick":{"trigger":"minecraft:tick"}},"rewards":{"function":"graves:creation/check_death_markers_later_in_tick"}} \ No newline at end of file diff --git a/datapacks/graves/data/graves/advancement/die.json b/datapacks/graves/data/graves/advancement/die.json new file mode 100755 index 0000000..f2dfdeb --- /dev/null +++ b/datapacks/graves/data/graves/advancement/die.json @@ -0,0 +1 @@ +{"criteria":{"hurt":{"trigger":"minecraft:entity_hurt_player","conditions":{"player":[{"condition":"minecraft:entity_scores","entity":"this","scores":{"graves.deaths":{"min":1}}}]}}},"rewards":{"function":"graves:creation/die"}} \ No newline at end of file diff --git a/datapacks/graves/data/graves/advancement/interact_with_grave.json b/datapacks/graves/data/graves/advancement/interact_with_grave.json new file mode 100755 index 0000000..fa7eb0c --- /dev/null +++ b/datapacks/graves/data/graves/advancement/interact_with_grave.json @@ -0,0 +1 @@ +{"criteria":{"hurt":{"trigger":"minecraft:player_interacted_with_entity","conditions":{"entity":{"type":"minecraft:interaction","nbt":"{Tags:['graves.grave']}"}}}},"rewards":{"function":"graves:opening/interact_with_grave"}} \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/config.mcfunction b/datapacks/graves/data/graves/function/config.mcfunction new file mode 100755 index 0000000..0ec19fa --- /dev/null +++ b/datapacks/graves/data/graves/function/config.mcfunction @@ -0,0 +1,15 @@ +tellraw @s {"text":" ","color":"dark_gray","strikethrough":true} +tellraw @s [" Graves",{"text":" / ","color":"gray"},"Global Settings "] +tellraw @s {"text":" ","color":"dark_gray","strikethrough":true} +execute if data storage graves:config {allow_robbing:1b} run tellraw @s [{"text":"[ \u2714 ]","color":"green","clickEvent":{"action":"run_command","value":"/function graves:disable_allow_robbing"},"hoverEvent":{"action":"show_text","contents":["",{"text":"Click to disable ","color":"red"},"Grave Robbing",{"text":".","color":"red"},{"text":"\nWhen enabled, players can open graves they do not own.","color":"gray"},{"text":"\nDefault: Disabled","color":"dark_gray"}]}}," Grave Robbing"] +execute unless data storage graves:config {allow_robbing:1b} run tellraw @s ["",{"text":"[ \u274c ]","color":"red","clickEvent":{"action":"run_command","value":"/function graves:enable_allow_robbing"},"hoverEvent":{"action":"show_text","contents":["",{"text":"Click to enable ","color":"green"},"Grave Robbing",{"text":".","color":"green"},{"text":"\nWhen enabled, players can open graves they do not own.","color":"gray"},{"text":"\nDefault: Disabled","color":"dark_gray"}]}}," Grave Robbing"] +execute if data storage graves:config {pick_up_xp:1b} run tellraw @s ["",{"text":"[ \u2714 ]","color":"green","clickEvent":{"action":"run_command","value":"/function graves:disable_pick_up_xp"},"hoverEvent":{"action":"show_text","contents":["",{"text":"Click to disable ","color":"red"},"XP Collection",{"text":".","color":"red"},{"text":"\nWhen enabled, graves collect XP dropped on death.\nNote that players do not drop all their XP on death.","color":"gray"},{"text":"\nDefault: Enabled","color":"dark_gray"}]}}," XP Collection"] +execute unless data storage graves:config {pick_up_xp:1b} run tellraw @s ["",{"text":"[ \u274c ]","color":"red","clickEvent":{"action":"run_command","value":"/function graves:enable_pick_up_xp"},"hoverEvent":{"action":"show_text","contents":["",{"text":"Click to enable ","color":"green"},"XP Collection",{"text":".","color":"green"},{"text":"\nWhen enabled, graves collect XP dropped on death.\nNote that players do not drop all their XP on death.","color":"gray"},{"text":"\nDefault: Enabled","color":"dark_gray"}]}}," XP Collection"] +execute if data storage graves:config {allow_locating:1b} run tellraw @s ["",{"text":"[ \u2714 ]","color":"green","clickEvent":{"action":"run_command","value":"/function graves:disable_allow_locating"},"hoverEvent":{"action":"show_text","contents":["",{"text":"Click to disable ","color":"red"},"Grave Locating",{"text":".","color":"red"},{"text":"\nWhen enabled, players can see the coordinates of their graves.","color":"gray"},{"text":"\nDefault: Opposite of /gamerule reducedDebugInfo","color":"dark_gray"}]}}," Grave Locating"] +execute unless data storage graves:config {allow_locating:1b} run tellraw @s ["",{"text":"[ \u274c ]","color":"red","clickEvent":{"action":"run_command","value":"/function graves:enable_allow_locating"},"hoverEvent":{"action":"show_text","contents":["",{"text":"Click to enable ","color":"green"},"Grave Locating",{"text":".","color":"green"},{"text":"\nWhen enabled, players can see the coordinates of their graves.","color":"gray"},{"text":"\nDefault: Opposite of /gamerule reducedDebugInfo","color":"dark_gray"}]}}," Grave Locating"] +execute if data storage graves:config {compatibility_mode:1b} run tellraw @s ["",{"text":"[ \u2714 ]","color":"green","clickEvent":{"action":"run_command","value":"/function graves:disable_compatibility_mode"},"hoverEvent":{"action":"show_text","contents":["",{"text":"Click to disable ","color":"red"},"Compatibility Mode",{"text":".","color":"red"},{"text":"\nThis fixes graves not picking up items from certain modded slots, or not picking up certain modded items with special behavior on death. When enabled, graves pick up every item dropped in the exact same tick and position of death, even if the item wasn't detected in your inventory.","color":"gray"},{"text":"\nThis also means if multiple players die in the exact same tick and position, one grave picks up all the items.","color":"red"},{"text":"\nDefault: Disabled","color":"dark_gray"}]}}," Compatibility Mode"] +execute unless data storage graves:config {compatibility_mode:1b} run tellraw @s ["",{"text":"[ \u274c ]","color":"red","clickEvent":{"action":"run_command","value":"/function graves:enable_compatibility_mode"},"hoverEvent":{"action":"show_text","contents":["",{"text":"Click to enable ","color":"green"},"Compatibility Mode",{"text":".","color":"green"},{"text":"\nThis fixes graves not picking up items from certain modded slots, or not picking up certain modded items with special behavior on death. When enabled, graves pick up every item dropped in the exact same tick and position of death, even if the item wasn't detected in your inventory.","color":"gray"},{"text":"\nThis also means if multiple players die in the exact same tick and position, one grave picks up all the items.","color":"red"},{"text":"\nDefault: Disabled","color":"dark_gray"}]}}," Compatibility Mode"] +tellraw @s ["",{"text":"[ \u270e ]","color":"gray","clickEvent":{"action":"suggest_command","value":"/scoreboard players set $despawn_seconds graves.config "},"hoverEvent":{"action":"show_text","contents":["",{"text":"Click to enter the number of seconds after which a grave and its contents are deleted.\nA grave's despawn timer only runs while the grave is loaded.\nEnter ","color":"gray"},"0",{"text":" to disable grave despawning.\nItems normally take ","color":"gray"},"300",{"text":" seconds (5 minutes) to despawn.","color":"gray"},{"text":"\nAccepts: whole numbers 0+\nDefault: 0","color":"dark_gray"}]}}," Grave Despawn Time ",{"text":"(Current: ","color":"gray"},{"score":{"name":"$despawn_seconds","objective":"graves.config"},"color":"gray"},{"text":")","color":"gray"}] +tellraw @s ["",{"text":"\n>> ","color":"gold"},{"text":"[ List All Graves ]","clickEvent":{"action":"run_command","value":"/function graves:list"},"hoverEvent":{"action":"show_text","contents":[{"text":"Click to run ","color":"gray"},{"text":"/function graves:list","color":"white"},"."]}}] +tellraw @s ["",{"text":">> ","color":"gold"},{"text":"[ Receive Grave Key ]","clickEvent":{"action":"run_command","value":"/function graves:give_grave_key"},"hoverEvent":{"action":"show_text","contents":{"text":"Click to receive a grave key which can be used to forcibly open graves.","color":"gray"}}}] +tellraw @s {"text":" ","color":"dark_gray","strikethrough":true} \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/creation/check_death_marker.mcfunction b/datapacks/graves/data/graves/function/creation/check_death_marker.mcfunction new file mode 100755 index 0000000..5569c15 --- /dev/null +++ b/datapacks/graves/data/graves/function/creation/check_death_marker.mcfunction @@ -0,0 +1,3 @@ +data modify storage graves:main creation set from entity @s data.graves.creation +execute if function graves:creation/handle_death_as_death_marker run function graves:creation/unmark_death +data remove storage graves:main creation \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/creation/check_death_markers.mcfunction b/datapacks/graves/data/graves/function/creation/check_death_markers.mcfunction new file mode 100755 index 0000000..d9890dd --- /dev/null +++ b/datapacks/graves/data/graves/function/creation/check_death_markers.mcfunction @@ -0,0 +1,2 @@ +execute as @e[type=minecraft:marker,tag=graves.death_marker] at @s run function graves:creation/check_death_marker +execute if score $death_marker_count graves.dummy matches 1.. run schedule function graves:creation/check_death_markers 1 \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/creation/check_death_markers_later_in_tick.mcfunction b/datapacks/graves/data/graves/function/creation/check_death_markers_later_in_tick.mcfunction new file mode 100755 index 0000000..47b22bb --- /dev/null +++ b/datapacks/graves/data/graves/function/creation/check_death_markers_later_in_tick.mcfunction @@ -0,0 +1,3 @@ +execute unless score $death_marker_count graves.dummy matches 1.. run return 1 +execute as @e[type=minecraft:marker,tag=graves.death_marker] at @s run function graves:creation/check_death_marker +execute if score $death_marker_count graves.dummy matches 1.. run advancement revoke @s only graves:check_death_markers_later_in_tick \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/creation/convert_inventory_pos_to_ints.mcfunction b/datapacks/graves/data/graves/function/creation/convert_inventory_pos_to_ints.mcfunction new file mode 100755 index 0000000..549a714 --- /dev/null +++ b/datapacks/graves/data/graves/function/creation/convert_inventory_pos_to_ints.mcfunction @@ -0,0 +1,3 @@ +execute store result storage graves:main creation.inventory_pos_ints.x int 1.0 run data get storage graves:main creation.grave.inventory_pos[0] +execute store result storage graves:main creation.inventory_pos_ints.y int 1.0 run data get storage graves:main creation.grave.inventory_pos[1] +execute store result storage graves:main creation.inventory_pos_ints.z int 1.0 run data get storage graves:main creation.grave.inventory_pos[2] \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/creation/create_grave_maybe.mcfunction b/datapacks/graves/data/graves/function/creation/create_grave_maybe.mcfunction new file mode 100755 index 0000000..f58e678 --- /dev/null +++ b/datapacks/graves/data/graves/function/creation/create_grave_maybe.mcfunction @@ -0,0 +1,14 @@ +data modify storage graves:main creation.pre_death_inventory set from storage graves:main creation.grave_item.pre_death_inventory +function graves:creation/items/save_next_pre_death_item_slot with storage graves:main creation.pre_death_inventory[-1] +data modify storage graves:main creation merge value {items:[],grave:{slots:[]}} +data modify storage graves:main creation.inventory_pos_compound.x set from storage graves:main creation.grave.inventory_pos[0] +data modify storage graves:main creation.inventory_pos_compound.y set from storage graves:main creation.grave.inventory_pos[1] +data modify storage graves:main creation.inventory_pos_compound.z set from storage graves:main creation.grave.inventory_pos[2] +function graves:creation/items/pick_up_items_at_inventory_pos with storage graves:main creation.inventory_pos_compound +execute if data storage graves:main creation{found_drops_late:1b} run function graves:creation/items/check_for_missing_pre_death_items +scoreboard players reset $non_pre_death_item_count graves.dummy +execute if data storage graves:config {pick_up_xp:1b} run function graves:creation/xp/pick_up_xp +execute store result storage graves:main creation.grave.xp_points int 1.0 run scoreboard players get $xp_points graves.dummy +scoreboard players reset $xp_points graves.dummy +execute unless data storage graves:main creation.items[0] if data storage graves:main creation.grave{xp_points:0} run return run function graves:creation/remove_loading_grave_listing with storage graves:main creation.grave_item +execute summon minecraft:item_display run function graves:creation/initialize_grave \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/creation/create_loading_grave_listing.mcfunction b/datapacks/graves/data/graves/function/creation/create_loading_grave_listing.mcfunction new file mode 100755 index 0000000..e6d8920 --- /dev/null +++ b/datapacks/graves/data/graves/function/creation/create_loading_grave_listing.mcfunction @@ -0,0 +1,2 @@ +$execute unless data storage graves:main players[{uuid: $(owner_uuid)}] run data modify storage graves:main players append value { uuid: $(owner_uuid), name: '{"italic":true,"color":"gray","text":"(Name loading... Try again, or click to open NameMC profile.)","hoverEvent":{"action":"show_text","contents":["",{"color":"gray","text":"Click to open URL:\\n"},"https://namemc.com/$(owner_uuid_0),$(owner_uuid_1),$(owner_uuid_2),$(owner_uuid_3)"]},"clickEvent":{"action":"open_url","value":"https://namemc.com/$(owner_uuid_0),$(owner_uuid_1),$(owner_uuid_2),$(owner_uuid_3)"}}', graves: [], } +$data modify storage graves:main players[{uuid: $(owner_uuid)}].graves append from storage graves:main creation.grave_listing \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/creation/die.mcfunction b/datapacks/graves/data/graves/function/creation/die.mcfunction new file mode 100755 index 0000000..1852b44 --- /dev/null +++ b/datapacks/graves/data/graves/function/creation/die.mcfunction @@ -0,0 +1,25 @@ +advancement revoke @s only graves:die +scoreboard players reset @s graves.deaths +execute if entity @s[gamemode=spectator] run return 1 +schedule function graves:creation/increment_tick_id 1 +execute anchored eyes positioned ^ ^ ^ positioned ~ ~-0.3 ~ summon minecraft:marker run function graves:creation/save_inventory_pos +execute store result storage graves:main creation.grave.death_gametime int 1.0 run time query gametime +data modify storage graves:main creation.player set from entity @s +data modify storage graves:main creation.target_grave_item.owner_uuid set from storage graves:main creation.player.UUID +data modify storage graves:main creation.target_grave_item.tick_id set from storage graves:main tick_id +data modify storage graves:main creation.grave_listing set value {location_text:{color:"gold",text:"(Grave loading... Try again.)"},item_count:"?",xp_points:"?"} +data modify storage graves:main creation.grave_listing.death_gametime set from storage graves:main creation.grave.death_gametime +data modify storage graves:main creation.grave_listing.dimension set from storage graves:main creation.player.Dimension +data modify storage graves:main creation.grave_listing.pos set from storage graves:main creation.player.Pos +data modify storage graves:main creation.grave_listing.loading.tick_id set from storage graves:main tick_id +data modify storage graves:main creation.grave_listing.owner_uuid set from storage graves:main creation.player.UUID +data remove storage graves:main creation.player +data modify storage graves:main creation.macro_args.owner_uuid set from storage graves:main creation.target_grave_item.owner_uuid +data modify storage graves:main creation.macro_args.owner_uuid_0 set from storage graves:main creation.macro_args.owner_uuid[0] +data modify storage graves:main creation.macro_args.owner_uuid_1 set from storage graves:main creation.macro_args.owner_uuid[1] +data modify storage graves:main creation.macro_args.owner_uuid_2 set from storage graves:main creation.macro_args.owner_uuid[2] +data modify storage graves:main creation.macro_args.owner_uuid_3 set from storage graves:main creation.macro_args.owner_uuid[3] +function graves:creation/create_loading_grave_listing with storage graves:main creation.macro_args +data remove storage graves:main creation.macro_args +execute unless function graves:creation/handle_death_as_player summon minecraft:marker run function graves:creation/initialize_death_marker +data remove storage graves:main creation \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/creation/does_grave_item_match.mcfunction b/datapacks/graves/data/graves/function/creation/does_grave_item_match.mcfunction new file mode 100755 index 0000000..956260c --- /dev/null +++ b/datapacks/graves/data/graves/function/creation/does_grave_item_match.mcfunction @@ -0,0 +1,4 @@ +data modify storage graves:main creation.grave_item set from entity @s Item.components."minecraft:custom_data".graves +execute store success storage graves:main creation.changed byte 1.0 run data modify storage graves:main creation.grave_item merge from storage graves:main creation.target_grave_item +execute if data storage graves:main creation{changed:0b} run return 1 +data remove storage graves:main creation.grave_item \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/creation/fail_to_find_grave_item.mcfunction b/datapacks/graves/data/graves/function/creation/fail_to_find_grave_item.mcfunction new file mode 100755 index 0000000..b76536e --- /dev/null +++ b/datapacks/graves/data/graves/function/creation/fail_to_find_grave_item.mcfunction @@ -0,0 +1,5 @@ +function graves:creation/remove_loading_grave_listing with storage graves:main creation.target_grave_item +execute unless data storage graves:main creation.grave.inventory_pos run return run tellraw @s [{"color":"red","text":"Your inventory dropped (if there was anything to drop) at an unknown location, and the Graves data pack couldn't find your death information.\n\nThis may be an incompatibility or bug. We can help solve this for you in our data pack help channel:\n"},{"underlined":true,"text":"https://vanillatweaks.net/discord","hoverEvent":{"action":"show_text","value":"Click to open URL."},"clickEvent":{"action":"open_url","value":"https://vanillatweaks.net/discord"}}] +execute if data storage graves:config {allow_locating:0b} run return run tellraw @s [{"color":"red","text":"Your inventory dropped (if there was anything to drop), but the Graves data pack couldn't find your death information.\n\nThis may be an incompatibility or bug. We can help solve this for you in our data pack help channel:\n"},{"underlined":true,"text":"https://vanillatweaks.net/discord","hoverEvent":{"action":"show_text","value":"Click to open URL."},"clickEvent":{"action":"open_url","value":"https://vanillatweaks.net/discord"}}] +function graves:creation/convert_inventory_pos_to_ints +return run tellraw @s [{"color":"red","text":"Your inventory dropped (if there was anything to drop) at ("},{"storage":"graves:main","nbt":"creation.inventory_pos_ints.x"},", ",{"storage":"graves:main","nbt":"creation.inventory_pos_ints.y"},", ",{"storage":"graves:main","nbt":"creation.inventory_pos_ints.z"},") in ",{"storage":"graves:main","nbt":"creation.grave_listing.dimension"},", but the Graves data pack couldn't find your death information.\n\nThis may be an incompatibility or bug. We can help solve this for you in our data pack help channel:\n",{"underlined":true,"text":"https://vanillatweaks.net/discord","hoverEvent":{"action":"show_text","value":"Click to open URL."},"clickEvent":{"action":"open_url","value":"https://vanillatweaks.net/discord"}}] \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/creation/fail_to_find_grave_item_at_death_marker.mcfunction b/datapacks/graves/data/graves/function/creation/fail_to_find_grave_item_at_death_marker.mcfunction new file mode 100755 index 0000000..fcbe8b7 --- /dev/null +++ b/datapacks/graves/data/graves/function/creation/fail_to_find_grave_item_at_death_marker.mcfunction @@ -0,0 +1,5 @@ +data modify entity @s interaction set value {player:[I;0,0,0,0],timestamp:0L} +data modify entity @s interaction.player set from storage graves:main creation.target_grave_item.owner_uuid +kill @s +execute on target run function graves:creation/fail_to_find_grave_item +return 1 \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/creation/find_grave_item.mcfunction b/datapacks/graves/data/graves/function/creation/find_grave_item.mcfunction new file mode 100755 index 0000000..9fac93b --- /dev/null +++ b/datapacks/graves/data/graves/function/creation/find_grave_item.mcfunction @@ -0,0 +1 @@ +execute as @e[type=minecraft:item,distance=..1] if items entity @s contents *[minecraft:custom_data~{graves:{grave:1b}}] if function graves:creation/does_grave_item_match run return run function graves:creation/handle_matching_grave_item \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/creation/handle_death.mcfunction b/datapacks/graves/data/graves/function/creation/handle_death.mcfunction new file mode 100755 index 0000000..9714a39 --- /dev/null +++ b/datapacks/graves/data/graves/function/creation/handle_death.mcfunction @@ -0,0 +1,2 @@ +function graves:creation/create_grave_maybe +return 1 \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/creation/handle_death_as_death_marker.mcfunction b/datapacks/graves/data/graves/function/creation/handle_death_as_death_marker.mcfunction new file mode 100755 index 0000000..2f6cc97 --- /dev/null +++ b/datapacks/graves/data/graves/function/creation/handle_death_as_death_marker.mcfunction @@ -0,0 +1,2 @@ +execute if function graves:creation/find_grave_item rotated as @s run return run function graves:creation/handle_death +execute if loaded ~ ~ ~ summon minecraft:interaction run return run function graves:creation/fail_to_find_grave_item_at_death_marker \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/creation/handle_death_as_player.mcfunction b/datapacks/graves/data/graves/function/creation/handle_death_as_player.mcfunction new file mode 100755 index 0000000..49309bc --- /dev/null +++ b/datapacks/graves/data/graves/function/creation/handle_death_as_player.mcfunction @@ -0,0 +1,2 @@ +execute if function graves:creation/find_grave_item run return run function graves:creation/handle_death +execute if loaded ~ ~ ~ run return run function graves:creation/fail_to_find_grave_item \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/creation/handle_matching_grave_item.mcfunction b/datapacks/graves/data/graves/function/creation/handle_matching_grave_item.mcfunction new file mode 100755 index 0000000..44a4b05 --- /dev/null +++ b/datapacks/graves/data/graves/function/creation/handle_matching_grave_item.mcfunction @@ -0,0 +1,6 @@ +data modify storage graves:main creation.grave_item_entity set from entity @s +data modify storage graves:main creation.grave_item set from storage graves:main creation.grave_item_entity.Item.components."minecraft:custom_data".graves +execute store result storage graves:main creation.found_drops_late byte 1.0 run data get storage graves:main creation.grave_item_entity.Age +data modify storage graves:main creation.owner_name set from storage graves:main creation.grave_item_entity.Item.components."minecraft:lore"[0] +kill @s +return 1 \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/creation/increment_tick_id.mcfunction b/datapacks/graves/data/graves/function/creation/increment_tick_id.mcfunction new file mode 100755 index 0000000..a3307df --- /dev/null +++ b/datapacks/graves/data/graves/function/creation/increment_tick_id.mcfunction @@ -0,0 +1 @@ +execute store result storage graves:main tick_id int 1.0 run scoreboard players add $tick_id graves.dummy 1 \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/creation/initialize_death_marker.mcfunction b/datapacks/graves/data/graves/function/creation/initialize_death_marker.mcfunction new file mode 100755 index 0000000..1de84d8 --- /dev/null +++ b/datapacks/graves/data/graves/function/creation/initialize_death_marker.mcfunction @@ -0,0 +1,7 @@ +tp @s ~ ~ ~ ~ ~ +data modify entity @s data.graves.creation set from storage graves:main creation +execute store success entity @s data.graves.forceload_success byte 1.0 run forceload add ~ ~ +scoreboard players add $death_marker_count graves.dummy 1 +function graves:creation/check_death_markers +tag @s add graves.death_marker +advancement revoke @a only graves:check_death_markers_later_in_tick \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/creation/initialize_grave.mcfunction b/datapacks/graves/data/graves/function/creation/initialize_grave.mcfunction new file mode 100755 index 0000000..4dbd6da --- /dev/null +++ b/datapacks/graves/data/graves/function/creation/initialize_grave.mcfunction @@ -0,0 +1,29 @@ +data merge entity @s {Tags:["graves.grave","graves.grave.initializing"],transformation:{translation:[0.0f,0.3125f,0.0f],scale:[0.625f,0.625f,0.625f],right_rotation:[0.0f,0.0f,0.0f,1.0f],left_rotation:[0.0f,0.0f,0.0f,1.0f]},item:{id:"minecraft:stone_brick_wall",components:{"minecraft:item_name":'"Grave Model"',"minecraft:rarity":"epic","minecraft:lore":['{"italic":false,"color":"gold","text":"If you see this item, the Graves data pack didn\'t work!"}','{"italic":false,"color":"gold","text":"Please let us know in our data pack help channel:"}','{"italic":false,"color":"yellow","text":"https://vanillatweaks.net/discord"}']}},item_display:"head",teleport_duration:1} +execute if data storage graves:main creation.items[0] run data modify entity @s item.components."minecraft:bundle_contents" set from storage graves:main creation.items +item modify entity @s contents [{"function":"minecraft:set_components","components":{"!minecraft:custom_name":{}}},{"function":"minecraft:copy_custom_data","source":{"type":"storage","source":"graves:main"},"ops":[{"op":"replace","source":"creation.grave","target":"graves"},{"op":"replace","source":"creation.grave_item.owner_uuid","target":"graves.owner_uuid"},{"op":"replace","source":"creation.grave_item.pre_death_inventory","target":"graves.pre_death_inventory"},{"op":"replace","source":"creation.found_drops_late","target":"graves.found_drops_late"}]}] +tp @s ~ ~ ~ ~90 0 +function graves:face_cardinal_direction +summon minecraft:interaction ~ ~ ~ {Tags:["graves.grave","graves.non_grave_repelling","graves.grave.unmounted"],width:0.75f,height:0.75f,response:1b} +ride @e[type=minecraft:interaction,tag=graves.grave.unmounted,distance=..0.01,limit=1] mount @s +execute on passengers run tag @s remove graves.grave.unmounted +function graves:placement/start +execute at @s positioned ~ ~0.75 ~ run summon minecraft:text_display ~ ~ ~ {Tags:["graves.grave","graves.grave.initializing"],billboard:"center",view_range:0.0625f,text:'{"storage":"graves:main","nbt":"creation.owner_name","interpret":true}',alignment:"center"} +execute at @s positioned ~ ~0.75 ~ as @e[type=minecraft:text_display,tag=graves.grave.initializing,distance=..0.01,limit=1] run function graves:creation/initialize_grave_name_tag +item modify entity @s contents {function:"minecraft:copy_custom_data",source:{type:"storage",source:"graves:main"},ops:[{op:"replace",source:"creation.grave.name_tag_uuid",target:"graves.name_tag_uuid"}]} +data modify storage graves:main creation.grave_entity set from entity @s +data modify storage graves:main creation.grave_listing.uuid set from storage graves:main creation.grave_entity.UUID +data modify storage graves:main creation.grave_listing.pos set from storage graves:main creation.grave_entity.Pos +execute store result storage graves:main creation.grave_listing.item_count int 1.0 run data get storage graves:main creation.items +data modify storage graves:main creation.grave_listing.xp_points set from storage graves:main creation.grave.xp_points +data remove storage graves:main creation.grave_listing.loading +data modify storage graves:main creation.macro_args set from storage graves:main creation.target_grave_item +data modify storage graves:main creation.macro_args.dimension set from storage graves:main creation.grave_listing.dimension +data modify storage graves:main creation.macro_args.x set from storage graves:main creation.grave_listing.pos[0] +data modify storage graves:main creation.macro_args.y set from storage graves:main creation.grave_listing.pos[1] +data modify storage graves:main creation.macro_args.z set from storage graves:main creation.grave_listing.pos[2] +execute store result storage graves:main creation.macro_args.x_int int 1.0 run data get storage graves:main creation.grave_listing.pos[0] +execute store result storage graves:main creation.macro_args.y_int int 1.0 run data get storage graves:main creation.grave_listing.pos[1] +execute store result storage graves:main creation.macro_args.z_int int 1.0 run data get storage graves:main creation.grave_listing.pos[2] +function graves:creation/update_grave_listing with storage graves:main creation.macro_args +execute if data storage graves:config {allow_locating:1b} summon minecraft:interaction run function graves:creation/show_new_grave_location +tag @s remove graves.grave.initializing \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/creation/initialize_grave_name_tag.mcfunction b/datapacks/graves/data/graves/function/creation/initialize_grave_name_tag.mcfunction new file mode 100755 index 0000000..3449916 --- /dev/null +++ b/datapacks/graves/data/graves/function/creation/initialize_grave_name_tag.mcfunction @@ -0,0 +1,2 @@ +data modify storage graves:main creation.grave.name_tag_uuid set from entity @s UUID +tag @s remove graves.grave.initializing \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/creation/items/check_for_missing_pre_death_items.mcfunction b/datapacks/graves/data/graves/function/creation/items/check_for_missing_pre_death_items.mcfunction new file mode 100755 index 0000000..0aa2d19 --- /dev/null +++ b/datapacks/graves/data/graves/function/creation/items/check_for_missing_pre_death_items.mcfunction @@ -0,0 +1,6 @@ +execute store result score $missing_pre_death_item_count graves.dummy run data get storage graves:main creation.grave_item.pre_death_inventory +execute store result score $saved_pre_death_item_count graves.dummy run data get storage graves:main creation.items +scoreboard players operation $saved_pre_death_item_count graves.dummy -= $non_pre_death_item_count graves.dummy +scoreboard players operation $missing_pre_death_item_count graves.dummy -= $saved_pre_death_item_count graves.dummy +execute if score $missing_pre_death_item_count graves.dummy matches 0 run return fail +execute summon minecraft:interaction run function graves:creation/items/warn_of_missing_pre_death_items \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/creation/items/check_next_pre_death_item_match.mcfunction b/datapacks/graves/data/graves/function/creation/items/check_next_pre_death_item_match.mcfunction new file mode 100755 index 0000000..c5e4bf8 --- /dev/null +++ b/datapacks/graves/data/graves/function/creation/items/check_next_pre_death_item_match.mcfunction @@ -0,0 +1,6 @@ +execute unless data storage graves:main creation.item.pre_death_item_matches[-1] run return fail +data modify storage graves:main creation.item.match_value set from storage graves:main creation.item.value +execute store success storage graves:main creation.changed byte 1.0 run data modify storage graves:main creation.item.match_value set from storage graves:main creation.item.pre_death_item_matches[-1].value +execute if data storage graves:main creation{changed:0b} run return run data modify storage graves:main creation.item.pre_death_index set from storage graves:main creation.item.pre_death_item_matches[-1].index +data remove storage graves:main creation.item.pre_death_item_matches[-1] +function graves:creation/items/check_next_pre_death_item_match \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/creation/items/find_pre_death_item_matches.mcfunction b/datapacks/graves/data/graves/function/creation/items/find_pre_death_item_matches.mcfunction new file mode 100755 index 0000000..4ba6e15 --- /dev/null +++ b/datapacks/graves/data/graves/function/creation/items/find_pre_death_item_matches.mcfunction @@ -0,0 +1 @@ +$data modify storage graves:main creation.item.pre_death_item_matches append from storage graves:main creation.pre_death_items[{value: $(value)}] \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/creation/items/get_pre_death_item_slot.mcfunction b/datapacks/graves/data/graves/function/creation/items/get_pre_death_item_slot.mcfunction new file mode 100755 index 0000000..6d4e04d --- /dev/null +++ b/datapacks/graves/data/graves/function/creation/items/get_pre_death_item_slot.mcfunction @@ -0,0 +1,2 @@ +$data modify storage graves:main creation.item.slot set from storage graves:main creation.pre_death_items[$(pre_death_index)].slot +$data remove storage graves:main creation.pre_death_items[$(pre_death_index)] \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/creation/items/pick_up_item.mcfunction b/datapacks/graves/data/graves/function/creation/items/pick_up_item.mcfunction new file mode 100755 index 0000000..9849ace --- /dev/null +++ b/datapacks/graves/data/graves/function/creation/items/pick_up_item.mcfunction @@ -0,0 +1,5 @@ +execute if data storage graves:config {compatibility_mode:1b} unless data storage graves:main creation.item.slot run function graves:creation/items/prepare_to_pick_up_non_pre_death_item +execute unless data storage graves:main creation.item.slot run return fail +data modify storage graves:main creation.items append from storage graves:main creation.item.value +data modify storage graves:main creation.grave.slots append from storage graves:main creation.item.slot +kill @s \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/creation/items/pick_up_item_maybe.mcfunction b/datapacks/graves/data/graves/function/creation/items/pick_up_item_maybe.mcfunction new file mode 100755 index 0000000..1f2bae1 --- /dev/null +++ b/datapacks/graves/data/graves/function/creation/items/pick_up_item_maybe.mcfunction @@ -0,0 +1,6 @@ +data modify storage graves:main creation.item.value set from entity @s Item +function graves:creation/items/find_pre_death_item_matches with storage graves:main creation.item +function graves:creation/items/check_next_pre_death_item_match +function graves:creation/items/get_pre_death_item_slot with storage graves:main creation.item +function graves:creation/items/pick_up_item +data remove storage graves:main creation.item \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/creation/items/pick_up_items.mcfunction b/datapacks/graves/data/graves/function/creation/items/pick_up_items.mcfunction new file mode 100755 index 0000000..fca11b2 --- /dev/null +++ b/datapacks/graves/data/graves/function/creation/items/pick_up_items.mcfunction @@ -0,0 +1,2 @@ +execute if data storage graves:main creation{found_drops_late:0b} run return run function graves:creation/items/pick_up_items_with_age_0 +execute as @e[type=minecraft:item,distance=..1,sort=nearest,nbt={Age:1s,PickupDelay:39s}] run function graves:creation/items/pick_up_item_maybe \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/creation/items/pick_up_items_at_inventory_pos.mcfunction b/datapacks/graves/data/graves/function/creation/items/pick_up_items_at_inventory_pos.mcfunction new file mode 100755 index 0000000..c01e5fb --- /dev/null +++ b/datapacks/graves/data/graves/function/creation/items/pick_up_items_at_inventory_pos.mcfunction @@ -0,0 +1 @@ +$execute positioned $(x) $(y) $(z) run function graves:creation/items/pick_up_items \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/creation/items/pick_up_items_with_age_0.mcfunction b/datapacks/graves/data/graves/function/creation/items/pick_up_items_with_age_0.mcfunction new file mode 100755 index 0000000..64ec380 --- /dev/null +++ b/datapacks/graves/data/graves/function/creation/items/pick_up_items_with_age_0.mcfunction @@ -0,0 +1 @@ +execute as @e[type=minecraft:item,distance=..0.01,nbt={Age:0s,PickupDelay:40s}] run function graves:creation/items/pick_up_item_maybe \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/creation/items/prepare_to_pick_up_non_pre_death_item.mcfunction b/datapacks/graves/data/graves/function/creation/items/prepare_to_pick_up_non_pre_death_item.mcfunction new file mode 100755 index 0000000..c4f211d --- /dev/null +++ b/datapacks/graves/data/graves/function/creation/items/prepare_to_pick_up_non_pre_death_item.mcfunction @@ -0,0 +1,2 @@ +data modify storage graves:main creation.item.slot set value "unknown" +scoreboard players add $non_pre_death_item_count graves.dummy 1 \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/creation/items/save_next_pre_death_item_slot.mcfunction b/datapacks/graves/data/graves/function/creation/items/save_next_pre_death_item_slot.mcfunction new file mode 100755 index 0000000..ab8e345 --- /dev/null +++ b/datapacks/graves/data/graves/function/creation/items/save_next_pre_death_item_slot.mcfunction @@ -0,0 +1,8 @@ +execute store result storage graves:main creation.pre_death_item_index int 1.0 run data get storage graves:main creation.pre_death_items +data modify storage graves:main creation.pre_death_items append value {slot:"unknown"} +data modify storage graves:main creation.pre_death_items[-1].index set from storage graves:main creation.pre_death_item_index +data modify storage graves:main creation.pre_death_items[-1].value set from storage graves:main creation.pre_death_inventory[-1] +data remove storage graves:main creation.pre_death_inventory[-1] +$data modify storage graves:main creation.pre_death_items[-1].slot set from storage graves:const slots.$(Slot) +data remove storage graves:main creation.pre_death_items[-1].value.Slot +function graves:creation/items/save_next_pre_death_item_slot with storage graves:main creation.pre_death_inventory[-1] \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/creation/items/warn_of_missing_pre_death_items.mcfunction b/datapacks/graves/data/graves/function/creation/items/warn_of_missing_pre_death_items.mcfunction new file mode 100755 index 0000000..02e34fd --- /dev/null +++ b/datapacks/graves/data/graves/function/creation/items/warn_of_missing_pre_death_items.mcfunction @@ -0,0 +1,6 @@ +data modify entity @s interaction set value {player:[I;0,0,0,0],timestamp:0L} +data modify entity @s interaction.player set from storage graves:main creation.target_grave_item.owner_uuid +kill @s +execute if data storage graves:config {allow_locating:0b} on target run return run tellraw @s [{"color":"red","text":"Your inventory dropped, but due to a rare Minecraft quirk, the Graves data pack detected it couldn't pick up at most "},{"score":{"name":"$missing_pre_death_item_count","objective":"graves.dummy"}}," of your items.\n\nIf your grave is missing items, it may be an incompatibility or bug, and we can help you in our data pack help channel:\n",{"underlined":true,"text":"https://vanillatweaks.net/discord","hoverEvent":{"action":"show_text","value":"Click to open URL."},"clickEvent":{"action":"open_url","value":"https://vanillatweaks.net/discord"}}] +function graves:creation/convert_inventory_pos_to_ints +execute on target run tellraw @s [{"color":"red","text":"Your inventory dropped at ("},{"storage":"graves:main","nbt":"creation.inventory_pos_ints.x"},", ",{"storage":"graves:main","nbt":"creation.inventory_pos_ints.y"},", ",{"storage":"graves:main","nbt":"creation.inventory_pos_ints.z"},") in ",{"storage":"graves:main","nbt":"creation.grave_listing.dimension"},", but due to a rare Minecraft quirk, the Graves data pack detected it may have missed at most ",{"score":{"name":"$missing_pre_death_item_count","objective":"graves.dummy"}}," of your item slots.\n\nIf your grave is missing items, it may be an incompatibility or bug, and we can help you in our data pack help channel:\n",{"underlined":true,"text":"https://vanillatweaks.net/discord","hoverEvent":{"action":"show_text","value":"Click to open URL."},"clickEvent":{"action":"open_url","value":"https://vanillatweaks.net/discord"}}] \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/creation/remove_loading_grave_listing.mcfunction b/datapacks/graves/data/graves/function/creation/remove_loading_grave_listing.mcfunction new file mode 100755 index 0000000..3da11cf --- /dev/null +++ b/datapacks/graves/data/graves/function/creation/remove_loading_grave_listing.mcfunction @@ -0,0 +1,2 @@ +$data remove storage graves:main players[{uuid: $(owner_uuid)}].graves[{loading: {tick_id: $(tick_id)}}] +data remove storage graves:main players[{graves:[]}] \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/creation/save_inventory_pos.mcfunction b/datapacks/graves/data/graves/function/creation/save_inventory_pos.mcfunction new file mode 100755 index 0000000..8f3aed2 --- /dev/null +++ b/datapacks/graves/data/graves/function/creation/save_inventory_pos.mcfunction @@ -0,0 +1,2 @@ +data modify storage graves:main creation.grave.inventory_pos set from entity @s Pos +kill @s \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/creation/show_new_grave_location.mcfunction b/datapacks/graves/data/graves/function/creation/show_new_grave_location.mcfunction new file mode 100755 index 0000000..d6f74b4 --- /dev/null +++ b/datapacks/graves/data/graves/function/creation/show_new_grave_location.mcfunction @@ -0,0 +1,4 @@ +data modify entity @s interaction set value {player:[I;0,0,0,0],timestamp:0L} +data modify entity @s interaction.player set from storage graves:main creation.grave_item.owner_uuid +kill @s +execute on target run tellraw @s [{"text":"Your last grave is at ","color":"gold"},{"storage":"graves:main","nbt":"creation.grave_listing.location_text","interpret":true},". Enter ",{"color":"yellow","text":"/trigger graves","hoverEvent":{"action":"show_text","contents":"Click to run command."},"clickEvent":{"action":"run_command","value":"/trigger graves"}}," to list all your graves."] \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/creation/unmark_death.mcfunction b/datapacks/graves/data/graves/function/creation/unmark_death.mcfunction new file mode 100755 index 0000000..557568f --- /dev/null +++ b/datapacks/graves/data/graves/function/creation/unmark_death.mcfunction @@ -0,0 +1,3 @@ +execute if data entity @s data.graves{forceload_success:1b} run forceload remove ~ ~ +kill @s +scoreboard players remove $death_marker_count graves.dummy 1 \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/creation/update_grave_listing.mcfunction b/datapacks/graves/data/graves/function/creation/update_grave_listing.mcfunction new file mode 100755 index 0000000..b28424a --- /dev/null +++ b/datapacks/graves/data/graves/function/creation/update_grave_listing.mcfunction @@ -0,0 +1,4 @@ +$execute if data storage graves:const dimension_names."$(dimension)" run data modify storage graves:main creation.grave_listing.location_text set value '["",{"color":"yellow","text":"($(x_int), $(y_int), $(z_int))","hoverEvent":{"action":"show_text","contents":"Click to teleport."},"clickEvent":{"action":"suggest_command","value":"/execute in $(dimension) run tp @s $(x) $(y) $(z)"}},[{"color":"gold","text":" in "},{"storage":"graves:const","nbt":"dimension_names.\'$(dimension)\'"}]]' +$execute unless data storage graves:const dimension_names."$(dimension)" run data modify storage graves:main creation.grave_listing.location_text set value '["",{"color":"yellow","text":"($(x_int), $(y_int), $(z_int))","hoverEvent":{"action":"show_text","contents":"Click to teleport."},"clickEvent":{"action":"suggest_command","value":"/execute in $(dimension) run tp @s $(x) $(y) $(z)"}},{"color":"gold","text":" in $(dimension)"}]' +$data modify storage graves:main players[{uuid: $(owner_uuid)}].graves[{loading: {tick_id: $(tick_id)}}] set from storage graves:main creation.grave_listing +$data modify storage graves:main players[{uuid: $(owner_uuid)}].name set from storage graves:main creation.owner_name \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/creation/xp/pick_up_xp.mcfunction b/datapacks/graves/data/graves/function/creation/xp/pick_up_xp.mcfunction new file mode 100755 index 0000000..c096163 --- /dev/null +++ b/datapacks/graves/data/graves/function/creation/xp/pick_up_xp.mcfunction @@ -0,0 +1,2 @@ +execute if data storage graves:main creation{found_drops_late:0b} run return run function graves:creation/xp/pick_up_xp_orb_with_age_0 +execute as @e[type=minecraft:experience_orb,distance=..1,nbt={Age:1s}] run function graves:creation/xp/pick_up_xp_orb \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/creation/xp/pick_up_xp_orb.mcfunction b/datapacks/graves/data/graves/function/creation/xp/pick_up_xp_orb.mcfunction new file mode 100755 index 0000000..b4e2fd7 --- /dev/null +++ b/datapacks/graves/data/graves/function/creation/xp/pick_up_xp_orb.mcfunction @@ -0,0 +1,3 @@ +execute store result score $xp_orb_value graves.dummy run data get entity @s Value +scoreboard players operation $xp_points graves.dummy += $xp_orb_value graves.dummy +kill @s \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/creation/xp/pick_up_xp_orb_with_age_0.mcfunction b/datapacks/graves/data/graves/function/creation/xp/pick_up_xp_orb_with_age_0.mcfunction new file mode 100755 index 0000000..e9893d2 --- /dev/null +++ b/datapacks/graves/data/graves/function/creation/xp/pick_up_xp_orb_with_age_0.mcfunction @@ -0,0 +1 @@ +execute as @e[type=minecraft:experience_orb,distance=..0.01,nbt={Age:0s}] run function graves:creation/xp/pick_up_xp_orb \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/destruction/destroy_grave.mcfunction b/datapacks/graves/data/graves/function/destruction/destroy_grave.mcfunction new file mode 100755 index 0000000..de9a38e --- /dev/null +++ b/datapacks/graves/data/graves/function/destruction/destroy_grave.mcfunction @@ -0,0 +1,8 @@ +playsound minecraft:block.stone.break block @a +particle minecraft:poof ~ ~0.3125 ~ 0 0 0 0.05 10 +execute summon minecraft:snowball run function graves:opening/kill_name_tag +execute on vehicle run kill @s +kill @s +$data remove storage graves:main players[{uuid: $(owner_uuid)}].graves[{uuid: $(grave_uuid)}] +data remove storage graves:main players[{graves:[]}] +data remove storage graves:main destruction \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/destruction/update_despawn_timer.mcfunction b/datapacks/graves/data/graves/function/destruction/update_despawn_timer.mcfunction new file mode 100755 index 0000000..40004a0 --- /dev/null +++ b/datapacks/graves/data/graves/function/destruction/update_despawn_timer.mcfunction @@ -0,0 +1,6 @@ +scoreboard players add @s graves.age_seconds 1 +execute if score @s graves.age_seconds <= $despawn_seconds graves.config run return 1 +data modify storage graves:main destruction.grave_entity set from entity @s +data modify storage graves:main destruction merge from storage graves:main destruction.grave_entity.item.components."minecraft:custom_data".graves +data modify storage graves:main destruction.grave_uuid set from storage graves:main destruction.grave_entity.UUID +execute on passengers at @s run function graves:destruction/destroy_grave with storage graves:main destruction \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/disable_allow_locating.mcfunction b/datapacks/graves/data/graves/function/disable_allow_locating.mcfunction new file mode 100755 index 0000000..1dc89f3 --- /dev/null +++ b/datapacks/graves/data/graves/function/disable_allow_locating.mcfunction @@ -0,0 +1,4 @@ +data modify storage graves:config allow_locating set value false +scoreboard players reset * graves +schedule clear graves:location/schedule_2t +function graves:config \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/disable_allow_robbing.mcfunction b/datapacks/graves/data/graves/function/disable_allow_robbing.mcfunction new file mode 100755 index 0000000..3707712 --- /dev/null +++ b/datapacks/graves/data/graves/function/disable_allow_robbing.mcfunction @@ -0,0 +1,2 @@ +data modify storage graves:config allow_robbing set value false +function graves:config \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/disable_compatibility_mode.mcfunction b/datapacks/graves/data/graves/function/disable_compatibility_mode.mcfunction new file mode 100755 index 0000000..8dba69f --- /dev/null +++ b/datapacks/graves/data/graves/function/disable_compatibility_mode.mcfunction @@ -0,0 +1,2 @@ +data modify storage graves:config compatibility_mode set value false +function graves:config \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/disable_pick_up_xp.mcfunction b/datapacks/graves/data/graves/function/disable_pick_up_xp.mcfunction new file mode 100755 index 0000000..11c07eb --- /dev/null +++ b/datapacks/graves/data/graves/function/disable_pick_up_xp.mcfunction @@ -0,0 +1,2 @@ +data modify storage graves:config pick_up_xp set value false +function graves:config \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/enable_allow_locating.mcfunction b/datapacks/graves/data/graves/function/enable_allow_locating.mcfunction new file mode 100755 index 0000000..3d754f9 --- /dev/null +++ b/datapacks/graves/data/graves/function/enable_allow_locating.mcfunction @@ -0,0 +1,3 @@ +data modify storage graves:config allow_locating set value true +schedule function graves:location/schedule_2t 1 +function graves:config \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/enable_allow_robbing.mcfunction b/datapacks/graves/data/graves/function/enable_allow_robbing.mcfunction new file mode 100755 index 0000000..7360d99 --- /dev/null +++ b/datapacks/graves/data/graves/function/enable_allow_robbing.mcfunction @@ -0,0 +1,2 @@ +data modify storage graves:config allow_robbing set value true +function graves:config \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/enable_compatibility_mode.mcfunction b/datapacks/graves/data/graves/function/enable_compatibility_mode.mcfunction new file mode 100755 index 0000000..f53f568 --- /dev/null +++ b/datapacks/graves/data/graves/function/enable_compatibility_mode.mcfunction @@ -0,0 +1,2 @@ +data modify storage graves:config compatibility_mode set value true +function graves:config \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/enable_pick_up_xp.mcfunction b/datapacks/graves/data/graves/function/enable_pick_up_xp.mcfunction new file mode 100755 index 0000000..d21a7ba --- /dev/null +++ b/datapacks/graves/data/graves/function/enable_pick_up_xp.mcfunction @@ -0,0 +1,2 @@ +data modify storage graves:config pick_up_xp set value true +function graves:config \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/face_cardinal_direction.mcfunction b/datapacks/graves/data/graves/function/face_cardinal_direction.mcfunction new file mode 100755 index 0000000..83459a9 --- /dev/null +++ b/datapacks/graves/data/graves/function/face_cardinal_direction.mcfunction @@ -0,0 +1,4 @@ +execute if entity @s[y_rotation=-45..45] run return run tp @s ~ ~ ~ 0 0 +execute if entity @s[y_rotation=45..135] run return run tp @s ~ ~ ~ 90 0 +execute if entity @s[y_rotation=135..225] run return run tp @s ~ ~ ~ 180 0 +tp @s ~ ~ ~ 270 0 \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/force_uninstall.mcfunction b/datapacks/graves/data/graves/function/force_uninstall.mcfunction new file mode 100755 index 0000000..ee8ac45 --- /dev/null +++ b/datapacks/graves/data/graves/function/force_uninstall.mcfunction @@ -0,0 +1,18 @@ +schedule clear graves:schedule_1s +schedule clear graves:location/schedule_2t +schedule clear graves:creation/check_death_markers +schedule clear graves:creation/increment_tick_id +schedule clear graves:opening/animate_graves_shaking +scoreboard objectives remove graves.dummy +scoreboard objectives remove graves.deaths +scoreboard objectives remove graves.shaking_ticks_left +scoreboard objectives remove graves.age_seconds +scoreboard objectives remove graves +data remove storage graves:const slots +data remove storage graves:const dimension_names +data remove storage graves:config allow_robbing +data remove storage graves:config pick_up_xp +data remove storage graves:config allow_locating +data remove storage graves:config compatibility_mode +data remove storage graves:main tick_id +data remove storage graves:main players \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/gamerule_reduced_debug_info.mcfunction b/datapacks/graves/data/graves/function/gamerule_reduced_debug_info.mcfunction new file mode 100755 index 0000000..fe7bf11 --- /dev/null +++ b/datapacks/graves/data/graves/function/gamerule_reduced_debug_info.mcfunction @@ -0,0 +1 @@ +return run gamerule reducedDebugInfo \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/give_grave_key.mcfunction b/datapacks/graves/data/graves/function/give_grave_key.mcfunction new file mode 100755 index 0000000..b1aa7f3 --- /dev/null +++ b/datapacks/graves/data/graves/function/give_grave_key.mcfunction @@ -0,0 +1 @@ +give @s minecraft:tripwire_hook[minecraft:custom_data={graves:{grave_key:1b}},minecraft:item_name='"Grave Key"',minecraft:rarity="epic",minecraft:lore=['{"italic":false,"color":"gold","text":"Use this to forcibly open anyone\'s grave."}'],minecraft:enchantment_glint_override=true] \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/list.mcfunction b/datapacks/graves/data/graves/function/list.mcfunction new file mode 100755 index 0000000..1d0ed96 --- /dev/null +++ b/datapacks/graves/data/graves/function/list.mcfunction @@ -0,0 +1,2 @@ +scoreboard players set $page_number graves.dummy 1 +function graves:location/list_graves/all \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/list_page.mcfunction b/datapacks/graves/data/graves/function/list_page.mcfunction new file mode 100755 index 0000000..476c3de --- /dev/null +++ b/datapacks/graves/data/graves/function/list_page.mcfunction @@ -0,0 +1,2 @@ +$scoreboard players set $page_number graves.dummy $(page) +function graves:location/list_graves/all \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/load.mcfunction b/datapacks/graves/data/graves/function/load.mcfunction new file mode 100755 index 0000000..8610684 --- /dev/null +++ b/datapacks/graves/data/graves/function/load.mcfunction @@ -0,0 +1,20 @@ +scoreboard objectives add graves.config dummy +scoreboard objectives add graves.dummy dummy +scoreboard objectives add graves.deaths minecraft.custom:minecraft.deaths +scoreboard objectives add graves.shaking_ticks_left dummy +scoreboard objectives add graves.age_seconds dummy +scoreboard objectives add graves trigger "List Graves" +scoreboard players reset * graves +data modify storage graves:const slots set value {-106:"weapon.offhand",0:"container.0",1:"container.1",2:"container.2",3:"container.3",4:"container.4",5:"container.5",6:"container.6",7:"container.7",8:"container.8",9:"container.9",10:"container.10",11:"container.11",12:"container.12",13:"container.13",14:"container.14",15:"container.15",16:"container.16",17:"container.17",18:"container.18",19:"container.19",20:"container.20",21:"container.21",22:"container.22",23:"container.23",24:"container.24",25:"container.25",26:"container.26",27:"container.27",28:"container.28",29:"container.29",30:"container.30",31:"container.31",32:"container.32",33:"container.33",34:"container.34",35:"container.35",100:"armor.feet",101:"armor.legs",102:"armor.chest",103:"armor.head"} +data modify storage graves:const dimension_names set value {"minecraft:overworld":"the Overworld","minecraft:the_nether":"the Nether","minecraft:the_end":"the End"} +scoreboard players set $TICKS_PER_HOUR graves.dummy 72000 +execute unless data storage graves:config allow_robbing run data modify storage graves:config allow_robbing set value false +execute unless data storage graves:config pick_up_xp run data modify storage graves:config pick_up_xp set value true +execute unless data storage graves:config allow_locating run function graves:reset_allow_locating +execute unless data storage graves:config compatibility_mode run data modify storage graves:config compatibility_mode set value false +scoreboard players add $despawn_seconds graves.config 0 +scoreboard players reset * graves.deaths +execute store result score $tick_id graves.dummy store result storage graves:main tick_id int 1.0 run data get storage graves:main tick_id +execute unless data storage graves:main players run data modify storage graves:main players set value [] +schedule function graves:schedule_1s 10 +function graves:update_allow_locating \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/location/list_graves/all.mcfunction b/datapacks/graves/data/graves/function/location/list_graves/all.mcfunction new file mode 100755 index 0000000..f34a6ec --- /dev/null +++ b/datapacks/graves/data/graves/function/location/list_graves/all.mcfunction @@ -0,0 +1,14 @@ +execute unless score $page_number graves.dummy matches 1.. run return run tellraw @s {"color":"red","text":"Invalid page number."} +execute unless data storage graves:main players[0].graves[0] run return run tellraw @s {"color":"red","text":"This world doesn't have any graves."} +execute store result storage graves:main location.page_number int 1.0 run scoreboard players get $page_number graves.dummy +execute store result storage graves:main location.previous_page_number int 1.0 run scoreboard players remove $page_number graves.dummy 1 +execute store result storage graves:main location.next_page_number int 1.0 run scoreboard players add $page_number graves.dummy 2 +execute store result score $last_listing_number graves.dummy run data get storage graves:main location.previous_page_number 5 +execute store result score $first_listing_number graves.dummy store result storage graves:main location.listing_number_0 int 1.0 run scoreboard players add $last_listing_number graves.dummy 1 +execute store result storage graves:main location.listing_number_1 int 1.0 run scoreboard players add $last_listing_number graves.dummy 1 +execute store result storage graves:main location.listing_number_2 int 1.0 run scoreboard players add $last_listing_number graves.dummy 1 +execute store result storage graves:main location.listing_number_3 int 1.0 run scoreboard players add $last_listing_number graves.dummy 1 +execute store result storage graves:main location.listing_number_4 int 1.0 run scoreboard players add $last_listing_number graves.dummy 1 +data modify storage graves:main location.graves append from storage graves:main players[].graves[] +function graves:location/show_graves/all with storage graves:main location +data remove storage graves:main location \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/location/list_graves/self.mcfunction b/datapacks/graves/data/graves/function/location/list_graves/self.mcfunction new file mode 100755 index 0000000..c977b17 --- /dev/null +++ b/datapacks/graves/data/graves/function/location/list_graves/self.mcfunction @@ -0,0 +1,12 @@ +execute store result storage graves:main location.page_number int 1.0 run scoreboard players operation $page_number graves.dummy = @s graves +execute store result storage graves:main location.previous_page_number int 1.0 run scoreboard players remove $page_number graves.dummy 1 +execute store result storage graves:main location.next_page_number int 1.0 run scoreboard players add $page_number graves.dummy 2 +execute store result score $last_listing_number graves.dummy run data get storage graves:main location.previous_page_number 5 +execute store result score $first_listing_number graves.dummy store result storage graves:main location.listing_number_0 int 1.0 run scoreboard players add $last_listing_number graves.dummy 1 +execute store result storage graves:main location.listing_number_1 int 1.0 run scoreboard players add $last_listing_number graves.dummy 1 +execute store result storage graves:main location.listing_number_2 int 1.0 run scoreboard players add $last_listing_number graves.dummy 1 +execute store result storage graves:main location.listing_number_3 int 1.0 run scoreboard players add $last_listing_number graves.dummy 1 +execute store result storage graves:main location.listing_number_4 int 1.0 run scoreboard players add $last_listing_number graves.dummy 1 +data modify storage graves:main location.player_uuid set from entity @s UUID +function graves:location/show_graves/self with storage graves:main location +data remove storage graves:main location \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/location/schedule_2t.mcfunction b/datapacks/graves/data/graves/function/location/schedule_2t.mcfunction new file mode 100755 index 0000000..ca6d492 --- /dev/null +++ b/datapacks/graves/data/graves/function/location/schedule_2t.mcfunction @@ -0,0 +1,4 @@ +schedule function graves:location/schedule_2t 2 +execute as @a[scores={graves=1..}] run function graves:location/list_graves/self +scoreboard players set @a graves 0 +scoreboard players enable @a graves \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/location/show_grave.mcfunction b/datapacks/graves/data/graves/function/location/show_grave.mcfunction new file mode 100755 index 0000000..3c9fe56 --- /dev/null +++ b/datapacks/graves/data/graves/function/location/show_grave.mcfunction @@ -0,0 +1,9 @@ +execute store result score $death_gametime graves.dummy run data get storage graves:main location.grave_listing.death_gametime +execute store result score $ticks_since_death graves.dummy run time query gametime +execute store result storage graves:main location.hours_ago int 0.00001388888888888889 run scoreboard players operation $ticks_since_death graves.dummy -= $death_gametime graves.dummy +execute store result storage graves:main location.minutes_ago int 0.0008333333333333334 run scoreboard players operation $ticks_since_death graves.dummy %= $TICKS_PER_HOUR graves.dummy +execute unless data storage graves:main location{hours_ago:0} run data modify storage graves:main location.time_since_death_texts append value '[{"storage":"graves:main","nbt":"location.hours_ago"},"h"]' +execute unless data storage graves:main location{minutes_ago:0} run data modify storage graves:main location.time_since_death_texts append value '[{"storage":"graves:main","nbt":"location.minutes_ago"},"m"]' +execute unless data storage graves:main location.time_since_death_texts run data modify storage graves:main location.time_since_death_texts set value ["0m"] +tellraw @s [{"storage":"graves:main","nbt":"location.grave_listing_indent"},{"storage":"graves:main","nbt":"location.grave_listing.location_text","interpret":true},[{"italic":true,"color":"gray","text":" - "},[{"storage":"graves:main","nbt":"location.time_since_death_texts[]","interpret":true,"hoverEvent":{"action":"show_text","contents":{"italic":true,"text":"(excluding when world isn't open)"}}}," ago"]," ",{"color":"dark_purple","text":"(more)","hoverEvent":{"action":"show_text","contents":["",{"text":"Item slots: ","color":"gray"},{"storage":"graves:main","nbt":"location.grave_listing.item_count"},{"text":"\nXP points: ","color":"gray"},{"storage":"graves:main","nbt":"location.grave_listing.xp_points"}]}}]] +data remove storage graves:main location.time_since_death_texts \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/location/show_grave_owner.mcfunction b/datapacks/graves/data/graves/function/location/show_grave_owner.mcfunction new file mode 100755 index 0000000..c185ab0 --- /dev/null +++ b/datapacks/graves/data/graves/function/location/show_grave_owner.mcfunction @@ -0,0 +1 @@ +$tellraw @s [ {"color": "gray", "text": ""}, { "storage": "graves:main", "nbt": "players[{uuid: $(owner_uuid)}].name", "interpret": true }, ":" ] \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/location/show_grave_owner_maybe.mcfunction b/datapacks/graves/data/graves/function/location/show_grave_owner_maybe.mcfunction new file mode 100755 index 0000000..7932efc --- /dev/null +++ b/datapacks/graves/data/graves/function/location/show_grave_owner_maybe.mcfunction @@ -0,0 +1,3 @@ +execute store success storage graves:main location.changed byte 1.0 run data modify storage graves:main location.owner_uuid set from storage graves:main location.grave_listing.owner_uuid +execute if data storage graves:main location{changed:0b} run return fail +function graves:location/show_grave_owner with storage graves:main location.grave_listing \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/location/show_graves/all.mcfunction b/datapacks/graves/data/graves/function/location/show_graves/all.mcfunction new file mode 100755 index 0000000..9727e2b --- /dev/null +++ b/datapacks/graves/data/graves/function/location/show_graves/all.mcfunction @@ -0,0 +1,32 @@ +execute store result score $max_listing_number graves.dummy run data get storage graves:main location.graves +execute if score $first_listing_number graves.dummy > $max_listing_number graves.dummy run return run tellraw @s [{"color":"red","text":"Page number "},{"storage":"graves:main","nbt":"location.page_number"}," is too large."] +scoreboard players operation $last_listing_number graves.dummy < $max_listing_number graves.dummy +data modify storage graves:main location.previous_link_text set value '[" ",{"text":" ","bold":true}]' +$execute unless data storage graves:main location{previous_page_number: 0} run data modify storage graves:main location.previous_link_text set value '{"color":"gold","text":" < Previous ","hoverEvent":{"action":"show_text","contents":[{"color":"gray","text":"Click to run "},{"color":"white","text":"/function graves:list_page {page: $(previous_page_number)}"},"."]},"clickEvent":{"action":"run_command","value":"/function graves:list_page {page: $(previous_page_number)}"}}' +$execute unless score $last_listing_number graves.dummy = $max_listing_number graves.dummy run data modify storage graves:main location.next_link_text set value '[[" ",{"text":" ","bold":true}],{"color":"gold","text":" Next > ","hoverEvent":{"action":"show_text","contents":[{"color":"gray","text":"Click to run "},{"color":"white","text":"/function graves:list_page {page: $(next_page_number)}"},"."]},"clickEvent":{"action":"run_command","value":"/function graves:list_page {page: $(next_page_number)}"}}]' +tellraw @s ["",{"color":"dark_gray","strikethrough":true,"text":" "},"\n",{"storage":"graves:main","nbt":"location.previous_link_text","interpret":true},[" ",{"text":" ","bold":true}],"All Graves",[{"color":"gray","text":" ("},{"score":{"name":"$first_listing_number","objective":"graves.dummy"}},"-",{"score":{"name":"$last_listing_number","objective":"graves.dummy"}}," of ",{"score":{"name":"$max_listing_number","objective":"graves.dummy"}},")"],{"storage":"graves:main","nbt":"location.next_link_text","interpret":true},"\n",{"color":"dark_gray","strikethrough":true,"text":" "}] +data modify storage graves:main location.grave_listing_indent set value " " +$data modify storage graves:main location.grave_listing set from storage graves:main location.graves[-$(listing_number_0)] +function graves:location/show_grave_owner_maybe +function graves:location/show_grave +data remove storage graves:main location.grave_listing +$data modify storage graves:main location.grave_listing set from storage graves:main location.graves[-$(listing_number_1)] +execute unless data storage graves:main location.grave_listing run return run tellraw @s {"color":"dark_gray","strikethrough":true,"text":" "} +function graves:location/show_grave_owner_maybe +function graves:location/show_grave +data remove storage graves:main location.grave_listing +$data modify storage graves:main location.grave_listing set from storage graves:main location.graves[-$(listing_number_2)] +execute unless data storage graves:main location.grave_listing run return run tellraw @s {"color":"dark_gray","strikethrough":true,"text":" "} +function graves:location/show_grave_owner_maybe +function graves:location/show_grave +data remove storage graves:main location.grave_listing +$data modify storage graves:main location.grave_listing set from storage graves:main location.graves[-$(listing_number_3)] +execute unless data storage graves:main location.grave_listing run return run tellraw @s {"color":"dark_gray","strikethrough":true,"text":" "} +function graves:location/show_grave_owner_maybe +function graves:location/show_grave +data remove storage graves:main location.grave_listing +$data modify storage graves:main location.grave_listing set from storage graves:main location.graves[-$(listing_number_4)] +execute unless data storage graves:main location.grave_listing run return run tellraw @s {"color":"dark_gray","strikethrough":true,"text":" "} +function graves:location/show_grave_owner_maybe +function graves:location/show_grave +tellraw @s {"color":"dark_gray","strikethrough":true,"text":" "} \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/location/show_graves/self.mcfunction b/datapacks/graves/data/graves/function/location/show_graves/self.mcfunction new file mode 100755 index 0000000..2edf93c --- /dev/null +++ b/datapacks/graves/data/graves/function/location/show_graves/self.mcfunction @@ -0,0 +1,28 @@ +$data modify storage graves:main location.graves set from storage graves:main players[{uuid: $(player_uuid)}].graves +execute store result score $max_listing_number graves.dummy run data get storage graves:main location.graves +execute if score $max_listing_number graves.dummy matches 0 run return run tellraw @s {"color":"red","text":"You don't have any graves."} +execute if score $first_listing_number graves.dummy > $max_listing_number graves.dummy run return run tellraw @s [{"color":"red","text":"Page number "},{"storage":"graves:main","nbt":"location.page_number"}," is too large."] +scoreboard players operation $last_listing_number graves.dummy < $max_listing_number graves.dummy +data modify storage graves:main location.previous_link_text set value '[" ",{"text":" ","bold":true}]' +$execute unless data storage graves:main location{previous_page_number: 0} run data modify storage graves:main location.previous_link_text set value '{"color":"gold","text":" < Previous ","hoverEvent":{"action":"show_text","contents":[{"color":"gray","text":"Click to run "},{"color":"white","text":"/trigger graves set $(previous_page_number)"},"."]},"clickEvent":{"action":"run_command","value":"/trigger graves set $(previous_page_number)"}}' +$execute unless score $last_listing_number graves.dummy = $max_listing_number graves.dummy run data modify storage graves:main location.next_link_text set value '[" ",{"color":"gold","text":" Next > ","hoverEvent":{"action":"show_text","contents":[{"color":"gray","text":"Click to run "},{"color":"white","text":"/trigger graves set $(next_page_number)"},"."]},"clickEvent":{"action":"run_command","value":"/trigger graves set $(next_page_number)"}}]' +tellraw @s ["",{"color":"dark_gray","strikethrough":true,"text":" "},"\n",{"storage":"graves:main","nbt":"location.previous_link_text","interpret":true}," ","Your Graves",[{"color":"gray","text":" ("},{"score":{"name":"$first_listing_number","objective":"graves.dummy"}},"-",{"score":{"name":"$last_listing_number","objective":"graves.dummy"}}," of ",{"score":{"name":"$max_listing_number","objective":"graves.dummy"}},")"],{"storage":"graves:main","nbt":"location.next_link_text","interpret":true},"\n",{"color":"dark_gray","strikethrough":true,"text":" "}] +$data modify storage graves:main location.grave_listing set from storage graves:main location.graves[-$(listing_number_0)] +function graves:location/show_grave +data remove storage graves:main location.grave_listing +$data modify storage graves:main location.grave_listing set from storage graves:main location.graves[-$(listing_number_1)] +execute unless data storage graves:main location.grave_listing run return run tellraw @s {"color":"dark_gray","strikethrough":true,"text":" "} +function graves:location/show_grave +data remove storage graves:main location.grave_listing +$data modify storage graves:main location.grave_listing set from storage graves:main location.graves[-$(listing_number_2)] +execute unless data storage graves:main location.grave_listing run return run tellraw @s {"color":"dark_gray","strikethrough":true,"text":" "} +function graves:location/show_grave +data remove storage graves:main location.grave_listing +$data modify storage graves:main location.grave_listing set from storage graves:main location.graves[-$(listing_number_3)] +execute unless data storage graves:main location.grave_listing run return run tellraw @s {"color":"dark_gray","strikethrough":true,"text":" "} +function graves:location/show_grave +data remove storage graves:main location.grave_listing +$data modify storage graves:main location.grave_listing set from storage graves:main location.graves[-$(listing_number_4)] +execute unless data storage graves:main location.grave_listing run return run tellraw @s {"color":"dark_gray","strikethrough":true,"text":" "} +function graves:location/show_grave +tellraw @s {"color":"dark_gray","strikethrough":true,"text":" "} \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/opening/access_grave.mcfunction b/datapacks/graves/data/graves/function/opening/access_grave.mcfunction new file mode 100755 index 0000000..944e4b3 --- /dev/null +++ b/datapacks/graves/data/graves/function/opening/access_grave.mcfunction @@ -0,0 +1,5 @@ +execute if items entity @s weapon.mainhand *[minecraft:custom_data~{graves:{grave_key:1b}}] run return run function graves:opening/use_grave_key_in_weapon.mainhand +execute if items entity @s weapon.offhand *[minecraft:custom_data~{graves:{grave_key:1b}}] run return run function graves:opening/use_grave_key_in_weapon.offhand +data modify storage graves:main opening.owner_uuid_copy set from storage graves:main opening.owner_uuid +execute store success storage graves:main opening.changed byte 1.0 run data modify storage graves:main opening.owner_uuid_copy set from entity @s UUID +execute if data storage graves:main opening{changed:0b} run return 1 \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/opening/animate_graves_shaking.mcfunction b/datapacks/graves/data/graves/function/opening/animate_graves_shaking.mcfunction new file mode 100755 index 0000000..be0ccaa --- /dev/null +++ b/datapacks/graves/data/graves/function/opening/animate_graves_shaking.mcfunction @@ -0,0 +1,3 @@ +execute as @e[type=minecraft:item_display,tag=graves.grave.shaking] at @s run function graves:opening/animate_shaking +scoreboard players remove $max graves.shaking_ticks_left 1 +execute if score $max graves.shaking_ticks_left matches 1.. run schedule function graves:opening/animate_graves_shaking 1 \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/opening/animate_shaking.mcfunction b/datapacks/graves/data/graves/function/opening/animate_shaking.mcfunction new file mode 100755 index 0000000..603c699 --- /dev/null +++ b/datapacks/graves/data/graves/function/opening/animate_shaking.mcfunction @@ -0,0 +1,7 @@ +scoreboard players remove @s graves.shaking_ticks_left 1 +execute if score @s graves.shaking_ticks_left matches 4 run return run tp @s ~ ~ ~ ~4 ~ +execute if score @s graves.shaking_ticks_left matches 3 run return run tp @s ~ ~ ~ ~-8 ~ +execute if score @s graves.shaking_ticks_left matches 2 run return run tp @s ~ ~ ~ ~8 ~ +execute if score @s graves.shaking_ticks_left matches 1 run return run tp @s ~ ~ ~ ~-8 ~ +tp @s ~ ~ ~ ~4 ~ +tag @s remove graves.grave.shaking \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/opening/attack_grave.mcfunction b/datapacks/graves/data/graves/function/opening/attack_grave.mcfunction new file mode 100755 index 0000000..0d77cee --- /dev/null +++ b/datapacks/graves/data/graves/function/opening/attack_grave.mcfunction @@ -0,0 +1,4 @@ +advancement revoke @s only graves:attack_grave +tag @s add graves.opener +function graves:opening/find_attacked_grave +tag @s remove graves.opener \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/opening/did_player_attack_grave.mcfunction b/datapacks/graves/data/graves/function/opening/did_player_attack_grave.mcfunction new file mode 100755 index 0000000..2c648b0 --- /dev/null +++ b/datapacks/graves/data/graves/function/opening/did_player_attack_grave.mcfunction @@ -0,0 +1 @@ +return run execute on attacker if entity @s[tag=graves.opener] \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/opening/did_player_interact_with_grave.mcfunction b/datapacks/graves/data/graves/function/opening/did_player_interact_with_grave.mcfunction new file mode 100755 index 0000000..96d04e8 --- /dev/null +++ b/datapacks/graves/data/graves/function/opening/did_player_interact_with_grave.mcfunction @@ -0,0 +1 @@ +return run execute on target if entity @s[tag=graves.opener] \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/opening/fail_grave_robbery.mcfunction b/datapacks/graves/data/graves/function/opening/fail_grave_robbery.mcfunction new file mode 100755 index 0000000..3a5a9ee --- /dev/null +++ b/datapacks/graves/data/graves/function/opening/fail_grave_robbery.mcfunction @@ -0,0 +1,3 @@ +tellraw @s {"text":"Grave robbing is disabled.","color":"red"} +data remove storage graves:main opening +return fail \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/opening/find_attacked_grave.mcfunction b/datapacks/graves/data/graves/function/opening/find_attacked_grave.mcfunction new file mode 100755 index 0000000..62a20a6 --- /dev/null +++ b/datapacks/graves/data/graves/function/opening/find_attacked_grave.mcfunction @@ -0,0 +1 @@ +execute as @e[type=minecraft:interaction,tag=graves.grave,sort=nearest,distance=0..] if function graves:opening/did_player_attack_grave on vehicle at @s run return run function graves:opening/handle_attacked_grave \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/opening/handle_attacked_grave.mcfunction b/datapacks/graves/data/graves/function/opening/handle_attacked_grave.mcfunction new file mode 100755 index 0000000..2bf44c3 --- /dev/null +++ b/datapacks/graves/data/graves/function/opening/handle_attacked_grave.mcfunction @@ -0,0 +1,9 @@ +execute on passengers on attacker run title @s actionbar [{"color":"green","text":"Tip: Use "},{"keybind":"key.use"}," to load a grave's contents directly into your inventory."] +execute if entity @s[tag=graves.grave.shaking] on passengers if function graves:opening/open_grave run return 1 +function graves:face_cardinal_direction +tag @s add graves.grave.shaking +scoreboard players set @s graves.shaking_ticks_left 5 +scoreboard players set $max graves.shaking_ticks_left 5 +playsound minecraft:block.stone.hit block @a +execute on passengers run data remove entity @s attack +schedule function graves:opening/animate_graves_shaking 1 \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/opening/interact_with_grave.mcfunction b/datapacks/graves/data/graves/function/opening/interact_with_grave.mcfunction new file mode 100755 index 0000000..57d4947 --- /dev/null +++ b/datapacks/graves/data/graves/function/opening/interact_with_grave.mcfunction @@ -0,0 +1,4 @@ +advancement revoke @s only graves:interact_with_grave +tag @s add graves.opener +execute as @e[type=minecraft:interaction,tag=graves.grave,sort=nearest,distance=0..] if function graves:opening/did_player_interact_with_grave unless function graves:opening/open_grave_for_target run data remove entity @s interaction +tag @s remove graves.opener \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/opening/items/append_extra_item_entry.mcfunction b/datapacks/graves/data/graves/function/opening/items/append_extra_item_entry.mcfunction new file mode 100755 index 0000000..df6b264 --- /dev/null +++ b/datapacks/graves/data/graves/function/opening/items/append_extra_item_entry.mcfunction @@ -0,0 +1,6 @@ +data modify storage graves:main opening.extra_items.pools append value {rolls:1,entries:[{type:"minecraft:item",functions:[{function:"minecraft:set_count"},{function:"minecraft:set_components",components:{}},{function:"minecraft:set_custom_data",tag:{graves:{extra_item:1b}}}]}]} +data modify storage graves:main opening.extra_items.pools[-1].entries[0].name set from storage graves:main opening.extra_item.id +data modify storage graves:main opening.extra_items.pools[-1].entries[0].functions[{function:"minecraft:set_count"}].count set from storage graves:main opening.extra_item.count +data modify storage graves:main opening.extra_items.pools[-1].entries[0].functions[{function:"minecraft:set_components"}].components set from storage graves:main opening.extra_item.components +data modify storage graves:main opening.extra_items.pools[-1].entries[0].functions[{function:"minecraft:set_custom_data"}].tag.graves.initial_custom_data set from storage graves:main opening.extra_item.components."minecraft:custom_data" +data remove storage graves:main opening.extra_item \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/opening/items/check_for_missing_pre_death_items.mcfunction b/datapacks/graves/data/graves/function/opening/items/check_for_missing_pre_death_items.mcfunction new file mode 100755 index 0000000..e09e846 --- /dev/null +++ b/datapacks/graves/data/graves/function/opening/items/check_for_missing_pre_death_items.mcfunction @@ -0,0 +1,5 @@ +execute store result score $missing_pre_death_item_count graves.dummy run data get storage graves:main opening.pre_death_inventory +execute store result score $grave_item_count graves.dummy run data get storage graves:main opening.items +scoreboard players operation $missing_pre_death_item_count graves.dummy -= $grave_item_count graves.dummy +execute if score $missing_pre_death_item_count graves.dummy matches 0 run return fail +tellraw @s [{"color":"red","text":"Due to a rare Minecraft quirk, the Graves data pack detected the grave you opened couldn't pick up at most "},{"score":{"name":"$missing_pre_death_item_count","objective":"graves.dummy"}}," of the item slots originally dropped on death.\n\nIf this grave was missing items, it may be an incompatibility or bug, and we can help you in our data pack help channel:\n",{"underlined":true,"text":"https://vanillatweaks.net/discord","hoverEvent":{"action":"show_text","value":"Click to open URL."},"clickEvent":{"action":"open_url","value":"https://vanillatweaks.net/discord"}}] \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/opening/items/drop_item.mcfunction b/datapacks/graves/data/graves/function/opening/items/drop_item.mcfunction new file mode 100755 index 0000000..cd05c85 --- /dev/null +++ b/datapacks/graves/data/graves/function/opening/items/drop_item.mcfunction @@ -0,0 +1 @@ +$loot spawn ~ ~ ~ loot { "pools": [ { "rolls": 1, "entries": [ { "type": "minecraft:item", "name": "$(id)", "functions": [ {"function": "minecraft:set_count", "count": $(count)}, { "function": "minecraft:set_components", "components": $(components) } ] } ] } ] } \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/opening/items/fail_to_replace_binding_curse.mcfunction b/datapacks/graves/data/graves/function/opening/items/fail_to_replace_binding_curse.mcfunction new file mode 100755 index 0000000..2b876da --- /dev/null +++ b/datapacks/graves/data/graves/function/opening/items/fail_to_replace_binding_curse.mcfunction @@ -0,0 +1,2 @@ +data remove storage graves:main opening.replaced_item +return fail \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/opening/items/fix_extra_item.mcfunction b/datapacks/graves/data/graves/function/opening/items/fix_extra_item.mcfunction new file mode 100755 index 0000000..b816fda --- /dev/null +++ b/datapacks/graves/data/graves/function/opening/items/fix_extra_item.mcfunction @@ -0,0 +1,6 @@ +data merge entity @s {PickupDelay:0s,Motion:[0.0f,0.0f,0.0f]} +data modify entity @s Owner set from storage graves:main opening.player_uuid +data modify storage graves:main opening.initial_custom_data set from entity @s Item.components."minecraft:custom_data".graves.initial_custom_data +item modify entity @s contents {function:"minecraft:set_components",components:{"!minecraft:custom_data":{}}} +data modify entity @s Item.components."minecraft:custom_data" set from storage graves:main opening.initial_custom_data +data remove storage graves:main opening.initial_custom_data \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/opening/items/give_extra_items.mcfunction b/datapacks/graves/data/graves/function/opening/items/give_extra_items.mcfunction new file mode 100755 index 0000000..b465b7e --- /dev/null +++ b/datapacks/graves/data/graves/function/opening/items/give_extra_items.mcfunction @@ -0,0 +1,3 @@ +$loot spawn ~ ~ ~ loot {"pools": $(pools)} +execute on target run data modify storage graves:main opening.player_uuid set from entity @s UUID +execute as @e[type=minecraft:item,distance=..0.01] if items entity @s contents *[minecraft:custom_data~{graves:{extra_item:1b}}] run function graves:opening/items/fix_extra_item \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/opening/items/loot_next_item.mcfunction b/datapacks/graves/data/graves/function/opening/items/loot_next_item.mcfunction new file mode 100755 index 0000000..ad74781 --- /dev/null +++ b/datapacks/graves/data/graves/function/opening/items/loot_next_item.mcfunction @@ -0,0 +1,6 @@ +execute unless data storage graves:main opening.items[-1] run return fail +data modify storage graves:main opening.item set from storage graves:main opening.items[-1] +data remove storage graves:main opening.items[-1] +data modify storage graves:main opening.item.components merge value {} +function graves:opening/items/drop_item with storage graves:main opening.item +function graves:opening/items/loot_next_item \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/opening/items/loot_next_item_for_target.mcfunction b/datapacks/graves/data/graves/function/opening/items/loot_next_item_for_target.mcfunction new file mode 100755 index 0000000..0349c90 --- /dev/null +++ b/datapacks/graves/data/graves/function/opening/items/loot_next_item_for_target.mcfunction @@ -0,0 +1,8 @@ +execute unless data storage graves:main opening.items[-1] run return fail +data modify storage graves:main opening.item set from storage graves:main opening.items[-1] +data remove storage graves:main opening.items[-1] +data modify storage graves:main opening.item.components merge value {} +data modify storage graves:main opening.item.slot set from storage graves:main opening.slots[-1] +data remove storage graves:main opening.slots[-1] +execute unless function graves:opening/items/replace_item run function graves:opening/items/save_as_extra_item +function graves:opening/items/loot_next_item_for_target \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/opening/items/replace_item.mcfunction b/datapacks/graves/data/graves/function/opening/items/replace_item.mcfunction new file mode 100755 index 0000000..703fc57 --- /dev/null +++ b/datapacks/graves/data/graves/function/opening/items/replace_item.mcfunction @@ -0,0 +1,2 @@ +execute if data storage graves:main opening.item{slot:"unknown"} run return fail +return run function graves:opening/items/replace_item_in_known_slot with storage graves:main opening.item \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/opening/items/replace_item_in_known_slot.mcfunction b/datapacks/graves/data/graves/function/opening/items/replace_item_in_known_slot.mcfunction new file mode 100755 index 0000000..678e8c9 --- /dev/null +++ b/datapacks/graves/data/graves/function/opening/items/replace_item_in_known_slot.mcfunction @@ -0,0 +1,9 @@ +$execute on vehicle run item replace entity @s contents from entity @a[tag=graves.opener,distance=..0.01,limit=1] $(slot) +execute on vehicle run data modify storage graves:main opening.replaced_item set from entity @s item +data modify storage graves:main opening.item.slot_prefix set string storage graves:main opening.item.slot 0 6 +execute if data storage graves:main opening.item{slot_prefix:"armor."} if data storage graves:main opening.replaced_item.components."minecraft:enchantments".levels."minecraft:binding_curse" run return run function graves:opening/items/fail_to_replace_binding_curse +$execute on target run loot replace entity @s $(slot) loot { "pools": [ { "rolls": 1, "entries": [ { "type": "minecraft:item", "name": "$(id)", "functions": [ { "function": "minecraft:set_count", "count": $(count) }, { "function": "minecraft:set_components", "components": $(components) } ] } ] } ] } +data modify storage graves:main opening.extra_item set from storage graves:main opening.replaced_item +data remove storage graves:main opening.replaced_item +execute if data storage graves:main opening.extra_item run function graves:opening/items/append_extra_item_entry +return 1 \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/opening/items/save_as_extra_item.mcfunction b/datapacks/graves/data/graves/function/opening/items/save_as_extra_item.mcfunction new file mode 100755 index 0000000..febfdb0 --- /dev/null +++ b/datapacks/graves/data/graves/function/opening/items/save_as_extra_item.mcfunction @@ -0,0 +1,2 @@ +data modify storage graves:main opening.extra_item set from storage graves:main opening.item +function graves:opening/items/append_extra_item_entry \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/opening/kill_name_tag.mcfunction b/datapacks/graves/data/graves/function/opening/kill_name_tag.mcfunction new file mode 100755 index 0000000..11fc0e9 --- /dev/null +++ b/datapacks/graves/data/graves/function/opening/kill_name_tag.mcfunction @@ -0,0 +1,3 @@ +data modify entity @s Owner set from storage graves:main destruction.name_tag_uuid +kill @s +execute on origin run kill @s \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/opening/open_grave.mcfunction b/datapacks/graves/data/graves/function/opening/open_grave.mcfunction new file mode 100755 index 0000000..6ba6f57 --- /dev/null +++ b/datapacks/graves/data/graves/function/opening/open_grave.mcfunction @@ -0,0 +1,13 @@ +execute on vehicle run data modify storage graves:main opening.grave_entity set from entity @s +data modify storage graves:main opening merge from storage graves:main opening.grave_entity.item.components."minecraft:custom_data".graves +execute if data storage graves:config {allow_robbing:0b} on attacker unless function graves:opening/access_grave run return run function graves:opening/fail_grave_robbery +data modify storage graves:main opening.items set from storage graves:main opening.grave_entity.item.components."minecraft:bundle_contents" +execute if data storage graves:main opening{found_drops_late:1b} on attacker run function graves:opening/items/check_for_missing_pre_death_items +function graves:opening/items/loot_next_item +function graves:opening/xp/loot_xp +data modify storage graves:main destruction.owner_uuid set from storage graves:main opening.owner_uuid +data modify storage graves:main destruction.grave_uuid set from storage graves:main opening.grave_entity.UUID +data modify storage graves:main destruction.name_tag_uuid set from storage graves:main opening.name_tag_uuid +function graves:destruction/destroy_grave with storage graves:main destruction +data remove storage graves:main opening +return 1 \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/opening/open_grave_for_target.mcfunction b/datapacks/graves/data/graves/function/opening/open_grave_for_target.mcfunction new file mode 100755 index 0000000..5faee1d --- /dev/null +++ b/datapacks/graves/data/graves/function/opening/open_grave_for_target.mcfunction @@ -0,0 +1,15 @@ +execute on vehicle run data modify storage graves:main opening.grave_entity set from entity @s +data modify storage graves:main opening merge from storage graves:main opening.grave_entity.item.components."minecraft:custom_data".graves +execute if data storage graves:config {allow_robbing:0b} at @s on target unless function graves:opening/access_grave run return run function graves:opening/fail_grave_robbery +data modify storage graves:main opening.items set from storage graves:main opening.grave_entity.item.components."minecraft:bundle_contents" +execute if data storage graves:main opening{found_drops_late:1b} on target run function graves:opening/items/check_for_missing_pre_death_items +function graves:opening/items/loot_next_item_for_target +function graves:opening/items/give_extra_items with storage graves:main opening.extra_items +execute if data storage graves:main opening.item run playsound minecraft:item.armor.equip_generic player @a +function graves:opening/xp/loot_xp_for_target +data modify storage graves:main destruction.owner_uuid set from storage graves:main opening.owner_uuid +data modify storage graves:main destruction.grave_uuid set from storage graves:main opening.grave_entity.UUID +data modify storage graves:main destruction.name_tag_uuid set from storage graves:main opening.name_tag_uuid +execute at @s run function graves:destruction/destroy_grave with storage graves:main destruction +data remove storage graves:main opening +return 1 \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/opening/use_grave_key_in_weapon.mainhand.mcfunction b/datapacks/graves/data/graves/function/opening/use_grave_key_in_weapon.mainhand.mcfunction new file mode 100755 index 0000000..da38efe --- /dev/null +++ b/datapacks/graves/data/graves/function/opening/use_grave_key_in_weapon.mainhand.mcfunction @@ -0,0 +1,3 @@ +playsound minecraft:block.vault.insert_item block @a ~ ~ ~ 0.5 +execute if entity @s[gamemode=!creative] run item modify entity @s weapon.mainhand graves:consume_item +return 1 \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/opening/use_grave_key_in_weapon.offhand.mcfunction b/datapacks/graves/data/graves/function/opening/use_grave_key_in_weapon.offhand.mcfunction new file mode 100755 index 0000000..e015254 --- /dev/null +++ b/datapacks/graves/data/graves/function/opening/use_grave_key_in_weapon.offhand.mcfunction @@ -0,0 +1,3 @@ +playsound minecraft:block.vault.insert_item block @a ~ ~ ~ 0.5 +execute if entity @s[gamemode=!creative] run item modify entity @s weapon.offhand graves:consume_item +return 1 \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/opening/xp/drop_xp_orbs_with_value/1.mcfunction b/datapacks/graves/data/graves/function/opening/xp/drop_xp_orbs_with_value/1.mcfunction new file mode 100755 index 0000000..c127f67 --- /dev/null +++ b/datapacks/graves/data/graves/function/opening/xp/drop_xp_orbs_with_value/1.mcfunction @@ -0,0 +1,11 @@ +execute unless score $xp_points graves.dummy matches 1.. run return fail +data modify storage graves:main opening.xp_orb.Value set value 1s +data modify storage graves:main opening.xp_orb.Motion set value [0.0d,0.0d,0.0d] +execute store result storage graves:main opening.xp_orb.Motion[0] double 0.001 run random value -200..200 +execute store result storage graves:main opening.xp_orb.Motion[1] double 0.001 run random value 0..400 +execute store result storage graves:main opening.xp_orb.Motion[2] double 0.001 run random value -200..200 +function graves:opening/xp/summon_xp_orb with storage graves:main opening +data modify entity @s {} merge from storage graves:main opening.xp_orb +data remove storage graves:main opening.xp_orb +scoreboard players remove $xp_points graves.dummy 1 +function graves:opening/xp/drop_xp_orbs_with_value/1 \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/opening/xp/drop_xp_orbs_with_value/1237.mcfunction b/datapacks/graves/data/graves/function/opening/xp/drop_xp_orbs_with_value/1237.mcfunction new file mode 100755 index 0000000..88d79f8 --- /dev/null +++ b/datapacks/graves/data/graves/function/opening/xp/drop_xp_orbs_with_value/1237.mcfunction @@ -0,0 +1,11 @@ +execute unless score $xp_points graves.dummy matches 1237.. run return fail +data modify storage graves:main opening.xp_orb.Value set value 1237s +data modify storage graves:main opening.xp_orb.Motion set value [0.0d,0.0d,0.0d] +execute store result storage graves:main opening.xp_orb.Motion[0] double 0.001 run random value -200..200 +execute store result storage graves:main opening.xp_orb.Motion[1] double 0.001 run random value 0..400 +execute store result storage graves:main opening.xp_orb.Motion[2] double 0.001 run random value -200..200 +function graves:opening/xp/summon_xp_orb with storage graves:main opening +data modify entity @s {} merge from storage graves:main opening.xp_orb +data remove storage graves:main opening.xp_orb +scoreboard players remove $xp_points graves.dummy 1237 +function graves:opening/xp/drop_xp_orbs_with_value/1237 \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/opening/xp/drop_xp_orbs_with_value/149.mcfunction b/datapacks/graves/data/graves/function/opening/xp/drop_xp_orbs_with_value/149.mcfunction new file mode 100755 index 0000000..79a635b --- /dev/null +++ b/datapacks/graves/data/graves/function/opening/xp/drop_xp_orbs_with_value/149.mcfunction @@ -0,0 +1,11 @@ +execute unless score $xp_points graves.dummy matches 149.. run return fail +data modify storage graves:main opening.xp_orb.Value set value 149s +data modify storage graves:main opening.xp_orb.Motion set value [0.0d,0.0d,0.0d] +execute store result storage graves:main opening.xp_orb.Motion[0] double 0.001 run random value -200..200 +execute store result storage graves:main opening.xp_orb.Motion[1] double 0.001 run random value 0..400 +execute store result storage graves:main opening.xp_orb.Motion[2] double 0.001 run random value -200..200 +function graves:opening/xp/summon_xp_orb with storage graves:main opening +data modify entity @s {} merge from storage graves:main opening.xp_orb +data remove storage graves:main opening.xp_orb +scoreboard players remove $xp_points graves.dummy 149 +function graves:opening/xp/drop_xp_orbs_with_value/149 \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/opening/xp/drop_xp_orbs_with_value/17.mcfunction b/datapacks/graves/data/graves/function/opening/xp/drop_xp_orbs_with_value/17.mcfunction new file mode 100755 index 0000000..3de5d89 --- /dev/null +++ b/datapacks/graves/data/graves/function/opening/xp/drop_xp_orbs_with_value/17.mcfunction @@ -0,0 +1,11 @@ +execute unless score $xp_points graves.dummy matches 17.. run return fail +data modify storage graves:main opening.xp_orb.Value set value 17s +data modify storage graves:main opening.xp_orb.Motion set value [0.0d,0.0d,0.0d] +execute store result storage graves:main opening.xp_orb.Motion[0] double 0.001 run random value -200..200 +execute store result storage graves:main opening.xp_orb.Motion[1] double 0.001 run random value 0..400 +execute store result storage graves:main opening.xp_orb.Motion[2] double 0.001 run random value -200..200 +function graves:opening/xp/summon_xp_orb with storage graves:main opening +data modify entity @s {} merge from storage graves:main opening.xp_orb +data remove storage graves:main opening.xp_orb +scoreboard players remove $xp_points graves.dummy 17 +function graves:opening/xp/drop_xp_orbs_with_value/17 \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/opening/xp/drop_xp_orbs_with_value/2477.mcfunction b/datapacks/graves/data/graves/function/opening/xp/drop_xp_orbs_with_value/2477.mcfunction new file mode 100755 index 0000000..558a7c4 --- /dev/null +++ b/datapacks/graves/data/graves/function/opening/xp/drop_xp_orbs_with_value/2477.mcfunction @@ -0,0 +1,11 @@ +execute unless score $xp_points graves.dummy matches 2477.. run return fail +data modify storage graves:main opening.xp_orb.Value set value 2477s +data modify storage graves:main opening.xp_orb.Motion set value [0.0d,0.0d,0.0d] +execute store result storage graves:main opening.xp_orb.Motion[0] double 0.001 run random value -200..200 +execute store result storage graves:main opening.xp_orb.Motion[1] double 0.001 run random value 0..400 +execute store result storage graves:main opening.xp_orb.Motion[2] double 0.001 run random value -200..200 +function graves:opening/xp/summon_xp_orb with storage graves:main opening +data modify entity @s {} merge from storage graves:main opening.xp_orb +data remove storage graves:main opening.xp_orb +scoreboard players remove $xp_points graves.dummy 2477 +function graves:opening/xp/drop_xp_orbs_with_value/2477 \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/opening/xp/drop_xp_orbs_with_value/3.mcfunction b/datapacks/graves/data/graves/function/opening/xp/drop_xp_orbs_with_value/3.mcfunction new file mode 100755 index 0000000..ada06ae --- /dev/null +++ b/datapacks/graves/data/graves/function/opening/xp/drop_xp_orbs_with_value/3.mcfunction @@ -0,0 +1,11 @@ +execute unless score $xp_points graves.dummy matches 3.. run return fail +data modify storage graves:main opening.xp_orb.Value set value 3s +data modify storage graves:main opening.xp_orb.Motion set value [0.0d,0.0d,0.0d] +execute store result storage graves:main opening.xp_orb.Motion[0] double 0.001 run random value -200..200 +execute store result storage graves:main opening.xp_orb.Motion[1] double 0.001 run random value 0..400 +execute store result storage graves:main opening.xp_orb.Motion[2] double 0.001 run random value -200..200 +function graves:opening/xp/summon_xp_orb with storage graves:main opening +data modify entity @s {} merge from storage graves:main opening.xp_orb +data remove storage graves:main opening.xp_orb +scoreboard players remove $xp_points graves.dummy 3 +function graves:opening/xp/drop_xp_orbs_with_value/3 \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/opening/xp/drop_xp_orbs_with_value/307.mcfunction b/datapacks/graves/data/graves/function/opening/xp/drop_xp_orbs_with_value/307.mcfunction new file mode 100755 index 0000000..e389f55 --- /dev/null +++ b/datapacks/graves/data/graves/function/opening/xp/drop_xp_orbs_with_value/307.mcfunction @@ -0,0 +1,11 @@ +execute unless score $xp_points graves.dummy matches 307.. run return fail +data modify storage graves:main opening.xp_orb.Value set value 307s +data modify storage graves:main opening.xp_orb.Motion set value [0.0d,0.0d,0.0d] +execute store result storage graves:main opening.xp_orb.Motion[0] double 0.001 run random value -200..200 +execute store result storage graves:main opening.xp_orb.Motion[1] double 0.001 run random value 0..400 +execute store result storage graves:main opening.xp_orb.Motion[2] double 0.001 run random value -200..200 +function graves:opening/xp/summon_xp_orb with storage graves:main opening +data modify entity @s {} merge from storage graves:main opening.xp_orb +data remove storage graves:main opening.xp_orb +scoreboard players remove $xp_points graves.dummy 307 +function graves:opening/xp/drop_xp_orbs_with_value/307 \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/opening/xp/drop_xp_orbs_with_value/37.mcfunction b/datapacks/graves/data/graves/function/opening/xp/drop_xp_orbs_with_value/37.mcfunction new file mode 100755 index 0000000..9641cb3 --- /dev/null +++ b/datapacks/graves/data/graves/function/opening/xp/drop_xp_orbs_with_value/37.mcfunction @@ -0,0 +1,11 @@ +execute unless score $xp_points graves.dummy matches 37.. run return fail +data modify storage graves:main opening.xp_orb.Value set value 37s +data modify storage graves:main opening.xp_orb.Motion set value [0.0d,0.0d,0.0d] +execute store result storage graves:main opening.xp_orb.Motion[0] double 0.001 run random value -200..200 +execute store result storage graves:main opening.xp_orb.Motion[1] double 0.001 run random value 0..400 +execute store result storage graves:main opening.xp_orb.Motion[2] double 0.001 run random value -200..200 +function graves:opening/xp/summon_xp_orb with storage graves:main opening +data modify entity @s {} merge from storage graves:main opening.xp_orb +data remove storage graves:main opening.xp_orb +scoreboard players remove $xp_points graves.dummy 37 +function graves:opening/xp/drop_xp_orbs_with_value/37 \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/opening/xp/drop_xp_orbs_with_value/617.mcfunction b/datapacks/graves/data/graves/function/opening/xp/drop_xp_orbs_with_value/617.mcfunction new file mode 100755 index 0000000..e752d02 --- /dev/null +++ b/datapacks/graves/data/graves/function/opening/xp/drop_xp_orbs_with_value/617.mcfunction @@ -0,0 +1,11 @@ +execute unless score $xp_points graves.dummy matches 617.. run return fail +data modify storage graves:main opening.xp_orb.Value set value 617s +data modify storage graves:main opening.xp_orb.Motion set value [0.0d,0.0d,0.0d] +execute store result storage graves:main opening.xp_orb.Motion[0] double 0.001 run random value -200..200 +execute store result storage graves:main opening.xp_orb.Motion[1] double 0.001 run random value 0..400 +execute store result storage graves:main opening.xp_orb.Motion[2] double 0.001 run random value -200..200 +function graves:opening/xp/summon_xp_orb with storage graves:main opening +data modify entity @s {} merge from storage graves:main opening.xp_orb +data remove storage graves:main opening.xp_orb +scoreboard players remove $xp_points graves.dummy 617 +function graves:opening/xp/drop_xp_orbs_with_value/617 \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/opening/xp/drop_xp_orbs_with_value/7.mcfunction b/datapacks/graves/data/graves/function/opening/xp/drop_xp_orbs_with_value/7.mcfunction new file mode 100755 index 0000000..0a0c554 --- /dev/null +++ b/datapacks/graves/data/graves/function/opening/xp/drop_xp_orbs_with_value/7.mcfunction @@ -0,0 +1,11 @@ +execute unless score $xp_points graves.dummy matches 7.. run return fail +data modify storage graves:main opening.xp_orb.Value set value 7s +data modify storage graves:main opening.xp_orb.Motion set value [0.0d,0.0d,0.0d] +execute store result storage graves:main opening.xp_orb.Motion[0] double 0.001 run random value -200..200 +execute store result storage graves:main opening.xp_orb.Motion[1] double 0.001 run random value 0..400 +execute store result storage graves:main opening.xp_orb.Motion[2] double 0.001 run random value -200..200 +function graves:opening/xp/summon_xp_orb with storage graves:main opening +data modify entity @s {} merge from storage graves:main opening.xp_orb +data remove storage graves:main opening.xp_orb +scoreboard players remove $xp_points graves.dummy 7 +function graves:opening/xp/drop_xp_orbs_with_value/7 \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/opening/xp/drop_xp_orbs_with_value/73.mcfunction b/datapacks/graves/data/graves/function/opening/xp/drop_xp_orbs_with_value/73.mcfunction new file mode 100755 index 0000000..f0b9470 --- /dev/null +++ b/datapacks/graves/data/graves/function/opening/xp/drop_xp_orbs_with_value/73.mcfunction @@ -0,0 +1,11 @@ +execute unless score $xp_points graves.dummy matches 73.. run return fail +data modify storage graves:main opening.xp_orb.Value set value 73s +data modify storage graves:main opening.xp_orb.Motion set value [0.0d,0.0d,0.0d] +execute store result storage graves:main opening.xp_orb.Motion[0] double 0.001 run random value -200..200 +execute store result storage graves:main opening.xp_orb.Motion[1] double 0.001 run random value 0..400 +execute store result storage graves:main opening.xp_orb.Motion[2] double 0.001 run random value -200..200 +function graves:opening/xp/summon_xp_orb with storage graves:main opening +data modify entity @s {} merge from storage graves:main opening.xp_orb +data remove storage graves:main opening.xp_orb +scoreboard players remove $xp_points graves.dummy 73 +function graves:opening/xp/drop_xp_orbs_with_value/73 \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/opening/xp/give_xp.mcfunction b/datapacks/graves/data/graves/function/opening/xp/give_xp.mcfunction new file mode 100755 index 0000000..4a7e600 --- /dev/null +++ b/datapacks/graves/data/graves/function/opening/xp/give_xp.mcfunction @@ -0,0 +1,2 @@ +$xp add @s $(xp_points) points +$playsound minecraft:entity.experience_orb.pickup player @a ~ ~ ~ 0.1 $(xp_sound_pitch) \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/opening/xp/loot_xp.mcfunction b/datapacks/graves/data/graves/function/opening/xp/loot_xp.mcfunction new file mode 100755 index 0000000..30a10aa --- /dev/null +++ b/datapacks/graves/data/graves/function/opening/xp/loot_xp.mcfunction @@ -0,0 +1,13 @@ +execute if data storage graves:main opening{xp_points:0} run return 1 +execute store result score $xp_points graves.dummy run data get storage graves:main opening.xp_points +function graves:opening/xp/drop_xp_orbs_with_value/2477 +function graves:opening/xp/drop_xp_orbs_with_value/1237 +function graves:opening/xp/drop_xp_orbs_with_value/617 +function graves:opening/xp/drop_xp_orbs_with_value/307 +function graves:opening/xp/drop_xp_orbs_with_value/149 +function graves:opening/xp/drop_xp_orbs_with_value/73 +function graves:opening/xp/drop_xp_orbs_with_value/37 +function graves:opening/xp/drop_xp_orbs_with_value/17 +function graves:opening/xp/drop_xp_orbs_with_value/7 +function graves:opening/xp/drop_xp_orbs_with_value/3 +function graves:opening/xp/drop_xp_orbs_with_value/1 \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/opening/xp/loot_xp_for_target.mcfunction b/datapacks/graves/data/graves/function/opening/xp/loot_xp_for_target.mcfunction new file mode 100755 index 0000000..4faaf81 --- /dev/null +++ b/datapacks/graves/data/graves/function/opening/xp/loot_xp_for_target.mcfunction @@ -0,0 +1,3 @@ +execute if data storage graves:main opening{xp_points:0} run return 1 +execute store result storage graves:main opening.xp_sound_pitch double 0.001 run random value 550..1250 +execute on target run function graves:opening/xp/give_xp with storage graves:main opening \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/opening/xp/summon_xp_orb.mcfunction b/datapacks/graves/data/graves/function/opening/xp/summon_xp_orb.mcfunction new file mode 100755 index 0000000..9e89863 --- /dev/null +++ b/datapacks/graves/data/graves/function/opening/xp/summon_xp_orb.mcfunction @@ -0,0 +1 @@ +$summon minecraft:experience_orb ~ ~ ~ $(xp_orb) \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/placement/approach_world_bottom.mcfunction b/datapacks/graves/data/graves/function/placement/approach_world_bottom.mcfunction new file mode 100755 index 0000000..935f20d --- /dev/null +++ b/datapacks/graves/data/graves/function/placement/approach_world_bottom.mcfunction @@ -0,0 +1,2 @@ +execute if predicate graves:placement/is_in_world_and_loaded run return run function graves:placement/continue +execute positioned ~ ~16 ~ run function graves:placement/approach_world_bottom \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/placement/approach_world_top.mcfunction b/datapacks/graves/data/graves/function/placement/approach_world_top.mcfunction new file mode 100755 index 0000000..1cffc6a --- /dev/null +++ b/datapacks/graves/data/graves/function/placement/approach_world_top.mcfunction @@ -0,0 +1,2 @@ +execute if predicate graves:placement/is_in_world_and_loaded run return run function graves:placement/continue_above_void +execute positioned ~ ~-16 ~ run function graves:placement/approach_world_top \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/placement/clean_up_side_markers.mcfunction b/datapacks/graves/data/graves/function/placement/clean_up_side_markers.mcfunction new file mode 100755 index 0000000..330317b --- /dev/null +++ b/datapacks/graves/data/graves/function/placement/clean_up_side_markers.mcfunction @@ -0,0 +1,2 @@ +kill @e[type=minecraft:marker,tag=graves.side,limit=4] +tag @s remove graves.has_side_markers \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/placement/continue.mcfunction b/datapacks/graves/data/graves/function/placement/continue.mcfunction new file mode 100755 index 0000000..87eaaea --- /dev/null +++ b/datapacks/graves/data/graves/function/placement/continue.mcfunction @@ -0,0 +1,2 @@ +execute if function graves:placement/is_repelling run return run function graves:placement/start_repelling +function graves:placement/continue_in_attracting \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/placement/continue_above_void.mcfunction b/datapacks/graves/data/graves/function/placement/continue_above_void.mcfunction new file mode 100755 index 0000000..00ebc33 --- /dev/null +++ b/datapacks/graves/data/graves/function/placement/continue_above_void.mcfunction @@ -0,0 +1,3 @@ +execute if function graves:placement/is_repelling run return run function graves:placement/start_repelling +execute if block ~ ~ ~ #minecraft:replaceable run return run function graves:placement/stop_on_void_platform +function graves:placement/stop \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/placement/continue_falling.mcfunction b/datapacks/graves/data/graves/function/placement/continue_falling.mcfunction new file mode 100755 index 0000000..117646d --- /dev/null +++ b/datapacks/graves/data/graves/function/placement/continue_falling.mcfunction @@ -0,0 +1,6 @@ +execute positioned ~ ~-1 ~ if function graves:placement/is_repelling positioned ~ ~1 ~ run return run function graves:placement/stop +execute positioned ~ ~-1 ~ if predicate graves:placement/should_grave_float positioned ~ ~1 ~ run return run function graves:placement/stop +execute if block ~ ~ ~ #graves:grave_stopping_on_bottom run return run function graves:placement/stop +execute if block ~ ~-1 ~ #graves:grave_stopping_on_top run return run function graves:placement/stop +execute positioned ~ ~-1 ~ unless predicate graves:placement/is_in_world_and_loaded at @s run return run function graves:placement/handle_fall_into_void +execute positioned ~ ~-1 ~ run function graves:placement/continue_falling \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/placement/continue_in_attracting.mcfunction b/datapacks/graves/data/graves/function/placement/continue_in_attracting.mcfunction new file mode 100755 index 0000000..15d80ca --- /dev/null +++ b/datapacks/graves/data/graves/function/placement/continue_in_attracting.mcfunction @@ -0,0 +1,2 @@ +execute if predicate graves:placement/should_grave_float run return run function graves:placement/float +function graves:placement/start_falling \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/placement/continue_repelling.mcfunction b/datapacks/graves/data/graves/function/placement/continue_repelling.mcfunction new file mode 100755 index 0000000..9fd950b --- /dev/null +++ b/datapacks/graves/data/graves/function/placement/continue_repelling.mcfunction @@ -0,0 +1,9 @@ +execute positioned ~-3.5 ~ ~-3.5 as @e[type=minecraft:marker,tag=graves.side.north,dx=6,dy=-2,dz=6,limit=1] positioned ~3.5 ~ ~3.5 align z positioned ~ ~ ~-0.25 run function graves:placement/move_side_marker_here +execute positioned ~-3.5 ~ ~-3.5 as @e[type=minecraft:marker,tag=graves.side.south,dx=6,dy=-2,dz=6,limit=1] positioned ~3.5 ~ ~3.5 align z positioned ~ ~ ~1.25 run function graves:placement/move_side_marker_here +execute positioned ~-3.5 ~ ~-3.5 as @e[type=minecraft:marker,tag=graves.side.west,dx=6,dy=-2,dz=6,limit=1] positioned ~3.5 ~ ~3.5 align x positioned ~-0.25 ~ ~ run function graves:placement/move_side_marker_here +execute positioned ~-3.5 ~ ~-3.5 as @e[type=minecraft:marker,tag=graves.side.east,dx=6,dy=-2,dz=6,limit=1] positioned ~3.5 ~ ~3.5 align x positioned ~1.25 ~ ~ run function graves:placement/move_side_marker_here +execute at @e[type=minecraft:marker,tag=graves.side,distance=..1.5,sort=nearest,limit=4] unless function graves:placement/is_repelling run return run function graves:placement/continue_in_attracting +execute if block ~ ~ ~ #graves:grave_impenetrable run return run function graves:placement/repel_from_impenetrable +execute if block ~ ~1 ~ #graves:grave_impenetrable unless entity @s[tag=graves.bypass_impenetrable] at @s run return run function graves:placement/stop +execute positioned ~ ~1 ~ if function graves:placement/is_repelling run return run function graves:placement/continue_repelling +execute positioned ~ ~1 ~ run function graves:placement/continue_in_attracting \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/placement/finalize.mcfunction b/datapacks/graves/data/graves/function/placement/finalize.mcfunction new file mode 100755 index 0000000..c9b5ab7 --- /dev/null +++ b/datapacks/graves/data/graves/function/placement/finalize.mcfunction @@ -0,0 +1,3 @@ +execute if entity @s[tag=graves.has_side_markers] run function graves:placement/clean_up_side_markers +tp @s ~ ~ ~ +execute on passengers run tag @s remove graves.non_grave_repelling \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/placement/float.mcfunction b/datapacks/graves/data/graves/function/placement/float.mcfunction new file mode 100755 index 0000000..24a458b --- /dev/null +++ b/datapacks/graves/data/graves/function/placement/float.mcfunction @@ -0,0 +1,5 @@ +execute positioned ~ ~1 ~ if function graves:placement/is_repelling positioned ~ ~-1 ~ run return run function graves:placement/stop +execute if block ~ ~ ~ #graves:grave_stopping_on_top run return run function graves:placement/stop +execute if block ~ ~1 ~ #graves:grave_stopping_on_bottom run return run function graves:placement/stop +execute positioned ~ ~1 ~ unless predicate graves:placement/should_grave_float run return run function graves:placement/stop +execute positioned ~ ~1 ~ run function graves:placement/float \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/placement/handle_fall_into_void.mcfunction b/datapacks/graves/data/graves/function/placement/handle_fall_into_void.mcfunction new file mode 100755 index 0000000..c33b4d3 --- /dev/null +++ b/datapacks/graves/data/graves/function/placement/handle_fall_into_void.mcfunction @@ -0,0 +1,3 @@ +execute if predicate graves:placement/is_in_world_and_loaded run return run function graves:placement/continue_above_void +execute if predicate graves:placement/is_above_max_world_top positioned ~ 2031 ~ run return run function graves:placement/approach_world_top +execute positioned ~ ~-8 ~ positioned ~ ~108086391056891904 ~ positioned ~ ~-108086391056891904 ~ positioned ~ ~-1 ~ run function graves:placement/approach_world_top \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/placement/is_repelling.mcfunction b/datapacks/graves/data/graves/function/placement/is_repelling.mcfunction new file mode 100755 index 0000000..8f3c1d9 --- /dev/null +++ b/datapacks/graves/data/graves/function/placement/is_repelling.mcfunction @@ -0,0 +1,2 @@ +execute unless block ~ ~ ~ #graves:grave_attracting run return 1 +return run execute align xyz if entity @e[type=#graves:grave_repelling,tag=!graves.non_grave_repelling,dx=0,dy=0,dz=0] \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/placement/move_side_marker_here.mcfunction b/datapacks/graves/data/graves/function/placement/move_side_marker_here.mcfunction new file mode 100755 index 0000000..36dcec4 --- /dev/null +++ b/datapacks/graves/data/graves/function/placement/move_side_marker_here.mcfunction @@ -0,0 +1,2 @@ +execute unless loaded ~ ~ ~ run return run kill @s +tp @s ~ ~ ~ \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/placement/repel_from_impenetrable.mcfunction b/datapacks/graves/data/graves/function/placement/repel_from_impenetrable.mcfunction new file mode 100755 index 0000000..e730ea0 --- /dev/null +++ b/datapacks/graves/data/graves/function/placement/repel_from_impenetrable.mcfunction @@ -0,0 +1,4 @@ +tag @s add graves.bypass_impenetrable +execute positioned ~ ~1 ~ unless function graves:placement/is_repelling run return run function graves:placement/continue_in_attracting +execute at @e[type=minecraft:marker,tag=graves.side,distance=..1.5,sort=nearest,predicate=!graves:placement/is_impenetrable,limit=1] run return run function graves:placement/continue_repelling +execute positioned ~ ~1 ~ run function graves:placement/continue_repelling \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/placement/start.mcfunction b/datapacks/graves/data/graves/function/placement/start.mcfunction new file mode 100755 index 0000000..a257563 --- /dev/null +++ b/datapacks/graves/data/graves/function/placement/start.mcfunction @@ -0,0 +1,5 @@ +execute positioned ~ ~0.5 ~ align y run tp @s ~ ~ ~ +execute positioned over world_surface positioned ~-0.01 ~-0.01 ~-0.01 if entity @s[dy=179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216] positioned ~0.01 ~0.01 ~0.01 run return run function graves:placement/start_over_world_surface +execute if predicate graves:placement/is_in_world_and_loaded run return run function graves:placement/continue +execute if predicate graves:placement/is_below_min_world_bottom positioned ~ -2032 ~ run return run function graves:placement/approach_world_bottom +execute positioned ~ ~8 ~ positioned ~ ~108086391056891904 ~ positioned ~ ~-108086391056891904 ~ run function graves:placement/approach_world_bottom \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/placement/start_falling.mcfunction b/datapacks/graves/data/graves/function/placement/start_falling.mcfunction new file mode 100755 index 0000000..6920016 --- /dev/null +++ b/datapacks/graves/data/graves/function/placement/start_falling.mcfunction @@ -0,0 +1,2 @@ +tp @s ~ ~ ~ +function graves:placement/continue_falling \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/placement/start_over_world_surface.mcfunction b/datapacks/graves/data/graves/function/placement/start_over_world_surface.mcfunction new file mode 100755 index 0000000..4f81e01 --- /dev/null +++ b/datapacks/graves/data/graves/function/placement/start_over_world_surface.mcfunction @@ -0,0 +1,2 @@ +execute if function graves:placement/is_repelling run return run function graves:placement/start_repelling +function graves:placement/continue_falling \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/placement/start_repelling.mcfunction b/datapacks/graves/data/graves/function/placement/start_repelling.mcfunction new file mode 100755 index 0000000..d08747c --- /dev/null +++ b/datapacks/graves/data/graves/function/placement/start_repelling.mcfunction @@ -0,0 +1,11 @@ +tp @s ~ ~ ~ +execute align z positioned ~ ~ ~-0.25 if loaded ~ ~ ~ run summon minecraft:marker ~ ~ ~ {Tags:["graves.side","graves.side.north"]} +execute align z positioned ~ ~ ~1.25 if loaded ~ ~ ~ run summon minecraft:marker ~ ~ ~ {Tags:["graves.side","graves.side.south"]} +execute align x positioned ~-0.25 ~ ~ if loaded ~ ~ ~ run summon minecraft:marker ~ ~ ~ {Tags:["graves.side","graves.side.west"]} +execute align x positioned ~1.25 ~ ~ if loaded ~ ~ ~ run summon minecraft:marker ~ ~ ~ {Tags:["graves.side","graves.side.east"]} +tag @s add graves.has_side_markers +execute at @e[type=minecraft:marker,tag=graves.side,distance=..1.5,sort=nearest,limit=4] unless function graves:placement/is_repelling run return run function graves:placement/continue_in_attracting +execute if block ~ ~ ~ #graves:grave_impenetrable run return run function graves:placement/repel_from_impenetrable +execute if block ~ ~1 ~ #graves:grave_impenetrable unless entity @s[tag=graves.bypass_impenetrable] at @s run return run function graves:placement/stop +execute positioned ~ ~1 ~ if function graves:placement/is_repelling run return run function graves:placement/continue_repelling +execute positioned ~ ~1 ~ run function graves:placement/continue_in_attracting \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/placement/stop.mcfunction b/datapacks/graves/data/graves/function/placement/stop.mcfunction new file mode 100755 index 0000000..9c595d3 --- /dev/null +++ b/datapacks/graves/data/graves/function/placement/stop.mcfunction @@ -0,0 +1 @@ +execute align xyz positioned ~0.5 ~ ~0.5 run function graves:placement/finalize \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/placement/stop_on_void_platform.mcfunction b/datapacks/graves/data/graves/function/placement/stop_on_void_platform.mcfunction new file mode 100755 index 0000000..7df5676 --- /dev/null +++ b/datapacks/graves/data/graves/function/placement/stop_on_void_platform.mcfunction @@ -0,0 +1,2 @@ +setblock ~ ~ ~ minecraft:cobblestone_slab[type=bottom] +execute align xyz positioned ~0.5 ~0.5 ~0.5 run function graves:placement/finalize \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/reset_allow_locating.mcfunction b/datapacks/graves/data/graves/function/reset_allow_locating.mcfunction new file mode 100755 index 0000000..c7922e4 --- /dev/null +++ b/datapacks/graves/data/graves/function/reset_allow_locating.mcfunction @@ -0,0 +1,2 @@ +execute if function graves:gamerule_reduced_debug_info run return run data modify storage graves:config allow_locating set value false +data modify storage graves:config allow_locating set value true \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/schedule_1s.mcfunction b/datapacks/graves/data/graves/function/schedule_1s.mcfunction new file mode 100755 index 0000000..5526e55 --- /dev/null +++ b/datapacks/graves/data/graves/function/schedule_1s.mcfunction @@ -0,0 +1,2 @@ +schedule function graves:schedule_1s 1s +execute if score $despawn_seconds graves.config matches 1.. as @e[type=minecraft:item_display,tag=graves.grave] run function graves:destruction/update_despawn_timer \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/uninstall.mcfunction b/datapacks/graves/data/graves/function/uninstall.mcfunction new file mode 100755 index 0000000..f7f2c96 --- /dev/null +++ b/datapacks/graves/data/graves/function/uninstall.mcfunction @@ -0,0 +1,2 @@ +execute if score $death_marker_count graves.dummy matches 1.. run return run tellraw @s [{"color":"red","text":"Graves couldn't be uninstalled since a death is still being processed. Wait a moment and run "},{"color":"gold","text":"/function graves:uninstall"}," again.\n\n(If you're SURE this message is wrong, you can force-uninstall Graves using ",{"color":"gold","text":"/function graves:force_uninstall"},".)"] +function graves:force_uninstall \ No newline at end of file diff --git a/datapacks/graves/data/graves/function/update_allow_locating.mcfunction b/datapacks/graves/data/graves/function/update_allow_locating.mcfunction new file mode 100755 index 0000000..2f8b18e --- /dev/null +++ b/datapacks/graves/data/graves/function/update_allow_locating.mcfunction @@ -0,0 +1,3 @@ +execute if data storage graves:config {allow_locating:1b} run return run schedule function graves:location/schedule_2t 1 +scoreboard players reset * graves +schedule clear graves:location/schedule_2t \ No newline at end of file diff --git a/datapacks/graves/data/graves/item_modifier/consume_item.json b/datapacks/graves/data/graves/item_modifier/consume_item.json new file mode 100755 index 0000000..7af54b7 --- /dev/null +++ b/datapacks/graves/data/graves/item_modifier/consume_item.json @@ -0,0 +1 @@ +{"function":"minecraft:set_count","count":-1,"add":true} \ No newline at end of file diff --git a/datapacks/graves/data/graves/loot_table/entities/player.json b/datapacks/graves/data/graves/loot_table/entities/player.json new file mode 100755 index 0000000..0c7db88 --- /dev/null +++ b/datapacks/graves/data/graves/loot_table/entities/player.json @@ -0,0 +1 @@ +{"pools":[{"rolls":1,"entries":[{"type":"minecraft:item","name":"minecraft:stone_brick_wall","functions":[{"function":"minecraft:set_components","components":{"minecraft:custom_data":{"graves":{"grave":true}},"minecraft:item_name":"\"Grave\"","minecraft:rarity":"epic","minecraft:fire_resistant":{}}},{"function":"minecraft:set_lore","mode":"replace_all","entity":"this","lore":[{"selector":"@s"},"",{"italic":false,"color":"gold","text":"If you see this item, the Graves data pack didn't work!"},{"italic":false,"color":"gold","text":"Please let us know in our data pack help channel:"},{"italic":false,"color":"yellow","text":"https://vanillatweaks.net/discord"}]},{"function":"minecraft:copy_custom_data","source":"this","ops":[{"op":"replace","target":"graves.owner_uuid","source":"UUID"},{"op":"replace","target":"graves.pre_death_inventory","source":"Inventory"}]},{"function":"minecraft:copy_custom_data","source":{"type":"storage","source":"graves:main"},"ops":[{"op":"replace","source":"tick_id","target":"graves.tick_id"}]}]}]}]} \ No newline at end of file diff --git a/datapacks/graves/data/graves/predicate/placement/is_above_max_world_top.json b/datapacks/graves/data/graves/predicate/placement/is_above_max_world_top.json new file mode 100755 index 0000000..349d422 --- /dev/null +++ b/datapacks/graves/data/graves/predicate/placement/is_above_max_world_top.json @@ -0,0 +1 @@ +{"condition":"minecraft:location_check","predicate":{"position":{"y":{"min":2032}}}} \ No newline at end of file diff --git a/datapacks/graves/data/graves/predicate/placement/is_below_min_world_bottom.json b/datapacks/graves/data/graves/predicate/placement/is_below_min_world_bottom.json new file mode 100755 index 0000000..54e6a10 --- /dev/null +++ b/datapacks/graves/data/graves/predicate/placement/is_below_min_world_bottom.json @@ -0,0 +1 @@ +{"condition":"minecraft:inverted","term":{"condition":"minecraft:location_check","predicate":{"position":{"y":{"min":-2032}}}}} \ No newline at end of file diff --git a/datapacks/graves/data/graves/predicate/placement/is_impenetrable.json b/datapacks/graves/data/graves/predicate/placement/is_impenetrable.json new file mode 100755 index 0000000..e5b1ba3 --- /dev/null +++ b/datapacks/graves/data/graves/predicate/placement/is_impenetrable.json @@ -0,0 +1 @@ +{"condition":"minecraft:location_check","predicate":{"block":{"blocks":"#graves:grave_impenetrable"}}} \ No newline at end of file diff --git a/datapacks/graves/data/graves/predicate/placement/is_in_world_and_loaded.json b/datapacks/graves/data/graves/predicate/placement/is_in_world_and_loaded.json new file mode 100755 index 0000000..3cbf0bc --- /dev/null +++ b/datapacks/graves/data/graves/predicate/placement/is_in_world_and_loaded.json @@ -0,0 +1 @@ +{"condition":"minecraft:location_check","predicate":{"light":{"min":0}}} \ No newline at end of file diff --git a/datapacks/graves/data/graves/predicate/placement/should_grave_float.json b/datapacks/graves/data/graves/predicate/placement/should_grave_float.json new file mode 100755 index 0000000..bc1037e --- /dev/null +++ b/datapacks/graves/data/graves/predicate/placement/should_grave_float.json @@ -0,0 +1 @@ +{"condition":"minecraft:all_of","terms":[{"condition":"minecraft:reference","name":"graves:placement/is_in_world_and_loaded"},{"condition":"minecraft:inverted","term":{"condition":"minecraft:any_of","terms":[{"condition":"minecraft:location_check","predicate":{"fluid":{"fluids":"minecraft:empty"}}},{"condition":"minecraft:location_check","predicate":{"fluid":{"state":{"level":{"min":"1"}}}}},{"condition":"minecraft:location_check","predicate":{"block":{"blocks":"minecraft:bubble_column","state":{"drag":"true"}}}}]}}]} \ No newline at end of file diff --git a/datapacks/graves/data/graves/tags/block/grave_attracting.json b/datapacks/graves/data/graves/tags/block/grave_attracting.json new file mode 100755 index 0000000..6448ea9 --- /dev/null +++ b/datapacks/graves/data/graves/tags/block/grave_attracting.json @@ -0,0 +1 @@ +{"values":["#graves:grave_stopping_on_top","#graves:grave_stopping_on_bottom","#minecraft:banners","#minecraft:buttons","#minecraft:cave_vines","#minecraft:ceiling_hanging_signs","#minecraft:climbable","#minecraft:corals","#minecraft:crops","#minecraft:doors","#minecraft:fence_gates","#minecraft:maintains_farmland","#minecraft:pressure_plates","#minecraft:rails","#minecraft:saplings","#minecraft:replaceable","#minecraft:signs","#minecraft:small_flowers","#minecraft:tall_flowers","#minecraft:wall_corals","minecraft:amethyst_cluster","minecraft:bamboo_sapling","minecraft:big_dripleaf","minecraft:big_dripleaf_stem","minecraft:brown_mushroom","minecraft:cobweb","minecraft:comparator","minecraft:crimson_fungus","minecraft:dead_brain_coral","minecraft:dead_brain_coral_fan","minecraft:dead_brain_coral_wall_fan","minecraft:dead_bubble_coral","minecraft:dead_bubble_coral_fan","minecraft:dead_bubble_coral_wall_fan","minecraft:dead_fire_coral","minecraft:dead_fire_coral_fan","minecraft:dead_fire_coral_wall_fan","minecraft:dead_horn_coral","minecraft:dead_horn_coral_fan","minecraft:dead_horn_coral_wall_fan","minecraft:dead_tube_coral","minecraft:dead_tube_coral_fan","minecraft:dead_tube_coral_wall_fan","minecraft:frogspawn","minecraft:kelp","minecraft:kelp_plant","minecraft:large_amethyst_bud","minecraft:lever","minecraft:medium_amethyst_bud","minecraft:nether_portal","minecraft:nether_wart","minecraft:pink_petals","minecraft:powder_snow","minecraft:red_mushroom","minecraft:redstone_torch","minecraft:redstone_wall_torch","minecraft:redstone_wire","minecraft:repeater","minecraft:sculk_vein","minecraft:small_amethyst_bud","minecraft:small_dripleaf","minecraft:soul_torch","minecraft:soul_wall_torch","minecraft:spore_blossom","minecraft:sugar_cane","minecraft:torch","minecraft:tripwire","minecraft:tripwire_hook","minecraft:wall_torch"]} \ No newline at end of file diff --git a/datapacks/graves/data/graves/tags/block/grave_impenetrable.json b/datapacks/graves/data/graves/tags/block/grave_impenetrable.json new file mode 100755 index 0000000..4d16467 --- /dev/null +++ b/datapacks/graves/data/graves/tags/block/grave_impenetrable.json @@ -0,0 +1 @@ +{"values":["minecraft:barrier","minecraft:bedrock","minecraft:chain_command_block","minecraft:command_block","minecraft:end_gateway","minecraft:end_portal","minecraft:end_portal_frame","minecraft:jigsaw","minecraft:structure_block","minecraft:repeating_command_block"]} \ No newline at end of file diff --git a/datapacks/graves/data/graves/tags/block/grave_stopping_on_bottom.json b/datapacks/graves/data/graves/tags/block/grave_stopping_on_bottom.json new file mode 100755 index 0000000..77cdc0f --- /dev/null +++ b/datapacks/graves/data/graves/tags/block/grave_stopping_on_bottom.json @@ -0,0 +1 @@ +{"values":["#graves:grave_stopping_vertically","#minecraft:candles","#minecraft:wool_carpets","minecraft:lily_pad","minecraft:moss_carpet","minecraft:sea_pickle","minecraft:turtle_egg"]} \ No newline at end of file diff --git a/datapacks/graves/data/graves/tags/block/grave_stopping_on_top.json b/datapacks/graves/data/graves/tags/block/grave_stopping_on_top.json new file mode 100755 index 0000000..aed571d --- /dev/null +++ b/datapacks/graves/data/graves/tags/block/grave_stopping_on_top.json @@ -0,0 +1 @@ +{"values":["#graves:grave_stopping_vertically","#minecraft:wall_hanging_signs"]} \ No newline at end of file diff --git a/datapacks/graves/data/graves/tags/block/grave_stopping_vertically.json b/datapacks/graves/data/graves/tags/block/grave_stopping_vertically.json new file mode 100755 index 0000000..27faa2c --- /dev/null +++ b/datapacks/graves/data/graves/tags/block/grave_stopping_vertically.json @@ -0,0 +1 @@ +{"values":["#minecraft:candle_cakes","#minecraft:flower_pots","#minecraft:trapdoors","minecraft:bamboo","minecraft:cake","minecraft:chain","minecraft:cocoa","minecraft:creeper_head","minecraft:creeper_wall_head","minecraft:dragon_head","minecraft:dragon_wall_head","minecraft:end_rod","minecraft:lightning_rod","minecraft:piglin_head","minecraft:piglin_wall_head","minecraft:player_head","minecraft:player_wall_head","minecraft:scaffolding","minecraft:skeleton_skull","minecraft:skeleton_wall_skull","minecraft:wither_skeleton_skull","minecraft:wither_skeleton_wall_skull","minecraft:zombie_head","minecraft:zombie_wall_head"]} \ No newline at end of file diff --git a/datapacks/graves/data/graves/tags/entity_type/grave_repelling.json b/datapacks/graves/data/graves/tags/entity_type/grave_repelling.json new file mode 100755 index 0000000..12def6a --- /dev/null +++ b/datapacks/graves/data/graves/tags/entity_type/grave_repelling.json @@ -0,0 +1 @@ +{"values":["minecraft:end_crystal","minecraft:interaction","minecraft:shulker"]} \ No newline at end of file diff --git a/datapacks/graves/data/minecraft/loot_table/entities/player.json b/datapacks/graves/data/minecraft/loot_table/entities/player.json new file mode 100755 index 0000000..5ebe628 --- /dev/null +++ b/datapacks/graves/data/minecraft/loot_table/entities/player.json @@ -0,0 +1 @@ +{"pools":[{"rolls":1,"entries":[{"type":"minecraft:loot_table","value":"graves:entities/player"}]},{"rolls":1,"entries":[{"type":"minecraft:loot_table","value":"player_heads:entities/player"}]}]} \ No newline at end of file diff --git a/datapacks/graves/data/minecraft/tags/function/load.json b/datapacks/graves/data/minecraft/tags/function/load.json new file mode 100755 index 0000000..454ee09 --- /dev/null +++ b/datapacks/graves/data/minecraft/tags/function/load.json @@ -0,0 +1 @@ +{"values":["graves:load"]} \ No newline at end of file diff --git a/datapacks/graves/data/vanillatweaks/advancement/graves.json b/datapacks/graves/data/vanillatweaks/advancement/graves.json new file mode 100755 index 0000000..3a05092 --- /dev/null +++ b/datapacks/graves/data/vanillatweaks/advancement/graves.json @@ -0,0 +1,11 @@ +{ + "display": { + "icon": {"id": "minecraft:stone_brick_wall"}, + "title": "Graves ", + "description": ["",{"text":"Retrieve your items and/or XP dropped on death from your grave by right-clicking or left-clicking it.\n\n","color":"gold"},{"text":"Enter","color":"green"},{"text":" ","color":"gold"},{"text":"/trigger graves","color":"yellow"},{"text":" for your grave list.\n\n","color":"gold"},{"text":"Enter","color":"green"},{"text":" ","color":"gold"},{"text":"/function graves:config","color":"yellow"},{"text":" for config options and admin tools.","color":"gold"}], + "show_toast": false, + "announce_to_chat": false + }, + "parent": "vanillatweaks:root", + "criteria": {"tick": {"trigger": "minecraft:tick"}} +} diff --git a/datapacks/graves/data/vanillatweaks/advancement/root.json b/datapacks/graves/data/vanillatweaks/advancement/root.json new file mode 100755 index 0000000..f8494e1 --- /dev/null +++ b/datapacks/graves/data/vanillatweaks/advancement/root.json @@ -0,0 +1,19 @@ +{ + "display": { + "icon": { + "id": "minecraft:player_head", + "components": {"profile":{"properties":[{"name":"textures","value":"eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMTg1YzMzNWM1MjVjZGFkY2Q4MmU4MDA4MzU1N2M2OTYzMGRmYjlhMWVkZjU5OTc0YzdmNjU4ZGI1MWEwYTFkOSJ9fX0="}]}} + }, + "title": "Vanilla Tweaks", + "frame": "challenge", + "description": ["",{"text":"All loaded Vanilla Tweaks data packs\n","color":"gold"},{"text":"vanillatweaks.net","color":"yellow"}], + "background": "minecraft:textures/block/black_concrete.png", + "show_toast": false, + "announce_to_chat": false + }, + "criteria": { + "tick": { + "trigger": "minecraft:tick" + } + } +} diff --git a/datapacks/graves/data/vanillatweaks/tags/function/uninstall.json b/datapacks/graves/data/vanillatweaks/tags/function/uninstall.json new file mode 100755 index 0000000..22b5f54 --- /dev/null +++ b/datapacks/graves/data/vanillatweaks/tags/function/uninstall.json @@ -0,0 +1 @@ +{"values":["graves:uninstall"]} \ No newline at end of file diff --git a/datapacks/graves/overlay_57/data/graves/function/creation/initialize_death_marker.mcfunction b/datapacks/graves/overlay_57/data/graves/function/creation/initialize_death_marker.mcfunction new file mode 100755 index 0000000..7a28811 --- /dev/null +++ b/datapacks/graves/overlay_57/data/graves/function/creation/initialize_death_marker.mcfunction @@ -0,0 +1,7 @@ +rotate @s ~ ~ +data modify entity @s data.graves.creation set from storage graves:main creation +execute store success entity @s data.graves.forceload_success byte 1.0 run forceload add ~ ~ +scoreboard players add $death_marker_count graves.dummy 1 +function graves:creation/check_death_markers +tag @s add graves.death_marker +advancement revoke @a only graves:check_death_markers_later_in_tick \ No newline at end of file diff --git a/datapacks/graves/overlay_57/data/graves/function/creation/initialize_grave.mcfunction b/datapacks/graves/overlay_57/data/graves/function/creation/initialize_grave.mcfunction new file mode 100755 index 0000000..9763524 --- /dev/null +++ b/datapacks/graves/overlay_57/data/graves/function/creation/initialize_grave.mcfunction @@ -0,0 +1,29 @@ +data merge entity @s {Tags:["graves.grave","graves.grave.initializing"],transformation:{translation:[0.0f,0.3125f,0.0f],scale:[0.625f,0.625f,0.625f],right_rotation:[0.0f,0.0f,0.0f,1.0f],left_rotation:[0.0f,0.0f,0.0f,1.0f]},item:{id:"minecraft:stone_brick_wall",components:{"minecraft:item_name":'"Grave Model"',"minecraft:rarity":"epic","minecraft:lore":['{"italic":false,"color":"gold","text":"If you see this item, the Graves data pack didn\'t work!"}','{"italic":false,"color":"gold","text":"Please let us know in our data pack help channel:"}','{"italic":false,"color":"yellow","text":"https://vanillatweaks.net/discord"}']}},item_display:"head",teleport_duration:1} +execute if data storage graves:main creation.items[0] run data modify entity @s item.components."minecraft:bundle_contents" set from storage graves:main creation.items +item modify entity @s contents [{"function":"minecraft:set_components","components":{"!minecraft:custom_name":{}}},{"function":"minecraft:copy_custom_data","source":{"type":"storage","source":"graves:main"},"ops":[{"op":"replace","source":"creation.grave","target":"graves"},{"op":"replace","source":"creation.grave_item.owner_uuid","target":"graves.owner_uuid"},{"op":"replace","source":"creation.grave_item.pre_death_inventory","target":"graves.pre_death_inventory"},{"op":"replace","source":"creation.found_drops_late","target":"graves.found_drops_late"}]}] +rotate @s ~90 0 +function graves:face_cardinal_direction +summon minecraft:interaction ~ ~ ~ {Tags:["graves.grave","graves.non_grave_repelling","graves.grave.unmounted"],width:0.75f,height:0.75f,response:1b} +ride @e[type=minecraft:interaction,tag=graves.grave.unmounted,distance=..0.01,limit=1] mount @s +execute on passengers run tag @s remove graves.grave.unmounted +function graves:placement/start +execute at @s positioned ~ ~0.75 ~ run summon minecraft:text_display ~ ~ ~ {Tags:["graves.grave","graves.grave.initializing"],billboard:"center",view_range:0.0625f,text:'{"storage":"graves:main","nbt":"creation.owner_name","interpret":true}',alignment:"center"} +execute at @s positioned ~ ~0.75 ~ as @e[type=minecraft:text_display,tag=graves.grave.initializing,distance=..0.01,limit=1] run function graves:creation/initialize_grave_name_tag +item modify entity @s contents {function:"minecraft:copy_custom_data",source:{type:"storage",source:"graves:main"},ops:[{op:"replace",source:"creation.grave.name_tag_uuid",target:"graves.name_tag_uuid"}]} +data modify storage graves:main creation.grave_entity set from entity @s +data modify storage graves:main creation.grave_listing.uuid set from storage graves:main creation.grave_entity.UUID +data modify storage graves:main creation.grave_listing.pos set from storage graves:main creation.grave_entity.Pos +execute store result storage graves:main creation.grave_listing.item_count int 1.0 run data get storage graves:main creation.items +data modify storage graves:main creation.grave_listing.xp_points set from storage graves:main creation.grave.xp_points +data remove storage graves:main creation.grave_listing.loading +data modify storage graves:main creation.macro_args set from storage graves:main creation.target_grave_item +data modify storage graves:main creation.macro_args.dimension set from storage graves:main creation.grave_listing.dimension +data modify storage graves:main creation.macro_args.x set from storage graves:main creation.grave_listing.pos[0] +data modify storage graves:main creation.macro_args.y set from storage graves:main creation.grave_listing.pos[1] +data modify storage graves:main creation.macro_args.z set from storage graves:main creation.grave_listing.pos[2] +execute store result storage graves:main creation.macro_args.x_int int 1.0 run data get storage graves:main creation.grave_listing.pos[0] +execute store result storage graves:main creation.macro_args.y_int int 1.0 run data get storage graves:main creation.grave_listing.pos[1] +execute store result storage graves:main creation.macro_args.z_int int 1.0 run data get storage graves:main creation.grave_listing.pos[2] +function graves:creation/update_grave_listing with storage graves:main creation.macro_args +execute if data storage graves:config {allow_locating:1b} summon minecraft:interaction run function graves:creation/show_new_grave_location +tag @s remove graves.grave.initializing \ No newline at end of file diff --git a/datapacks/graves/overlay_57/data/graves/function/face_cardinal_direction.mcfunction b/datapacks/graves/overlay_57/data/graves/function/face_cardinal_direction.mcfunction new file mode 100755 index 0000000..b12361f --- /dev/null +++ b/datapacks/graves/overlay_57/data/graves/function/face_cardinal_direction.mcfunction @@ -0,0 +1,4 @@ +execute if entity @s[y_rotation=-45..45] run return run rotate @s 0 0 +execute if entity @s[y_rotation=45..135] run return run rotate @s 90 0 +execute if entity @s[y_rotation=135..225] run return run rotate @s 180 0 +rotate @s 270 0 \ No newline at end of file diff --git a/datapacks/graves/overlay_57/data/graves/function/opening/animate_shaking.mcfunction b/datapacks/graves/overlay_57/data/graves/function/opening/animate_shaking.mcfunction new file mode 100755 index 0000000..64d7c89 --- /dev/null +++ b/datapacks/graves/overlay_57/data/graves/function/opening/animate_shaking.mcfunction @@ -0,0 +1,7 @@ +scoreboard players remove @s graves.shaking_ticks_left 1 +execute if score @s graves.shaking_ticks_left matches 4 run return run rotate @s ~4 ~ +execute if score @s graves.shaking_ticks_left matches 3 run return run rotate @s ~-8 ~ +execute if score @s graves.shaking_ticks_left matches 2 run return run rotate @s ~8 ~ +execute if score @s graves.shaking_ticks_left matches 1 run return run rotate @s ~-8 ~ +rotate @s ~4 ~ +tag @s remove graves.grave.shaking \ No newline at end of file diff --git a/datapacks/graves/overlay_57/data/graves/loot_table/entities/player.json b/datapacks/graves/overlay_57/data/graves/loot_table/entities/player.json new file mode 100755 index 0000000..dfd6683 --- /dev/null +++ b/datapacks/graves/overlay_57/data/graves/loot_table/entities/player.json @@ -0,0 +1 @@ +{"pools":[{"rolls":1,"entries":[{"type":"minecraft:item","name":"minecraft:stone_brick_wall","functions":[{"function":"minecraft:set_components","components":{"minecraft:custom_data":{"graves":{"grave":true}},"minecraft:item_name":"\"Grave\"","minecraft:rarity":"epic","minecraft:damage_resistant":{"types":"#minecraft:is_fire"}}},{"function":"minecraft:set_lore","mode":"replace_all","entity":"this","lore":[{"selector":"@s"},"",{"italic":false,"color":"gold","text":"If you see this item, the Graves data pack didn't work!"},{"italic":false,"color":"gold","text":"Please let us know in our data pack help channel:"},{"italic":false,"color":"yellow","text":"https://vanillatweaks.net/discord"}]},{"function":"minecraft:copy_custom_data","source":"this","ops":[{"op":"replace","target":"graves.owner_uuid","source":"UUID"},{"op":"replace","target":"graves.pre_death_inventory","source":"Inventory"}]},{"function":"minecraft:copy_custom_data","source":{"type":"storage","source":"graves:main"},"ops":[{"op":"replace","source":"tick_id","target":"graves.tick_id"}]}]}]}]} \ No newline at end of file diff --git a/datapacks/graves/overlay_61/data/graves/tags/block/grave_attracting.json b/datapacks/graves/overlay_61/data/graves/tags/block/grave_attracting.json new file mode 100755 index 0000000..301f494 --- /dev/null +++ b/datapacks/graves/overlay_61/data/graves/tags/block/grave_attracting.json @@ -0,0 +1 @@ +{"values":["#graves:grave_stopping_on_top","#graves:grave_stopping_on_bottom","#minecraft:banners","#minecraft:buttons","#minecraft:cave_vines","#minecraft:ceiling_hanging_signs","#minecraft:climbable","#minecraft:corals","#minecraft:crops","#minecraft:doors","#minecraft:fence_gates","#minecraft:maintains_farmland","#minecraft:pressure_plates","#minecraft:rails","#minecraft:replaceable","#minecraft:saplings","#minecraft:signs","#minecraft:small_flowers","#minecraft:wall_corals","minecraft:amethyst_cluster","minecraft:bamboo_sapling","minecraft:big_dripleaf","minecraft:big_dripleaf_stem","minecraft:brown_mushroom","minecraft:cobweb","minecraft:comparator","minecraft:crimson_fungus","minecraft:dead_brain_coral","minecraft:dead_brain_coral_fan","minecraft:dead_brain_coral_wall_fan","minecraft:dead_bubble_coral","minecraft:dead_bubble_coral_fan","minecraft:dead_bubble_coral_wall_fan","minecraft:dead_fire_coral","minecraft:dead_fire_coral_fan","minecraft:dead_fire_coral_wall_fan","minecraft:dead_horn_coral","minecraft:dead_horn_coral_fan","minecraft:dead_horn_coral_wall_fan","minecraft:dead_tube_coral","minecraft:dead_tube_coral_fan","minecraft:dead_tube_coral_wall_fan","minecraft:frogspawn","minecraft:kelp","minecraft:kelp_plant","minecraft:large_amethyst_bud","minecraft:lever","minecraft:lilac","minecraft:medium_amethyst_bud","minecraft:nether_portal","minecraft:nether_wart","minecraft:pale_hanging_moss","minecraft:peony","minecraft:pink_petals","minecraft:pitcher_plant","minecraft:powder_snow","minecraft:red_mushroom","minecraft:redstone_torch","minecraft:redstone_wall_torch","minecraft:redstone_wire","minecraft:repeater","minecraft:rose_bush","minecraft:sculk_vein","minecraft:small_amethyst_bud","minecraft:small_dripleaf","minecraft:soul_torch","minecraft:soul_wall_torch","minecraft:spore_blossom","minecraft:sugar_cane","minecraft:sunflower","minecraft:torch","minecraft:tripwire","minecraft:tripwire_hook","minecraft:wall_torch"]} \ No newline at end of file diff --git a/datapacks/graves/overlay_61/data/graves/tags/block/grave_stopping_on_bottom.json b/datapacks/graves/overlay_61/data/graves/tags/block/grave_stopping_on_bottom.json new file mode 100755 index 0000000..7eaa09e --- /dev/null +++ b/datapacks/graves/overlay_61/data/graves/tags/block/grave_stopping_on_bottom.json @@ -0,0 +1 @@ +{"values":["#graves:grave_stopping_vertically","#minecraft:candles","#minecraft:wool_carpets","minecraft:lily_pad","minecraft:moss_carpet","minecraft:pale_moss_carpet","minecraft:sea_pickle","minecraft:turtle_egg"]} \ No newline at end of file diff --git a/datapacks/graves/overlay_71/data/graves/function/config.mcfunction b/datapacks/graves/overlay_71/data/graves/function/config.mcfunction new file mode 100755 index 0000000..1c11b6a --- /dev/null +++ b/datapacks/graves/overlay_71/data/graves/function/config.mcfunction @@ -0,0 +1,15 @@ +tellraw @s {text:' ',color:'dark_gray',strikethrough:true} +tellraw @s [' Graves',{text:' / ',color:'gray'},'Global Settings '] +tellraw @s {text:' ',color:'dark_gray',strikethrough:true} +execute if data storage graves:config {allow_robbing:true} run tellraw @s [{text:'[ \u2714 ]',color:'green',click_event:{action:'run_command',command:'function graves:disable_allow_robbing'},hover_event:{action:'show_text',value:['',{text:'Click to disable ',color:'red'},'Grave Robbing',{text:'.',color:'red'},{text:'\nWhen enabled, players can open graves they do not own.',color:'gray'},{text:'\nDefault: Disabled',color:'dark_gray'}]}},' Grave Robbing'] +execute unless data storage graves:config {allow_robbing:true} run tellraw @s ['',{text:'[ \u274c ]',color:'red',click_event:{action:'run_command',command:'function graves:enable_allow_robbing'},hover_event:{action:'show_text',value:['',{text:'Click to enable ',color:'green'},'Grave Robbing',{text:'.',color:'green'},{text:'\nWhen enabled, players can open graves they do not own.',color:'gray'},{text:'\nDefault: Disabled',color:'dark_gray'}]}},' Grave Robbing'] +execute if data storage graves:config {pick_up_xp:true} run tellraw @s ['',{text:'[ \u2714 ]',color:'green',click_event:{action:'run_command',command:'function graves:disable_pick_up_xp'},hover_event:{action:'show_text',value:['',{text:'Click to disable ',color:'red'},'XP Collection',{text:'.',color:'red'},{text:'\nWhen enabled, graves collect XP dropped on death.\nNote that players do not drop all their XP on death.',color:'gray'},{text:'\nDefault: Enabled',color:'dark_gray'}]}},' XP Collection'] +execute unless data storage graves:config {pick_up_xp:true} run tellraw @s ['',{text:'[ \u274c ]',color:'red',click_event:{action:'run_command',command:'function graves:enable_pick_up_xp'},hover_event:{action:'show_text',value:['',{text:'Click to enable ',color:'green'},'XP Collection',{text:'.',color:'green'},{text:'\nWhen enabled, graves collect XP dropped on death.\nNote that players do not drop all their XP on death.',color:'gray'},{text:'\nDefault: Enabled',color:'dark_gray'}]}},' XP Collection'] +execute if data storage graves:config {allow_locating:true} run tellraw @s ['',{text:'[ \u2714 ]',color:'green',click_event:{action:'run_command',command:'function graves:disable_allow_locating'},hover_event:{action:'show_text',value:['',{text:'Click to disable ',color:'red'},'Grave Locating',{text:'.',color:'red'},{text:'\nWhen enabled, players can see the coordinates of their graves.',color:'gray'},{text:'\nDefault: Opposite of /gamerule reducedDebugInfo',color:'dark_gray'}]}},' Grave Locating'] +execute unless data storage graves:config {allow_locating:true} run tellraw @s ['',{text:'[ \u274c ]',color:'red',click_event:{action:'run_command',command:'function graves:enable_allow_locating'},hover_event:{action:'show_text',value:['',{text:'Click to enable ',color:'green'},'Grave Locating',{text:'.',color:'green'},{text:'\nWhen enabled, players can see the coordinates of their graves.',color:'gray'},{text:'\nDefault: Opposite of /gamerule reducedDebugInfo',color:'dark_gray'}]}},' Grave Locating'] +execute if data storage graves:config {compatibility_mode:true} run tellraw @s ['',{text:'[ \u2714 ]',color:'green',click_event:{action:'run_command',command:'function graves:disable_compatibility_mode'},hover_event:{action:'show_text',value:['',{text:'Click to disable ',color:'red'},'Compatibility Mode',{text:'.',color:'red'},{text:"\nThis fixes graves not picking up items from certain modded slots, or not picking up certain modded items with special behavior on death. When enabled, graves pick up every item dropped in the exact same tick and position of death, even if the item wasn't detected in your inventory.",color:'gray'},{text:'\nThis also means if multiple players die in the exact same tick and position, one grave picks up all the items.',color:'red'},{text:'\nDefault: Disabled',color:'dark_gray'}]}},' Compatibility Mode'] +execute unless data storage graves:config {compatibility_mode:true} run tellraw @s ['',{text:'[ \u274c ]',color:'red',click_event:{action:'run_command',command:'function graves:enable_compatibility_mode'},hover_event:{action:'show_text',value:['',{text:'Click to enable ',color:'green'},'Compatibility Mode',{text:'.',color:'green'},{text:"\nThis fixes graves not picking up items from certain modded slots, or not picking up certain modded items with special behavior on death. When enabled, graves pick up every item dropped in the exact same tick and position of death, even if the item wasn't detected in your inventory.",color:'gray'},{text:'\nThis also means if multiple players die in the exact same tick and position, one grave picks up all the items.',color:'red'},{text:'\nDefault: Disabled',color:'dark_gray'}]}},' Compatibility Mode'] +tellraw @s ['',{text:'[ \u270e ]',color:'gray',click_event:{action:'suggest_command',command:'/scoreboard players set $despawn_seconds graves.config '},hover_event:{action:'show_text',value:['',{text:"Click to enter the number of seconds after which a grave and its contents are deleted.\nA grave's despawn timer only runs while the grave is loaded.\nEnter ",color:'gray'},'0',{text:' to disable grave despawning.\nItems normally take ',color:'gray'},'300',{text:' seconds (5 minutes) to despawn.',color:'gray'},{text:'\nAccepts: whole numbers 0+\nDefault: 0',color:'dark_gray'}]}},' Grave Despawn Time ',{text:'(Current: ',color:'gray'},{score:{name:'$despawn_seconds',objective:'graves.config'},color:'gray'},{text:')',color:'gray'}] +tellraw @s ['',{text:'\n>> ',color:'gold'},{text:'[ List All Graves ]',click_event:{action:'run_command',command:'function graves:list'},hover_event:{action:'show_text',value:[{text:'Click to run ',color:'gray'},{text:'/function graves:list',color:'white'},'.']}}] +tellraw @s ['',{text:'>> ',color:'gold'},{text:'[ Receive Grave Key ]',click_event:{action:'run_command',command:'function graves:give_grave_key'},hover_event:{action:'show_text',value:{text:'Click to receive a grave key which can be used to forcibly open graves.',color:'gray'}}}] +tellraw @s {text:' ',color:'dark_gray',strikethrough:true} \ No newline at end of file diff --git a/datapacks/graves/overlay_71/data/graves/function/creation/create_grave_maybe.mcfunction b/datapacks/graves/overlay_71/data/graves/function/creation/create_grave_maybe.mcfunction new file mode 100755 index 0000000..266994c --- /dev/null +++ b/datapacks/graves/overlay_71/data/graves/function/creation/create_grave_maybe.mcfunction @@ -0,0 +1,20 @@ +data modify storage graves:main creation.pre_death_inventory set from storage graves:main creation.grave_item.pre_death_inventory +data modify storage graves:main creation.pre_death_equipment set from storage graves:main creation.grave_item.pre_death_equipment +execute if data storage graves:main creation.pre_death_equipment.offhand run function graves:creation/items/save_pre_death_equipment_item_slot/offhand +execute if data storage graves:main creation.pre_death_equipment.feet run function graves:creation/items/save_pre_death_equipment_item_slot/feet +execute if data storage graves:main creation.pre_death_equipment.legs run function graves:creation/items/save_pre_death_equipment_item_slot/legs +execute if data storage graves:main creation.pre_death_equipment.chest run function graves:creation/items/save_pre_death_equipment_item_slot/chest +execute if data storage graves:main creation.pre_death_equipment.head run function graves:creation/items/save_pre_death_equipment_item_slot/head +function graves:creation/items/save_next_pre_death_item_slot with storage graves:main creation.pre_death_inventory[-1] +data modify storage graves:main creation merge value {items:[],grave:{slots:[]}} +data modify storage graves:main creation.inventory_pos_compound.x set from storage graves:main creation.grave.inventory_pos[0] +data modify storage graves:main creation.inventory_pos_compound.y set from storage graves:main creation.grave.inventory_pos[1] +data modify storage graves:main creation.inventory_pos_compound.z set from storage graves:main creation.grave.inventory_pos[2] +function graves:creation/items/pick_up_items_at_inventory_pos with storage graves:main creation.inventory_pos_compound +execute if data storage graves:main creation{found_drops_late:1b} run function graves:creation/items/check_for_missing_pre_death_items +scoreboard players reset $non_pre_death_item_count graves.dummy +execute if data storage graves:config {pick_up_xp:1b} run function graves:creation/xp/pick_up_xp +execute store result storage graves:main creation.grave.xp_points int 1.0 run scoreboard players get $xp_points graves.dummy +scoreboard players reset $xp_points graves.dummy +execute unless data storage graves:main creation.items[0] if data storage graves:main creation.grave{xp_points:0} run return run function graves:creation/remove_loading_grave_listing with storage graves:main creation.grave_item +execute summon minecraft:item_display run function graves:creation/initialize_grave \ No newline at end of file diff --git a/datapacks/graves/overlay_71/data/graves/function/creation/create_loading_grave_listing.mcfunction b/datapacks/graves/overlay_71/data/graves/function/creation/create_loading_grave_listing.mcfunction new file mode 100755 index 0000000..bcb0d4a --- /dev/null +++ b/datapacks/graves/overlay_71/data/graves/function/creation/create_loading_grave_listing.mcfunction @@ -0,0 +1,2 @@ +$execute unless data storage graves:main players[{uuid: $(owner_uuid)}] run data modify storage graves:main players append value { uuid: $(owner_uuid), name: {"italic":true,"color":"gray","text":"(Name loading... Try again, or click to open NameMC profile.)","hover_event":{"action":"show_text","value":["",{"color":"gray","text":"Click to open URL:\\n"},"https://namemc.com/$(owner_uuid_0),$(owner_uuid_1),$(owner_uuid_2),$(owner_uuid_3)"]},"click_event":{"action":"open_url","url":"https://namemc.com/$(owner_uuid_0),$(owner_uuid_1),$(owner_uuid_2),$(owner_uuid_3)"}}, graves: [], } +$data modify storage graves:main players[{uuid: $(owner_uuid)}].graves append from storage graves:main creation.grave_listing \ No newline at end of file diff --git a/datapacks/graves/overlay_71/data/graves/function/creation/fail_to_find_grave_item.mcfunction b/datapacks/graves/overlay_71/data/graves/function/creation/fail_to_find_grave_item.mcfunction new file mode 100755 index 0000000..d5d9b3a --- /dev/null +++ b/datapacks/graves/overlay_71/data/graves/function/creation/fail_to_find_grave_item.mcfunction @@ -0,0 +1,5 @@ +function graves:creation/remove_loading_grave_listing with storage graves:main creation.target_grave_item +execute unless data storage graves:main creation.grave.inventory_pos run return run tellraw @s [{color:'red',text:"The Graves data pack detected that your inventory dropped (if there was anything to drop) at an unknown location, but your loot table data wasn't found.\n\nThis is likely an incompatibility. We can help solve this for you in our data pack help channel:\n"},{underlined:true,text:'https://vanillatweaks.net/discord',hover_event:{action:'show_text',value:'Click to open URL.'},click_event:{action:'open_url',url:'https://vanillatweaks.net/discord'}}] +execute if data storage graves:config {allow_locating:0b} run return run tellraw @s [{color:'red',text:"The Graves data pack detected that your inventory dropped (if there was anything to drop), but your loot table data wasn't found.\n\nThis is likely an incompatibility. We can help solve this for you in our data pack help channel:\n"},{underlined:true,text:'https://vanillatweaks.net/discord',hover_event:{action:'show_text',value:'Click to open URL.'},click_event:{action:'open_url',url:'https://vanillatweaks.net/discord'}}] +function graves:creation/convert_inventory_pos_to_ints +return run tellraw @s [{color:'red',text:'The Graves data pack detected that your inventory dropped (if there was anything to drop) at ('},{storage:'graves:main',nbt:'creation.inventory_pos_ints.x'},', ',{storage:'graves:main',nbt:'creation.inventory_pos_ints.y'},', ',{storage:'graves:main',nbt:'creation.inventory_pos_ints.z'},') in ',{storage:'graves:main',nbt:'creation.grave_listing.dimension'},", but your loot table data wasn't found.\n\nThis is likely an incompatibility. We can help solve this for you in our data pack help channel:\n",{underlined:true,text:'https://vanillatweaks.net/discord',hover_event:{action:'show_text',value:'Click to open URL.'},click_event:{action:'open_url',url:'https://vanillatweaks.net/discord'}}] \ No newline at end of file diff --git a/datapacks/graves/overlay_71/data/graves/function/creation/initialize_grave.mcfunction b/datapacks/graves/overlay_71/data/graves/function/creation/initialize_grave.mcfunction new file mode 100755 index 0000000..f9b2b9e --- /dev/null +++ b/datapacks/graves/overlay_71/data/graves/function/creation/initialize_grave.mcfunction @@ -0,0 +1,27 @@ +data merge entity @s {Tags:['graves.grave','graves.grave.initializing'],transformation:{translation:[0.0f,0.3125f,0.0f],scale:[0.625f,0.625f,0.625f],right_rotation:[0.0f,0.0f,0.0f,1.0f],left_rotation:[0.0f,0.0f,0.0f,1.0f]},item:{id:'minecraft:stone_brick_wall',components:{"minecraft:item_name":'Grave Model',"minecraft:rarity":'epic',"minecraft:lore":[{italic:false,color:'gold',text:"If you see this item, the Graves data pack isn't working properly!"},{italic:false,color:'gold',text:'This is likely an incompatibility. We can help solve this for you in our data pack help channel:'},{italic:false,color:'yellow',text:'https://vanillatweaks.net/discord'}]}},item_display:'head',teleport_duration:1} +execute if data storage graves:main creation.items[0] run data modify entity @s item.components."minecraft:bundle_contents" set from storage graves:main creation.items +item modify entity @s contents [{"function":"minecraft:set_components","components":{"!minecraft:custom_name":{}}},{"function":"minecraft:copy_custom_data","source":{"type":"storage","source":"graves:main"},"ops":[{"op":"replace","source":"creation.grave","target":"graves"},{"op":"replace","source":"creation.grave_item.owner_uuid","target":"graves.owner_uuid"},{"op":"replace","source":"creation.grave_item.pre_death_inventory","target":"graves.pre_death_inventory"},{"op":"replace","source":"creation.grave_item.pre_death_equipment","target":"graves.pre_death_equipment"},{"op":"replace","source":"creation.found_drops_late","target":"graves.found_drops_late"}]}] +rotate @s ~90 0 +function graves:face_cardinal_direction +summon minecraft:interaction ~ ~ ~ {Tags:['graves.grave','graves.non_grave_repelling','graves.grave.initializing'],width:0.75f,height:0.75f,response:1b} +execute summon minecraft:text_display run function graves:creation/initialize_grave_name_tag +ride @e[type=minecraft:interaction,tag=graves.grave.initializing,distance=..0.01,limit=1] mount @s +execute on passengers run tag @s remove graves.grave.initializing +function graves:placement/start +data modify storage graves:main creation.grave_entity set from entity @s +data modify storage graves:main creation.grave_listing.uuid set from storage graves:main creation.grave_entity.UUID +data modify storage graves:main creation.grave_listing.pos set from storage graves:main creation.grave_entity.Pos +execute store result storage graves:main creation.grave_listing.item_count int 1.0 run data get storage graves:main creation.items +data modify storage graves:main creation.grave_listing.xp_points set from storage graves:main creation.grave.xp_points +data remove storage graves:main creation.grave_listing.loading +data modify storage graves:main creation.macro_args set from storage graves:main creation.target_grave_item +data modify storage graves:main creation.macro_args.dimension set from storage graves:main creation.grave_listing.dimension +data modify storage graves:main creation.macro_args.x set from storage graves:main creation.grave_listing.pos[0] +data modify storage graves:main creation.macro_args.y set from storage graves:main creation.grave_listing.pos[1] +data modify storage graves:main creation.macro_args.z set from storage graves:main creation.grave_listing.pos[2] +execute store result storage graves:main creation.macro_args.x_int int 1.0 run data get storage graves:main creation.grave_listing.pos[0] +execute store result storage graves:main creation.macro_args.y_int int 1.0 run data get storage graves:main creation.grave_listing.pos[1] +execute store result storage graves:main creation.macro_args.z_int int 1.0 run data get storage graves:main creation.grave_listing.pos[2] +function graves:creation/update_grave_listing with storage graves:main creation.macro_args +execute if data storage graves:config {allow_locating:1b} summon minecraft:interaction run function graves:creation/show_new_grave_location +tag @s remove graves.grave.initializing \ No newline at end of file diff --git a/datapacks/graves/overlay_71/data/graves/function/creation/initialize_grave_name_tag.mcfunction b/datapacks/graves/overlay_71/data/graves/function/creation/initialize_grave_name_tag.mcfunction new file mode 100755 index 0000000..1a124ab --- /dev/null +++ b/datapacks/graves/overlay_71/data/graves/function/creation/initialize_grave_name_tag.mcfunction @@ -0,0 +1,3 @@ +data modify entity @s text set value {storage:'graves:main',nbt:'creation.owner_name',interpret:true} +data modify entity @e[type=minecraft:interaction,tag=graves.grave.initializing,distance=..0.01,limit=1] CustomName set from entity @s text +kill @s \ No newline at end of file diff --git a/datapacks/graves/overlay_71/data/graves/function/creation/items/check_for_missing_pre_death_items.mcfunction b/datapacks/graves/overlay_71/data/graves/function/creation/items/check_for_missing_pre_death_items.mcfunction new file mode 100755 index 0000000..c54ed00 --- /dev/null +++ b/datapacks/graves/overlay_71/data/graves/function/creation/items/check_for_missing_pre_death_items.mcfunction @@ -0,0 +1,8 @@ +execute store result score $missing_pre_death_item_count graves.dummy run data get storage graves:main creation.grave_item.pre_death_inventory +execute store result score $missing_pre_death_equipment_count graves.dummy run data get storage graves:main creation.grave_item.pre_death_equipment +scoreboard players operation $missing_pre_death_item_count graves.dummy += $missing_pre_death_equipment_count graves.dummy +execute store result score $saved_pre_death_item_count graves.dummy run data get storage graves:main creation.items +scoreboard players operation $saved_pre_death_item_count graves.dummy -= $non_pre_death_item_count graves.dummy +execute store result storage graves:main creation.grave.missing_pre_death_item_count int 1.0 run scoreboard players operation $missing_pre_death_item_count graves.dummy -= $saved_pre_death_item_count graves.dummy +execute if score $missing_pre_death_item_count graves.dummy matches 0 run return fail +execute summon minecraft:interaction run function graves:creation/items/warn_of_missing_pre_death_items \ No newline at end of file diff --git a/datapacks/graves/overlay_71/data/graves/function/creation/items/get_pre_death_item_slot.mcfunction b/datapacks/graves/overlay_71/data/graves/function/creation/items/get_pre_death_item_slot.mcfunction new file mode 100755 index 0000000..a79ef74 --- /dev/null +++ b/datapacks/graves/overlay_71/data/graves/function/creation/items/get_pre_death_item_slot.mcfunction @@ -0,0 +1,2 @@ +$data modify storage graves:main creation.item.slot set from storage graves:main creation.pre_death_items[{index: $(pre_death_index)}].slot +$data remove storage graves:main creation.pre_death_items[{index: $(pre_death_index)}] \ No newline at end of file diff --git a/datapacks/graves/overlay_71/data/graves/function/creation/items/save_pre_death_equipment_item_slot/chest.mcfunction b/datapacks/graves/overlay_71/data/graves/function/creation/items/save_pre_death_equipment_item_slot/chest.mcfunction new file mode 100755 index 0000000..7aacf12 --- /dev/null +++ b/datapacks/graves/overlay_71/data/graves/function/creation/items/save_pre_death_equipment_item_slot/chest.mcfunction @@ -0,0 +1,4 @@ +execute store result storage graves:main creation.pre_death_item_index int 1.0 run data get storage graves:main creation.pre_death_items +data modify storage graves:main creation.pre_death_items append value {slot:'armor.chest'} +data modify storage graves:main creation.pre_death_items[-1].index set from storage graves:main creation.pre_death_item_index +data modify storage graves:main creation.pre_death_items[-1].value set from storage graves:main creation.pre_death_equipment.chest \ No newline at end of file diff --git a/datapacks/graves/overlay_71/data/graves/function/creation/items/save_pre_death_equipment_item_slot/feet.mcfunction b/datapacks/graves/overlay_71/data/graves/function/creation/items/save_pre_death_equipment_item_slot/feet.mcfunction new file mode 100755 index 0000000..9565d66 --- /dev/null +++ b/datapacks/graves/overlay_71/data/graves/function/creation/items/save_pre_death_equipment_item_slot/feet.mcfunction @@ -0,0 +1,4 @@ +execute store result storage graves:main creation.pre_death_item_index int 1.0 run data get storage graves:main creation.pre_death_items +data modify storage graves:main creation.pre_death_items append value {slot:'armor.feet'} +data modify storage graves:main creation.pre_death_items[-1].index set from storage graves:main creation.pre_death_item_index +data modify storage graves:main creation.pre_death_items[-1].value set from storage graves:main creation.pre_death_equipment.feet \ No newline at end of file diff --git a/datapacks/graves/overlay_71/data/graves/function/creation/items/save_pre_death_equipment_item_slot/head.mcfunction b/datapacks/graves/overlay_71/data/graves/function/creation/items/save_pre_death_equipment_item_slot/head.mcfunction new file mode 100755 index 0000000..10f2dd3 --- /dev/null +++ b/datapacks/graves/overlay_71/data/graves/function/creation/items/save_pre_death_equipment_item_slot/head.mcfunction @@ -0,0 +1,4 @@ +execute store result storage graves:main creation.pre_death_item_index int 1.0 run data get storage graves:main creation.pre_death_items +data modify storage graves:main creation.pre_death_items append value {slot:'armor.head'} +data modify storage graves:main creation.pre_death_items[-1].index set from storage graves:main creation.pre_death_item_index +data modify storage graves:main creation.pre_death_items[-1].value set from storage graves:main creation.pre_death_equipment.head \ No newline at end of file diff --git a/datapacks/graves/overlay_71/data/graves/function/creation/items/save_pre_death_equipment_item_slot/legs.mcfunction b/datapacks/graves/overlay_71/data/graves/function/creation/items/save_pre_death_equipment_item_slot/legs.mcfunction new file mode 100755 index 0000000..e76d701 --- /dev/null +++ b/datapacks/graves/overlay_71/data/graves/function/creation/items/save_pre_death_equipment_item_slot/legs.mcfunction @@ -0,0 +1,4 @@ +execute store result storage graves:main creation.pre_death_item_index int 1.0 run data get storage graves:main creation.pre_death_items +data modify storage graves:main creation.pre_death_items append value {slot:'armor.legs'} +data modify storage graves:main creation.pre_death_items[-1].index set from storage graves:main creation.pre_death_item_index +data modify storage graves:main creation.pre_death_items[-1].value set from storage graves:main creation.pre_death_equipment.legs \ No newline at end of file diff --git a/datapacks/graves/overlay_71/data/graves/function/creation/items/save_pre_death_equipment_item_slot/offhand.mcfunction b/datapacks/graves/overlay_71/data/graves/function/creation/items/save_pre_death_equipment_item_slot/offhand.mcfunction new file mode 100755 index 0000000..8a40549 --- /dev/null +++ b/datapacks/graves/overlay_71/data/graves/function/creation/items/save_pre_death_equipment_item_slot/offhand.mcfunction @@ -0,0 +1,4 @@ +execute store result storage graves:main creation.pre_death_item_index int 1.0 run data get storage graves:main creation.pre_death_items +data modify storage graves:main creation.pre_death_items append value {slot:'weapon.offhand'} +data modify storage graves:main creation.pre_death_items[-1].index set from storage graves:main creation.pre_death_item_index +data modify storage graves:main creation.pre_death_items[-1].value set from storage graves:main creation.pre_death_equipment.offhand \ No newline at end of file diff --git a/datapacks/graves/overlay_71/data/graves/function/creation/items/warn_of_missing_pre_death_items.mcfunction b/datapacks/graves/overlay_71/data/graves/function/creation/items/warn_of_missing_pre_death_items.mcfunction new file mode 100755 index 0000000..4035071 --- /dev/null +++ b/datapacks/graves/overlay_71/data/graves/function/creation/items/warn_of_missing_pre_death_items.mcfunction @@ -0,0 +1,6 @@ +data modify entity @s interaction set value {player:[I;0,0,0,0],timestamp:0L} +data modify entity @s interaction.player set from storage graves:main creation.target_grave_item.owner_uuid +kill @s +execute if data storage graves:config {allow_locating:0b} on target run return run tellraw @s [{color:'red',text:"Your inventory dropped, but due to a rare Minecraft quirk, the Graves data pack detected it couldn't pick up at most "},{score:{name:'$missing_pre_death_item_count',objective:'graves.dummy'}},' of your items.\n\nIf your grave is missing items, there may be an incompatibility, and we can help you in our data pack help channel:\n',{underlined:true,text:'https://vanillatweaks.net/discord',hover_event:{action:'show_text',value:'Click to open URL.'},click_event:{action:'open_url',url:'https://vanillatweaks.net/discord'}}] +function graves:creation/convert_inventory_pos_to_ints +execute on target run tellraw @s [{color:'red',text:'Your inventory dropped at ('},{storage:'graves:main',nbt:'creation.inventory_pos_ints.x'},', ',{storage:'graves:main',nbt:'creation.inventory_pos_ints.y'},', ',{storage:'graves:main',nbt:'creation.inventory_pos_ints.z'},') in ',{storage:'graves:main',nbt:'creation.grave_listing.dimension'},', but due to a rare Minecraft quirk, the Graves data pack detected it may have missed at most ',{score:{name:'$missing_pre_death_item_count',objective:'graves.dummy'}},' of your item slots.\n\nIf your grave is missing items, there may be an incompatibility, and we can help you in our data pack help channel:\n',{underlined:true,text:'https://vanillatweaks.net/discord',hover_event:{action:'show_text',value:'Click to open URL.'},click_event:{action:'open_url',url:'https://vanillatweaks.net/discord'}}] \ No newline at end of file diff --git a/datapacks/graves/overlay_71/data/graves/function/creation/show_new_grave_location.mcfunction b/datapacks/graves/overlay_71/data/graves/function/creation/show_new_grave_location.mcfunction new file mode 100755 index 0000000..3b8212b --- /dev/null +++ b/datapacks/graves/overlay_71/data/graves/function/creation/show_new_grave_location.mcfunction @@ -0,0 +1,4 @@ +data modify entity @s interaction set value {player:[I;0,0,0,0],timestamp:0L} +data modify entity @s interaction.player set from storage graves:main creation.grave_item.owner_uuid +kill @s +execute on target run tellraw @s [{text:'Your last grave is at ',color:'gold'},{storage:'graves:main',nbt:'creation.grave_listing.location_text',interpret:true},'. Enter ',{color:'yellow',text:'/trigger graves',hover_event:{action:'show_text',value:'Click to run command.'},click_event:{action:'run_command',command:'trigger graves'}},' to list all your graves.'] \ No newline at end of file diff --git a/datapacks/graves/overlay_71/data/graves/function/creation/update_grave_listing.mcfunction b/datapacks/graves/overlay_71/data/graves/function/creation/update_grave_listing.mcfunction new file mode 100755 index 0000000..e43ece9 --- /dev/null +++ b/datapacks/graves/overlay_71/data/graves/function/creation/update_grave_listing.mcfunction @@ -0,0 +1,4 @@ +$execute if data storage graves:const dimension_names."$(dimension)" run data modify storage graves:main creation.grave_listing.location_text set value ["",{"color":"yellow","text":"($(x_int), $(y_int), $(z_int))","hover_event":{"action":"show_text","value":"Click to teleport."},"click_event":{"action":"suggest_command","command":"/execute in $(dimension) run tp @s $(x) $(y) $(z)"}},[{"color":"gold","text":" in "},{"storage":"graves:const","nbt":"dimension_names.'$(dimension)'"}]] +$execute unless data storage graves:const dimension_names."$(dimension)" run data modify storage graves:main creation.grave_listing.location_text set value ["",{"color":"yellow","text":"($(x_int), $(y_int), $(z_int))","hover_event":{"action":"show_text","value":"Click to teleport."},"click_event":{"action":"suggest_command","command":"/execute in $(dimension) run tp @s $(x) $(y) $(z)"}},{"color":"gold","text":" in $(dimension)"}] +$data modify storage graves:main players[{uuid: $(owner_uuid)}].graves[{loading: {tick_id: $(tick_id)}}] set from storage graves:main creation.grave_listing +$data modify storage graves:main players[{uuid: $(owner_uuid)}].name set from storage graves:main creation.owner_name \ No newline at end of file diff --git a/datapacks/graves/overlay_71/data/graves/function/destruction/destroy_grave.mcfunction b/datapacks/graves/overlay_71/data/graves/function/destruction/destroy_grave.mcfunction new file mode 100755 index 0000000..4721950 --- /dev/null +++ b/datapacks/graves/overlay_71/data/graves/function/destruction/destroy_grave.mcfunction @@ -0,0 +1,8 @@ +playsound minecraft:block.stone.break block @a +particle minecraft:poof ~ ~0.3125 ~ 0 0 0 0.05 10 +execute if data storage graves:main destruction.name_tag_uuid summon minecraft:snowball run function graves:opening/kill_name_tag +execute on vehicle run kill @s +kill @s +$data remove storage graves:main players[{uuid: $(owner_uuid)}].graves[{uuid: $(grave_uuid)}] +data remove storage graves:main players[{graves:[]}] +data remove storage graves:main destruction \ No newline at end of file diff --git a/datapacks/graves/overlay_71/data/graves/function/give_grave_key.mcfunction b/datapacks/graves/overlay_71/data/graves/function/give_grave_key.mcfunction new file mode 100755 index 0000000..75e8bb6 --- /dev/null +++ b/datapacks/graves/overlay_71/data/graves/function/give_grave_key.mcfunction @@ -0,0 +1 @@ +give @s minecraft:tripwire_hook[minecraft:custom_data={graves:{grave_key:1b}},minecraft:item_name='Grave Key',minecraft:rarity='epic',minecraft:lore=[{italic:false,color:'gold',text:"Use this to forcibly open anyone's grave."}],minecraft:enchantment_glint_override=true] \ No newline at end of file diff --git a/datapacks/graves/overlay_71/data/graves/function/load.mcfunction b/datapacks/graves/overlay_71/data/graves/function/load.mcfunction new file mode 100755 index 0000000..e5c6e53 --- /dev/null +++ b/datapacks/graves/overlay_71/data/graves/function/load.mcfunction @@ -0,0 +1,20 @@ +scoreboard objectives add graves.config dummy +scoreboard objectives add graves.dummy dummy +scoreboard objectives add graves.deaths minecraft.custom:minecraft.deaths +scoreboard objectives add graves.shaking_ticks_left dummy +scoreboard objectives add graves.age_seconds dummy +scoreboard objectives add graves trigger 'List Graves' +scoreboard players reset * graves +data modify storage graves:const slots set value {0:'container.0',1:'container.1',2:'container.2',3:'container.3',4:'container.4',5:'container.5',6:'container.6',7:'container.7',8:'container.8',9:'container.9',10:'container.10',11:'container.11',12:'container.12',13:'container.13',14:'container.14',15:'container.15',16:'container.16',17:'container.17',18:'container.18',19:'container.19',20:'container.20',21:'container.21',22:'container.22',23:'container.23',24:'container.24',25:'container.25',26:'container.26',27:'container.27',28:'container.28',29:'container.29',30:'container.30',31:'container.31',32:'container.32',33:'container.33',34:'container.34',35:'container.35'} +data modify storage graves:const dimension_names set value {"minecraft:overworld":'the Overworld',"minecraft:the_nether":'the Nether',"minecraft:the_end":'the End'} +scoreboard players set $TICKS_PER_HOUR graves.dummy 72000 +execute unless data storage graves:config allow_robbing run data modify storage graves:config allow_robbing set value false +execute unless data storage graves:config pick_up_xp run data modify storage graves:config pick_up_xp set value true +execute unless data storage graves:config allow_locating run function graves:reset_allow_locating +execute unless data storage graves:config compatibility_mode run data modify storage graves:config compatibility_mode set value false +scoreboard players add $despawn_seconds graves.config 0 +scoreboard players reset * graves.deaths +execute store result score $tick_id graves.dummy store result storage graves:main tick_id int 1.0 run data get storage graves:main tick_id +execute unless data storage graves:main players run data modify storage graves:main players set value [] +schedule function graves:schedule_1s 10 +function graves:update_allow_locating \ No newline at end of file diff --git a/datapacks/graves/overlay_71/data/graves/function/location/show_grave.mcfunction b/datapacks/graves/overlay_71/data/graves/function/location/show_grave.mcfunction new file mode 100755 index 0000000..bb5e5b5 --- /dev/null +++ b/datapacks/graves/overlay_71/data/graves/function/location/show_grave.mcfunction @@ -0,0 +1,9 @@ +execute store result score $death_gametime graves.dummy run data get storage graves:main location.grave_listing.death_gametime +execute store result score $ticks_since_death graves.dummy run time query gametime +execute store result storage graves:main location.hours_ago int 0.00001388888888888889 run scoreboard players operation $ticks_since_death graves.dummy -= $death_gametime graves.dummy +execute store result storage graves:main location.minutes_ago int 0.0008333333333333334 run scoreboard players operation $ticks_since_death graves.dummy %= $TICKS_PER_HOUR graves.dummy +execute unless data storage graves:main location{hours_ago:0} run data modify storage graves:main location.time_since_death_texts append value [{storage:'graves:main',nbt:'location.hours_ago'},'h'] +execute unless data storage graves:main location{minutes_ago:0} run data modify storage graves:main location.time_since_death_texts append value [{storage:'graves:main',nbt:'location.minutes_ago'},'m'] +execute unless data storage graves:main location.time_since_death_texts run data modify storage graves:main location.time_since_death_texts set value ['0m'] +tellraw @s [{storage:'graves:main',nbt:'location.grave_listing_indent'},{storage:'graves:main',nbt:'location.grave_listing.location_text',interpret:true},[{italic:true,color:'gray',text:' - '},[{storage:'graves:main',nbt:'location.time_since_death_texts[]',interpret:true,hover_event:{action:'show_text',value:{italic:true,text:"(excluding when world isn't open)"}}},' ago'],' ',{color:'dark_purple',text:'(more)',hover_event:{action:'show_text',value:['',{text:'Item slots: ',color:'gray'},{storage:'graves:main',nbt:'location.grave_listing.item_count'},{text:'\nXP points: ',color:'gray'},{storage:'graves:main',nbt:'location.grave_listing.xp_points'}]}}]] +data remove storage graves:main location.time_since_death_texts \ No newline at end of file diff --git a/datapacks/graves/overlay_71/data/graves/function/location/show_graves/all.mcfunction b/datapacks/graves/overlay_71/data/graves/function/location/show_graves/all.mcfunction new file mode 100755 index 0000000..d0e5c00 --- /dev/null +++ b/datapacks/graves/overlay_71/data/graves/function/location/show_graves/all.mcfunction @@ -0,0 +1,32 @@ +execute store result score $max_listing_number graves.dummy run data get storage graves:main location.graves +execute if score $first_listing_number graves.dummy > $max_listing_number graves.dummy run return run tellraw @s [{color:'red',text:'Page number '},{storage:'graves:main',nbt:'location.page_number'},' is too large.'] +scoreboard players operation $last_listing_number graves.dummy < $max_listing_number graves.dummy +data modify storage graves:main location.previous_link_text set value [' ',{text:' ',bold:true}] +$execute unless data storage graves:main location{previous_page_number: 0} run data modify storage graves:main location.previous_link_text set value {"color":"gold","text":" < Previous ","hover_event":{"action":"show_text","value":[{"color":"gray","text":"Click to run "},{"color":"white","text":"function graves:list_page {page: $(previous_page_number)}"},"."]},"click_event":{"action":"run_command","command":"function graves:list_page {page: $(previous_page_number)}"}} +$execute unless score $last_listing_number graves.dummy = $max_listing_number graves.dummy run data modify storage graves:main location.next_link_text set value [[" ",{"text":" ","bold":true}],{"color":"gold","text":" Next > ","hover_event":{"action":"show_text","value":[{"color":"gray","text":"Click to run "},{"color":"white","text":"function graves:list_page {page: $(next_page_number)}"},"."]},"click_event":{"action":"run_command","command":"function graves:list_page {page: $(next_page_number)}"}}] +tellraw @s ['',{color:'dark_gray',strikethrough:true,text:' '},'\n',{storage:'graves:main',nbt:'location.previous_link_text',interpret:true},[' ',{text:' ',bold:true}],'All Graves',[{color:'gray',text:' ('},{score:{name:'$first_listing_number',objective:'graves.dummy'}},'-',{score:{name:'$last_listing_number',objective:'graves.dummy'}},' of ',{score:{name:'$max_listing_number',objective:'graves.dummy'}},')'],{storage:'graves:main',nbt:'location.next_link_text',interpret:true},'\n',{color:'dark_gray',strikethrough:true,text:' '}] +data modify storage graves:main location.grave_listing_indent set value ' ' +$data modify storage graves:main location.grave_listing set from storage graves:main location.graves[-$(listing_number_0)] +function graves:location/show_grave_owner_maybe +function graves:location/show_grave +data remove storage graves:main location.grave_listing +$data modify storage graves:main location.grave_listing set from storage graves:main location.graves[-$(listing_number_1)] +execute unless data storage graves:main location.grave_listing run return run tellraw @s {color:'dark_gray',strikethrough:true,text:' '} +function graves:location/show_grave_owner_maybe +function graves:location/show_grave +data remove storage graves:main location.grave_listing +$data modify storage graves:main location.grave_listing set from storage graves:main location.graves[-$(listing_number_2)] +execute unless data storage graves:main location.grave_listing run return run tellraw @s {color:'dark_gray',strikethrough:true,text:' '} +function graves:location/show_grave_owner_maybe +function graves:location/show_grave +data remove storage graves:main location.grave_listing +$data modify storage graves:main location.grave_listing set from storage graves:main location.graves[-$(listing_number_3)] +execute unless data storage graves:main location.grave_listing run return run tellraw @s {color:'dark_gray',strikethrough:true,text:' '} +function graves:location/show_grave_owner_maybe +function graves:location/show_grave +data remove storage graves:main location.grave_listing +$data modify storage graves:main location.grave_listing set from storage graves:main location.graves[-$(listing_number_4)] +execute unless data storage graves:main location.grave_listing run return run tellraw @s {color:'dark_gray',strikethrough:true,text:' '} +function graves:location/show_grave_owner_maybe +function graves:location/show_grave +tellraw @s {color:'dark_gray',strikethrough:true,text:' '} \ No newline at end of file diff --git a/datapacks/graves/overlay_71/data/graves/function/location/show_graves/self.mcfunction b/datapacks/graves/overlay_71/data/graves/function/location/show_graves/self.mcfunction new file mode 100755 index 0000000..f1cd24b --- /dev/null +++ b/datapacks/graves/overlay_71/data/graves/function/location/show_graves/self.mcfunction @@ -0,0 +1,28 @@ +$data modify storage graves:main location.graves set from storage graves:main players[{uuid: $(player_uuid)}].graves +execute store result score $max_listing_number graves.dummy run data get storage graves:main location.graves +execute if score $max_listing_number graves.dummy matches 0 run return run tellraw @s {color:'red',text:"You don't have any graves."} +execute if score $first_listing_number graves.dummy > $max_listing_number graves.dummy run return run tellraw @s [{color:'red',text:'Page number '},{storage:'graves:main',nbt:'location.page_number'},' is too large.'] +scoreboard players operation $last_listing_number graves.dummy < $max_listing_number graves.dummy +data modify storage graves:main location.previous_link_text set value [' ',{text:' ',bold:true}] +$execute unless data storage graves:main location{previous_page_number: 0} run data modify storage graves:main location.previous_link_text set value {"color":"gold","text":" < Previous ","hover_event":{"action":"show_text","value":[{"color":"gray","text":"Click to run "},{"color":"white","text":"trigger graves set $(previous_page_number)"},"."]},"click_event":{"action":"run_command","command":"trigger graves set $(previous_page_number)"}} +$execute unless score $last_listing_number graves.dummy = $max_listing_number graves.dummy run data modify storage graves:main location.next_link_text set value [" ",{"color":"gold","text":" Next > ","hover_event":{"action":"show_text","value":[{"color":"gray","text":"Click to run "},{"color":"white","text":"trigger graves set $(next_page_number)"},"."]},"click_event":{"action":"run_command","command":"trigger graves set $(next_page_number)"}}] +tellraw @s ['',{color:'dark_gray',strikethrough:true,text:' '},'\n',{storage:'graves:main',nbt:'location.previous_link_text',interpret:true},' ','Your Graves',[{color:'gray',text:' ('},{score:{name:'$first_listing_number',objective:'graves.dummy'}},'-',{score:{name:'$last_listing_number',objective:'graves.dummy'}},' of ',{score:{name:'$max_listing_number',objective:'graves.dummy'}},')'],{storage:'graves:main',nbt:'location.next_link_text',interpret:true},'\n',{color:'dark_gray',strikethrough:true,text:' '}] +$data modify storage graves:main location.grave_listing set from storage graves:main location.graves[-$(listing_number_0)] +function graves:location/show_grave +data remove storage graves:main location.grave_listing +$data modify storage graves:main location.grave_listing set from storage graves:main location.graves[-$(listing_number_1)] +execute unless data storage graves:main location.grave_listing run return run tellraw @s {color:'dark_gray',strikethrough:true,text:' '} +function graves:location/show_grave +data remove storage graves:main location.grave_listing +$data modify storage graves:main location.grave_listing set from storage graves:main location.graves[-$(listing_number_2)] +execute unless data storage graves:main location.grave_listing run return run tellraw @s {color:'dark_gray',strikethrough:true,text:' '} +function graves:location/show_grave +data remove storage graves:main location.grave_listing +$data modify storage graves:main location.grave_listing set from storage graves:main location.graves[-$(listing_number_3)] +execute unless data storage graves:main location.grave_listing run return run tellraw @s {color:'dark_gray',strikethrough:true,text:' '} +function graves:location/show_grave +data remove storage graves:main location.grave_listing +$data modify storage graves:main location.grave_listing set from storage graves:main location.graves[-$(listing_number_4)] +execute unless data storage graves:main location.grave_listing run return run tellraw @s {color:'dark_gray',strikethrough:true,text:' '} +function graves:location/show_grave +tellraw @s {color:'dark_gray',strikethrough:true,text:' '} \ No newline at end of file diff --git a/datapacks/graves/overlay_71/data/graves/function/opening/items/check_for_missing_pre_death_items.mcfunction b/datapacks/graves/overlay_71/data/graves/function/opening/items/check_for_missing_pre_death_items.mcfunction new file mode 100755 index 0000000..312479b --- /dev/null +++ b/datapacks/graves/overlay_71/data/graves/function/opening/items/check_for_missing_pre_death_items.mcfunction @@ -0,0 +1,3 @@ +execute unless data storage graves:main opening.missing_pre_death_item_count run return fail +execute if data storage graves:main opening{missing_pre_death_item_count:0} run return fail +tellraw @s [{color:'red',text:"Due to a rare Minecraft quirk, the Graves data pack detected the grave you opened couldn't pick up at most "},{storage:'graves:main',nbt:'opening.missing_pre_death_item_count'},' of the item slots originally dropped on death.\n\nIf this grave was missing items, there may be an incompatibility, and we can help you in our data pack help channel:\n',{underlined:true,text:'https://vanillatweaks.net/discord',hover_event:{action:'show_text',value:'Click to open URL.'},click_event:{action:'open_url',url:'https://vanillatweaks.net/discord'}}] \ No newline at end of file diff --git a/datapacks/graves/overlay_71/data/graves/loot_table/entities/player.json b/datapacks/graves/overlay_71/data/graves/loot_table/entities/player.json new file mode 100755 index 0000000..d57e621 --- /dev/null +++ b/datapacks/graves/overlay_71/data/graves/loot_table/entities/player.json @@ -0,0 +1 @@ +{"pools":[{"rolls":1,"entries":[{"type":"minecraft:item","name":"minecraft:stone_brick_wall","functions":[{"function":"minecraft:set_components","components":{"minecraft:custom_data":{"graves":{"grave":true}},"minecraft:item_name":"Grave","minecraft:rarity":"epic","minecraft:damage_resistant":{"types":"#minecraft:is_fire"}}},{"function":"minecraft:set_lore","mode":"replace_all","entity":"this","lore":[{"selector":"@s"},"",{"italic":false,"color":"gold","text":"If you see this item, the Graves data pack couldn't detect your death properly!"},{"italic":false,"color":"gold","text":"This is likely an incompatibility."},{"italic":false,"color":"gold","text":"We can help solve this for you in our data pack help channel:"},{"italic":false,"color":"yellow","text":"https://vanillatweaks.net/discord"}]},{"function":"minecraft:copy_custom_data","source":"this","ops":[{"op":"replace","target":"graves.owner_uuid","source":"UUID"},{"op":"replace","target":"graves.pre_death_inventory","source":"Inventory"},{"op":"replace","target":"graves.pre_death_equipment","source":"equipment"}]},{"function":"minecraft:copy_custom_data","source":{"type":"storage","source":"graves:main"},"ops":[{"op":"replace","source":"tick_id","target":"graves.tick_id"}]}]}]}]} \ No newline at end of file diff --git a/datapacks/graves/overlay_71/data/graves/tags/block/grave_attracting.json b/datapacks/graves/overlay_71/data/graves/tags/block/grave_attracting.json new file mode 100755 index 0000000..0fbfbdd --- /dev/null +++ b/datapacks/graves/overlay_71/data/graves/tags/block/grave_attracting.json @@ -0,0 +1 @@ +{"values":["#graves:grave_stopping_on_top","#graves:grave_stopping_on_bottom","#minecraft:banners","#minecraft:buttons","#minecraft:cave_vines","#minecraft:ceiling_hanging_signs","#minecraft:climbable","#minecraft:corals","#minecraft:crops","#minecraft:doors","#minecraft:fence_gates","#minecraft:maintains_farmland","#minecraft:pressure_plates","#minecraft:rails","#minecraft:replaceable","#minecraft:saplings","#minecraft:signs","#minecraft:small_flowers","#minecraft:wall_corals","minecraft:amethyst_cluster","minecraft:bamboo_sapling","minecraft:big_dripleaf","minecraft:big_dripleaf_stem","minecraft:brown_mushroom","minecraft:cactus_flower","minecraft:cobweb","minecraft:comparator","minecraft:crimson_fungus","minecraft:dead_brain_coral","minecraft:dead_brain_coral_fan","minecraft:dead_brain_coral_wall_fan","minecraft:dead_bubble_coral","minecraft:dead_bubble_coral_fan","minecraft:dead_bubble_coral_wall_fan","minecraft:dead_fire_coral","minecraft:dead_fire_coral_fan","minecraft:dead_fire_coral_wall_fan","minecraft:dead_horn_coral","minecraft:dead_horn_coral_fan","minecraft:dead_horn_coral_wall_fan","minecraft:dead_tube_coral","minecraft:dead_tube_coral_fan","minecraft:dead_tube_coral_wall_fan","minecraft:firefly_bush","minecraft:frogspawn","minecraft:kelp","minecraft:kelp_plant","minecraft:large_amethyst_bud","minecraft:lever","minecraft:lilac","minecraft:medium_amethyst_bud","minecraft:nether_portal","minecraft:nether_wart","minecraft:pale_hanging_moss","minecraft:peony","minecraft:pink_petals","minecraft:pitcher_plant","minecraft:powder_snow","minecraft:red_mushroom","minecraft:redstone_torch","minecraft:redstone_wall_torch","minecraft:redstone_wire","minecraft:repeater","minecraft:rose_bush","minecraft:sculk_vein","minecraft:small_amethyst_bud","minecraft:small_dripleaf","minecraft:soul_torch","minecraft:soul_wall_torch","minecraft:spore_blossom","minecraft:sugar_cane","minecraft:sunflower","minecraft:torch","minecraft:tripwire","minecraft:tripwire_hook","minecraft:wall_torch","minecraft:wildflowers"]} \ No newline at end of file diff --git a/datapacks/graves/overlay_71/data/vanillatweaks/advancement/root.json b/datapacks/graves/overlay_71/data/vanillatweaks/advancement/root.json new file mode 100755 index 0000000..cd6751e --- /dev/null +++ b/datapacks/graves/overlay_71/data/vanillatweaks/advancement/root.json @@ -0,0 +1,38 @@ +{ + "display": { + "icon": { + "id": "minecraft:player_head", + "components": { + "profile": { + "properties": [ + { + "name": "textures", + "value": "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMTg1YzMzNWM1MjVjZGFkY2Q4MmU4MDA4MzU1N2M2OTYzMGRmYjlhMWVkZjU5OTc0YzdmNjU4ZGI1MWEwYTFkOSJ9fX0=" + } + ] + } + } + }, + "title": "Vanilla Tweaks", + "frame": "challenge", + "description": [ + "", + { + "text": "All loaded Vanilla Tweaks data packs\n", + "color": "gold" + }, + { + "text": "vanillatweaks.net", + "color": "yellow" + } + ], + "background": "minecraft:block/black_concrete", + "show_toast": false, + "announce_to_chat": false + }, + "criteria": { + "tick": { + "trigger": "minecraft:tick" + } + } +} \ No newline at end of file diff --git a/datapacks/graves/pack.mcmeta b/datapacks/graves/pack.mcmeta new file mode 100755 index 0000000..ecc7dec --- /dev/null +++ b/datapacks/graves/pack.mcmeta @@ -0,0 +1,44 @@ +{ + "pack": { + "pack_format": 48, + "supported_formats": { + "min_inclusive": 48, + "max_inclusive": 80 + }, + "description": [ + { + "text": "Graves", + "color": "gold" + }, + { + "text": "\nvanillatweaks.net", + "color": "yellow" + } + ] + }, + "overlays": { + "entries": [ + { + "formats": { + "min_inclusive": 57, + "max_inclusive": 2147483647 + }, + "directory": "overlay_57" + }, + { + "formats": { + "min_inclusive": 61, + "max_inclusive": 2147483647 + }, + "directory": "overlay_61" + }, + { + "formats": { + "min_inclusive": 71, + "max_inclusive": 2147483647 + }, + "directory": "overlay_71" + } + ] + } +} \ No newline at end of file diff --git a/datapacks/graves/pack.png b/datapacks/graves/pack.png new file mode 100755 index 0000000..dcb19ee Binary files /dev/null and b/datapacks/graves/pack.png differ diff --git a/datapacks/more-effective-tools/data/minecraft/tags/block/mineable/axe.json b/datapacks/more-effective-tools/data/minecraft/tags/block/mineable/axe.json new file mode 100755 index 0000000..4e4fdca --- /dev/null +++ b/datapacks/more-effective-tools/data/minecraft/tags/block/mineable/axe.json @@ -0,0 +1,8 @@ +{ + "values": [ + "#minecraft:beds", + "#minecraft:candles", + "minecraft:cactus", + "minecraft:honeycomb_block" + ] +} \ No newline at end of file diff --git a/datapacks/more-effective-tools/data/minecraft/tags/block/mineable/hoe.json b/datapacks/more-effective-tools/data/minecraft/tags/block/mineable/hoe.json new file mode 100755 index 0000000..93571b6 --- /dev/null +++ b/datapacks/more-effective-tools/data/minecraft/tags/block/mineable/hoe.json @@ -0,0 +1,5 @@ +{ + "values": [ + "#minecraft:wool_carpets" + ] +} \ No newline at end of file diff --git a/datapacks/more-effective-tools/data/minecraft/tags/block/mineable/pickaxe.json b/datapacks/more-effective-tools/data/minecraft/tags/block/mineable/pickaxe.json new file mode 100755 index 0000000..36477c5 --- /dev/null +++ b/datapacks/more-effective-tools/data/minecraft/tags/block/mineable/pickaxe.json @@ -0,0 +1,62 @@ +{ + "values": [ + "minecraft:beacon", + "minecraft:black_stained_glass_pane", + "minecraft:black_stained_glass", + "minecraft:blue_stained_glass_pane", + "minecraft:blue_stained_glass", + "minecraft:brown_stained_glass_pane", + "minecraft:brown_stained_glass", + "minecraft:creeper_head", + "minecraft:creeper_wall_head", + "minecraft:cyan_stained_glass_pane", + "minecraft:cyan_stained_glass", + "minecraft:dragon_head", + "minecraft:dragon_wall_head", + "minecraft:frosted_ice", + "minecraft:glass_pane", + "minecraft:glass", + "minecraft:glowstone", + "minecraft:gray_stained_glass_pane", + "minecraft:gray_stained_glass", + "minecraft:green_stained_glass_pane", + "minecraft:green_stained_glass", + "minecraft:lever", + "minecraft:light_blue_stained_glass_pane", + "minecraft:light_blue_stained_glass", + "minecraft:light_gray_stained_glass_pane", + "minecraft:light_gray_stained_glass", + "minecraft:lime_stained_glass_pane", + "minecraft:lime_stained_glass", + "minecraft:magenta_stained_glass_pane", + "minecraft:magenta_stained_glass", + "minecraft:ochre_froglight", + "minecraft:orange_stained_glass_pane", + "minecraft:orange_stained_glass", + "minecraft:pearlescent_froglight", + "minecraft:piglin_head", + "minecraft:piglin_wall_head", + "minecraft:pink_stained_glass_pane", + "minecraft:pink_stained_glass", + "minecraft:player_head", + "minecraft:player_wall_head", + "minecraft:purple_stained_glass_pane", + "minecraft:purple_stained_glass", + "minecraft:red_stained_glass_pane", + "minecraft:red_stained_glass", + "minecraft:redstone_lamp", + "minecraft:sea_lantern", + "minecraft:skeleton_skull", + "minecraft:skeleton_wall_skull", + "minecraft:tinted_glass", + "minecraft:verdant_froglight", + "minecraft:white_stained_glass_pane", + "minecraft:white_stained_glass", + "minecraft:wither_skeleton_skull", + "minecraft:wither_skeleton_wall_skull", + "minecraft:yellow_stained_glass_pane", + "minecraft:yellow_stained_glass", + "minecraft:zombie_head", + "minecraft:zombie_wall_head" + ] +} \ No newline at end of file diff --git a/datapacks/more-effective-tools/data/minecraft/tags/block/mineable/shovel.json b/datapacks/more-effective-tools/data/minecraft/tags/block/mineable/shovel.json new file mode 100755 index 0000000..234d577 --- /dev/null +++ b/datapacks/more-effective-tools/data/minecraft/tags/block/mineable/shovel.json @@ -0,0 +1,6 @@ +{ + "values": [ + "#minecraft:candle_cakes", + "minecraft:cake" + ] +} \ No newline at end of file diff --git a/datapacks/more-effective-tools/data/vanillatweaks/advancement/more_effective_tools.json b/datapacks/more-effective-tools/data/vanillatweaks/advancement/more_effective_tools.json new file mode 100755 index 0000000..63233e4 --- /dev/null +++ b/datapacks/more-effective-tools/data/vanillatweaks/advancement/more_effective_tools.json @@ -0,0 +1,17 @@ +{ + "display": { + "icon": { + "id": "minecraft:stone_pickaxe" + }, + "title": "More Effective Tools ", + "description": {"text": "Sets an effective tool for blocks that annoyingly don't have one (e.g. pickaxe for glass, axe for cactus).\n\nThis excludes blocks specifically intended to have no effective tool (e.g. powder snow, reinforced deepslate, vault).", "color": "gold"}, + "show_toast": false, + "announce_to_chat": false + }, + "parent": "vanillatweaks:root", + "criteria": { + "tick": { + "trigger": "minecraft:tick" + } + } +} \ No newline at end of file diff --git a/datapacks/more-effective-tools/data/vanillatweaks/advancement/root.json b/datapacks/more-effective-tools/data/vanillatweaks/advancement/root.json new file mode 100755 index 0000000..962ef9d --- /dev/null +++ b/datapacks/more-effective-tools/data/vanillatweaks/advancement/root.json @@ -0,0 +1,38 @@ +{ + "display": { + "icon": { + "id": "minecraft:player_head", + "components": { + "minecraft:profile": { + "properties": [ + { + "name": "textures", + "value": "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMTg1YzMzNWM1MjVjZGFkY2Q4MmU4MDA4MzU1N2M2OTYzMGRmYjlhMWVkZjU5OTc0YzdmNjU4ZGI1MWEwYTFkOSJ9fX0=" + } + ] + } + } + }, + "title": "Vanilla Tweaks", + "frame": "challenge", + "description": [ + "", + { + "text": "All loaded Vanilla Tweaks data packs\n", + "color": "gold" + }, + { + "text": "vanillatweaks.net", + "color": "yellow" + } + ], + "background": "minecraft:textures/block/black_concrete.png", + "show_toast": false, + "announce_to_chat": false + }, + "criteria": { + "tick": { + "trigger": "minecraft:tick" + } + } +} \ No newline at end of file diff --git a/datapacks/more-effective-tools/overlay_71/data/vanillatweaks/advancement/root.json b/datapacks/more-effective-tools/overlay_71/data/vanillatweaks/advancement/root.json new file mode 100755 index 0000000..ee397ab --- /dev/null +++ b/datapacks/more-effective-tools/overlay_71/data/vanillatweaks/advancement/root.json @@ -0,0 +1,38 @@ +{ + "display": { + "icon": { + "id": "minecraft:player_head", + "components": { + "minecraft:profile": { + "properties": [ + { + "name": "textures", + "value": "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMTg1YzMzNWM1MjVjZGFkY2Q4MmU4MDA4MzU1N2M2OTYzMGRmYjlhMWVkZjU5OTc0YzdmNjU4ZGI1MWEwYTFkOSJ9fX0=" + } + ] + } + } + }, + "title": "Vanilla Tweaks", + "frame": "challenge", + "description": [ + "", + { + "text": "All loaded Vanilla Tweaks data packs\n", + "color": "gold" + }, + { + "text": "vanillatweaks.net", + "color": "yellow" + } + ], + "background": "minecraft:block/black_concrete", + "show_toast": false, + "announce_to_chat": false + }, + "criteria": { + "tick": { + "trigger": "minecraft:tick" + } + } +} \ No newline at end of file diff --git a/datapacks/more-effective-tools/pack.mcmeta b/datapacks/more-effective-tools/pack.mcmeta new file mode 100755 index 0000000..bbfa46c --- /dev/null +++ b/datapacks/more-effective-tools/pack.mcmeta @@ -0,0 +1,30 @@ +{ + "pack": { + "pack_format": 48, + "supported_formats": { + "min_inclusive": 48, + "max_inclusive": 80 + }, + "description": [ + { + "text": "More Effective Tools", + "color": "gold" + }, + { + "text": "\nvanillatweaks.net", + "color": "yellow" + } + ] + }, + "overlays": { + "entries": [ + { + "formats": { + "min_inclusive": 71, + "max_inclusive": 2147483647 + }, + "directory": "overlay_71" + } + ] + } +} \ No newline at end of file diff --git a/datapacks/more-effective-tools/pack.png b/datapacks/more-effective-tools/pack.png new file mode 100755 index 0000000..b13adf3 Binary files /dev/null and b/datapacks/more-effective-tools/pack.png differ diff --git a/datapacks/spectator-night-vision/data/minecraft/tags/function/load.json b/datapacks/spectator-night-vision/data/minecraft/tags/function/load.json new file mode 100755 index 0000000..b00f7ea --- /dev/null +++ b/datapacks/spectator-night-vision/data/minecraft/tags/function/load.json @@ -0,0 +1,6 @@ +{ + "values": [ + "spectator_night_vision:load", + "spectator_night_vision:tick" + ] +} diff --git a/datapacks/spectator-night-vision/data/spectator_night_vision/function/gamemode_change.mcfunction b/datapacks/spectator-night-vision/data/spectator_night_vision/function/gamemode_change.mcfunction new file mode 100755 index 0000000..e29f298 --- /dev/null +++ b/datapacks/spectator-night-vision/data/spectator_night_vision/function/gamemode_change.mcfunction @@ -0,0 +1,9 @@ +# Desc: Sets player into normal state +# +# Called by: spectator_night_vision:tick + +effect clear @s night_vision +scoreboard players set @s snv_toggle -1 +tellraw @s {"text":"Night Vision toggled off due to gamemode change.","color":"red"} +tag @s remove has_night_vision +tag @s add switched_gamemode \ No newline at end of file diff --git a/datapacks/spectator-night-vision/data/spectator_night_vision/function/load.mcfunction b/datapacks/spectator-night-vision/data/spectator_night_vision/function/load.mcfunction new file mode 100755 index 0000000..a293044 --- /dev/null +++ b/datapacks/spectator-night-vision/data/spectator_night_vision/function/load.mcfunction @@ -0,0 +1,9 @@ +# Desc: Initializes all scores within the datapack +# +# Called by: main:tick + +scoreboard objectives add night_vision trigger "toggle §enight vision§r for §espectator§r" + +# Toggle +scoreboard objectives add snv_toggle dummy +scoreboard players set snv_toggle snv_toggle -1 \ No newline at end of file diff --git a/datapacks/spectator-night-vision/data/spectator_night_vision/function/tick.mcfunction b/datapacks/spectator-night-vision/data/spectator_night_vision/function/tick.mcfunction new file mode 100755 index 0000000..c9c7bd2 --- /dev/null +++ b/datapacks/spectator-night-vision/data/spectator_night_vision/function/tick.mcfunction @@ -0,0 +1,30 @@ +# Desc: All commands here run every tick +# +# Called by: main:tick + +schedule function spectator_night_vision:tick 1t + +# Initialise players +# Scores → 0 +scoreboard players add @a night_vision 0 +scoreboard players add @a snv_toggle 0 +# Set toggle to -1 +scoreboard players set @a[scores={snv_toggle=0}] snv_toggle -1 +# Enable trigger +scoreboard players enable @a night_vision + +# Handle gamemode change +execute as @a[gamemode=!spectator,tag=has_night_vision] at @s run function spectator_night_vision:gamemode_change + +# Track player initiating toggle +execute as @a[scores={night_vision=1..}] at @s run tag @s add snv_toggle +execute as @a[scores={night_vision=..-1}] at @s run tag @s add snv_toggle + +# Toggle +execute as @a[tag=snv_toggle,gamemode=spectator] at @s[tag=!switched_gamemode] run function spectator_night_vision:toggle +execute as @a[tag=snv_toggle,gamemode=!spectator] at @s[tag=!switched_gamemode] run tellraw @s {"text": "You may only use that in spectator mode!", "color":"red"} + +# Reset +scoreboard players set @a[tag=snv_toggle] night_vision 0 +tag @a[tag=snv_toggle] remove snv_toggle +tag @a[tag=switched_gamemode] remove switched_gamemode \ No newline at end of file diff --git a/datapacks/spectator-night-vision/data/spectator_night_vision/function/toggle.mcfunction b/datapacks/spectator-night-vision/data/spectator_night_vision/function/toggle.mcfunction new file mode 100755 index 0000000..029806b --- /dev/null +++ b/datapacks/spectator-night-vision/data/spectator_night_vision/function/toggle.mcfunction @@ -0,0 +1,18 @@ +# Desc: Toggles night vision on/off based on toggle value +# +# Called by: spectator_night_vision:tick + +# Multiply by -1 to invert +scoreboard players operation @s snv_toggle *= snv_toggle snv_toggle + +# Tag +tag @s[scores={snv_toggle=1}] add has_night_vision +tag @s[scores={snv_toggle=-1}] remove has_night_vision + +# Apply night vision +effect give @s[scores={snv_toggle=1}] night_vision 1000000 99 true +effect clear @s[scores={snv_toggle=-1}] night_vision + +# Tellraw +tellraw @s[scores={snv_toggle=1}] {"text":"Night Vision toggled on.","color":"yellow"} +tellraw @s[scores={snv_toggle=-1}] {"text":"Night Vision toggled off.","color":"yellow"} \ No newline at end of file diff --git a/datapacks/spectator-night-vision/data/spectator_night_vision/function/uninstall.mcfunction b/datapacks/spectator-night-vision/data/spectator_night_vision/function/uninstall.mcfunction new file mode 100755 index 0000000..58a71af --- /dev/null +++ b/datapacks/spectator-night-vision/data/spectator_night_vision/function/uninstall.mcfunction @@ -0,0 +1,8 @@ +# Desc: Removes all scores within the datapack +# +# Called by: main:uninstall_message + +schedule clear spectator_night_vision:tick + +scoreboard objectives remove night_vision +scoreboard objectives remove snv_toggle \ No newline at end of file diff --git a/datapacks/spectator-night-vision/data/vanillatweaks/advancement/root.json b/datapacks/spectator-night-vision/data/vanillatweaks/advancement/root.json new file mode 100755 index 0000000..962ef9d --- /dev/null +++ b/datapacks/spectator-night-vision/data/vanillatweaks/advancement/root.json @@ -0,0 +1,38 @@ +{ + "display": { + "icon": { + "id": "minecraft:player_head", + "components": { + "minecraft:profile": { + "properties": [ + { + "name": "textures", + "value": "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMTg1YzMzNWM1MjVjZGFkY2Q4MmU4MDA4MzU1N2M2OTYzMGRmYjlhMWVkZjU5OTc0YzdmNjU4ZGI1MWEwYTFkOSJ9fX0=" + } + ] + } + } + }, + "title": "Vanilla Tweaks", + "frame": "challenge", + "description": [ + "", + { + "text": "All loaded Vanilla Tweaks data packs\n", + "color": "gold" + }, + { + "text": "vanillatweaks.net", + "color": "yellow" + } + ], + "background": "minecraft:textures/block/black_concrete.png", + "show_toast": false, + "announce_to_chat": false + }, + "criteria": { + "tick": { + "trigger": "minecraft:tick" + } + } +} \ No newline at end of file diff --git a/datapacks/spectator-night-vision/data/vanillatweaks/advancement/spectator_night_vision.json b/datapacks/spectator-night-vision/data/vanillatweaks/advancement/spectator_night_vision.json new file mode 100755 index 0000000..367d1d3 --- /dev/null +++ b/datapacks/spectator-night-vision/data/vanillatweaks/advancement/spectator_night_vision.json @@ -0,0 +1,38 @@ +{ + "display": { + "icon": { + "id": "minecraft:potion", + "components": { + "minecraft:potion_contents": "minecraft:night_vision" + } + }, + "title": "Spectator Night Vision", + "description": [ + "", + { + "text": "Easily toggle night vision when in spectator.\n", + "color": "gold" + }, + { + "text": "Enter", + "color": "green" + }, + { + "text": " ", + "color": "gold" + }, + { + "text": "/trigger night_vision", + "color": "yellow" + } + ], + "show_toast": false, + "announce_to_chat": false + }, + "parent": "vanillatweaks:root", + "criteria": { + "tick": { + "trigger": "minecraft:tick" + } + } +} \ No newline at end of file diff --git a/datapacks/spectator-night-vision/data/vanillatweaks/tags/function/uninstall.json b/datapacks/spectator-night-vision/data/vanillatweaks/tags/function/uninstall.json new file mode 100755 index 0000000..3d22bcf --- /dev/null +++ b/datapacks/spectator-night-vision/data/vanillatweaks/tags/function/uninstall.json @@ -0,0 +1,5 @@ +{ + "values": [ + "spectator_night_vision:uninstall" + ] +} diff --git a/datapacks/spectator-night-vision/overlay_71/data/vanillatweaks/advancement/root.json b/datapacks/spectator-night-vision/overlay_71/data/vanillatweaks/advancement/root.json new file mode 100755 index 0000000..ee397ab --- /dev/null +++ b/datapacks/spectator-night-vision/overlay_71/data/vanillatweaks/advancement/root.json @@ -0,0 +1,38 @@ +{ + "display": { + "icon": { + "id": "minecraft:player_head", + "components": { + "minecraft:profile": { + "properties": [ + { + "name": "textures", + "value": "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMTg1YzMzNWM1MjVjZGFkY2Q4MmU4MDA4MzU1N2M2OTYzMGRmYjlhMWVkZjU5OTc0YzdmNjU4ZGI1MWEwYTFkOSJ9fX0=" + } + ] + } + } + }, + "title": "Vanilla Tweaks", + "frame": "challenge", + "description": [ + "", + { + "text": "All loaded Vanilla Tweaks data packs\n", + "color": "gold" + }, + { + "text": "vanillatweaks.net", + "color": "yellow" + } + ], + "background": "minecraft:block/black_concrete", + "show_toast": false, + "announce_to_chat": false + }, + "criteria": { + "tick": { + "trigger": "minecraft:tick" + } + } +} \ No newline at end of file diff --git a/datapacks/spectator-night-vision/pack.mcmeta b/datapacks/spectator-night-vision/pack.mcmeta new file mode 100755 index 0000000..7809a0b --- /dev/null +++ b/datapacks/spectator-night-vision/pack.mcmeta @@ -0,0 +1,30 @@ +{ + "pack": { + "pack_format": 48, + "supported_formats": { + "min_inclusive": 48, + "max_inclusive": 80 + }, + "description": [ + { + "text": "Spectator Night Vision", + "color": "gold" + }, + { + "text": "\nvanillatweaks.net", + "color": "yellow" + } + ] + }, + "overlays": { + "entries": [ + { + "formats": { + "min_inclusive": 71, + "max_inclusive": 2147483647 + }, + "directory": "overlay_71" + } + ] + } +} \ No newline at end of file diff --git a/datapacks/spectator-night-vision/pack.png b/datapacks/spectator-night-vision/pack.png new file mode 100755 index 0000000..84b6821 Binary files /dev/null and b/datapacks/spectator-night-vision/pack.png differ diff --git a/datapacks/timber/data/minecraft/loot_table/blocks/mushroom_stem.json b/datapacks/timber/data/minecraft/loot_table/blocks/mushroom_stem.json new file mode 100755 index 0000000..fb9dca9 --- /dev/null +++ b/datapacks/timber/data/minecraft/loot_table/blocks/mushroom_stem.json @@ -0,0 +1,54 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:mushroom_stem" + } + ], + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "predicates": { + "minecraft:enchantments": [ + { + "enchantments": "minecraft:silk_touch", + "levels": { + "min": 1 + } + } + ] + } + } + } + ] + }, + { + "rolls": 1, + "entries": [ + { + "type": "minecraft:item", + "name": "minecraft:knowledge_book", + "functions": [ + { + "function": "minecraft:set_custom_data", + "tag": "{Tags:[timber_location]}" + } + ], + "conditions": [ + { + "condition": "minecraft:match_tool", + "predicate": { + "items": "#timber:axes" + } + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/datapacks/timber/data/minecraft/tags/function/load.json b/datapacks/timber/data/minecraft/tags/function/load.json new file mode 100755 index 0000000..420a05c --- /dev/null +++ b/datapacks/timber/data/minecraft/tags/function/load.json @@ -0,0 +1,6 @@ +{ + "values": [ + "timber:init", + "timber:main" + ] +} diff --git a/datapacks/timber/data/timber/function/algorithm/fungus/chop.mcfunction b/datapacks/timber/data/timber/function/algorithm/fungus/chop.mcfunction new file mode 100755 index 0000000..1308490 --- /dev/null +++ b/datapacks/timber/data/timber/function/algorithm/fungus/chop.mcfunction @@ -0,0 +1,31 @@ +# resets +scoreboard players set durability_okay timber 1 + +# keep track of tree size +scoreboard players add tree_size timber 1 + +# wear out tool +function timber:tool/durability_count + +# tool durability check +execute if score stop_chopping timber matches 1.. run function timber:tool/durability_check + +##### if on top +execute positioned ~ ~1 ~ unless predicate timber:block/stem run function timber:algorithm/fungus/validate_cap +# mark cap that have been checked +execute positioned ~ ~ ~1 unless entity @e[type=minecraft:marker,tag=timber_leaves_found,distance=...1,sort=nearest,limit=1] if predicate timber:block/cap run summon marker ~ ~ ~ {Tags:["timber_leaves_found"]} +execute positioned ~ ~ ~-1 unless entity @e[type=minecraft:marker,tag=timber_leaves_found,distance=...1,sort=nearest,limit=1] if predicate timber:block/cap run summon marker ~ ~ ~ {Tags:["timber_leaves_found"]} +execute positioned ~1 ~ ~ unless entity @e[type=minecraft:marker,tag=timber_leaves_found,distance=...1,sort=nearest,limit=1] if predicate timber:block/cap run summon marker ~ ~ ~ {Tags:["timber_leaves_found"]} +execute positioned ~-1 ~ ~ unless entity @e[type=minecraft:marker,tag=timber_leaves_found,distance=...1,sort=nearest,limit=1] if predicate timber:block/cap run summon marker ~ ~ ~ {Tags:["timber_leaves_found"]} +execute positioned ~ ~1 ~ unless entity @e[type=minecraft:marker,tag=timber_leaves_found,distance=...1,sort=nearest,limit=1] if predicate timber:block/cap run summon marker ~ ~ ~ {Tags:["timber_leaves_found"]} +execute positioned ~ ~-1 ~ unless entity @e[type=minecraft:marker,tag=timber_leaves_found,distance=...1,sort=nearest,limit=1] if predicate timber:block/cap run summon marker ~ ~ ~ {Tags:["timber_leaves_found"]} + +# mark block that will get destroyed +execute if score durability_okay timber matches 1.. if score tree_size timber < max_tree_size timber run summon marker ~ ~ ~ {Tags:["timber_stem"]} + +# search for next stem +execute if score durability_okay timber matches 1.. if score tree_size timber < max_tree_size timber run function timber:algorithm/fungus/search + +# destroy cap (always) +execute run scoreboard players set leaf_distance timber 0 +function timber:algorithm/fungus/leaves/search \ No newline at end of file diff --git a/datapacks/timber/data/timber/function/algorithm/fungus/leaves/destroy.mcfunction b/datapacks/timber/data/timber/function/algorithm/fungus/leaves/destroy.mcfunction new file mode 100755 index 0000000..e5389ec --- /dev/null +++ b/datapacks/timber/data/timber/function/algorithm/fungus/leaves/destroy.mcfunction @@ -0,0 +1,3 @@ +execute if score leaf_distance timber <= max_tree_size timber run summon marker ~ ~ ~ {Tags:["timber_cap"]} + +execute if score leaf_distance timber <= max_tree_size timber run function timber:algorithm/fungus/leaves/search \ No newline at end of file diff --git a/datapacks/timber/data/timber/function/algorithm/fungus/leaves/find_other_stems.mcfunction b/datapacks/timber/data/timber/function/algorithm/fungus/leaves/find_other_stems.mcfunction new file mode 100755 index 0000000..899a15c --- /dev/null +++ b/datapacks/timber/data/timber/function/algorithm/fungus/leaves/find_other_stems.mcfunction @@ -0,0 +1,7 @@ +# find other stems +execute at @e[type=minecraft:marker,tag=timber_cap] positioned ~ ~ ~1 if predicate timber:block/stem unless entity @e[type=minecraft:marker,tag=timber_stem,distance=...1,sort=arbitrary,limit=1] unless entity @e[type=minecraft:marker,tag=timber_other_stem,distance=...1,sort=arbitrary,limit=1] run summon marker ~ ~ ~ {Tags:["timber_other_stem"]} +execute at @e[type=minecraft:marker,tag=timber_cap] positioned ~ ~ ~-1 if predicate timber:block/stem unless entity @e[type=minecraft:marker,tag=timber_stem,distance=...1,sort=arbitrary,limit=1] unless entity @e[type=minecraft:marker,tag=timber_other_stem,distance=...1,sort=arbitrary,limit=1] run summon marker ~ ~ ~ {Tags:["timber_other_stem"]} +execute at @e[type=minecraft:marker,tag=timber_cap] positioned ~1 ~ ~ if predicate timber:block/stem unless entity @e[type=minecraft:marker,tag=timber_stem,distance=...1,sort=arbitrary,limit=1] unless entity @e[type=minecraft:marker,tag=timber_other_stem,distance=...1,sort=arbitrary,limit=1] run summon marker ~ ~ ~ {Tags:["timber_other_stem"]} +execute at @e[type=minecraft:marker,tag=timber_cap] positioned ~-1 ~ ~ if predicate timber:block/stem unless entity @e[type=minecraft:marker,tag=timber_stem,distance=...1,sort=arbitrary,limit=1] unless entity @e[type=minecraft:marker,tag=timber_other_stem,distance=...1,sort=arbitrary,limit=1] run summon marker ~ ~ ~ {Tags:["timber_other_stem"]} +execute at @e[type=minecraft:marker,tag=timber_cap] positioned ~ ~1 ~ if predicate timber:block/stem unless entity @e[type=minecraft:marker,tag=timber_stem,distance=...1,sort=arbitrary,limit=1] unless entity @e[type=minecraft:marker,tag=timber_other_stem,distance=...1,sort=arbitrary,limit=1] run summon marker ~ ~ ~ {Tags:["timber_other_stem"]} +execute at @e[type=minecraft:marker,tag=timber_cap] positioned ~ ~-1 ~ if predicate timber:block/stem unless entity @e[type=minecraft:marker,tag=timber_stem,distance=...1,sort=arbitrary,limit=1] unless entity @e[type=minecraft:marker,tag=timber_other_stem,distance=...1,sort=arbitrary,limit=1] run summon marker ~ ~ ~ {Tags:["timber_other_stem"]} \ No newline at end of file diff --git a/datapacks/timber/data/timber/function/algorithm/fungus/leaves/search.mcfunction b/datapacks/timber/data/timber/function/algorithm/fungus/leaves/search.mcfunction new file mode 100755 index 0000000..d2a0e7f --- /dev/null +++ b/datapacks/timber/data/timber/function/algorithm/fungus/leaves/search.mcfunction @@ -0,0 +1,18 @@ +scoreboard players add leaf_distance timber 1 +# search for next cap +execute positioned ~ ~ ~1 unless entity @e[type=minecraft:marker,tag=timber_cap,distance=...1,sort=arbitrary,limit=1] if predicate timber:block/cap run function timber:algorithm/fungus/leaves/destroy +execute positioned ~ ~ ~-1 unless entity @e[type=minecraft:marker,tag=timber_cap,distance=...1,sort=arbitrary,limit=1] if predicate timber:block/cap run function timber:algorithm/fungus/leaves/destroy +execute positioned ~1 ~ ~ unless entity @e[type=minecraft:marker,tag=timber_cap,distance=...1,sort=arbitrary,limit=1] if predicate timber:block/cap run function timber:algorithm/fungus/leaves/destroy +execute positioned ~-1 ~ ~ unless entity @e[type=minecraft:marker,tag=timber_cap,distance=...1,sort=arbitrary,limit=1] if predicate timber:block/cap run function timber:algorithm/fungus/leaves/destroy +execute positioned ~ ~1 ~ unless entity @e[type=minecraft:marker,tag=timber_cap,distance=...1,sort=arbitrary,limit=1] if predicate timber:block/cap run function timber:algorithm/fungus/leaves/destroy +execute positioned ~ ~-1 ~ unless entity @e[type=minecraft:marker,tag=timber_cap,distance=...1,sort=arbitrary,limit=1] if predicate timber:block/cap run function timber:algorithm/fungus/leaves/destroy + +execute positioned ~ ~-1 ~1 unless entity @e[type=minecraft:marker,tag=timber_cap,distance=...1,sort=arbitrary,limit=1] if predicate timber:block/cap run function timber:algorithm/fungus/leaves/destroy +execute positioned ~ ~-1 ~-1 unless entity @e[type=minecraft:marker,tag=timber_cap,distance=...1,sort=arbitrary,limit=1] if predicate timber:block/cap run function timber:algorithm/fungus/leaves/destroy +execute positioned ~1 ~-1 ~ unless entity @e[type=minecraft:marker,tag=timber_cap,distance=...1,sort=arbitrary,limit=1] if predicate timber:block/cap run function timber:algorithm/fungus/leaves/destroy +execute positioned ~-1 ~-1 ~ unless entity @e[type=minecraft:marker,tag=timber_cap,distance=...1,sort=arbitrary,limit=1] if predicate timber:block/cap run function timber:algorithm/fungus/leaves/destroy + +execute positioned ~1 ~-1 ~1 unless entity @e[type=minecraft:marker,tag=timber_cap,distance=...1,sort=arbitrary,limit=1] if predicate timber:block/cap run function timber:algorithm/fungus/leaves/destroy +execute positioned ~-1 ~-1 ~-1 unless entity @e[type=minecraft:marker,tag=timber_cap,distance=...1,sort=arbitrary,limit=1] if predicate timber:block/cap run function timber:algorithm/fungus/leaves/destroy +execute positioned ~1 ~-1 ~-1 unless entity @e[type=minecraft:marker,tag=timber_cap,distance=...1,sort=arbitrary,limit=1] if predicate timber:block/cap run function timber:algorithm/fungus/leaves/destroy +execute positioned ~-1 ~-1 ~1 unless entity @e[type=minecraft:marker,tag=timber_cap,distance=...1,sort=arbitrary,limit=1] if predicate timber:block/cap run function timber:algorithm/fungus/leaves/destroy \ No newline at end of file diff --git a/datapacks/timber/data/timber/function/algorithm/fungus/run.mcfunction b/datapacks/timber/data/timber/function/algorithm/fungus/run.mcfunction new file mode 100755 index 0000000..6db2dbe --- /dev/null +++ b/datapacks/timber/data/timber/function/algorithm/fungus/run.mcfunction @@ -0,0 +1,5 @@ +# check if item is a stem +summon minecraft:armor_stand ~ ~ ~ {Silent:1b,Invulnerable:1b,Marker:1b,Invisible:1b,Tags:["timber_item_check"]} +data modify entity @e[type=minecraft:armor_stand,tag=timber_item_check,distance=...1,sort=arbitrary,limit=1] HandItems[0] set from entity @e[distance=...1,type=minecraft:item,sort=nearest,limit=1,nbt={Age:0s}] Item +execute if entity @e[type=minecraft:armor_stand,tag=timber_item_check,distance=...1,sort=arbitrary,limit=1,predicate=timber:item/stem] run function timber:algorithm/fungus/chop +kill @e[type=minecraft:armor_stand,tag=timber_item_check,distance=...1,sort=arbitrary,limit=1] \ No newline at end of file diff --git a/datapacks/timber/data/timber/function/algorithm/fungus/search.mcfunction b/datapacks/timber/data/timber/function/algorithm/fungus/search.mcfunction new file mode 100755 index 0000000..07e10c9 --- /dev/null +++ b/datapacks/timber/data/timber/function/algorithm/fungus/search.mcfunction @@ -0,0 +1,24 @@ +# search for next log +execute positioned ~ ~1 ~ if predicate timber:block/stem unless entity @e[type=minecraft:marker,tag=timber_stem,distance=...1,sort=arbitrary,limit=1] run function timber:algorithm/fungus/chop +execute positioned ~ ~1 ~1 if predicate timber:block/stem unless entity @e[type=minecraft:marker,tag=timber_stem,distance=...1,sort=arbitrary,limit=1] run function timber:algorithm/fungus/chop +execute positioned ~ ~1 ~-1 if predicate timber:block/stem unless entity @e[type=minecraft:marker,tag=timber_stem,distance=...1,sort=arbitrary,limit=1] run function timber:algorithm/fungus/chop +execute positioned ~1 ~1 ~ if predicate timber:block/stem unless entity @e[type=minecraft:marker,tag=timber_stem,distance=...1,sort=arbitrary,limit=1] run function timber:algorithm/fungus/chop +execute positioned ~1 ~1 ~1 if predicate timber:block/stem unless entity @e[type=minecraft:marker,tag=timber_stem,distance=...1,sort=arbitrary,limit=1] run function timber:algorithm/fungus/chop +execute positioned ~1 ~1 ~-1 if predicate timber:block/stem unless entity @e[type=minecraft:marker,tag=timber_stem,distance=...1,sort=arbitrary,limit=1] run function timber:algorithm/fungus/chop +execute positioned ~-1 ~1 ~ if predicate timber:block/stem unless entity @e[type=minecraft:marker,tag=timber_stem,distance=...1,sort=arbitrary,limit=1] run function timber:algorithm/fungus/chop +execute positioned ~-1 ~1 ~1 if predicate timber:block/stem unless entity @e[type=minecraft:marker,tag=timber_stem,distance=...1,sort=arbitrary,limit=1] run function timber:algorithm/fungus/chop +execute positioned ~-1 ~1 ~-1 if predicate timber:block/stem unless entity @e[type=minecraft:marker,tag=timber_stem,distance=...1,sort=arbitrary,limit=1] run function timber:algorithm/fungus/chop + +execute positioned ~ ~ ~1 if predicate timber:block/stem unless entity @e[type=minecraft:marker,tag=timber_stem,distance=...1,sort=arbitrary,limit=1] run function timber:algorithm/fungus/chop +execute positioned ~ ~ ~-1 if predicate timber:block/stem unless entity @e[type=minecraft:marker,tag=timber_stem,distance=...1,sort=arbitrary,limit=1] run function timber:algorithm/fungus/chop +execute positioned ~1 ~ ~ if predicate timber:block/stem unless entity @e[type=minecraft:marker,tag=timber_stem,distance=...1,sort=arbitrary,limit=1] run function timber:algorithm/fungus/chop +execute positioned ~1 ~ ~1 if predicate timber:block/stem unless entity @e[type=minecraft:marker,tag=timber_stem,distance=...1,sort=arbitrary,limit=1] run function timber:algorithm/fungus/chop +execute positioned ~1 ~ ~-1 if predicate timber:block/stem unless entity @e[type=minecraft:marker,tag=timber_stem,distance=...1,sort=arbitrary,limit=1] run function timber:algorithm/fungus/chop +execute positioned ~-1 ~ ~ if predicate timber:block/stem unless entity @e[type=minecraft:marker,tag=timber_stem,distance=...1,sort=arbitrary,limit=1] run function timber:algorithm/fungus/chop +execute positioned ~-1 ~ ~1 if predicate timber:block/stem unless entity @e[type=minecraft:marker,tag=timber_stem,distance=...1,sort=arbitrary,limit=1] run function timber:algorithm/fungus/chop +execute positioned ~-1 ~ ~-1 if predicate timber:block/stem unless entity @e[type=minecraft:marker,tag=timber_stem,distance=...1,sort=arbitrary,limit=1] run function timber:algorithm/fungus/chop + +execute positioned ~ ~2 ~ if predicate timber:block/stem unless entity @e[type=minecraft:marker,tag=timber_stem,distance=...1,sort=arbitrary,limit=1] run function timber:algorithm/fungus/chop + +# search for next log downwards +execute if score chop_down timber matches 1.. run function timber:algorithm/fungus/search_down \ No newline at end of file diff --git a/datapacks/timber/data/timber/function/algorithm/fungus/search_down.mcfunction b/datapacks/timber/data/timber/function/algorithm/fungus/search_down.mcfunction new file mode 100755 index 0000000..a9edfb2 --- /dev/null +++ b/datapacks/timber/data/timber/function/algorithm/fungus/search_down.mcfunction @@ -0,0 +1,10 @@ +# search for next log downwards +execute positioned ~ ~-1 ~ if predicate timber:block/stem unless entity @e[type=minecraft:marker,tag=timber_stem,distance=...1,sort=arbitrary,limit=1] run function timber:algorithm/fungus/chop +execute positioned ~ ~-1 ~1 if predicate timber:block/stem unless entity @e[type=minecraft:marker,tag=timber_stem,distance=...1,sort=arbitrary,limit=1] run function timber:algorithm/fungus/chop +execute positioned ~ ~-1 ~-1 if predicate timber:block/stem unless entity @e[type=minecraft:marker,tag=timber_stem,distance=...1,sort=arbitrary,limit=1] run function timber:algorithm/fungus/chop +execute positioned ~1 ~-1 ~ if predicate timber:block/stem unless entity @e[type=minecraft:marker,tag=timber_stem,distance=...1,sort=arbitrary,limit=1] run function timber:algorithm/fungus/chop +execute positioned ~1 ~-1 ~1 if predicate timber:block/stem unless entity @e[type=minecraft:marker,tag=timber_stem,distance=...1,sort=arbitrary,limit=1] run function timber:algorithm/fungus/chop +execute positioned ~1 ~-1 ~-1 if predicate timber:block/stem unless entity @e[type=minecraft:marker,tag=timber_stem,distance=...1,sort=arbitrary,limit=1] run function timber:algorithm/fungus/chop +execute positioned ~-1 ~-1 ~ if predicate timber:block/stem unless entity @e[type=minecraft:marker,tag=timber_stem,distance=...1,sort=arbitrary,limit=1] run function timber:algorithm/fungus/chop +execute positioned ~-1 ~-1 ~1 if predicate timber:block/stem unless entity @e[type=minecraft:marker,tag=timber_stem,distance=...1,sort=arbitrary,limit=1] run function timber:algorithm/fungus/chop +execute positioned ~-1 ~-1 ~-1 if predicate timber:block/stem unless entity @e[type=minecraft:marker,tag=timber_stem,distance=...1,sort=arbitrary,limit=1] run function timber:algorithm/fungus/chop \ No newline at end of file diff --git a/datapacks/timber/data/timber/function/algorithm/fungus/validate_cap.mcfunction b/datapacks/timber/data/timber/function/algorithm/fungus/validate_cap.mcfunction new file mode 100755 index 0000000..e41d9b6 --- /dev/null +++ b/datapacks/timber/data/timber/function/algorithm/fungus/validate_cap.mcfunction @@ -0,0 +1,6 @@ +# mark leaf that have been checked +execute positioned ~ ~ ~1 unless entity @e[type=minecraft:marker,tag=timber_leaves_found,distance=...1,sort=nearest,limit=1] if predicate timber:block/cap run summon marker ~ ~ ~ {Tags:["timber_leaves_found"]} +execute positioned ~ ~ ~-1 unless entity @e[type=minecraft:marker,tag=timber_leaves_found,distance=...1,sort=nearest,limit=1] if predicate timber:block/cap run summon marker ~ ~ ~ {Tags:["timber_leaves_found"]} +execute positioned ~1 ~ ~ unless entity @e[type=minecraft:marker,tag=timber_leaves_found,distance=...1,sort=nearest,limit=1] if predicate timber:block/cap run summon marker ~ ~ ~ {Tags:["timber_leaves_found"]} +execute positioned ~-1 ~ ~ unless entity @e[type=minecraft:marker,tag=timber_leaves_found,distance=...1,sort=nearest,limit=1] if predicate timber:block/cap run summon marker ~ ~ ~ {Tags:["timber_leaves_found"]} +execute positioned ~ ~ ~ unless entity @e[type=minecraft:marker,tag=timber_leaves_found,distance=...1,sort=nearest,limit=1] if predicate timber:block/cap run summon marker ~ ~ ~ {Tags:["timber_leaves_found"]} \ No newline at end of file diff --git a/datapacks/timber/data/timber/function/algorithm/tree/chop.mcfunction b/datapacks/timber/data/timber/function/algorithm/tree/chop.mcfunction new file mode 100755 index 0000000..15bf6df --- /dev/null +++ b/datapacks/timber/data/timber/function/algorithm/tree/chop.mcfunction @@ -0,0 +1,29 @@ +# resets +scoreboard players set durability_okay timber 1 + +# keep track of tree size +scoreboard players add tree_size timber 1 + +# wear out tool +function timber:tool/durability_count + +# tool durability check +execute if score stop_chopping timber matches 1.. unless score unbreakable timber matches 1 run function timber:tool/durability_check + +# mark leaf that have been checked +execute positioned ~ ~ ~1 unless entity @e[type=minecraft:marker,tag=timber_leaves_found,distance=...1,sort=nearest,limit=1] if predicate timber:block/leaf run summon marker ~ ~ ~ {Tags:["timber_leaves_found"]} +execute positioned ~ ~ ~-1 unless entity @e[type=minecraft:marker,tag=timber_leaves_found,distance=...1,sort=nearest,limit=1] if predicate timber:block/leaf run summon marker ~ ~ ~ {Tags:["timber_leaves_found"]} +execute positioned ~1 ~ ~ unless entity @e[type=minecraft:marker,tag=timber_leaves_found,distance=...1,sort=nearest,limit=1] if predicate timber:block/leaf run summon marker ~ ~ ~ {Tags:["timber_leaves_found"]} +execute positioned ~-1 ~ ~ unless entity @e[type=minecraft:marker,tag=timber_leaves_found,distance=...1,sort=nearest,limit=1] if predicate timber:block/leaf run summon marker ~ ~ ~ {Tags:["timber_leaves_found"]} +execute positioned ~ ~1 ~ unless entity @e[type=minecraft:marker,tag=timber_leaves_found,distance=...1,sort=nearest,limit=1] if predicate timber:block/leaf run summon marker ~ ~ ~ {Tags:["timber_leaves_found"]} +execute positioned ~ ~-1 ~ unless entity @e[type=minecraft:marker,tag=timber_leaves_found,distance=...1,sort=nearest,limit=1] if predicate timber:block/leaf run summon marker ~ ~ ~ {Tags:["timber_leaves_found"]} + +# mark block that will get destroyed +execute if score durability_okay timber matches 1.. if score tree_size timber < max_tree_size timber run summon marker ~ ~ ~ {Tags:["timber_log"]} + +# search for next log +execute if score durability_okay timber matches 1.. if score tree_size timber < max_tree_size timber run function timber:algorithm/tree/search + +# destroy leaves +execute if score destroy_leaves timber matches 1.. run scoreboard players set leaf_distance timber 0 +execute if score destroy_leaves timber matches 1.. run function timber:algorithm/tree/leaves/search \ No newline at end of file diff --git a/datapacks/timber/data/timber/function/algorithm/tree/leaves/destroy.mcfunction b/datapacks/timber/data/timber/function/algorithm/tree/leaves/destroy.mcfunction new file mode 100755 index 0000000..500641f --- /dev/null +++ b/datapacks/timber/data/timber/function/algorithm/tree/leaves/destroy.mcfunction @@ -0,0 +1,8 @@ +# get leaf distance (in score leaf_distance timber) +function timber:algorithm/tree/leaves/get_distance + +# decide if leaf is closer to the current tree then mark it so that it will get destroyed +execute if score leaf_distance_old timber < leaf_distance timber run summon marker ~ ~ ~ {Tags:["timber_leaf"]} + +# search for next leaf +execute if score leaf_distance_old timber < leaf_distance timber run function timber:algorithm/tree/leaves/search \ No newline at end of file diff --git a/datapacks/timber/data/timber/function/algorithm/tree/leaves/get_distance.mcfunction b/datapacks/timber/data/timber/function/algorithm/tree/leaves/get_distance.mcfunction new file mode 100755 index 0000000..2432347 --- /dev/null +++ b/datapacks/timber/data/timber/function/algorithm/tree/leaves/get_distance.mcfunction @@ -0,0 +1,15 @@ +scoreboard players set leaf_distance timber 0 +execute if block ~ ~ ~ #minecraft:leaves[distance=1] run scoreboard players set leaf_distance timber 1 +execute if block ~ ~ ~ #minecraft:leaves[distance=2] run scoreboard players set leaf_distance timber 2 +execute if block ~ ~ ~ #minecraft:leaves[distance=3] run scoreboard players set leaf_distance timber 3 +execute if block ~ ~ ~ #minecraft:leaves[distance=4] run scoreboard players set leaf_distance timber 4 +execute if block ~ ~ ~ #minecraft:leaves[distance=5] run scoreboard players set leaf_distance timber 5 +execute if block ~ ~ ~ #minecraft:leaves[distance=6] run scoreboard players set leaf_distance timber 6 +execute if block ~ ~ ~ #minecraft:leaves[distance=7] run scoreboard players set leaf_distance timber 7 +execute if block ~ ~ ~ #minecraft:leaves[distance=8] run scoreboard players set leaf_distance timber 8 +execute if block ~ ~ ~ #minecraft:leaves[distance=9] run scoreboard players set leaf_distance timber 9 +execute if block ~ ~ ~ #minecraft:leaves[distance=10] run scoreboard players set leaf_distance timber 10 +execute if block ~ ~ ~ #minecraft:leaves[distance=11] run scoreboard players set leaf_distance timber 11 +execute if block ~ ~ ~ #minecraft:leaves[distance=12] run scoreboard players set leaf_distance timber 12 +execute if block ~ ~ ~ #minecraft:leaves[distance=13] run scoreboard players set leaf_distance timber 13 +execute if block ~ ~ ~ #minecraft:leaves[distance=14] run scoreboard players set leaf_distance timber 14 \ No newline at end of file diff --git a/datapacks/timber/data/timber/function/algorithm/tree/leaves/search.mcfunction b/datapacks/timber/data/timber/function/algorithm/tree/leaves/search.mcfunction new file mode 100755 index 0000000..13bbd5e --- /dev/null +++ b/datapacks/timber/data/timber/function/algorithm/tree/leaves/search.mcfunction @@ -0,0 +1,17 @@ +# save leaves distance tag at its position +summon marker ~ ~ ~ {Tags:["timber_leaf_distance"]} +scoreboard players operation @e[type=minecraft:marker,tag=timber_leaf_distance,distance=...1,sort=arbitrary,limit=1] timber = leaf_distance timber + +# load leaves distance tag and search for next leaf +scoreboard players operation leaf_distance_old timber = @e[type=minecraft:marker,tag=timber_leaf_distance,distance=...1,sort=arbitrary,limit=1] timber +execute positioned ~ ~ ~1 unless entity @e[type=minecraft:marker,tag=timber_leaf_distance,distance=...1,sort=arbitrary,limit=1] if predicate timber:block/leaf run function timber:algorithm/tree/leaves/destroy +scoreboard players operation leaf_distance_old timber = @e[type=minecraft:marker,tag=timber_leaf_distance,distance=...1,sort=arbitrary,limit=1] timber +execute positioned ~ ~ ~-1 unless entity @e[type=minecraft:marker,tag=timber_leaf_distance,distance=...1,sort=arbitrary,limit=1] if predicate timber:block/leaf run function timber:algorithm/tree/leaves/destroy +scoreboard players operation leaf_distance_old timber = @e[type=minecraft:marker,tag=timber_leaf_distance,distance=...1,sort=arbitrary,limit=1] timber +execute positioned ~1 ~ ~ unless entity @e[type=minecraft:marker,tag=timber_leaf_distance,distance=...1,sort=arbitrary,limit=1] if predicate timber:block/leaf run function timber:algorithm/tree/leaves/destroy +scoreboard players operation leaf_distance_old timber = @e[type=minecraft:marker,tag=timber_leaf_distance,distance=...1,sort=arbitrary,limit=1] timber +execute positioned ~-1 ~ ~ unless entity @e[type=minecraft:marker,tag=timber_leaf_distance,distance=...1,sort=arbitrary,limit=1] if predicate timber:block/leaf run function timber:algorithm/tree/leaves/destroy +scoreboard players operation leaf_distance_old timber = @e[type=minecraft:marker,tag=timber_leaf_distance,distance=...1,sort=arbitrary,limit=1] timber +execute positioned ~ ~1 ~ unless entity @e[type=minecraft:marker,tag=timber_leaf_distance,distance=...1,sort=arbitrary,limit=1] if predicate timber:block/leaf run function timber:algorithm/tree/leaves/destroy +scoreboard players operation leaf_distance_old timber = @e[type=minecraft:marker,tag=timber_leaf_distance,distance=...1,sort=arbitrary,limit=1] timber +execute positioned ~ ~-1 ~ unless entity @e[type=minecraft:marker,tag=timber_leaf_distance,distance=...1,sort=arbitrary,limit=1] if predicate timber:block/leaf run function timber:algorithm/tree/leaves/destroy \ No newline at end of file diff --git a/datapacks/timber/data/timber/function/algorithm/tree/run.mcfunction b/datapacks/timber/data/timber/function/algorithm/tree/run.mcfunction new file mode 100755 index 0000000..fe78524 --- /dev/null +++ b/datapacks/timber/data/timber/function/algorithm/tree/run.mcfunction @@ -0,0 +1,5 @@ +# check if item is in tag #minecraft:logs +summon minecraft:armor_stand ~ ~ ~ {Silent:1b,Invulnerable:1b,Marker:1b,Invisible:1b,Tags:["timber_item_check"]} +data modify entity @e[type=minecraft:armor_stand,tag=timber_item_check,distance=...1,sort=arbitrary,limit=1] HandItems[0] set from entity @e[type=minecraft:item,distance=...1,sort=nearest,limit=1,nbt={Age:0s}] Item +execute if entity @e[type=minecraft:armor_stand,tag=timber_item_check,distance=...1,sort=arbitrary,limit=1,predicate=timber:item/log] run function timber:algorithm/tree/chop +kill @e[type=minecraft:armor_stand,tag=timber_item_check,distance=...1,sort=arbitrary,limit=1] \ No newline at end of file diff --git a/datapacks/timber/data/timber/function/algorithm/tree/search.mcfunction b/datapacks/timber/data/timber/function/algorithm/tree/search.mcfunction new file mode 100755 index 0000000..f44b461 --- /dev/null +++ b/datapacks/timber/data/timber/function/algorithm/tree/search.mcfunction @@ -0,0 +1,24 @@ +# search for next log +execute positioned ~ ~1 ~ if predicate timber:block/log unless entity @e[type=minecraft:marker,tag=timber_log,distance=...1,sort=arbitrary,limit=1] run function timber:algorithm/tree/chop +execute positioned ~ ~1 ~1 if predicate timber:block/log unless entity @e[type=minecraft:marker,tag=timber_log,distance=...1,sort=arbitrary,limit=1] run function timber:algorithm/tree/chop +execute positioned ~ ~1 ~-1 if predicate timber:block/log unless entity @e[type=minecraft:marker,tag=timber_log,distance=...1,sort=arbitrary,limit=1] run function timber:algorithm/tree/chop +execute positioned ~1 ~1 ~ if predicate timber:block/log unless entity @e[type=minecraft:marker,tag=timber_log,distance=...1,sort=arbitrary,limit=1] run function timber:algorithm/tree/chop +execute positioned ~1 ~1 ~1 if predicate timber:block/log unless entity @e[type=minecraft:marker,tag=timber_log,distance=...1,sort=arbitrary,limit=1] run function timber:algorithm/tree/chop +execute positioned ~1 ~1 ~-1 if predicate timber:block/log unless entity @e[type=minecraft:marker,tag=timber_log,distance=...1,sort=arbitrary,limit=1] run function timber:algorithm/tree/chop +execute positioned ~-1 ~1 ~ if predicate timber:block/log unless entity @e[type=minecraft:marker,tag=timber_log,distance=...1,sort=arbitrary,limit=1] run function timber:algorithm/tree/chop +execute positioned ~-1 ~1 ~1 if predicate timber:block/log unless entity @e[type=minecraft:marker,tag=timber_log,distance=...1,sort=arbitrary,limit=1] run function timber:algorithm/tree/chop +execute positioned ~-1 ~1 ~-1 if predicate timber:block/log unless entity @e[type=minecraft:marker,tag=timber_log,distance=...1,sort=arbitrary,limit=1] run function timber:algorithm/tree/chop + +execute positioned ~ ~ ~1 if predicate timber:block/log unless entity @e[type=minecraft:marker,tag=timber_log,distance=...1,sort=arbitrary,limit=1] run function timber:algorithm/tree/chop +execute positioned ~ ~ ~-1 if predicate timber:block/log unless entity @e[type=minecraft:marker,tag=timber_log,distance=...1,sort=arbitrary,limit=1] run function timber:algorithm/tree/chop +execute positioned ~1 ~ ~ if predicate timber:block/log unless entity @e[type=minecraft:marker,tag=timber_log,distance=...1,sort=arbitrary,limit=1] run function timber:algorithm/tree/chop +execute positioned ~1 ~ ~1 if predicate timber:block/log unless entity @e[type=minecraft:marker,tag=timber_log,distance=...1,sort=arbitrary,limit=1] run function timber:algorithm/tree/chop +execute positioned ~1 ~ ~-1 if predicate timber:block/log unless entity @e[type=minecraft:marker,tag=timber_log,distance=...1,sort=arbitrary,limit=1] run function timber:algorithm/tree/chop +execute positioned ~-1 ~ ~ if predicate timber:block/log unless entity @e[type=minecraft:marker,tag=timber_log,distance=...1,sort=arbitrary,limit=1] run function timber:algorithm/tree/chop +execute positioned ~-1 ~ ~1 if predicate timber:block/log unless entity @e[type=minecraft:marker,tag=timber_log,distance=...1,sort=arbitrary,limit=1] run function timber:algorithm/tree/chop +execute positioned ~-1 ~ ~-1 if predicate timber:block/log unless entity @e[type=minecraft:marker,tag=timber_log,distance=...1,sort=arbitrary,limit=1] run function timber:algorithm/tree/chop + +# search for next log downwards +execute if score chop_down timber matches 1.. run function timber:algorithm/tree/search_down + + diff --git a/datapacks/timber/data/timber/function/algorithm/tree/search_down.mcfunction b/datapacks/timber/data/timber/function/algorithm/tree/search_down.mcfunction new file mode 100755 index 0000000..ce66ec8 --- /dev/null +++ b/datapacks/timber/data/timber/function/algorithm/tree/search_down.mcfunction @@ -0,0 +1,10 @@ +# search for next log downwards +execute positioned ~ ~-1 ~ if predicate timber:block/log unless entity @e[type=minecraft:marker,tag=timber_log,distance=...1,sort=arbitrary,limit=1] run function timber:algorithm/tree/chop +execute positioned ~ ~-1 ~1 if predicate timber:block/log unless entity @e[type=minecraft:marker,tag=timber_log,distance=...1,sort=arbitrary,limit=1] run function timber:algorithm/tree/chop +execute positioned ~ ~-1 ~-1 if predicate timber:block/log unless entity @e[type=minecraft:marker,tag=timber_log,distance=...1,sort=arbitrary,limit=1] run function timber:algorithm/tree/chop +execute positioned ~1 ~-1 ~ if predicate timber:block/log unless entity @e[type=minecraft:marker,tag=timber_log,distance=...1,sort=arbitrary,limit=1] run function timber:algorithm/tree/chop +execute positioned ~1 ~-1 ~1 if predicate timber:block/log unless entity @e[type=minecraft:marker,tag=timber_log,distance=...1,sort=arbitrary,limit=1] run function timber:algorithm/tree/chop +execute positioned ~1 ~-1 ~-1 if predicate timber:block/log unless entity @e[type=minecraft:marker,tag=timber_log,distance=...1,sort=arbitrary,limit=1] run function timber:algorithm/tree/chop +execute positioned ~-1 ~-1 ~ if predicate timber:block/log unless entity @e[type=minecraft:marker,tag=timber_log,distance=...1,sort=arbitrary,limit=1] run function timber:algorithm/tree/chop +execute positioned ~-1 ~-1 ~1 if predicate timber:block/log unless entity @e[type=minecraft:marker,tag=timber_log,distance=...1,sort=arbitrary,limit=1] run function timber:algorithm/tree/chop +execute positioned ~-1 ~-1 ~-1 if predicate timber:block/log unless entity @e[type=minecraft:marker,tag=timber_log,distance=...1,sort=arbitrary,limit=1] run function timber:algorithm/tree/chop \ No newline at end of file diff --git a/datapacks/timber/data/timber/function/autoplant/loop.mcfunction b/datapacks/timber/data/timber/function/autoplant/loop.mcfunction new file mode 100755 index 0000000..fa78ed4 --- /dev/null +++ b/datapacks/timber/data/timber/function/autoplant/loop.mcfunction @@ -0,0 +1,5 @@ +# Loop +execute if score plant_sapling timber matches 1.. run schedule function timber:autoplant/loop 2s replace + +# plant sapling process +execute as @e[type=minecraft:item,tag=!timber_checked,tag=!global.ignore,tag=!global.ignore.kill,sort=random,limit=20,predicate=timber:sapling] at @s run function timber:autoplant/validate \ No newline at end of file diff --git a/datapacks/timber/data/timber/function/autoplant/plant.mcfunction b/datapacks/timber/data/timber/function/autoplant/plant.mcfunction new file mode 100755 index 0000000..a30b900 --- /dev/null +++ b/datapacks/timber/data/timber/function/autoplant/plant.mcfunction @@ -0,0 +1,8 @@ +# replace item-sapling with block-sapling +summon minecraft:falling_block ~ ~ ~ {BlockState:{Name:"minecraft:barrier"},Time:1,DropItem:0b,Tags:["timber_item_to_block"]} +data modify entity @e[type=minecraft:falling_block,tag=timber_item_to_block,distance=...1,sort=arbitrary,limit=1] BlockState.Name set from entity @s Item.id + +item modify entity @s contents {"function": "minecraft:set_count", "count": -1, "add": true} + +# sapling will be checked every time +tag @s remove timber_checked \ No newline at end of file diff --git a/datapacks/timber/data/timber/function/autoplant/validate.mcfunction b/datapacks/timber/data/timber/function/autoplant/validate.mcfunction new file mode 100755 index 0000000..3207ab7 --- /dev/null +++ b/datapacks/timber/data/timber/function/autoplant/validate.mcfunction @@ -0,0 +1,5 @@ +# don't check items twice (except saplings, look in plant.mcfunction) +tag @s add timber_checked + +# check if item is in tag #minecraft:sapling +execute if items entity @s contents #minecraft:saplings run function timber:autoplant/plant \ No newline at end of file diff --git a/datapacks/timber/data/timber/function/help.mcfunction b/datapacks/timber/data/timber/function/help.mcfunction new file mode 100755 index 0000000..0c3ca9f --- /dev/null +++ b/datapacks/timber/data/timber/function/help.mcfunction @@ -0,0 +1,25 @@ +tellraw @s ["",{"text":"\u00A7m ","color":"dark_gray"}] + +tellraw @s ["",{"text":" Timber Datapack"}] + +tellraw @s ["",{"text":"\u00A7m ","color":"dark_gray"}] + +tellraw @s ["",{"text":"The Timber Datapack allows you to instantly chop down a tree just by breaking one log with any axe."}] + +tellraw @s ["",{"text":"By default, sneaking while breaking will not chop the tree."}] + +tellraw @s [""] + +tellraw @s ["",{"text":"Every player can use "},{"text":"/trigger TimberToggle","color":"blue","clickEvent":{"action":"suggest_command","value":"/trigger TimberToggle"}},{"text":" to individually turn the datapack on or off."}] + +tellraw @s [""] + +tellraw @s ["",{"text":"For in-depth description and manual "},{"text":"click here","color":"dark_green","clickEvent":{"action":"open_url","value":"https://www.planetminecraft.com/data-pack/timber-datapack/"}},{"text":"."}] + +tellraw @s [""] + +tellraw @s [""," ",{"text":"[click here to see the settings]","color":"gold","clickEvent":{"action":"run_command","value":"/function timber:settings/settings1_click"}}] + +tellraw @s ["",{"text":"\u00A7m ","color":"dark_gray"}] + +function timber:settings/end_of_message \ No newline at end of file diff --git a/datapacks/timber/data/timber/function/init.mcfunction b/datapacks/timber/data/timber/function/init.mcfunction new file mode 100755 index 0000000..cd9ebe2 --- /dev/null +++ b/datapacks/timber/data/timber/function/init.mcfunction @@ -0,0 +1,34 @@ +# longer maxCommandChainLength +gamerule maxCommandChainLength 1000000000 + +# create scoreboards +scoreboard objectives add timber_w_axe minecraft.used:minecraft.wooden_axe +scoreboard objectives add timber_s_axe minecraft.used:minecraft.stone_axe +scoreboard objectives add timber_i_axe minecraft.used:minecraft.iron_axe +scoreboard objectives add timber_g_axe minecraft.used:minecraft.golden_axe +scoreboard objectives add timber_d_axe minecraft.used:minecraft.diamond_axe +scoreboard objectives add timber_n_axe minecraft.used:minecraft.netherite_axe +scoreboard objectives add timber dummy +scoreboard objectives add TimberToggle trigger {"text":"Timber Toggle","color":"#724E21"} +scoreboard objectives add timber_disabled dummy +scoreboard objectives add timber_prsistent dummy + +# non-overriding default values +function timber:settings/default_values + +# start optional loops +execute if score plant_sapling timber matches 1.. run function timber:autoplant/loop +execute if score slow_chop timber matches 1.. run function timber:slow_chop/loop + +# check loottable compatibility of mushroom stem +setblock ~ 255 ~ minecraft:chest +setblock ~ 255 ~1 minecraft:mushroom_stem +loot insert ~ 255 ~ mine ~ 255 ~1 minecraft:diamond_axe +execute unless data block ~ 255 ~ Items[{id:"minecraft:knowledge_book"}] run tellraw @a ["",{"text":"Timber Datapack Warning: ","color":"red"},{"text":"Incompatibility with the mushroom_stem loottable of another datapack!"}] +fill ~-1 255 ~-1 ~1 255 ~1 minecraft:air +execute store result score doTileDrops timber run gamerule doTileDrops +execute if score doTileDrops timber matches 0 run tellraw @a ["",{"text":"Timber Datapack Warning: ","color":"red"},{"text":"This datapack only works when gamerule doTileDrops is set to true!"}] + +# Getting the game version and checking if it is compatible with the datapack https://minecraft.fandom.com/wiki/Data_version +# execute store result score game_version timber run data get entity @r DataVersion +# execute if score game_version timber matches ..2716 run tellraw @a ["",{"text":"Timber Datapack Warning: ","color":"red"},{"text":"This datapack is not compatible with all the versions before 1.17!"}] \ No newline at end of file diff --git a/datapacks/timber/data/timber/function/main.mcfunction b/datapacks/timber/data/timber/function/main.mcfunction new file mode 100755 index 0000000..19aa616 --- /dev/null +++ b/datapacks/timber/data/timber/function/main.mcfunction @@ -0,0 +1,11 @@ +# loop (not in minecraft:tick in order to stop it after uninstall) +schedule function timber:main 1t + +# if any kind of axe is used +execute as @a[predicate=timber:used_axe,tag=!global.ignore] at @s run function timber:used_axe + +# toggle timber datapack per player +execute as @a[scores={TimberToggle=1..},tag=!global.ignore] run function timber:settings/toggle/timber + +# reset +scoreboard players enable @a TimberToggle \ No newline at end of file diff --git a/datapacks/timber/data/timber/function/run.mcfunction b/datapacks/timber/data/timber/function/run.mcfunction new file mode 100755 index 0000000..706be8a --- /dev/null +++ b/datapacks/timber/data/timber/function/run.mcfunction @@ -0,0 +1,45 @@ +# reset +scoreboard players set leaves_found timber 0 +scoreboard players set tree_size timber 0 +scoreboard players set tree_type timber 0 + +# load settings to other scoreboard (leaves persistent) +execute unless score persistent timber matches 1.. run scoreboard players set @s timber_prsistent 0 +execute if score persistent timber matches 1.. run scoreboard players set @s timber_prsistent 1 + +# search last broken item (place of tree) and set a marker +execute at @e[type=minecraft:item,distance=..7,limit=1,nbt={Age:0s}] run summon marker ~ ~ ~ {Tags:["timber_tree","global.ignore"]} + +# Enchantments randomizer +scoreboard players set unbreaking timber 0 +execute if items entity @s weapon.mainhand *[enchantments~[{"enchantments": "minecraft:unbreaking", "levels": 1}]] run scoreboard players set unbreaking timber 1 +execute if items entity @s weapon.mainhand *[enchantments~[{"enchantments": "minecraft:unbreaking", "levels": 2}]] run scoreboard players set unbreaking timber 2 +execute if items entity @s weapon.mainhand *[enchantments~[{"enchantments": "minecraft:unbreaking", "levels": 3}]] run scoreboard players set unbreaking timber 3 + +# get durability +function timber:tool/durability_get + +# scan through tree + # tree + execute if score chop_trees timber matches 1.. at @e[type=minecraft:marker,tag=timber_tree,tag=!timber_slow_chop,distance=..7,sort=arbitrary,limit=1] run function timber:algorithm/tree/run + execute store result score leaves_found timber if entity @e[type=minecraft:marker,tag=timber_leaves_found] + # if tree is valid + execute if score leaves_found timber >= min_leaves_found timber unless score tree_size timber matches 0 run scoreboard players set tree_type timber 1 + + # fungi (only if not tree already) + execute if score tree_type timber matches 0 if score chop_fungi timber matches 1.. run function timber:run_fungi + +# if tree or fungi is valid (tree = 1 | fungus = 2) +execute unless score tree_type timber matches 0 run function timber:validated + +# remove markers +execute if score chop_fungi timber matches 1.. run kill @e[type=minecraft:item,nbt={Item:{components:{"minecraft:custom_data":{Tags:[timber_location]}}}}] +execute if score chop_fungi timber matches 1.. run clear @s knowledge_book[custom_data={Tags:[timber_location]}] +kill @e[type=minecraft:marker,tag=timber_tree,tag=!timber_slow_chop] +kill @e[type=minecraft:marker,tag=timber_log,tag=!timber_destroy] +kill @e[type=minecraft:marker,tag=timber_leaf,tag=!timber_destroy] +kill @e[type=minecraft:marker,tag=timber_stem,tag=!timber_destroy] +kill @e[type=minecraft:marker,tag=timber_cap,tag=!timber_destroy] +kill @e[type=minecraft:marker,tag=timber_leaves_found] +kill @e[type=minecraft:marker,tag=timber_leaf_distance] +kill @e[type=minecraft:marker,tag=timber_other_stem] \ No newline at end of file diff --git a/datapacks/timber/data/timber/function/run_fungi.mcfunction b/datapacks/timber/data/timber/function/run_fungi.mcfunction new file mode 100755 index 0000000..ff8a737 --- /dev/null +++ b/datapacks/timber/data/timber/function/run_fungi.mcfunction @@ -0,0 +1,18 @@ +# reset +scoreboard players set tree_size timber 0 +kill @e[type=minecraft:marker,tag=timber_leaves_found] +kill @e[type=minecraft:marker,tag=timber_log,tag=!timber_destroy] +kill @e[type=minecraft:marker,tag=timber_leaf,tag=!timber_destroy] + +# get durability +function timber:tool/durability_get + +# fungi +execute at @e[type=minecraft:marker,tag=timber_tree,tag=!timber_slow_chop,distance=..7,sort=arbitrary,limit=1] run function timber:algorithm/fungus/run +execute store result score leaves_found timber if entity @e[type=minecraft:marker,tag=timber_leaves_found] +# if fungi is valid +execute if score leaves_found timber >= min_leaves_found timber unless score tree_size timber matches 0 run scoreboard players set tree_type timber 2 + +# don't destroy the blocks in a radius of 5 blocks from other stems +execute if score tree_type timber matches 2 run function timber:algorithm/fungus/leaves/find_other_stems +execute if score tree_type timber matches 2 at @e[type=minecraft:marker,tag=timber_other_stem] run kill @e[type=minecraft:marker,tag=timber_cap,distance=..5] \ No newline at end of file diff --git a/datapacks/timber/data/timber/function/settings/default_values.mcfunction b/datapacks/timber/data/timber/function/settings/default_values.mcfunction new file mode 100755 index 0000000..a8981c6 --- /dev/null +++ b/datapacks/timber/data/timber/function/settings/default_values.mcfunction @@ -0,0 +1,26 @@ +# non-overriding default values +execute unless score standing timber = standing timber run scoreboard players set standing timber 1 +execute unless score sneaking timber = sneaking timber run scoreboard players set sneaking timber 0 +execute unless score destroy_leaves timber = destroy_leaves timber run scoreboard players set destroy_leaves timber 1 +execute unless score plant_sapling timber = plant_sapling timber run scoreboard players set plant_sapling timber 0 +execute unless score slow_chop timber = slow_chop timber run scoreboard players set slow_chop timber 0 +execute unless score chop_down timber = chop_down timber run scoreboard players set chop_down timber 0 +execute unless score stop_chopping timber = stop_chopping timber run scoreboard players set stop_chopping timber 1 +execute unless score wear_out timber = wear_out timber run scoreboard players set wear_out timber 1 +execute unless score drop_loot timber = drop_loot timber run scoreboard players set drop_loot timber 0 +execute unless score hunger timber = hunger timber run scoreboard players set hunger timber 0 +execute unless score stopsound timber = stopsound timber run scoreboard players set stopsound timber 0 +execute unless score persistent timber = persistent timber run scoreboard players set persistent timber 0 + +execute unless score wooden_axe timber = wooden_axe timber run scoreboard players set wooden_axe timber 1 +execute unless score stone_axe timber = stone_axe timber run scoreboard players set stone_axe timber 1 +execute unless score iron_axe timber = iron_axe timber run scoreboard players set iron_axe timber 1 +execute unless score golden_axe timber = golden_axe timber run scoreboard players set golden_axe timber 1 +execute unless score diamond_axe timber = diamond_axe timber run scoreboard players set diamond_axe timber 1 +execute unless score netherite_axe timber = netherite_axe timber run scoreboard players set netherite_axe timber 1 +execute unless score chop_trees timber = chop_trees timber run scoreboard players set chop_trees timber 1 +execute unless score chop_fungi timber = chop_fungi timber run scoreboard players set chop_fungi timber 0 +execute unless score blocks_per_chop timber = blocks_per_chop timber run scoreboard players set blocks_per_chop timber 1 +execute unless score time_between_chops timber = time_between_chops timber run scoreboard players set time_between_chops timber 1 +execute unless score max_tree_size timber = max_tree_size timber run scoreboard players set max_tree_size timber 555 +execute unless score min_leaves_found timber = min_leaves_found timber run scoreboard players set min_leaves_found timber 5 \ No newline at end of file diff --git a/datapacks/timber/data/timber/function/settings/end_of_message.mcfunction b/datapacks/timber/data/timber/function/settings/end_of_message.mcfunction new file mode 100755 index 0000000..e69de29 diff --git a/datapacks/timber/data/timber/function/settings/reset_gamerule.mcfunction b/datapacks/timber/data/timber/function/settings/reset_gamerule.mcfunction new file mode 100755 index 0000000..e69de29 diff --git a/datapacks/timber/data/timber/function/settings/settings.mcfunction b/datapacks/timber/data/timber/function/settings/settings.mcfunction new file mode 100755 index 0000000..42d2588 --- /dev/null +++ b/datapacks/timber/data/timber/function/settings/settings.mcfunction @@ -0,0 +1 @@ +function timber:settings/settings1 \ No newline at end of file diff --git a/datapacks/timber/data/timber/function/settings/settings1.mcfunction b/datapacks/timber/data/timber/function/settings/settings1.mcfunction new file mode 100755 index 0000000..25c50f5 --- /dev/null +++ b/datapacks/timber/data/timber/function/settings/settings1.mcfunction @@ -0,0 +1,54 @@ +tellraw @s ["",{"text":" "}] +tellraw @s ["",{"text":" "}] +tellraw @s ["",{"text":" "}] +tellraw @s ["",{"text":" "}] + +tellraw @s ["",{"text":"\u00A7m ","color":"dark_gray"}] + +tellraw @s ["",{"text":" Timber "},{"text":"/","color":"gray"},{"text":" Global Settings "},{"text":" < ","clickEvent":{"action":"run_command","value":"/function timber:settings/settings1_click"}},{"text":"1/2"},{"text":" > ","clickEvent":{"action":"run_command","value":"/function timber:settings/settings2_click"}}] + +tellraw @s ["",{"text":"\u00A7m ","color":"dark_gray"}] + +execute if score standing timber matches 1.. run tellraw @s ["",{"text":"[ ✔ ]","color":"green","clickEvent":{"action":"run_command","value":"/function timber:settings/toggle/standing"}},{"text":" Works When Standing"}] +execute unless score standing timber matches 1.. run tellraw @s ["",{"text":"[ ❌ ]","color":"red","clickEvent":{"action":"run_command","value":"/function timber:settings/toggle/standing"}},{"text":" Works When Standing"}] + +execute if score sneaking timber matches 1.. run tellraw @s ["",{"text":"[ ✔ ]","color":"green","clickEvent":{"action":"run_command","value":"/function timber:settings/toggle/sneaking"}},{"text":" Works When Sneaking"}] +execute unless score sneaking timber matches 1.. run tellraw @s ["",{"text":"[ ❌ ]","color":"red","clickEvent":{"action":"run_command","value":"/function timber:settings/toggle/sneaking"}},{"text":" Works When Sneaking"}] + +execute if score destroy_leaves timber matches 1.. run tellraw @s ["",{"text":"[ ✔ ]","color":"green","clickEvent":{"action":"run_command","value":"/function timber:settings/toggle/destroy_leaves"}},{"text":" Destroy Leaves"}] +execute unless score destroy_leaves timber matches 1.. run tellraw @s ["",{"text":"[ ❌ ]","color":"red","clickEvent":{"action":"run_command","value":"/function timber:settings/toggle/destroy_leaves"}},{"text":" Destroy Leaves"}] + +execute if score plant_sapling timber matches 1.. run tellraw @s ["",{"text":"[ ✔ ]","color":"green","clickEvent":{"action":"run_command","value":"/function timber:settings/toggle/plant_sapling"}},{"text":" Auto Plant Saplings","hoverEvent":{"action":"show_text","value":"All kind of saplings laying on the ground will get planted every 2 seconds."}}] +execute unless score plant_sapling timber matches 1.. run tellraw @s ["",{"text":"[ ❌ ]","color":"red","clickEvent":{"action":"run_command","value":"/function timber:settings/toggle/plant_sapling"}},{"text":" Auto Plant Saplings","hoverEvent":{"action":"show_text","value":"All kind of saplings laying on the ground will get planted every 2 seconds."}}] + +execute if score slow_chop timber matches 1.. run tellraw @s ["",{"text":"[ ✔ ]","color":"green","clickEvent":{"action":"run_command","value":"/function timber:settings/toggle/slow_chop"}},{"text":" Chop Slowly","hoverEvent":{"action":"show_text","value":["",{"text":"The tree won't be chopped instantly anymore. Additional options to change the speed of the chopping process can be changed at the next page."},{"text":"\n\nThis option can increase performance.","color":"gray"}]}}] +execute unless score slow_chop timber matches 1.. unless score drop_loot timber matches 1.. run tellraw @s ["",{"text":"[ ❌ ]","color":"red","clickEvent":{"action":"run_command","value":"/function timber:settings/toggle/slow_chop"}},{"text":" Chop Slowly","hoverEvent":{"action":"show_text","value":["",{"text":"The tree won't be chopped instantly anymore. Additional options to change the speed of the chopping process can be changed at the next page."},{"text":"\n\nThis option can increase performance.","color":"gray"}]}}] +execute unless score slow_chop timber matches 1.. if score drop_loot timber matches 1.. run tellraw @s ["",{"text":"[ ❌ ]","color":"#7F2B2B","hoverEvent":{"action":"show_text","value":"Can't be enabled when \"Drop Loot Straight into Inventory\" is enabled."}},{"text":" Chop Slowly","hoverEvent":{"action":"show_text","value":["",{"text":"The tree won't be chopped instantly anymore. Additional options to change the speed of the chopping process can be changed at the next page."},{"text":"\n\nThis option can increase performance.","color":"gray"}]}}] + +execute if score chop_down timber matches 1.. run tellraw @s ["",{"text":"[ ✔ ]","color":"green","clickEvent":{"action":"run_command","value":"/function timber:settings/toggle/chop_down"}},{"text":" Enable Chopping Down","hoverEvent":{"action":"show_text","value":"Normally when you cut a tree in the middle only the top part of the tree gets destroyed. But if this option is enabled the bottom part will get destroyed as well."}}] +execute unless score chop_down timber matches 1.. run tellraw @s ["",{"text":"[ ❌ ]","color":"red","clickEvent":{"action":"run_command","value":"/function timber:settings/toggle/chop_down"}},{"text":" Enable Chopping Down","hoverEvent":{"action":"show_text","value":"Normally when you cut a tree in the middle only the top part of the tree gets destroyed. But if this option is enabled the bottom part will get destroyed as well."}}] + +execute if score stop_chopping timber matches 1.. run tellraw @s ["",{"text":"[ ✔ ]","color":"green","clickEvent":{"action":"run_command","value":"/function timber:settings/toggle/stop_chopping"}},{"text":" Stop Chopping Once Axe Breaks","hoverEvent":{"action":"show_text","value":"Stops the process of chopping the tree as soon as your axe doesn't have any durability left for the whole tree. When disabled, the tree will always be chopped finish."}}] +execute unless score stop_chopping timber matches 1.. if score wear_out timber matches 1.. run tellraw @s ["",{"text":"[ ❌ ]","color":"red","clickEvent":{"action":"run_command","value":"/function timber:settings/toggle/stop_chopping"}},{"text":" Stop Chopping Once Axe Breaks","hoverEvent":{"action":"show_text","value":"Stops the process of chopping the tree as soon as your axe doesn't have any durability left for the whole tree. When disabled, the tree will always be chopped finish."}}] +execute unless score stop_chopping timber matches 1.. unless score wear_out timber matches 1.. run tellraw @s ["",{"text":"[ ❌ ]","color":"#7F2B2B","hoverEvent":{"action":"show_text","value":"Can't be enabled when \"Additionally Wear out Tool Depending on Tree Size\" is disabled."}},{"text":" Stop Chopping Once Axe Breaks","hoverEvent":{"action":"show_text","value":"Stops the process of chopping the tree as soon as your axe doesn't have any durability left for the whole tree. When disabled, the tree will always be chopped finish."}}] + +execute if score wear_out timber matches 1.. unless score stop_chopping timber matches 1.. run tellraw @s ["",{"text":"[ ✔ ]","color":"green","clickEvent":{"action":"run_command","value":"/function timber:settings/toggle/wear_out"}},{"text":" Additionally Wear out Tool Depending on Tree Size","hoverEvent":{"action":"show_text","value":"The tool's durability will get decreased by the amount of destroyed logs (or stems). When disabled, only one durability gets deducted."}}] +execute unless score wear_out timber matches 1.. run tellraw @s ["",{"text":"[ ❌ ]","color":"red","clickEvent":{"action":"run_command","value":"/function timber:settings/toggle/wear_out"}},{"text":" Additionally Wear out Tool Depending on Tree Size","hoverEvent":{"action":"show_text","value":"The tool's durability will get decreased by the amount of destroyed logs (or stems). When disabled, only one durability gets deducted."}}] +execute if score wear_out timber matches 1.. if score stop_chopping timber matches 1.. run tellraw @s ["",{"text":"[ ✔ ]","color":"#2B7F2B","hoverEvent":{"action":"show_text","value":"Can't be disabled when \"Stop Chopping Once Axe Breaks\" is enabled."}},{"text":" Additionally Wear out Tool Depending on Tree Size","hoverEvent":{"action":"show_text","value":"The tool's durability will get decreased by the amount of destroyed logs (or stems). When disabled, only one durability gets deducted."}}] + +execute if score drop_loot timber matches 1.. run tellraw @s ["",{"text":"[ ✔ ]","color":"green","clickEvent":{"action":"run_command","value":"/function timber:settings/toggle/drop_loot"}},{"text":" Drop Loot Straight into Inventory","hoverEvent":{"action":"show_text","value":["",{"text":"Lets the dropped items of the tree teleport straight into your own inventory. As soon as you have a full inventory the loot gets dropped on the ground."},{"text":"\n\nThis option can increase performance.","color":"gray"}]}}] +execute unless score drop_loot timber matches 1.. unless score slow_chop timber matches 1.. run tellraw @s ["",{"text":"[ ❌ ]","color":"red","clickEvent":{"action":"run_command","value":"/function timber:settings/toggle/drop_loot"}},{"text":" Drop Loot Straight into Inventory","hoverEvent":{"action":"show_text","value":["",{"text":"Lets the dropped items of the tree teleport straight into your own inventory. As soon as you have a full inventory the loot gets dropped on the ground."},{"text":"\n\nThis option can increase performance.","color":"gray"}]}}] +execute unless score drop_loot timber matches 1.. if score slow_chop timber matches 1.. run tellraw @s ["",{"text":"[ ❌ ]","color":"#7F2B2B","hoverEvent":{"action":"show_text","value":"Can't be enabled when \"Chop Slowly\" is enabled."}},{"text":" Drop Loot Straight into Inventory","hoverEvent":{"action":"show_text","value":["",{"text":"Lets the dropped items of the tree teleport straight into your own inventory. As soon as you have a full inventory the loot gets dropped on the ground."},{"text":"\n\nThis option can increase performance.","color":"gray"}]}}] + +execute if score hunger timber matches 1.. run tellraw @s ["",{"text":"[ ✔ ]","color":"green","clickEvent":{"action":"run_command","value":"/function timber:settings/toggle/hunger"}},{"text":" Give Additional Hunger Effect","hoverEvent":{"action":"show_text","value":"Gives a hunger effect for 1 second with the same level as the size of the chopped tree."}}] +execute unless score hunger timber matches 1.. run tellraw @s ["",{"text":"[ ❌ ]","color":"red","clickEvent":{"action":"run_command","value":"/function timber:settings/toggle/hunger"}},{"text":" Give Additional Hunger Effect","hoverEvent":{"action":"show_text","value":"Gives a hunger effect for 1 second with the same level as the size of the chopped tree."}}] + +execute if score stopsound timber matches 1.. run tellraw @s ["",{"text":"[ ✔ ]","color":"green","clickEvent":{"action":"run_command","value":"/function timber:settings/toggle/stopsound"}},{"text":" Stop Loud Breaking Noises","hoverEvent":{"action":"show_text","value":["",{"text":"Suppresses loud breaking noises when chopping a tree."},{"text":"\n\nThis option is","color":"gray"},{"text":" experimental","color":"dark_red"},{"text":" because sometimes it still sounds loud for a fraction of a second.","color":"gray"}]}}] +execute unless score stopsound timber matches 1.. run tellraw @s ["",{"text":"[ ❌ ]","color":"red","clickEvent":{"action":"run_command","value":"/function timber:settings/toggle/stopsound"}},{"text":" Stop Loud Breaking Noises","hoverEvent":{"action":"show_text","value":["",{"text":"Suppresses loud breaking noises when chopping a tree."},{"text":"\n\nThis option is","color":"gray"},{"text":" experimental","color":"dark_red"},{"text":" because sometimes it still sounds loud for a fraction of a second.","color":"gray"}]}}] + +execute if score persistent timber matches 1.. run tellraw @s ["",{"text":"[ ✔ ]","color":"green","clickEvent":{"action":"run_command","value":"/function timber:settings/toggle/persistent"}},{"text":" Destroy Player-Placed Trees","hoverEvent":{"action":"show_text","value":["",{"text":"Player-placed trees are trees made out of player-placed leaves (Look at leaf block with F3 debug screen: persistent = true)."},{"text":"\n\nUse it on your own risk!\nWhen enabled, this datapack can't differentiate between generated trees and player-placed trees anymore and therefore can potentially destroy your buildings.","color":"dark_red"}]}}] +execute unless score persistent timber matches 1.. run tellraw @s ["",{"text":"[ ❌ ]","color":"red","clickEvent":{"action":"run_command","value":"/function timber:settings/toggle/persistent"}},{"text":" Destroy Player-Placed Trees","hoverEvent":{"action":"show_text","value":["",{"text":"Player-placed trees are trees made out of player-placed leaves (Look at leaf block with F3 debug screen: persistent = true)."},{"text":"\n\nUse it on your own risk!\nWhen enabled, this datapack can't differentiate between generated trees and player-placed trees anymore and therefore can potentially destroy your buildings.","color":"dark_red"}]}}] + +tellraw @s ["",{"text":"\u00A7m ","color":"dark_gray"}] + +function timber:settings/end_of_message \ No newline at end of file diff --git a/datapacks/timber/data/timber/function/settings/settings1_click.mcfunction b/datapacks/timber/data/timber/function/settings/settings1_click.mcfunction new file mode 100755 index 0000000..64625b3 --- /dev/null +++ b/datapacks/timber/data/timber/function/settings/settings1_click.mcfunction @@ -0,0 +1,2 @@ +function timber:settings/settings +playsound minecraft:ui.button.click master @s ~ ~ ~ .2 1.6 .2 \ No newline at end of file diff --git a/datapacks/timber/data/timber/function/settings/settings2.mcfunction b/datapacks/timber/data/timber/function/settings/settings2.mcfunction new file mode 100755 index 0000000..0016acd --- /dev/null +++ b/datapacks/timber/data/timber/function/settings/settings2.mcfunction @@ -0,0 +1,52 @@ +tellraw @s ["",{"text":" "}] +tellraw @s ["",{"text":" "}] +tellraw @s ["",{"text":" "}] +tellraw @s ["",{"text":" "}] + +tellraw @s ["",{"text":"\u00A7m ","color":"dark_gray"}] + +tellraw @s ["",{"text":" Timber "},{"text":"/","color":"gray"},{"text":" Global Settings "},{"text":" < ","clickEvent":{"action":"run_command","value":"/function timber:settings/settings1_click"}},{"text":"2/2"},{"text":" > ","clickEvent":{"action":"run_command","value":"/function timber:settings/settings2_click"}}] + +tellraw @s ["",{"text":"\u00A7m ","color":"dark_gray"}] + +execute if score wooden_axe timber matches 1.. run tellraw @s ["",{"text":"[ ✔ ]","color":"green","clickEvent":{"action":"run_command","value":"/function timber:settings/toggle/wooden_axe"}},{"text":" Enable Wooden Axe"}] +execute unless score wooden_axe timber matches 1.. run tellraw @s ["",{"text":"[ ❌ ]","color":"red","clickEvent":{"action":"run_command","value":"/function timber:settings/toggle/wooden_axe"}},{"text":" Enable Wooden Axe"}] + +execute if score stone_axe timber matches 1.. run tellraw @s ["",{"text":"[ ✔ ]","color":"green","clickEvent":{"action":"run_command","value":"/function timber:settings/toggle/stone_axe"}},{"text":" Enable Stone Axe"}] +execute unless score stone_axe timber matches 1.. run tellraw @s ["",{"text":"[ ❌ ]","color":"red","clickEvent":{"action":"run_command","value":"/function timber:settings/toggle/stone_axe"}},{"text":" Enable Stone Axe"}] + +execute if score iron_axe timber matches 1.. run tellraw @s ["",{"text":"[ ✔ ]","color":"green","clickEvent":{"action":"run_command","value":"/function timber:settings/toggle/iron_axe"}},{"text":" Enable Iron Axe"}] +execute unless score iron_axe timber matches 1.. run tellraw @s ["",{"text":"[ ❌ ]","color":"red","clickEvent":{"action":"run_command","value":"/function timber:settings/toggle/iron_axe"}},{"text":" Enable Iron Axe"}] + +execute if score golden_axe timber matches 1.. run tellraw @s ["",{"text":"[ ✔ ]","color":"green","clickEvent":{"action":"run_command","value":"/function timber:settings/toggle/golden_axe"}},{"text":" Enable Golden Axe"}] +execute unless score golden_axe timber matches 1.. run tellraw @s ["",{"text":"[ ❌ ]","color":"red","clickEvent":{"action":"run_command","value":"/function timber:settings/toggle/golden_axe"}},{"text":" Enable Golden Axe"}] + +execute if score diamond_axe timber matches 1.. run tellraw @s ["",{"text":"[ ✔ ]","color":"green","clickEvent":{"action":"run_command","value":"/function timber:settings/toggle/diamond_axe"}},{"text":" Enable Diamond Axe"}] +execute unless score diamond_axe timber matches 1.. run tellraw @s ["",{"text":"[ ❌ ]","color":"red","clickEvent":{"action":"run_command","value":"/function timber:settings/toggle/diamond_axe"}},{"text":" Enable Diamond Axe"}] + +execute if score netherite_axe timber matches 1.. run tellraw @s ["",{"text":"[ ✔ ]","color":"green","clickEvent":{"action":"run_command","value":"/function timber:settings/toggle/netherite_axe"}},{"text":" Enable Netherite Axe"}] +execute unless score netherite_axe timber matches 1.. run tellraw @s ["",{"text":"[ ❌ ]","color":"red","clickEvent":{"action":"run_command","value":"/function timber:settings/toggle/netherite_axe"}},{"text":" Enable Netherite Axe"}] + +execute if score chop_trees timber matches 1.. run tellraw @s ["",{"text":"[ ✔ ]","color":"green","clickEvent":{"action":"run_command","value":"/function timber:settings/toggle/chop_trees"}},{"text":" Chop Trees","hoverEvent":{"action":"show_text","value":"All kind of trees will get chopped."}}] +execute unless score chop_trees timber matches 1.. run tellraw @s ["",{"text":"[ ❌ ]","color":"red","clickEvent":{"action":"run_command","value":"/function timber:settings/toggle/chop_trees"}},{"text":" Chop Trees","hoverEvent":{"action":"show_text","value":"All kind of trees will get chopped."}}] + +execute if score chop_fungi timber matches 1.. run tellraw @s ["",{"text":"[ ✔ ]","color":"green","clickEvent":{"action":"run_command","value":"/function timber:settings/toggle/chop_fungi"}},{"text":" Chop Fungi","hoverEvent":{"action":"show_text","value":["",{"text":"Huge fungi (nether trees) as well as huge mushrooms will get chopped."},{"text":"\n\nUse it on your own risk!\nWhen enabled, this datapack can't differentiate between generated fungi and player-placed fungi and therefore can potentially destroy your buildings.","color":"dark_red"}]}}] +execute unless score chop_fungi timber matches 1.. run tellraw @s ["",{"text":"[ ❌ ]","color":"red","clickEvent":{"action":"run_command","value":"/function timber:settings/toggle/chop_fungi"}},{"text":" Chop Fungi","hoverEvent":{"action":"show_text","value":["",{"text":"Huge fungi (nether trees) as well as huge mushrooms will get chopped."},{"text":"\n\nUse it on your own risk!\nWhen enabled, this datapack can't differentiate between generated fungi and player-placed fungi and therefore can potentially destroy your buildings.","color":"dark_red"}]}}] + +execute if score blocks_per_chop timber matches 1 if score slow_chop timber matches 1.. run tellraw @s ["",{"text":"[ ✎ ]","color":"gray","clickEvent":{"action":"suggest_command","value":"/scoreboard players set blocks_per_chop timber "},"hoverEvent":{"action":"show_text","value":"Default: 1"}},{"text":" Set Amount of Destroyed Blocks per Chop"},{"text":" (Current: ","color":"gray"},{"score":{"name":"blocks_per_chop","objective":"timber"},"color":"gray"},{"text": ")","color":"gray"}] +execute unless score blocks_per_chop timber matches 1 if score slow_chop timber matches 1.. run tellraw @s ["",{"text":"[ ✎ ]","color":"gray","clickEvent":{"action":"suggest_command","value":"/scoreboard players set blocks_per_chop timber "},"hoverEvent":{"action":"show_text","value":"Default: 1"}},{"text":" Set Amount of Destroyed Blocks per Chop"},{"text":" (Current: ","color":"gray"},{"score":{"name":"blocks_per_chop","objective":"timber"},"color":"gray"},{"text": ")","color":"gray"}] +execute unless score slow_chop timber matches 1.. run tellraw @s ["",{"text":"[ ✎ ]","color":"dark_gray","hoverEvent":{"action":"show_text","value":"Not active when \"Chop Slowly\" is disabled."}},{"text":" Set Amount of Destroyed Blocks per Chop"}] + +execute if score time_between_chops timber matches 1 if score slow_chop timber matches 1.. run tellraw @s ["",{"text":"[ ✎ ]","color":"gray","clickEvent":{"action":"suggest_command","value":"/scoreboard players set time_between_chops timber "},"hoverEvent":{"action":"show_text","value":"Default: 1"}},{"text":" Set Time in Ticks Between Chops"},{"text":" (Current: ","color":"gray"},{"score":{"name":"time_between_chops","objective":"timber"},"color":"gray"},{"text": ")","color":"gray"}] +execute unless score time_between_chops timber matches 1 if score slow_chop timber matches 1.. run tellraw @s ["",{"text":"[ ✎ ]","color":"gray","clickEvent":{"action":"suggest_command","value":"/scoreboard players set time_between_chops timber "},"hoverEvent":{"action":"show_text","value":"Default: 1"}},{"text":" Set Time in Ticks Between Chops"},{"text":" (Current: ","color":"gray"},{"score":{"name":"time_between_chops","objective":"timber"},"color":"gray"},{"text": ")","color":"gray"}] +execute unless score slow_chop timber matches 1.. run tellraw @s ["",{"text":"[ ✎ ]","color":"dark_gray","hoverEvent":{"action":"show_text","value":"Not active when \"Chop Slowly\" is disabled."}},{"text":" Set Time in Ticks Between Chops"}] + +execute if score max_tree_size timber matches 555 run tellraw @s ["",{"text":"[ ✎ ]","color":"gray","clickEvent":{"action":"suggest_command","value":"/scoreboard players set max_tree_size timber "},"hoverEvent":{"action":"show_text","value":"Default: 555"}},{"text":" Set Max. Tree Size","hoverEvent":{"action":"show_text","value":"Trees bigger than this set value won't get further processed."}},{"text":" (Current: ","color":"gray"},{"score":{"name":"max_tree_size","objective":"timber"},"color":"gray"},{"text": ")","color":"gray"}] +execute unless score max_tree_size timber matches 555 run tellraw @s ["",{"text":"[ ✎ ]","color":"gray","clickEvent":{"action":"suggest_command","value":"/scoreboard players set max_tree_size timber "},"hoverEvent":{"action":"show_text","value":"Default: 555"}},{"text":" Set Max. Tree Size","hoverEvent":{"action":"show_text","value":"Trees bigger than this set value won't get further processed."}},{"text":" (Current: ","color":"gray"},{"score":{"name":"max_tree_size","objective":"timber"},"color":"gray"},{"text": ")","color":"gray"}] + +execute if score min_leaves_found timber matches 5 run tellraw @s ["",{"text":"[ ✎ ]","color":"gray","clickEvent":{"action":"suggest_command","value":"/scoreboard players set min_leaves_found timber "},"hoverEvent":{"action":"show_text","value":"Default: 5"}},{"text":" Set Min. Leaves to Valid a Tree","hoverEvent":{"action":"show_text","value":"This datapack considers a tree only if it has this set value amount of naturally generated leaves at its trunk.\nFungi will get checked by the amount of cap blocks and additionally a 3×3 big cross on top of the stem."}},{"text":" (Current: ","color":"gray"},{"score":{"name":"min_leaves_found","objective":"timber"},"color":"gray"},{"text": ")","color":"gray"}] +execute unless score min_leaves_found timber matches 5 run tellraw @s ["",{"text":"[ ✎ ]","color":"gray","clickEvent":{"action":"suggest_command","value":"/scoreboard players set min_leaves_found timber "},"hoverEvent":{"action":"show_text","value":"Default: 5"}},{"text":" Set Min. Leaves to Valid a Tree","hoverEvent":{"action":"show_text","value":"This datapack considers a tree only if it has this set value amount of naturally generated leaves at its trunk.\nFungi will get checked by the amount of cap blocks and additionally a 3×3 big cross on top of the stem."}},{"text":" (Current: ","color":"gray"},{"score":{"name":"min_leaves_found","objective":"timber"},"color":"gray"},{"text": ")","color":"gray"}] + +tellraw @s ["",{"text":"\u00A7m ","color":"dark_gray"}] + +function timber:settings/end_of_message \ No newline at end of file diff --git a/datapacks/timber/data/timber/function/settings/settings2_click.mcfunction b/datapacks/timber/data/timber/function/settings/settings2_click.mcfunction new file mode 100755 index 0000000..44b2ce4 --- /dev/null +++ b/datapacks/timber/data/timber/function/settings/settings2_click.mcfunction @@ -0,0 +1,2 @@ +function timber:settings/settings2 +playsound minecraft:ui.button.click master @s ~ ~ ~ .2 1.6 .2 \ No newline at end of file diff --git a/datapacks/timber/data/timber/function/settings/toggle/chop_down.mcfunction b/datapacks/timber/data/timber/function/settings/toggle/chop_down.mcfunction new file mode 100755 index 0000000..e601c0c --- /dev/null +++ b/datapacks/timber/data/timber/function/settings/toggle/chop_down.mcfunction @@ -0,0 +1,7 @@ +execute if score chop_down timber matches 1.. run scoreboard players set chop_down timber 2 +execute unless score chop_down timber matches 1.. run scoreboard players set chop_down timber 1 +execute if score chop_down timber matches 2.. run scoreboard players set chop_down timber 0 +execute if score chop_down timber matches 1 run playsound minecraft:ui.button.click master @s ~ ~ ~ .2 1.9 .2 +execute if score chop_down timber matches 0 run playsound minecraft:ui.button.click master @s ~ ~ ~ .2 1.3 .2 +function timber:settings/settings +function timber:settings/end_of_message \ No newline at end of file diff --git a/datapacks/timber/data/timber/function/settings/toggle/chop_fungi.mcfunction b/datapacks/timber/data/timber/function/settings/toggle/chop_fungi.mcfunction new file mode 100755 index 0000000..22614b8 --- /dev/null +++ b/datapacks/timber/data/timber/function/settings/toggle/chop_fungi.mcfunction @@ -0,0 +1,7 @@ +execute if score chop_fungi timber matches 1.. run scoreboard players set chop_fungi timber 2 +execute unless score chop_fungi timber matches 1.. run scoreboard players set chop_fungi timber 1 +execute if score chop_fungi timber matches 2.. run scoreboard players set chop_fungi timber 0 +execute if score chop_fungi timber matches 1 run playsound minecraft:ui.button.click master @s ~ ~ ~ .2 1.9 .2 +execute if score chop_fungi timber matches 0 run playsound minecraft:ui.button.click master @s ~ ~ ~ .2 1.3 .2 +function timber:settings/settings2 +function timber:settings/end_of_message \ No newline at end of file diff --git a/datapacks/timber/data/timber/function/settings/toggle/chop_trees.mcfunction b/datapacks/timber/data/timber/function/settings/toggle/chop_trees.mcfunction new file mode 100755 index 0000000..19fe627 --- /dev/null +++ b/datapacks/timber/data/timber/function/settings/toggle/chop_trees.mcfunction @@ -0,0 +1,7 @@ +execute if score chop_trees timber matches 1.. run scoreboard players set chop_trees timber 2 +execute unless score chop_trees timber matches 1.. run scoreboard players set chop_trees timber 1 +execute if score chop_trees timber matches 2.. run scoreboard players set chop_trees timber 0 +execute if score chop_trees timber matches 1 run playsound minecraft:ui.button.click master @s ~ ~ ~ .2 1.9 .2 +execute if score chop_trees timber matches 0 run playsound minecraft:ui.button.click master @s ~ ~ ~ .2 1.3 .2 +function timber:settings/settings2 +function timber:settings/end_of_message \ No newline at end of file diff --git a/datapacks/timber/data/timber/function/settings/toggle/destroy_leaves.mcfunction b/datapacks/timber/data/timber/function/settings/toggle/destroy_leaves.mcfunction new file mode 100755 index 0000000..346bced --- /dev/null +++ b/datapacks/timber/data/timber/function/settings/toggle/destroy_leaves.mcfunction @@ -0,0 +1,7 @@ +execute if score destroy_leaves timber matches 1.. run scoreboard players set destroy_leaves timber 2 +execute unless score destroy_leaves timber matches 1.. run scoreboard players set destroy_leaves timber 1 +execute if score destroy_leaves timber matches 2.. run scoreboard players set destroy_leaves timber 0 +execute if score destroy_leaves timber matches 1 run playsound minecraft:ui.button.click master @s ~ ~ ~ .2 1.9 .2 +execute if score destroy_leaves timber matches 0 run playsound minecraft:ui.button.click master @s ~ ~ ~ .2 1.3 .2 +function timber:settings/settings +function timber:settings/end_of_message \ No newline at end of file diff --git a/datapacks/timber/data/timber/function/settings/toggle/diamond_axe.mcfunction b/datapacks/timber/data/timber/function/settings/toggle/diamond_axe.mcfunction new file mode 100755 index 0000000..83e45d8 --- /dev/null +++ b/datapacks/timber/data/timber/function/settings/toggle/diamond_axe.mcfunction @@ -0,0 +1,7 @@ +execute if score diamond_axe timber matches 1.. run scoreboard players set diamond_axe timber 2 +execute unless score diamond_axe timber matches 1.. run scoreboard players set diamond_axe timber 1 +execute if score diamond_axe timber matches 2.. run scoreboard players set diamond_axe timber 0 +execute if score diamond_axe timber matches 1 run playsound minecraft:ui.button.click master @s ~ ~ ~ .2 1.9 .2 +execute if score diamond_axe timber matches 0 run playsound minecraft:ui.button.click master @s ~ ~ ~ .2 1.3 .2 +function timber:settings/settings2 +function timber:settings/end_of_message \ No newline at end of file diff --git a/datapacks/timber/data/timber/function/settings/toggle/drop_loot.mcfunction b/datapacks/timber/data/timber/function/settings/toggle/drop_loot.mcfunction new file mode 100755 index 0000000..dc35415 --- /dev/null +++ b/datapacks/timber/data/timber/function/settings/toggle/drop_loot.mcfunction @@ -0,0 +1,7 @@ +execute if score drop_loot timber matches 1.. run scoreboard players set drop_loot timber 2 +execute unless score drop_loot timber matches 1.. run scoreboard players set drop_loot timber 1 +execute if score drop_loot timber matches 2.. run scoreboard players set drop_loot timber 0 +execute if score drop_loot timber matches 1 run playsound minecraft:ui.button.click master @s ~ ~ ~ .2 1.9 .2 +execute if score drop_loot timber matches 0 run playsound minecraft:ui.button.click master @s ~ ~ ~ .2 1.3 .2 +function timber:settings/settings +function timber:settings/end_of_message \ No newline at end of file diff --git a/datapacks/timber/data/timber/function/settings/toggle/golden_axe.mcfunction b/datapacks/timber/data/timber/function/settings/toggle/golden_axe.mcfunction new file mode 100755 index 0000000..f21f5b8 --- /dev/null +++ b/datapacks/timber/data/timber/function/settings/toggle/golden_axe.mcfunction @@ -0,0 +1,7 @@ +execute if score golden_axe timber matches 1.. run scoreboard players set golden_axe timber 2 +execute unless score golden_axe timber matches 1.. run scoreboard players set golden_axe timber 1 +execute if score golden_axe timber matches 2.. run scoreboard players set golden_axe timber 0 +execute if score golden_axe timber matches 1 run playsound minecraft:ui.button.click master @s ~ ~ ~ .2 1.9 .2 +execute if score golden_axe timber matches 0 run playsound minecraft:ui.button.click master @s ~ ~ ~ .2 1.3 .2 +function timber:settings/settings2 +function timber:settings/end_of_message \ No newline at end of file diff --git a/datapacks/timber/data/timber/function/settings/toggle/hunger.mcfunction b/datapacks/timber/data/timber/function/settings/toggle/hunger.mcfunction new file mode 100755 index 0000000..b1e9543 --- /dev/null +++ b/datapacks/timber/data/timber/function/settings/toggle/hunger.mcfunction @@ -0,0 +1,7 @@ +execute if score hunger timber matches 1.. run scoreboard players set hunger timber 2 +execute unless score hunger timber matches 1.. run scoreboard players set hunger timber 1 +execute if score hunger timber matches 2.. run scoreboard players set hunger timber 0 +execute if score hunger timber matches 1 run playsound minecraft:ui.button.click master @s ~ ~ ~ .2 1.9 .2 +execute if score hunger timber matches 0 run playsound minecraft:ui.button.click master @s ~ ~ ~ .2 1.3 .2 +function timber:settings/settings1 +function timber:settings/end_of_message \ No newline at end of file diff --git a/datapacks/timber/data/timber/function/settings/toggle/interfere.mcfunction b/datapacks/timber/data/timber/function/settings/toggle/interfere.mcfunction new file mode 100755 index 0000000..b1270d0 --- /dev/null +++ b/datapacks/timber/data/timber/function/settings/toggle/interfere.mcfunction @@ -0,0 +1,7 @@ +execute if score interfere timber matches 1.. run scoreboard players set interfere timber 2 +execute unless score interfere timber matches 1.. run scoreboard players set interfere timber 1 +execute if score interfere timber matches 2.. run scoreboard players set interfere timber 0 +execute if score interfere timber matches 1 run playsound minecraft:ui.button.click master @s ~ ~ ~ .2 1.9 .2 +execute if score interfere timber matches 0 run playsound minecraft:ui.button.click master @s ~ ~ ~ .2 1.3 .2 +function timber:settings/settings +function timber:settings/end_of_message \ No newline at end of file diff --git a/datapacks/timber/data/timber/function/settings/toggle/iron_axe.mcfunction b/datapacks/timber/data/timber/function/settings/toggle/iron_axe.mcfunction new file mode 100755 index 0000000..bf08c1f --- /dev/null +++ b/datapacks/timber/data/timber/function/settings/toggle/iron_axe.mcfunction @@ -0,0 +1,7 @@ +execute if score iron_axe timber matches 1.. run scoreboard players set iron_axe timber 2 +execute unless score iron_axe timber matches 1.. run scoreboard players set iron_axe timber 1 +execute if score iron_axe timber matches 2.. run scoreboard players set iron_axe timber 0 +execute if score iron_axe timber matches 1 run playsound minecraft:ui.button.click master @s ~ ~ ~ .2 1.9 .2 +execute if score iron_axe timber matches 0 run playsound minecraft:ui.button.click master @s ~ ~ ~ .2 1.3 .2 +function timber:settings/settings2 +function timber:settings/end_of_message \ No newline at end of file diff --git a/datapacks/timber/data/timber/function/settings/toggle/netherite_axe.mcfunction b/datapacks/timber/data/timber/function/settings/toggle/netherite_axe.mcfunction new file mode 100755 index 0000000..17f6528 --- /dev/null +++ b/datapacks/timber/data/timber/function/settings/toggle/netherite_axe.mcfunction @@ -0,0 +1,7 @@ +execute if score netherite_axe timber matches 1.. run scoreboard players set netherite_axe timber 2 +execute unless score netherite_axe timber matches 1.. run scoreboard players set netherite_axe timber 1 +execute if score netherite_axe timber matches 2.. run scoreboard players set netherite_axe timber 0 +execute if score netherite_axe timber matches 1 run playsound minecraft:ui.button.click master @s ~ ~ ~ .2 1.9 .2 +execute if score netherite_axe timber matches 0 run playsound minecraft:ui.button.click master @s ~ ~ ~ .2 1.3 .2 +function timber:settings/settings2 +function timber:settings/end_of_message \ No newline at end of file diff --git a/datapacks/timber/data/timber/function/settings/toggle/persistent.mcfunction b/datapacks/timber/data/timber/function/settings/toggle/persistent.mcfunction new file mode 100755 index 0000000..83637df --- /dev/null +++ b/datapacks/timber/data/timber/function/settings/toggle/persistent.mcfunction @@ -0,0 +1,7 @@ +execute if score persistent timber matches 1.. run scoreboard players set persistent timber 2 +execute unless score persistent timber matches 1.. run scoreboard players set persistent timber 1 +execute if score persistent timber matches 2.. run scoreboard players set persistent timber 0 +execute if score persistent timber matches 1 run playsound minecraft:ui.button.click master @s ~ ~ ~ .2 1.9 .2 +execute if score persistent timber matches 0 run playsound minecraft:ui.button.click master @s ~ ~ ~ .2 1.3 .2 +function timber:settings/settings +function timber:settings/end_of_message \ No newline at end of file diff --git a/datapacks/timber/data/timber/function/settings/toggle/plant_sapling.mcfunction b/datapacks/timber/data/timber/function/settings/toggle/plant_sapling.mcfunction new file mode 100755 index 0000000..a6efdc3 --- /dev/null +++ b/datapacks/timber/data/timber/function/settings/toggle/plant_sapling.mcfunction @@ -0,0 +1,8 @@ +execute if score plant_sapling timber matches 1.. run scoreboard players set plant_sapling timber 2 +execute unless score plant_sapling timber matches 1.. run scoreboard players set plant_sapling timber 1 +execute if score plant_sapling timber matches 2.. run scoreboard players set plant_sapling timber 0 +execute if score plant_sapling timber matches 1 run playsound minecraft:ui.button.click master @s ~ ~ ~ .2 1.9 .2 +execute if score plant_sapling timber matches 1 run function timber:autoplant/loop +execute if score plant_sapling timber matches 0 run playsound minecraft:ui.button.click master @s ~ ~ ~ .2 1.3 .2 +function timber:settings/settings1 +function timber:settings/end_of_message \ No newline at end of file diff --git a/datapacks/timber/data/timber/function/settings/toggle/slow_chop.mcfunction b/datapacks/timber/data/timber/function/settings/toggle/slow_chop.mcfunction new file mode 100755 index 0000000..0a0989c --- /dev/null +++ b/datapacks/timber/data/timber/function/settings/toggle/slow_chop.mcfunction @@ -0,0 +1,8 @@ +execute if score slow_chop timber matches 1.. run scoreboard players set slow_chop timber 2 +execute unless score slow_chop timber matches 1.. run scoreboard players set slow_chop timber 1 +execute if score slow_chop timber matches 2.. run scoreboard players set slow_chop timber 0 +execute if score slow_chop timber matches 1 run playsound minecraft:ui.button.click master @s ~ ~ ~ .2 1.9 .2 +execute if score slow_chop timber matches 1 run function timber:slow_chop/loop +execute if score slow_chop timber matches 0 run playsound minecraft:ui.button.click master @s ~ ~ ~ .2 1.3 .2 +function timber:settings/settings1 +function timber:settings/end_of_message \ No newline at end of file diff --git a/datapacks/timber/data/timber/function/settings/toggle/sneaking.mcfunction b/datapacks/timber/data/timber/function/settings/toggle/sneaking.mcfunction new file mode 100755 index 0000000..53f5141 --- /dev/null +++ b/datapacks/timber/data/timber/function/settings/toggle/sneaking.mcfunction @@ -0,0 +1,7 @@ +execute if score sneaking timber matches 1.. run scoreboard players set sneaking timber 2 +execute unless score sneaking timber matches 1.. run scoreboard players set sneaking timber 1 +execute if score sneaking timber matches 2.. run scoreboard players set sneaking timber 0 +execute if score sneaking timber matches 1 run playsound minecraft:ui.button.click master @s ~ ~ ~ .2 1.9 .2 +execute if score sneaking timber matches 0 run playsound minecraft:ui.button.click master @s ~ ~ ~ .2 1.3 .2 +function timber:settings/settings +function timber:settings/end_of_message \ No newline at end of file diff --git a/datapacks/timber/data/timber/function/settings/toggle/standing.mcfunction b/datapacks/timber/data/timber/function/settings/toggle/standing.mcfunction new file mode 100755 index 0000000..08c661d --- /dev/null +++ b/datapacks/timber/data/timber/function/settings/toggle/standing.mcfunction @@ -0,0 +1,7 @@ +execute if score standing timber matches 1.. run scoreboard players set standing timber 2 +execute unless score standing timber matches 1.. run scoreboard players set standing timber 1 +execute if score standing timber matches 2.. run scoreboard players set standing timber 0 +execute if score standing timber matches 1 run playsound minecraft:ui.button.click master @s ~ ~ ~ .2 1.9 .2 +execute if score standing timber matches 0 run playsound minecraft:ui.button.click master @s ~ ~ ~ .2 1.3 .2 +function timber:settings/settings +function timber:settings/end_of_message \ No newline at end of file diff --git a/datapacks/timber/data/timber/function/settings/toggle/stone_axe.mcfunction b/datapacks/timber/data/timber/function/settings/toggle/stone_axe.mcfunction new file mode 100755 index 0000000..641459d --- /dev/null +++ b/datapacks/timber/data/timber/function/settings/toggle/stone_axe.mcfunction @@ -0,0 +1,7 @@ +execute if score stone_axe timber matches 1.. run scoreboard players set stone_axe timber 2 +execute unless score stone_axe timber matches 1.. run scoreboard players set stone_axe timber 1 +execute if score stone_axe timber matches 2.. run scoreboard players set stone_axe timber 0 +execute if score stone_axe timber matches 1 run playsound minecraft:ui.button.click master @s ~ ~ ~ .2 1.9 .2 +execute if score stone_axe timber matches 0 run playsound minecraft:ui.button.click master @s ~ ~ ~ .2 1.3 .2 +function timber:settings/settings2 +function timber:settings/end_of_message \ No newline at end of file diff --git a/datapacks/timber/data/timber/function/settings/toggle/stop_chopping.mcfunction b/datapacks/timber/data/timber/function/settings/toggle/stop_chopping.mcfunction new file mode 100755 index 0000000..b13140f --- /dev/null +++ b/datapacks/timber/data/timber/function/settings/toggle/stop_chopping.mcfunction @@ -0,0 +1,7 @@ +execute if score stop_chopping timber matches 1.. run scoreboard players set stop_chopping timber 2 +execute unless score stop_chopping timber matches 1.. run scoreboard players set stop_chopping timber 1 +execute if score stop_chopping timber matches 2.. run scoreboard players set stop_chopping timber 0 +execute if score stop_chopping timber matches 1 run playsound minecraft:ui.button.click master @s ~ ~ ~ .2 1.9 .2 +execute if score stop_chopping timber matches 0 run playsound minecraft:ui.button.click master @s ~ ~ ~ .2 1.3 .2 +function timber:settings/settings +function timber:settings/end_of_message \ No newline at end of file diff --git a/datapacks/timber/data/timber/function/settings/toggle/stopsound.mcfunction b/datapacks/timber/data/timber/function/settings/toggle/stopsound.mcfunction new file mode 100755 index 0000000..9418b18 --- /dev/null +++ b/datapacks/timber/data/timber/function/settings/toggle/stopsound.mcfunction @@ -0,0 +1,7 @@ +execute if score stopsound timber matches 1.. run scoreboard players set stopsound timber 2 +execute unless score stopsound timber matches 1.. run scoreboard players set stopsound timber 1 +execute if score stopsound timber matches 2.. run scoreboard players set stopsound timber 0 +execute if score stopsound timber matches 1 run playsound minecraft:ui.button.click master @s ~ ~ ~ .2 1.9 .2 +execute if score stopsound timber matches 0 run playsound minecraft:ui.button.click master @s ~ ~ ~ .2 1.3 .2 +function timber:settings/settings +function timber:settings/end_of_message \ No newline at end of file diff --git a/datapacks/timber/data/timber/function/settings/toggle/timber.mcfunction b/datapacks/timber/data/timber/function/settings/toggle/timber.mcfunction new file mode 100755 index 0000000..0a26b1d --- /dev/null +++ b/datapacks/timber/data/timber/function/settings/toggle/timber.mcfunction @@ -0,0 +1,9 @@ +# reset +scoreboard players set @s TimberToggle 0 +# toggle +execute unless score @s timber_disabled matches 1.. run scoreboard players set @s timber_disabled 3 +execute if score @s timber_disabled matches 1 run scoreboard players set @s timber_disabled 0 +execute if score @s timber_disabled matches 3 run scoreboard players set @s timber_disabled 1 +# display on/off status +execute unless score @s[tag=!global.ignore.gui] timber_disabled matches 1.. run tellraw @s ["",{"text":"<< ","color":"dark_gray"},{"text":"✔","color":"green"},{"text":" Timber is now on"},{"text":" >>","color":"dark_gray"}] +execute if score @s[tag=!global.ignore.gui] timber_disabled matches 1.. run tellraw @s ["",{"text":"<< ","color":"dark_gray"},{"text":"❌","color":"red"},{"text":" Timber is now off"},{"text":" >>","color":"dark_gray"}] \ No newline at end of file diff --git a/datapacks/timber/data/timber/function/settings/toggle/wear_out.mcfunction b/datapacks/timber/data/timber/function/settings/toggle/wear_out.mcfunction new file mode 100755 index 0000000..0bad5ec --- /dev/null +++ b/datapacks/timber/data/timber/function/settings/toggle/wear_out.mcfunction @@ -0,0 +1,7 @@ +execute if score wear_out timber matches 1.. run scoreboard players set wear_out timber 2 +execute unless score wear_out timber matches 1.. run scoreboard players set wear_out timber 1 +execute if score wear_out timber matches 2.. run scoreboard players set wear_out timber 0 +execute if score wear_out timber matches 1 run playsound minecraft:ui.button.click master @s ~ ~ ~ .2 1.9 .2 +execute if score wear_out timber matches 0 run playsound minecraft:ui.button.click master @s ~ ~ ~ .2 1.3 .2 +function timber:settings/settings +function timber:settings/end_of_message \ No newline at end of file diff --git a/datapacks/timber/data/timber/function/settings/toggle/wooden_axe.mcfunction b/datapacks/timber/data/timber/function/settings/toggle/wooden_axe.mcfunction new file mode 100755 index 0000000..cb82456 --- /dev/null +++ b/datapacks/timber/data/timber/function/settings/toggle/wooden_axe.mcfunction @@ -0,0 +1,7 @@ +execute if score wooden_axe timber matches 1.. run scoreboard players set wooden_axe timber 2 +execute unless score wooden_axe timber matches 1.. run scoreboard players set wooden_axe timber 1 +execute if score wooden_axe timber matches 2.. run scoreboard players set wooden_axe timber 0 +execute if score wooden_axe timber matches 1 run playsound minecraft:ui.button.click master @s ~ ~ ~ .2 1.9 .2 +execute if score wooden_axe timber matches 0 run playsound minecraft:ui.button.click master @s ~ ~ ~ .2 1.3 .2 +function timber:settings/settings2 +function timber:settings/end_of_message \ No newline at end of file diff --git a/datapacks/timber/data/timber/function/slow_chop/api.mcfunction b/datapacks/timber/data/timber/function/slow_chop/api.mcfunction new file mode 100755 index 0000000..6e64311 --- /dev/null +++ b/datapacks/timber/data/timber/function/slow_chop/api.mcfunction @@ -0,0 +1,5 @@ +# api +execute if entity @s[tag=timber_log] run function #timber:api/break_log +execute if entity @s[tag=timber_leaf] run function #timber:api/break_leaf +execute if entity @s[tag=timber_stem] run function #timber:api/break_stem +execute if entity @s[tag=timber_cap] run function #timber:api/break_cap \ No newline at end of file diff --git a/datapacks/timber/data/timber/function/slow_chop/delete_markers.mcfunction b/datapacks/timber/data/timber/function/slow_chop/delete_markers.mcfunction new file mode 100755 index 0000000..c3375d6 --- /dev/null +++ b/datapacks/timber/data/timber/function/slow_chop/delete_markers.mcfunction @@ -0,0 +1,3 @@ +# delete tree markers after chopping +kill @e[type=minecraft:marker,tag=timber_slow_chop] +kill @e[type=minecraft:armor_stand,tag=timber_tool] \ No newline at end of file diff --git a/datapacks/timber/data/timber/function/slow_chop/destroy1.mcfunction b/datapacks/timber/data/timber/function/slow_chop/destroy1.mcfunction new file mode 100755 index 0000000..b4b2364 --- /dev/null +++ b/datapacks/timber/data/timber/function/slow_chop/destroy1.mcfunction @@ -0,0 +1,21 @@ +# api +execute as @e[type=minecraft:marker,tag=timber_destroy,sort=nearest,limit=1] at @s run function timber:slow_chop/api + +# destroy 1 block +execute as @e[type=minecraft:armor_stand,tag=timber_tool,y=0,distance=...1,sort=arbitrary,limit=1] at @e[type=minecraft:marker,tag=timber_destroy,sort=nearest,limit=1] run loot spawn ~ ~ ~ mine ~ ~ ~ mainhand + +# destroy animation +gamerule doTileDrops false +execute at @e[type=minecraft:marker,tag=timber_destroy,sort=nearest,limit=1] run setblock ~ ~ ~ minecraft:air destroy +gamerule doTileDrops true + +# stop sound +execute if score stopsound timber matches 1.. at @e[type=minecraft:marker,tag=timber_destroy,sort=nearest,limit=1] as @a[distance=..20,tag=!global.ignore.gui] run function timber:utils/stopsound + +# delete location item +execute at @e[type=minecraft:marker,tag=timber_destroy,sort=nearest,limit=1] run kill @e[type=minecraft:item,nbt={Item:{components:{"minecraft:custom_data":{Tags:[timber_location]}}}}] + +# remove marker of processed blocks +kill @e[type=minecraft:marker,tag=timber_destroy,sort=nearest,limit=1] + +scoreboard players add b_p_c timber 1 \ No newline at end of file diff --git a/datapacks/timber/data/timber/function/slow_chop/destroy5.mcfunction b/datapacks/timber/data/timber/function/slow_chop/destroy5.mcfunction new file mode 100755 index 0000000..ca702ff --- /dev/null +++ b/datapacks/timber/data/timber/function/slow_chop/destroy5.mcfunction @@ -0,0 +1,21 @@ +# api +execute as @e[type=minecraft:marker,tag=timber_destroy,sort=nearest,limit=1] at @s run function timber:slow_chop/api + +# destroy 5 block +execute as @e[type=minecraft:armor_stand,tag=timber_tool,y=0,distance=...1,sort=arbitrary,limit=1] at @e[type=minecraft:marker,tag=timber_destroy,sort=nearest,limit=5] run loot spawn ~ ~ ~ mine ~ ~ ~ mainhand + +# destroy animation +gamerule doTileDrops false +execute at @e[type=minecraft:marker,tag=timber_destroy,sort=nearest,limit=5] run setblock ~ ~ ~ minecraft:air destroy +gamerule doTileDrops true + +# stop sound +execute if score stopsound timber matches 1.. at @e[type=minecraft:marker,tag=timber_destroy,sort=nearest,limit=5] as @a[distance=..20,tag=!global.ignore.gui] run function timber:utils/stopsound + +# delete location item +execute at @e[type=minecraft:marker,tag=timber_destroy,sort=nearest,limit=1] run kill @e[type=minecraft:item,nbt={Item:{components:{"minecraft:custom_data":{Tags:[timber_location]}}}}] + +# remove marker of processed blocks +kill @e[type=minecraft:marker,tag=timber_destroy,sort=nearest,limit=5] + +scoreboard players add b_p_c timber 5 \ No newline at end of file diff --git a/datapacks/timber/data/timber/function/slow_chop/destroy_loop.mcfunction b/datapacks/timber/data/timber/function/slow_chop/destroy_loop.mcfunction new file mode 100755 index 0000000..bf3202c --- /dev/null +++ b/datapacks/timber/data/timber/function/slow_chop/destroy_loop.mcfunction @@ -0,0 +1,9 @@ +# destroy 5 block +execute unless score b_p_c timber matches ..4 run function timber:slow_chop/destroy5 + +# destroy 1 block +execute unless score b_p_c timber matches 5.. run function timber:slow_chop/destroy1 + +# loop +execute if score b_p_c timber < blocks_per_chop timber run function timber:slow_chop/destroy_loop +execute if score b_p_c timber >= blocks_per_chop timber run scoreboard players set b_p_c timber 0 \ No newline at end of file diff --git a/datapacks/timber/data/timber/function/slow_chop/loop.mcfunction b/datapacks/timber/data/timber/function/slow_chop/loop.mcfunction new file mode 100755 index 0000000..fc2ea7d --- /dev/null +++ b/datapacks/timber/data/timber/function/slow_chop/loop.mcfunction @@ -0,0 +1,12 @@ +# Loop +execute if score slow_chop timber matches 1.. run schedule function timber:slow_chop/loop 1t replace + +scoreboard players add t_b_c timber 1 + +# chop trees +execute if score t_b_c timber >= time_between_chops timber at @e[type=minecraft:marker,tag=timber_slow_chop] run function timber:slow_chop/destroy_loop + +# delete tree markers after chopping +execute if score t_b_c timber >= time_between_chops timber unless entity @e[type=minecraft:marker,tag=timber_destroy] run function timber:slow_chop/delete_markers + +execute if score t_b_c timber >= time_between_chops timber run scoreboard players set t_b_c timber 0 \ No newline at end of file diff --git a/datapacks/timber/data/timber/function/sneaking.mcfunction b/datapacks/timber/data/timber/function/sneaking.mcfunction new file mode 100755 index 0000000..1a6478b --- /dev/null +++ b/datapacks/timber/data/timber/function/sneaking.mcfunction @@ -0,0 +1,3 @@ +# standing or sneaking enabled? +execute if score standing timber matches 1.. unless predicate timber:sneaking run function timber:run +execute if score sneaking timber matches 1.. if predicate timber:sneaking run function timber:run \ No newline at end of file diff --git a/datapacks/timber/data/timber/function/tool/durability_check.mcfunction b/datapacks/timber/data/timber/function/tool/durability_check.mcfunction new file mode 100755 index 0000000..43260b8 --- /dev/null +++ b/datapacks/timber/data/timber/function/tool/durability_check.mcfunction @@ -0,0 +1,7 @@ +# check if axe is broken +execute if score @s timber_w_axe matches 1.. unless score durability timber matches ..59 run scoreboard players set durability_okay timber 0 +execute if score @s timber_s_axe matches 1.. unless score durability timber matches ..131 run scoreboard players set durability_okay timber 0 +execute if score @s timber_i_axe matches 1.. unless score durability timber matches ..250 run scoreboard players set durability_okay timber 0 +execute if score @s timber_g_axe matches 1.. unless score durability timber matches ..32 run scoreboard players set durability_okay timber 0 +execute if score @s timber_d_axe matches 1.. unless score durability timber matches ..1561 run scoreboard players set durability_okay timber 0 +execute if score @s timber_n_axe matches 1.. unless score durability timber matches ..2031 run scoreboard players set durability_okay timber 0 \ No newline at end of file diff --git a/datapacks/timber/data/timber/function/tool/durability_count.mcfunction b/datapacks/timber/data/timber/function/tool/durability_count.mcfunction new file mode 100755 index 0000000..118f8c3 --- /dev/null +++ b/datapacks/timber/data/timber/function/tool/durability_count.mcfunction @@ -0,0 +1,5 @@ +# count wear out of tool depending on enchantment +execute if score unbreaking timber matches 0 run scoreboard players add durability timber 1 +execute if score unbreaking timber matches 1 if predicate timber:random_chance/0.5 run scoreboard players add durability timber 1 +execute if score unbreaking timber matches 2 if predicate timber:random_chance/0.333 run scoreboard players add durability timber 1 +execute if score unbreaking timber matches 3.. if predicate timber:random_chance/0.25 run scoreboard players add durability timber 1 \ No newline at end of file diff --git a/datapacks/timber/data/timber/function/tool/durability_get.mcfunction b/datapacks/timber/data/timber/function/tool/durability_get.mcfunction new file mode 100755 index 0000000..2a0814a --- /dev/null +++ b/datapacks/timber/data/timber/function/tool/durability_get.mcfunction @@ -0,0 +1,5 @@ +scoreboard players set unbreakable timber 0 +execute store result score durability timber run data get entity @s SelectedItem.components."minecraft:damage" +scoreboard players remove durability timber 1 +execute unless items entity @s weapon.mainhand * run scoreboard players set durability timber 9999 +execute if items entity @s weapon.mainhand *[unbreakable] run scoreboard players set unbreakable timber 1 \ No newline at end of file diff --git a/datapacks/timber/data/timber/function/tool/wear_out.mcfunction b/datapacks/timber/data/timber/function/tool/wear_out.mcfunction new file mode 100755 index 0000000..d6b6e58 --- /dev/null +++ b/datapacks/timber/data/timber/function/tool/wear_out.mcfunction @@ -0,0 +1,3 @@ +# wear out tool +execute store result storage timber:temp durability int 1 run scoreboard players get durability timber +item modify entity @s weapon.mainhand timber:wear_out \ No newline at end of file diff --git a/datapacks/timber/data/timber/function/tool/worn_out.mcfunction b/datapacks/timber/data/timber/function/tool/worn_out.mcfunction new file mode 100755 index 0000000..e4fe899 --- /dev/null +++ b/datapacks/timber/data/timber/function/tool/worn_out.mcfunction @@ -0,0 +1,13 @@ +# break axe if worn out +execute if score @s timber_w_axe matches 1.. if score durability timber matches 59.. run item replace entity @s weapon.mainhand with minecraft:air +execute if score @s timber_w_axe matches 1.. if score durability timber matches 59.. run playsound minecraft:entity.item.break player @a ~ ~ ~ +execute if score @s timber_s_axe matches 1.. if score durability timber matches 131.. run item replace entity @s weapon.mainhand with minecraft:air +execute if score @s timber_s_axe matches 1.. if score durability timber matches 131.. run playsound minecraft:entity.item.break player @a ~ ~ ~ +execute if score @s timber_i_axe matches 1.. if score durability timber matches 250.. run item replace entity @s weapon.mainhand with minecraft:air +execute if score @s timber_i_axe matches 1.. if score durability timber matches 250.. run playsound minecraft:entity.item.break player @a ~ ~ ~ +execute if score @s timber_g_axe matches 1.. if score durability timber matches 32.. run item replace entity @s weapon.mainhand with minecraft:air +execute if score @s timber_g_axe matches 1.. if score durability timber matches 32.. run playsound minecraft:entity.item.break player @a ~ ~ ~ +execute if score @s timber_d_axe matches 1.. if score durability timber matches 1561.. run item replace entity @s weapon.mainhand with minecraft:air +execute if score @s timber_d_axe matches 1.. if score durability timber matches 1561.. run playsound minecraft:entity.item.break player @a ~ ~ ~ +execute if score @s timber_n_axe matches 1.. if score durability timber matches 2031.. run item replace entity @s weapon.mainhand with minecraft:air +execute if score @s timber_n_axe matches 1.. if score durability timber matches 2031.. run playsound minecraft:entity.item.break player @a ~ ~ ~ \ No newline at end of file diff --git a/datapacks/timber/data/timber/function/uninstall.mcfunction b/datapacks/timber/data/timber/function/uninstall.mcfunction new file mode 100755 index 0000000..96a2656 --- /dev/null +++ b/datapacks/timber/data/timber/function/uninstall.mcfunction @@ -0,0 +1,19 @@ +# stop main functions +schedule clear timber:main + +# remove scoreboards +scoreboard objectives remove timber_w_axe +scoreboard objectives remove timber_s_axe +scoreboard objectives remove timber_i_axe +scoreboard objectives remove timber_g_axe +scoreboard objectives remove timber_d_axe +scoreboard objectives remove timber_n_axe +scoreboard objectives remove timber +scoreboard objectives remove TimberToggle +scoreboard objectives remove timber_disabled +scoreboard objectives remove timber_prsistent + +# remove markers +kill @e[type=minecraft:marker,tag=timber_slow_chop] +kill @e[type=minecraft:marker,tag=timber_destroy] +kill @e[type=minecraft:armor_stand,tag=timber_tool] \ No newline at end of file diff --git a/datapacks/timber/data/timber/function/used_axe.mcfunction b/datapacks/timber/data/timber/function/used_axe.mcfunction new file mode 100755 index 0000000..f3d5276 --- /dev/null +++ b/datapacks/timber/data/timber/function/used_axe.mcfunction @@ -0,0 +1,18 @@ +# is this axe enabled? +execute unless score @s timber_disabled matches 1.. if score @s timber_w_axe matches 1.. if score wooden_axe timber matches 1.. run function timber:sneaking +execute unless score @s timber_disabled matches 1.. if score @s timber_s_axe matches 1.. if score stone_axe timber matches 1.. run function timber:sneaking +execute unless score @s timber_disabled matches 1.. if score @s timber_i_axe matches 1.. if score iron_axe timber matches 1.. run function timber:sneaking +execute unless score @s timber_disabled matches 1.. if score @s timber_g_axe matches 1.. if score golden_axe timber matches 1.. run function timber:sneaking +execute unless score @s timber_disabled matches 1.. if score @s timber_d_axe matches 1.. if score diamond_axe timber matches 1.. run function timber:sneaking +execute unless score @s timber_disabled matches 1.. if score @s timber_n_axe matches 1.. if score netherite_axe timber matches 1.. run function timber:sneaking + +# remove mushroom_stem marker +kill @e[type=minecraft:item,nbt={Item:{components:{"minecraft:custom_data":{Tags:[timber_location]}}}}] + +# reset scores +scoreboard players set @s timber_w_axe 0 +scoreboard players set @s timber_s_axe 0 +scoreboard players set @s timber_i_axe 0 +scoreboard players set @s timber_g_axe 0 +scoreboard players set @s timber_d_axe 0 +scoreboard players set @s timber_n_axe 0 \ No newline at end of file diff --git a/datapacks/timber/data/timber/function/utils/hunger.mcfunction b/datapacks/timber/data/timber/function/utils/hunger.mcfunction new file mode 100755 index 0000000..3d9e3de --- /dev/null +++ b/datapacks/timber/data/timber/function/utils/hunger.mcfunction @@ -0,0 +1,255 @@ +execute if score tree_size timber matches 1 run effect give @s minecraft:hunger 1 1 true +execute if score tree_size timber matches 2 run effect give @s minecraft:hunger 1 2 true +execute if score tree_size timber matches 3 run effect give @s minecraft:hunger 1 3 true +execute if score tree_size timber matches 4 run effect give @s minecraft:hunger 1 4 true +execute if score tree_size timber matches 5 run effect give @s minecraft:hunger 1 5 true +execute if score tree_size timber matches 6 run effect give @s minecraft:hunger 1 6 true +execute if score tree_size timber matches 7 run effect give @s minecraft:hunger 1 7 true +execute if score tree_size timber matches 8 run effect give @s minecraft:hunger 1 8 true +execute if score tree_size timber matches 9 run effect give @s minecraft:hunger 1 9 true +execute if score tree_size timber matches 10 run effect give @s minecraft:hunger 1 10 true +execute if score tree_size timber matches 11 run effect give @s minecraft:hunger 1 11 true +execute if score tree_size timber matches 12 run effect give @s minecraft:hunger 1 12 true +execute if score tree_size timber matches 13 run effect give @s minecraft:hunger 1 13 true +execute if score tree_size timber matches 14 run effect give @s minecraft:hunger 1 14 true +execute if score tree_size timber matches 15 run effect give @s minecraft:hunger 1 15 true +execute if score tree_size timber matches 16 run effect give @s minecraft:hunger 1 16 true +execute if score tree_size timber matches 17 run effect give @s minecraft:hunger 1 17 true +execute if score tree_size timber matches 18 run effect give @s minecraft:hunger 1 18 true +execute if score tree_size timber matches 19 run effect give @s minecraft:hunger 1 19 true +execute if score tree_size timber matches 20 run effect give @s minecraft:hunger 1 20 true +execute if score tree_size timber matches 21 run effect give @s minecraft:hunger 1 21 true +execute if score tree_size timber matches 22 run effect give @s minecraft:hunger 1 22 true +execute if score tree_size timber matches 23 run effect give @s minecraft:hunger 1 23 true +execute if score tree_size timber matches 24 run effect give @s minecraft:hunger 1 24 true +execute if score tree_size timber matches 25 run effect give @s minecraft:hunger 1 25 true +execute if score tree_size timber matches 26 run effect give @s minecraft:hunger 1 26 true +execute if score tree_size timber matches 27 run effect give @s minecraft:hunger 1 27 true +execute if score tree_size timber matches 28 run effect give @s minecraft:hunger 1 28 true +execute if score tree_size timber matches 29 run effect give @s minecraft:hunger 1 29 true +execute if score tree_size timber matches 30 run effect give @s minecraft:hunger 1 30 true +execute if score tree_size timber matches 31 run effect give @s minecraft:hunger 1 31 true +execute if score tree_size timber matches 32 run effect give @s minecraft:hunger 1 32 true +execute if score tree_size timber matches 33 run effect give @s minecraft:hunger 1 33 true +execute if score tree_size timber matches 34 run effect give @s minecraft:hunger 1 34 true +execute if score tree_size timber matches 35 run effect give @s minecraft:hunger 1 35 true +execute if score tree_size timber matches 36 run effect give @s minecraft:hunger 1 36 true +execute if score tree_size timber matches 37 run effect give @s minecraft:hunger 1 37 true +execute if score tree_size timber matches 38 run effect give @s minecraft:hunger 1 38 true +execute if score tree_size timber matches 39 run effect give @s minecraft:hunger 1 39 true +execute if score tree_size timber matches 40 run effect give @s minecraft:hunger 1 40 true +execute if score tree_size timber matches 41 run effect give @s minecraft:hunger 1 41 true +execute if score tree_size timber matches 42 run effect give @s minecraft:hunger 1 42 true +execute if score tree_size timber matches 43 run effect give @s minecraft:hunger 1 43 true +execute if score tree_size timber matches 44 run effect give @s minecraft:hunger 1 44 true +execute if score tree_size timber matches 45 run effect give @s minecraft:hunger 1 45 true +execute if score tree_size timber matches 46 run effect give @s minecraft:hunger 1 46 true +execute if score tree_size timber matches 47 run effect give @s minecraft:hunger 1 47 true +execute if score tree_size timber matches 48 run effect give @s minecraft:hunger 1 48 true +execute if score tree_size timber matches 49 run effect give @s minecraft:hunger 1 49 true +execute if score tree_size timber matches 50 run effect give @s minecraft:hunger 1 50 true +execute if score tree_size timber matches 51 run effect give @s minecraft:hunger 1 51 true +execute if score tree_size timber matches 52 run effect give @s minecraft:hunger 1 52 true +execute if score tree_size timber matches 53 run effect give @s minecraft:hunger 1 53 true +execute if score tree_size timber matches 54 run effect give @s minecraft:hunger 1 54 true +execute if score tree_size timber matches 55 run effect give @s minecraft:hunger 1 55 true +execute if score tree_size timber matches 56 run effect give @s minecraft:hunger 1 56 true +execute if score tree_size timber matches 57 run effect give @s minecraft:hunger 1 57 true +execute if score tree_size timber matches 58 run effect give @s minecraft:hunger 1 58 true +execute if score tree_size timber matches 59 run effect give @s minecraft:hunger 1 59 true +execute if score tree_size timber matches 60 run effect give @s minecraft:hunger 1 60 true +execute if score tree_size timber matches 61 run effect give @s minecraft:hunger 1 61 true +execute if score tree_size timber matches 62 run effect give @s minecraft:hunger 1 62 true +execute if score tree_size timber matches 63 run effect give @s minecraft:hunger 1 63 true +execute if score tree_size timber matches 64 run effect give @s minecraft:hunger 1 64 true +execute if score tree_size timber matches 65 run effect give @s minecraft:hunger 1 65 true +execute if score tree_size timber matches 66 run effect give @s minecraft:hunger 1 66 true +execute if score tree_size timber matches 67 run effect give @s minecraft:hunger 1 67 true +execute if score tree_size timber matches 68 run effect give @s minecraft:hunger 1 68 true +execute if score tree_size timber matches 69 run effect give @s minecraft:hunger 1 69 true +execute if score tree_size timber matches 70 run effect give @s minecraft:hunger 1 70 true +execute if score tree_size timber matches 71 run effect give @s minecraft:hunger 1 71 true +execute if score tree_size timber matches 72 run effect give @s minecraft:hunger 1 72 true +execute if score tree_size timber matches 73 run effect give @s minecraft:hunger 1 73 true +execute if score tree_size timber matches 74 run effect give @s minecraft:hunger 1 74 true +execute if score tree_size timber matches 75 run effect give @s minecraft:hunger 1 75 true +execute if score tree_size timber matches 76 run effect give @s minecraft:hunger 1 76 true +execute if score tree_size timber matches 77 run effect give @s minecraft:hunger 1 77 true +execute if score tree_size timber matches 78 run effect give @s minecraft:hunger 1 78 true +execute if score tree_size timber matches 79 run effect give @s minecraft:hunger 1 79 true +execute if score tree_size timber matches 80 run effect give @s minecraft:hunger 1 80 true +execute if score tree_size timber matches 81 run effect give @s minecraft:hunger 1 81 true +execute if score tree_size timber matches 82 run effect give @s minecraft:hunger 1 82 true +execute if score tree_size timber matches 83 run effect give @s minecraft:hunger 1 83 true +execute if score tree_size timber matches 84 run effect give @s minecraft:hunger 1 84 true +execute if score tree_size timber matches 85 run effect give @s minecraft:hunger 1 85 true +execute if score tree_size timber matches 86 run effect give @s minecraft:hunger 1 86 true +execute if score tree_size timber matches 87 run effect give @s minecraft:hunger 1 87 true +execute if score tree_size timber matches 88 run effect give @s minecraft:hunger 1 88 true +execute if score tree_size timber matches 89 run effect give @s minecraft:hunger 1 89 true +execute if score tree_size timber matches 90 run effect give @s minecraft:hunger 1 90 true +execute if score tree_size timber matches 91 run effect give @s minecraft:hunger 1 91 true +execute if score tree_size timber matches 92 run effect give @s minecraft:hunger 1 92 true +execute if score tree_size timber matches 93 run effect give @s minecraft:hunger 1 93 true +execute if score tree_size timber matches 94 run effect give @s minecraft:hunger 1 94 true +execute if score tree_size timber matches 95 run effect give @s minecraft:hunger 1 95 true +execute if score tree_size timber matches 96 run effect give @s minecraft:hunger 1 96 true +execute if score tree_size timber matches 97 run effect give @s minecraft:hunger 1 97 true +execute if score tree_size timber matches 98 run effect give @s minecraft:hunger 1 98 true +execute if score tree_size timber matches 99 run effect give @s minecraft:hunger 1 99 true +execute if score tree_size timber matches 100 run effect give @s minecraft:hunger 1 100 true +execute if score tree_size timber matches 101 run effect give @s minecraft:hunger 1 101 true +execute if score tree_size timber matches 102 run effect give @s minecraft:hunger 1 102 true +execute if score tree_size timber matches 103 run effect give @s minecraft:hunger 1 103 true +execute if score tree_size timber matches 104 run effect give @s minecraft:hunger 1 104 true +execute if score tree_size timber matches 105 run effect give @s minecraft:hunger 1 105 true +execute if score tree_size timber matches 106 run effect give @s minecraft:hunger 1 106 true +execute if score tree_size timber matches 107 run effect give @s minecraft:hunger 1 107 true +execute if score tree_size timber matches 108 run effect give @s minecraft:hunger 1 108 true +execute if score tree_size timber matches 109 run effect give @s minecraft:hunger 1 109 true +execute if score tree_size timber matches 110 run effect give @s minecraft:hunger 1 110 true +execute if score tree_size timber matches 111 run effect give @s minecraft:hunger 1 111 true +execute if score tree_size timber matches 112 run effect give @s minecraft:hunger 1 112 true +execute if score tree_size timber matches 113 run effect give @s minecraft:hunger 1 113 true +execute if score tree_size timber matches 114 run effect give @s minecraft:hunger 1 114 true +execute if score tree_size timber matches 115 run effect give @s minecraft:hunger 1 115 true +execute if score tree_size timber matches 116 run effect give @s minecraft:hunger 1 116 true +execute if score tree_size timber matches 117 run effect give @s minecraft:hunger 1 117 true +execute if score tree_size timber matches 118 run effect give @s minecraft:hunger 1 118 true +execute if score tree_size timber matches 119 run effect give @s minecraft:hunger 1 119 true +execute if score tree_size timber matches 120 run effect give @s minecraft:hunger 1 120 true +execute if score tree_size timber matches 121 run effect give @s minecraft:hunger 1 121 true +execute if score tree_size timber matches 122 run effect give @s minecraft:hunger 1 122 true +execute if score tree_size timber matches 123 run effect give @s minecraft:hunger 1 123 true +execute if score tree_size timber matches 124 run effect give @s minecraft:hunger 1 124 true +execute if score tree_size timber matches 125 run effect give @s minecraft:hunger 1 125 true +execute if score tree_size timber matches 126 run effect give @s minecraft:hunger 1 126 true +execute if score tree_size timber matches 127 run effect give @s minecraft:hunger 1 127 true +execute if score tree_size timber matches 128 run effect give @s minecraft:hunger 1 128 true +execute if score tree_size timber matches 129 run effect give @s minecraft:hunger 1 129 true +execute if score tree_size timber matches 130 run effect give @s minecraft:hunger 1 130 true +execute if score tree_size timber matches 131 run effect give @s minecraft:hunger 1 131 true +execute if score tree_size timber matches 132 run effect give @s minecraft:hunger 1 132 true +execute if score tree_size timber matches 133 run effect give @s minecraft:hunger 1 133 true +execute if score tree_size timber matches 134 run effect give @s minecraft:hunger 1 134 true +execute if score tree_size timber matches 135 run effect give @s minecraft:hunger 1 135 true +execute if score tree_size timber matches 136 run effect give @s minecraft:hunger 1 136 true +execute if score tree_size timber matches 137 run effect give @s minecraft:hunger 1 137 true +execute if score tree_size timber matches 138 run effect give @s minecraft:hunger 1 138 true +execute if score tree_size timber matches 139 run effect give @s minecraft:hunger 1 139 true +execute if score tree_size timber matches 140 run effect give @s minecraft:hunger 1 140 true +execute if score tree_size timber matches 141 run effect give @s minecraft:hunger 1 141 true +execute if score tree_size timber matches 142 run effect give @s minecraft:hunger 1 142 true +execute if score tree_size timber matches 143 run effect give @s minecraft:hunger 1 143 true +execute if score tree_size timber matches 144 run effect give @s minecraft:hunger 1 144 true +execute if score tree_size timber matches 145 run effect give @s minecraft:hunger 1 145 true +execute if score tree_size timber matches 146 run effect give @s minecraft:hunger 1 146 true +execute if score tree_size timber matches 147 run effect give @s minecraft:hunger 1 147 true +execute if score tree_size timber matches 148 run effect give @s minecraft:hunger 1 148 true +execute if score tree_size timber matches 149 run effect give @s minecraft:hunger 1 149 true +execute if score tree_size timber matches 150 run effect give @s minecraft:hunger 1 150 true +execute if score tree_size timber matches 151 run effect give @s minecraft:hunger 1 151 true +execute if score tree_size timber matches 152 run effect give @s minecraft:hunger 1 152 true +execute if score tree_size timber matches 153 run effect give @s minecraft:hunger 1 153 true +execute if score tree_size timber matches 154 run effect give @s minecraft:hunger 1 154 true +execute if score tree_size timber matches 155 run effect give @s minecraft:hunger 1 155 true +execute if score tree_size timber matches 156 run effect give @s minecraft:hunger 1 156 true +execute if score tree_size timber matches 157 run effect give @s minecraft:hunger 1 157 true +execute if score tree_size timber matches 158 run effect give @s minecraft:hunger 1 158 true +execute if score tree_size timber matches 159 run effect give @s minecraft:hunger 1 159 true +execute if score tree_size timber matches 160 run effect give @s minecraft:hunger 1 160 true +execute if score tree_size timber matches 161 run effect give @s minecraft:hunger 1 161 true +execute if score tree_size timber matches 162 run effect give @s minecraft:hunger 1 162 true +execute if score tree_size timber matches 163 run effect give @s minecraft:hunger 1 163 true +execute if score tree_size timber matches 164 run effect give @s minecraft:hunger 1 164 true +execute if score tree_size timber matches 165 run effect give @s minecraft:hunger 1 165 true +execute if score tree_size timber matches 166 run effect give @s minecraft:hunger 1 166 true +execute if score tree_size timber matches 167 run effect give @s minecraft:hunger 1 167 true +execute if score tree_size timber matches 168 run effect give @s minecraft:hunger 1 168 true +execute if score tree_size timber matches 169 run effect give @s minecraft:hunger 1 169 true +execute if score tree_size timber matches 170 run effect give @s minecraft:hunger 1 170 true +execute if score tree_size timber matches 171 run effect give @s minecraft:hunger 1 171 true +execute if score tree_size timber matches 172 run effect give @s minecraft:hunger 1 172 true +execute if score tree_size timber matches 173 run effect give @s minecraft:hunger 1 173 true +execute if score tree_size timber matches 174 run effect give @s minecraft:hunger 1 174 true +execute if score tree_size timber matches 175 run effect give @s minecraft:hunger 1 175 true +execute if score tree_size timber matches 176 run effect give @s minecraft:hunger 1 176 true +execute if score tree_size timber matches 177 run effect give @s minecraft:hunger 1 177 true +execute if score tree_size timber matches 178 run effect give @s minecraft:hunger 1 178 true +execute if score tree_size timber matches 179 run effect give @s minecraft:hunger 1 179 true +execute if score tree_size timber matches 180 run effect give @s minecraft:hunger 1 180 true +execute if score tree_size timber matches 181 run effect give @s minecraft:hunger 1 181 true +execute if score tree_size timber matches 182 run effect give @s minecraft:hunger 1 182 true +execute if score tree_size timber matches 183 run effect give @s minecraft:hunger 1 183 true +execute if score tree_size timber matches 184 run effect give @s minecraft:hunger 1 184 true +execute if score tree_size timber matches 185 run effect give @s minecraft:hunger 1 185 true +execute if score tree_size timber matches 186 run effect give @s minecraft:hunger 1 186 true +execute if score tree_size timber matches 187 run effect give @s minecraft:hunger 1 187 true +execute if score tree_size timber matches 188 run effect give @s minecraft:hunger 1 188 true +execute if score tree_size timber matches 189 run effect give @s minecraft:hunger 1 189 true +execute if score tree_size timber matches 190 run effect give @s minecraft:hunger 1 190 true +execute if score tree_size timber matches 191 run effect give @s minecraft:hunger 1 191 true +execute if score tree_size timber matches 192 run effect give @s minecraft:hunger 1 192 true +execute if score tree_size timber matches 193 run effect give @s minecraft:hunger 1 193 true +execute if score tree_size timber matches 194 run effect give @s minecraft:hunger 1 194 true +execute if score tree_size timber matches 195 run effect give @s minecraft:hunger 1 195 true +execute if score tree_size timber matches 196 run effect give @s minecraft:hunger 1 196 true +execute if score tree_size timber matches 197 run effect give @s minecraft:hunger 1 197 true +execute if score tree_size timber matches 198 run effect give @s minecraft:hunger 1 198 true +execute if score tree_size timber matches 199 run effect give @s minecraft:hunger 1 199 true +execute if score tree_size timber matches 200 run effect give @s minecraft:hunger 1 200 true +execute if score tree_size timber matches 201 run effect give @s minecraft:hunger 1 201 true +execute if score tree_size timber matches 202 run effect give @s minecraft:hunger 1 202 true +execute if score tree_size timber matches 203 run effect give @s minecraft:hunger 1 203 true +execute if score tree_size timber matches 204 run effect give @s minecraft:hunger 1 204 true +execute if score tree_size timber matches 205 run effect give @s minecraft:hunger 1 205 true +execute if score tree_size timber matches 206 run effect give @s minecraft:hunger 1 206 true +execute if score tree_size timber matches 207 run effect give @s minecraft:hunger 1 207 true +execute if score tree_size timber matches 208 run effect give @s minecraft:hunger 1 208 true +execute if score tree_size timber matches 209 run effect give @s minecraft:hunger 1 209 true +execute if score tree_size timber matches 210 run effect give @s minecraft:hunger 1 210 true +execute if score tree_size timber matches 211 run effect give @s minecraft:hunger 1 211 true +execute if score tree_size timber matches 212 run effect give @s minecraft:hunger 1 212 true +execute if score tree_size timber matches 213 run effect give @s minecraft:hunger 1 213 true +execute if score tree_size timber matches 214 run effect give @s minecraft:hunger 1 214 true +execute if score tree_size timber matches 215 run effect give @s minecraft:hunger 1 215 true +execute if score tree_size timber matches 216 run effect give @s minecraft:hunger 1 216 true +execute if score tree_size timber matches 217 run effect give @s minecraft:hunger 1 217 true +execute if score tree_size timber matches 218 run effect give @s minecraft:hunger 1 218 true +execute if score tree_size timber matches 219 run effect give @s minecraft:hunger 1 219 true +execute if score tree_size timber matches 220 run effect give @s minecraft:hunger 1 220 true +execute if score tree_size timber matches 221 run effect give @s minecraft:hunger 1 221 true +execute if score tree_size timber matches 222 run effect give @s minecraft:hunger 1 222 true +execute if score tree_size timber matches 223 run effect give @s minecraft:hunger 1 223 true +execute if score tree_size timber matches 224 run effect give @s minecraft:hunger 1 224 true +execute if score tree_size timber matches 225 run effect give @s minecraft:hunger 1 225 true +execute if score tree_size timber matches 226 run effect give @s minecraft:hunger 1 226 true +execute if score tree_size timber matches 227 run effect give @s minecraft:hunger 1 227 true +execute if score tree_size timber matches 228 run effect give @s minecraft:hunger 1 228 true +execute if score tree_size timber matches 229 run effect give @s minecraft:hunger 1 229 true +execute if score tree_size timber matches 230 run effect give @s minecraft:hunger 1 230 true +execute if score tree_size timber matches 231 run effect give @s minecraft:hunger 1 231 true +execute if score tree_size timber matches 232 run effect give @s minecraft:hunger 1 232 true +execute if score tree_size timber matches 233 run effect give @s minecraft:hunger 1 233 true +execute if score tree_size timber matches 234 run effect give @s minecraft:hunger 1 234 true +execute if score tree_size timber matches 235 run effect give @s minecraft:hunger 1 235 true +execute if score tree_size timber matches 236 run effect give @s minecraft:hunger 1 236 true +execute if score tree_size timber matches 237 run effect give @s minecraft:hunger 1 237 true +execute if score tree_size timber matches 238 run effect give @s minecraft:hunger 1 238 true +execute if score tree_size timber matches 239 run effect give @s minecraft:hunger 1 239 true +execute if score tree_size timber matches 240 run effect give @s minecraft:hunger 1 240 true +execute if score tree_size timber matches 241 run effect give @s minecraft:hunger 1 241 true +execute if score tree_size timber matches 242 run effect give @s minecraft:hunger 1 242 true +execute if score tree_size timber matches 243 run effect give @s minecraft:hunger 1 243 true +execute if score tree_size timber matches 244 run effect give @s minecraft:hunger 1 244 true +execute if score tree_size timber matches 245 run effect give @s minecraft:hunger 1 245 true +execute if score tree_size timber matches 246 run effect give @s minecraft:hunger 1 246 true +execute if score tree_size timber matches 247 run effect give @s minecraft:hunger 1 247 true +execute if score tree_size timber matches 248 run effect give @s minecraft:hunger 1 248 true +execute if score tree_size timber matches 249 run effect give @s minecraft:hunger 1 249 true +execute if score tree_size timber matches 250 run effect give @s minecraft:hunger 1 250 true +execute if score tree_size timber matches 251 run effect give @s minecraft:hunger 1 251 true +execute if score tree_size timber matches 252 run effect give @s minecraft:hunger 1 252 true +execute if score tree_size timber matches 253 run effect give @s minecraft:hunger 1 253 true +execute if score tree_size timber matches 254 run effect give @s minecraft:hunger 1 254 true +execute if score tree_size timber matches 255.. run effect give @s minecraft:hunger 1 255 true \ No newline at end of file diff --git a/datapacks/timber/data/timber/function/utils/stopsound.mcfunction b/datapacks/timber/data/timber/function/utils/stopsound.mcfunction new file mode 100755 index 0000000..b9d5f78 --- /dev/null +++ b/datapacks/timber/data/timber/function/utils/stopsound.mcfunction @@ -0,0 +1,6 @@ +stopsound @s block minecraft:block.grass.break +stopsound @s block minecraft:block.wood.break +stopsound @s block minecraft:block.wart_block.break +stopsound @s block minecraft:block.shroomlight.break +stopsound @s block minecraft:block.nether_wart.break +stopsound @s block minecraft:block.stem.break \ No newline at end of file diff --git a/datapacks/timber/data/timber/function/utils/tp_item.mcfunction b/datapacks/timber/data/timber/function/utils/tp_item.mcfunction new file mode 100755 index 0000000..a01d4e1 --- /dev/null +++ b/datapacks/timber/data/timber/function/utils/tp_item.mcfunction @@ -0,0 +1,9 @@ +# tp hand-broken loot into inventory + +tp @e[type=minecraft:item,sort=nearest,limit=1] @s + +#setblock ~ 255 ~ minecraft:yellow_shulker_box +#data modify block ~ 255 ~ Items append from entity @e[type=minecraft:item,sort=nearest,limit=1] Item +#kill @e[type=minecraft:item,sort=nearest,limit=1] +#loot give @s mine ~ 255 ~ minecraft:air{drop_contents:1b} +#setblock ~ 255 ~ minecraft:air \ No newline at end of file diff --git a/datapacks/timber/data/timber/function/validated.mcfunction b/datapacks/timber/data/timber/function/validated.mcfunction new file mode 100755 index 0000000..3653bf1 --- /dev/null +++ b/datapacks/timber/data/timber/function/validated.mcfunction @@ -0,0 +1,49 @@ +# when full inventory fix +execute if score drop_loot timber matches 1.. store result score inventory timber run data get entity @s Inventory +execute if score drop_loot timber matches 1.. if entity @s[nbt={Inventory:[{Slot:100b}]}] run scoreboard players remove inventory timber 1 +execute if score drop_loot timber matches 1.. if entity @s[nbt={Inventory:[{Slot:101b}]}] run scoreboard players remove inventory timber 1 +execute if score drop_loot timber matches 1.. if entity @s[nbt={Inventory:[{Slot:102b}]}] run scoreboard players remove inventory timber 1 +execute if score drop_loot timber matches 1.. if entity @s[nbt={Inventory:[{Slot:103b}]}] run scoreboard players remove inventory timber 1 +execute if score drop_loot timber matches 1.. if entity @s[nbt={Inventory:[{Slot:-106b}]}] run scoreboard players remove inventory timber 1 + +# destroy blocks + # mark blocks that need to be destroyed + tag @e[type=minecraft:marker,tag=timber_log] add timber_destroy + tag @e[type=minecraft:marker,tag=timber_leaf] add timber_destroy + tag @e[type=minecraft:marker,tag=timber_stem] add timber_destroy + tag @e[type=minecraft:marker,tag=timber_cap] add timber_destroy + # api + execute unless score slow_chop timber matches 1.. at @e[type=minecraft:marker,tag=timber_log] run function #timber:api/break_log + execute unless score slow_chop timber matches 1.. at @e[type=minecraft:marker,tag=timber_leaf] run function #timber:api/break_leaf + execute unless score slow_chop timber matches 1.. at @e[type=minecraft:marker,tag=timber_stem] run function #timber:api/break_stem + execute unless score slow_chop timber matches 1.. at @e[type=minecraft:marker,tag=timber_cap] run function #timber:api/break_cap + # loot + execute unless score slow_chop timber matches 1.. unless score drop_loot timber matches 1.. at @e[type=minecraft:marker,tag=timber_destroy] run loot spawn ~ ~ ~ mine ~ ~ ~ mainhand + execute unless score slow_chop timber matches 1.. if score drop_loot timber matches 1.. unless score inventory timber matches 36.. at @e[type=minecraft:marker,tag=timber_destroy] run loot give @s mine ~ ~ ~ mainhand + execute unless score slow_chop timber matches 1.. if score drop_loot timber matches 1.. if score inventory timber matches 36.. at @e[type=minecraft:marker,tag=timber_destroy] run loot spawn ~ ~ ~ mine ~ ~ ~ mainhand + # destroy animation + gamerule doTileDrops false + execute unless score slow_chop timber matches 1.. at @e[type=minecraft:marker,tag=timber_destroy] run setblock ~ ~ ~ minecraft:air destroy + gamerule doTileDrops true + # remove destroy marker + execute unless score slow_chop timber matches 1.. run kill @e[type=minecraft:marker,tag=timber_destroy] + +# stop sound +execute if score stopsound timber matches 1.. as @a[distance=..20,tag=!global.ignore.gui] run function timber:utils/stopsound + +# save tool for slow chopping process +execute if score slow_chop timber matches 1.. at @e[type=minecraft:marker,tag=timber_tree,tag=!timber_slow_chop,distance=..7,sort=arbitrary,limit=1] run summon minecraft:armor_stand ~ 0 ~ {Silent:1b,Invulnerable:1b,Marker:1b,Invisible:1b,Tags:["timber_tool"],Rotation:[45f],Pose:{RightArm:[0f,270f,0f]}} +execute if score slow_chop timber matches 1.. at @e[type=minecraft:marker,tag=timber_tree,tag=!timber_slow_chop,distance=..7,sort=arbitrary,limit=1] run data modify entity @e[type=minecraft:armor_stand,tag=timber_tool,y=0,distance=...1,sort=arbitrary,limit=1] HandItems[0] merge from entity @s SelectedItem +execute if score slow_chop timber matches 1.. run tag @e[type=minecraft:marker,tag=timber_tree,tag=!timber_slow_chop,distance=..7,sort=arbitrary,limit=1] add timber_slow_chop + +# tp hand-broken loot into inventory +execute if score drop_loot timber matches 1.. unless score inventory timber matches 36.. at @e[type=minecraft:marker,tag=timber_tree,tag=!timber_slow_chop,distance=..7,sort=arbitrary,limit=1] run function timber:utils/tp_item + +# wear out tool +execute if score wear_out timber matches 1.. unless score unbreakable timber matches 1 run function timber:tool/wear_out + +# break axe if worn out +execute if score wear_out timber matches 1.. unless score unbreakable timber matches 1 run function timber:tool/worn_out + +# give hunger effect +execute if score hunger timber matches 1.. run function timber:utils/hunger \ No newline at end of file diff --git a/datapacks/timber/data/timber/item_modifier/wear_out.json b/datapacks/timber/data/timber/item_modifier/wear_out.json new file mode 100755 index 0000000..d9324e2 --- /dev/null +++ b/datapacks/timber/data/timber/item_modifier/wear_out.json @@ -0,0 +1,11 @@ +{ + "function": "minecraft:copy_custom_data", + "source": "this", + "ops": [ + { + "source": "durability", + "target": "Damage", + "op": "replace" + } + ] +} \ No newline at end of file diff --git a/datapacks/timber/data/timber/predicate/block/cap.json b/datapacks/timber/data/timber/predicate/block/cap.json new file mode 100755 index 0000000..dd8d81a --- /dev/null +++ b/datapacks/timber/data/timber/predicate/block/cap.json @@ -0,0 +1,43 @@ +{ + "condition": "minecraft:any_of", + "terms": [ + { + "condition": "minecraft:location_check", + "predicate": { + "block": { + "blocks": "#minecraft:wart_blocks" + } + } + }, + { + "condition": "minecraft:location_check", + "predicate": { + "block": { + "blocks": [ + "minecraft:shroomlight" + ] + } + } + }, + { + "condition": "minecraft:location_check", + "predicate": { + "block": { + "blocks": [ + "minecraft:brown_mushroom_block" + ] + } + } + }, + { + "condition": "minecraft:location_check", + "predicate": { + "block": { + "blocks": [ + "minecraft:red_mushroom_block" + ] + } + } + } + ] +} \ No newline at end of file diff --git a/datapacks/timber/data/timber/predicate/block/leaf.json b/datapacks/timber/data/timber/predicate/block/leaf.json new file mode 100755 index 0000000..ff5ab4b --- /dev/null +++ b/datapacks/timber/data/timber/predicate/block/leaf.json @@ -0,0 +1,69 @@ +{ + "condition": "minecraft:any_of", + "terms": [ + { + "condition": "minecraft:inverted", + "term": { + "condition": "minecraft:any_of", + "terms": [ + { + "condition": "minecraft:inverted", + "term": { + "condition": "minecraft:location_check", + "predicate": { + "block": { + "blocks": "#minecraft:leaves", + "state": { + "persistent": "false" + } + } + } + } + }, + { + "condition": "minecraft:entity_scores", + "entity": "this", + "scores": { + "timber_prsistent": { + "min": 1, + "max": 2147483647 + } + } + } + ] + } + }, + { + "condition": "minecraft:inverted", + "term": { + "condition": "minecraft:any_of", + "terms": [ + { + "condition": "minecraft:inverted", + "term": { + "condition": "minecraft:location_check", + "predicate": { + "block": { + "blocks": "#minecraft:leaves" + } + } + } + }, + { + "condition": "minecraft:inverted", + "term": { + "condition": "minecraft:entity_scores", + "entity": "this", + "scores": { + "timber_prsistent": { + "min": 1, + "max": 2147483647 + } + } + } + } + ] + } + } + ] +} \ No newline at end of file diff --git a/datapacks/timber/data/timber/predicate/block/log.json b/datapacks/timber/data/timber/predicate/block/log.json new file mode 100755 index 0000000..6ee6ae9 --- /dev/null +++ b/datapacks/timber/data/timber/predicate/block/log.json @@ -0,0 +1,8 @@ +{ + "condition": "minecraft:location_check", + "predicate": { + "block": { + "blocks": "#minecraft:logs" + } + } +} \ No newline at end of file diff --git a/datapacks/timber/data/timber/predicate/block/stem.json b/datapacks/timber/data/timber/predicate/block/stem.json new file mode 100755 index 0000000..1149c13 --- /dev/null +++ b/datapacks/timber/data/timber/predicate/block/stem.json @@ -0,0 +1,23 @@ +{ + "condition": "minecraft:any_of", + "terms": [ + { + "condition": "minecraft:location_check", + "predicate": { + "block": { + "blocks": "#minecraft:logs" + } + } + }, + { + "condition": "minecraft:location_check", + "predicate": { + "block": { + "blocks": [ + "minecraft:mushroom_stem" + ] + } + } + } + ] +} \ No newline at end of file diff --git a/datapacks/timber/data/timber/predicate/item/log.json b/datapacks/timber/data/timber/predicate/item/log.json new file mode 100755 index 0000000..7fea675 --- /dev/null +++ b/datapacks/timber/data/timber/predicate/item/log.json @@ -0,0 +1,11 @@ +{ + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "equipment": { + "mainhand": { + "items": "#minecraft:logs" + } + } + } +} \ No newline at end of file diff --git a/datapacks/timber/data/timber/predicate/item/stem.json b/datapacks/timber/data/timber/predicate/item/stem.json new file mode 100755 index 0000000..a90df34 --- /dev/null +++ b/datapacks/timber/data/timber/predicate/item/stem.json @@ -0,0 +1,49 @@ +{ + "condition": "minecraft:any_of", + "terms": [ + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "equipment": { + "mainhand": { + "items": "#minecraft:logs" + } + } + } + }, + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "equipment": { + "mainhand": { + "items": [ + "minecraft:mushroom_stem" + ] + } + } + } + }, + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "equipment": { + "mainhand": { + "items": [ + "minecraft:knowledge_book" + ], + "components": { + "minecraft:custom_data": { + "Tags": [ + "timber_location" + ] + } + } + } + } + } + } + ] +} \ No newline at end of file diff --git a/datapacks/timber/data/timber/predicate/random_chance/0.25.json b/datapacks/timber/data/timber/predicate/random_chance/0.25.json new file mode 100755 index 0000000..9740f91 --- /dev/null +++ b/datapacks/timber/data/timber/predicate/random_chance/0.25.json @@ -0,0 +1,4 @@ +{ + "condition": "minecraft:random_chance", + "chance": 0.25 + } \ No newline at end of file diff --git a/datapacks/timber/data/timber/predicate/random_chance/0.333.json b/datapacks/timber/data/timber/predicate/random_chance/0.333.json new file mode 100755 index 0000000..52e5ecf --- /dev/null +++ b/datapacks/timber/data/timber/predicate/random_chance/0.333.json @@ -0,0 +1,4 @@ +{ + "condition": "minecraft:random_chance", + "chance": 0.333 + } \ No newline at end of file diff --git a/datapacks/timber/data/timber/predicate/random_chance/0.5.json b/datapacks/timber/data/timber/predicate/random_chance/0.5.json new file mode 100755 index 0000000..66c2b14 --- /dev/null +++ b/datapacks/timber/data/timber/predicate/random_chance/0.5.json @@ -0,0 +1,4 @@ +{ + "condition": "minecraft:random_chance", + "chance": 0.5 + } \ No newline at end of file diff --git a/datapacks/timber/data/timber/predicate/sapling.json b/datapacks/timber/data/timber/predicate/sapling.json new file mode 100755 index 0000000..7e80cc4 --- /dev/null +++ b/datapacks/timber/data/timber/predicate/sapling.json @@ -0,0 +1,43 @@ +{ + "condition": "minecraft:inverted", + "term": { + "condition": "minecraft:any_of", + "terms": [ + { + "condition": "minecraft:inverted", + "term": { + "condition": "minecraft:location_check", + "predicate": { + "block": { + "blocks": [ + "minecraft:air" + ] + } + } + } + }, + { + "condition": "minecraft:inverted", + "term": { + "condition": "minecraft:location_check", + "offsetY": -1, + "predicate": { + "block": { + "blocks": "#timber:grow" + } + } + } + }, + { + "condition": "minecraft:inverted", + "term": { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "nbt": "{OnGround:1b}" + } + } + } + ] + } +} \ No newline at end of file diff --git a/datapacks/timber/data/timber/predicate/sneaking.json b/datapacks/timber/data/timber/predicate/sneaking.json new file mode 100755 index 0000000..a41c89c --- /dev/null +++ b/datapacks/timber/data/timber/predicate/sneaking.json @@ -0,0 +1,9 @@ +{ + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "flags": { + "is_sneaking": true + } + } +} \ No newline at end of file diff --git a/datapacks/timber/data/timber/predicate/used_axe.json b/datapacks/timber/data/timber/predicate/used_axe.json new file mode 100755 index 0000000..1639a11 --- /dev/null +++ b/datapacks/timber/data/timber/predicate/used_axe.json @@ -0,0 +1,65 @@ +{ + "condition": "minecraft:any_of", + "terms": [ + { + "condition": "minecraft:entity_scores", + "entity": "this", + "scores": { + "timber_w_axe": { + "min": 1, + "max": 2147483647 + } + } + }, + { + "condition": "minecraft:entity_scores", + "entity": "this", + "scores": { + "timber_s_axe": { + "min": 1, + "max": 2147483647 + } + } + }, + { + "condition": "minecraft:entity_scores", + "entity": "this", + "scores": { + "timber_i_axe": { + "min": 1, + "max": 2147483647 + } + } + }, + { + "condition": "minecraft:entity_scores", + "entity": "this", + "scores": { + "timber_g_axe": { + "min": 1, + "max": 2147483647 + } + } + }, + { + "condition": "minecraft:entity_scores", + "entity": "this", + "scores": { + "timber_d_axe": { + "min": 1, + "max": 2147483647 + } + } + }, + { + "condition": "minecraft:entity_scores", + "entity": "this", + "scores": { + "timber_n_axe": { + "min": 1, + "max": 2147483647 + } + } + } + ] +} \ No newline at end of file diff --git a/datapacks/timber/data/timber/tags/block/grow.json b/datapacks/timber/data/timber/tags/block/grow.json new file mode 100755 index 0000000..19778b4 --- /dev/null +++ b/datapacks/timber/data/timber/tags/block/grow.json @@ -0,0 +1,8 @@ +{ + "values":[ + "minecraft:grass_block", + "minecraft:dirt", + "minecraft:coarse_dirt", + "minecraft:podzol" + ] +} \ No newline at end of file diff --git a/datapacks/timber/data/timber/tags/function/api/break_cap.json b/datapacks/timber/data/timber/tags/function/api/break_cap.json new file mode 100755 index 0000000..ab3fce9 --- /dev/null +++ b/datapacks/timber/data/timber/tags/function/api/break_cap.json @@ -0,0 +1,4 @@ +{ + "values":[ + ] +} \ No newline at end of file diff --git a/datapacks/timber/data/timber/tags/function/api/break_leaf.json b/datapacks/timber/data/timber/tags/function/api/break_leaf.json new file mode 100755 index 0000000..ab3fce9 --- /dev/null +++ b/datapacks/timber/data/timber/tags/function/api/break_leaf.json @@ -0,0 +1,4 @@ +{ + "values":[ + ] +} \ No newline at end of file diff --git a/datapacks/timber/data/timber/tags/function/api/break_log.json b/datapacks/timber/data/timber/tags/function/api/break_log.json new file mode 100755 index 0000000..ab3fce9 --- /dev/null +++ b/datapacks/timber/data/timber/tags/function/api/break_log.json @@ -0,0 +1,4 @@ +{ + "values":[ + ] +} \ No newline at end of file diff --git a/datapacks/timber/data/timber/tags/function/api/break_stem.json b/datapacks/timber/data/timber/tags/function/api/break_stem.json new file mode 100755 index 0000000..ab3fce9 --- /dev/null +++ b/datapacks/timber/data/timber/tags/function/api/break_stem.json @@ -0,0 +1,4 @@ +{ + "values":[ + ] +} \ No newline at end of file diff --git a/datapacks/timber/data/timber/tags/function/help.json b/datapacks/timber/data/timber/tags/function/help.json new file mode 100755 index 0000000..082ff6b --- /dev/null +++ b/datapacks/timber/data/timber/tags/function/help.json @@ -0,0 +1,5 @@ +{ + "values":[ + "timber:help" + ] +} \ No newline at end of file diff --git a/datapacks/timber/data/timber/tags/item/axes.json b/datapacks/timber/data/timber/tags/item/axes.json new file mode 100755 index 0000000..c496215 --- /dev/null +++ b/datapacks/timber/data/timber/tags/item/axes.json @@ -0,0 +1,10 @@ +{ + "values":[ + "minecraft:wooden_axe", + "minecraft:stone_axe", + "minecraft:iron_axe", + "minecraft:golden_axe", + "minecraft:diamond_axe", + "minecraft:netherite_axe" + ] +} \ No newline at end of file diff --git a/datapacks/timber/data/vanillatweaks/advancement/root.json b/datapacks/timber/data/vanillatweaks/advancement/root.json new file mode 100755 index 0000000..962ef9d --- /dev/null +++ b/datapacks/timber/data/vanillatweaks/advancement/root.json @@ -0,0 +1,38 @@ +{ + "display": { + "icon": { + "id": "minecraft:player_head", + "components": { + "minecraft:profile": { + "properties": [ + { + "name": "textures", + "value": "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMTg1YzMzNWM1MjVjZGFkY2Q4MmU4MDA4MzU1N2M2OTYzMGRmYjlhMWVkZjU5OTc0YzdmNjU4ZGI1MWEwYTFkOSJ9fX0=" + } + ] + } + } + }, + "title": "Vanilla Tweaks", + "frame": "challenge", + "description": [ + "", + { + "text": "All loaded Vanilla Tweaks data packs\n", + "color": "gold" + }, + { + "text": "vanillatweaks.net", + "color": "yellow" + } + ], + "background": "minecraft:textures/block/black_concrete.png", + "show_toast": false, + "announce_to_chat": false + }, + "criteria": { + "tick": { + "trigger": "minecraft:tick" + } + } +} \ No newline at end of file diff --git a/datapacks/timber/data/vanillatweaks/advancement/timber.json b/datapacks/timber/data/vanillatweaks/advancement/timber.json new file mode 100755 index 0000000..72a2240 --- /dev/null +++ b/datapacks/timber/data/vanillatweaks/advancement/timber.json @@ -0,0 +1,55 @@ +{ + "display": { + "icon": { + "id": "minecraft:iron_axe" + }, + "title": "Timber ", + "description": [ + "", + { + "text": "Trees can be instantly chopped with any axe in survival mode.\n", + "color": "gold" + }, + { + "text": "Enter", + "color": "green" + }, + { + "text": " ", + "color": "gold" + }, + { + "text": "/trigger TimberToggle", + "color": "yellow" + }, + { + "text": " to toggle the datapack on or off.\n", + "color": "gold" + }, + { + "text": "Enter", + "color": "green" + }, + { + "text": " ", + "color": "gold" + }, + { + "text": "/function timber:help", + "color": "yellow" + }, + { + "text": " for config options.", + "color": "gold" + } + ], + "show_toast": false, + "announce_to_chat": false + }, + "parent": "vanillatweaks:root", + "criteria": { + "tick": { + "trigger": "minecraft:tick" + } + } +} \ No newline at end of file diff --git a/datapacks/timber/data/vanillatweaks/tags/function/uninstall.json b/datapacks/timber/data/vanillatweaks/tags/function/uninstall.json new file mode 100755 index 0000000..8d49448 --- /dev/null +++ b/datapacks/timber/data/vanillatweaks/tags/function/uninstall.json @@ -0,0 +1,5 @@ +{ + "values": [ + "timber:uninstall" + ] +} diff --git a/datapacks/timber/overlay_71/data/timber/function/algorithm/fungus/run.mcfunction b/datapacks/timber/overlay_71/data/timber/function/algorithm/fungus/run.mcfunction new file mode 100755 index 0000000..1fb8313 --- /dev/null +++ b/datapacks/timber/overlay_71/data/timber/function/algorithm/fungus/run.mcfunction @@ -0,0 +1,5 @@ +# check if item is a stem +summon minecraft:armor_stand ~ ~ ~ {Silent:1b,Invulnerable:1b,Marker:1b,Invisible:1b,Tags:["timber_item_check"]} +data modify entity @e[type=minecraft:armor_stand,tag=timber_item_check,distance=...1,sort=arbitrary,limit=1] equipment.mainhand set from entity @e[distance=...1,type=minecraft:item,sort=nearest,limit=1,nbt={Age:0s}] Item +execute if entity @e[type=minecraft:armor_stand,tag=timber_item_check,distance=...1,sort=arbitrary,limit=1,predicate=timber:item/stem] run function timber:algorithm/fungus/chop +kill @e[type=minecraft:armor_stand,tag=timber_item_check,distance=...1,sort=arbitrary,limit=1] \ No newline at end of file diff --git a/datapacks/timber/overlay_71/data/timber/function/algorithm/tree/run.mcfunction b/datapacks/timber/overlay_71/data/timber/function/algorithm/tree/run.mcfunction new file mode 100755 index 0000000..b9bbc05 --- /dev/null +++ b/datapacks/timber/overlay_71/data/timber/function/algorithm/tree/run.mcfunction @@ -0,0 +1,5 @@ +# check if item is in tag #minecraft:logs +summon minecraft:armor_stand ~ ~ ~ {Silent:1b,Invulnerable:1b,Marker:1b,Invisible:1b,Tags:["timber_item_check"]} +data modify entity @e[type=minecraft:armor_stand,tag=timber_item_check,distance=...1,sort=arbitrary,limit=1] equipment.mainhand set from entity @e[type=minecraft:item,distance=...1,sort=nearest,limit=1,nbt={Age:0s}] Item +execute if entity @e[type=minecraft:armor_stand,tag=timber_item_check,distance=...1,sort=arbitrary,limit=1,predicate=timber:item/log] run function timber:algorithm/tree/chop +kill @e[type=minecraft:armor_stand,tag=timber_item_check,distance=...1,sort=arbitrary,limit=1] \ No newline at end of file diff --git a/datapacks/timber/overlay_71/data/timber/function/help.mcfunction b/datapacks/timber/overlay_71/data/timber/function/help.mcfunction new file mode 100755 index 0000000..aed4901 --- /dev/null +++ b/datapacks/timber/overlay_71/data/timber/function/help.mcfunction @@ -0,0 +1,25 @@ +tellraw @s ["",{"text":"§m ","color":"dark_gray"}] + +tellraw @s ["",{"text":" Timber Datapack"}] + +tellraw @s ["",{"text":"§m ","color":"dark_gray"}] + +tellraw @s ["",{"text":"The Timber Datapack allows you to instantly chop down a tree just by breaking one log with any axe."}] + +tellraw @s ["",{"text":"By default, sneaking while breaking will not chop the tree."}] + +tellraw @s [""] + +tellraw @s ["",{"text":"Every player can use "},{"text":"/trigger TimberToggle","color":"blue","click_event":{"action":"suggest_command","command":"/trigger TimberToggle"}},{"text":" to individually turn the datapack on or off."}] + +tellraw @s [""] + +tellraw @s ["",{"text":"For in-depth description and manual "},{"text":"click here","color":"dark_green","click_event":{"action":"open_url","url":"https://www.planetminecraft.com/data-pack/timber-datapack/"}},{"text":"."}] + +tellraw @s [""] + +tellraw @s [""," ",{"text":"[click here to see the settings]","color":"gold","click_event":{"action":"run_command","command":"function timber:settings/settings1_click"}}] + +tellraw @s ["",{"text":"§m ","color":"dark_gray"}] + +function timber:settings/end_of_message \ No newline at end of file diff --git a/datapacks/timber/overlay_71/data/timber/function/settings/settings1.mcfunction b/datapacks/timber/overlay_71/data/timber/function/settings/settings1.mcfunction new file mode 100755 index 0000000..a110d79 --- /dev/null +++ b/datapacks/timber/overlay_71/data/timber/function/settings/settings1.mcfunction @@ -0,0 +1,54 @@ +tellraw @s ["",{"text":" "}] +tellraw @s ["",{"text":" "}] +tellraw @s ["",{"text":" "}] +tellraw @s ["",{"text":" "}] + +tellraw @s ["",{"text":"§m ","color":"dark_gray"}] + +tellraw @s ["",{"text":" Timber "},{"text":"/","color":"gray"},{"text":" Global Settings "},{"text":" < ","click_event":{"action":"run_command","command":"function timber:settings/settings1_click"}},{"text":"1/2"},{"text":" > ","click_event":{"action":"run_command","command":"function timber:settings/settings2_click"}}] + +tellraw @s ["",{"text":"§m ","color":"dark_gray"}] + +execute if score standing timber matches 1.. run tellraw @s ["",{"text":"[ ✔ ]","color":"green","click_event":{"action":"run_command","command":"function timber:settings/toggle/standing"}},{"text":" Works When Standing"}] +execute unless score standing timber matches 1.. run tellraw @s ["",{"text":"[ ❌ ]","color":"red","click_event":{"action":"run_command","command":"function timber:settings/toggle/standing"}},{"text":" Works When Standing"}] + +execute if score sneaking timber matches 1.. run tellraw @s ["",{"text":"[ ✔ ]","color":"green","click_event":{"action":"run_command","command":"function timber:settings/toggle/sneaking"}},{"text":" Works When Sneaking"}] +execute unless score sneaking timber matches 1.. run tellraw @s ["",{"text":"[ ❌ ]","color":"red","click_event":{"action":"run_command","command":"function timber:settings/toggle/sneaking"}},{"text":" Works When Sneaking"}] + +execute if score destroy_leaves timber matches 1.. run tellraw @s ["",{"text":"[ ✔ ]","color":"green","click_event":{"action":"run_command","command":"function timber:settings/toggle/destroy_leaves"}},{"text":" Destroy Leaves"}] +execute unless score destroy_leaves timber matches 1.. run tellraw @s ["",{"text":"[ ❌ ]","color":"red","click_event":{"action":"run_command","command":"function timber:settings/toggle/destroy_leaves"}},{"text":" Destroy Leaves"}] + +execute if score plant_sapling timber matches 1.. run tellraw @s ["",{"text":"[ ✔ ]","color":"green","click_event":{"action":"run_command","command":"function timber:settings/toggle/plant_sapling"}},{"text":" Auto Plant Saplings","hover_event":{"action":"show_text","value":"All kind of saplings laying on the ground will get planted every 2 seconds."}}] +execute unless score plant_sapling timber matches 1.. run tellraw @s ["",{"text":"[ ❌ ]","color":"red","click_event":{"action":"run_command","command":"function timber:settings/toggle/plant_sapling"}},{"text":" Auto Plant Saplings","hover_event":{"action":"show_text","value":"All kind of saplings laying on the ground will get planted every 2 seconds."}}] + +execute if score slow_chop timber matches 1.. run tellraw @s ["",{"text":"[ ✔ ]","color":"green","click_event":{"action":"run_command","command":"function timber:settings/toggle/slow_chop"}},{"text":" Chop Slowly","hover_event":{"action":"show_text","value":["",{"text":"The tree won't be chopped instantly anymore. Additional options to change the speed of the chopping process can be changed at the next page."},{"text":"\n\nThis option can increase performance.","color":"gray"}]}}] +execute unless score slow_chop timber matches 1.. unless score drop_loot timber matches 1.. run tellraw @s ["",{"text":"[ ❌ ]","color":"red","click_event":{"action":"run_command","command":"function timber:settings/toggle/slow_chop"}},{"text":" Chop Slowly","hover_event":{"action":"show_text","value":["",{"text":"The tree won't be chopped instantly anymore. Additional options to change the speed of the chopping process can be changed at the next page."},{"text":"\n\nThis option can increase performance.","color":"gray"}]}}] +execute unless score slow_chop timber matches 1.. if score drop_loot timber matches 1.. run tellraw @s ["",{"text":"[ ❌ ]","color":"#7F2B2B","hover_event":{"action":"show_text","value":"Can't be enabled when \"Drop Loot Straight into Inventory\" is enabled."}},{"text":" Chop Slowly","hover_event":{"action":"show_text","value":["",{"text":"The tree won't be chopped instantly anymore. Additional options to change the speed of the chopping process can be changed at the next page."},{"text":"\n\nThis option can increase performance.","color":"gray"}]}}] + +execute if score chop_down timber matches 1.. run tellraw @s ["",{"text":"[ ✔ ]","color":"green","click_event":{"action":"run_command","command":"function timber:settings/toggle/chop_down"}},{"text":" Enable Chopping Down","hover_event":{"action":"show_text","value":"Normally when you cut a tree in the middle only the top part of the tree gets destroyed. But if this option is enabled the bottom part will get destroyed as well."}}] +execute unless score chop_down timber matches 1.. run tellraw @s ["",{"text":"[ ❌ ]","color":"red","click_event":{"action":"run_command","command":"function timber:settings/toggle/chop_down"}},{"text":" Enable Chopping Down","hover_event":{"action":"show_text","value":"Normally when you cut a tree in the middle only the top part of the tree gets destroyed. But if this option is enabled the bottom part will get destroyed as well."}}] + +execute if score stop_chopping timber matches 1.. run tellraw @s ["",{"text":"[ ✔ ]","color":"green","click_event":{"action":"run_command","command":"function timber:settings/toggle/stop_chopping"}},{"text":" Stop Chopping Once Axe Breaks","hover_event":{"action":"show_text","value":"Stops the process of chopping the tree as soon as your axe doesn't have any durability left for the whole tree. When disabled, the tree will always be chopped finish."}}] +execute unless score stop_chopping timber matches 1.. if score wear_out timber matches 1.. run tellraw @s ["",{"text":"[ ❌ ]","color":"red","click_event":{"action":"run_command","command":"function timber:settings/toggle/stop_chopping"}},{"text":" Stop Chopping Once Axe Breaks","hover_event":{"action":"show_text","value":"Stops the process of chopping the tree as soon as your axe doesn't have any durability left for the whole tree. When disabled, the tree will always be chopped finish."}}] +execute unless score stop_chopping timber matches 1.. unless score wear_out timber matches 1.. run tellraw @s ["",{"text":"[ ❌ ]","color":"#7F2B2B","hover_event":{"action":"show_text","value":"Can't be enabled when \"Additionally Wear out Tool Depending on Tree Size\" is disabled."}},{"text":" Stop Chopping Once Axe Breaks","hover_event":{"action":"show_text","value":"Stops the process of chopping the tree as soon as your axe doesn't have any durability left for the whole tree. When disabled, the tree will always be chopped finish."}}] + +execute if score wear_out timber matches 1.. unless score stop_chopping timber matches 1.. run tellraw @s ["",{"text":"[ ✔ ]","color":"green","click_event":{"action":"run_command","command":"function timber:settings/toggle/wear_out"}},{"text":" Additionally Wear out Tool Depending on Tree Size","hover_event":{"action":"show_text","value":"The tool's durability will get decreased by the amount of destroyed logs (or stems). When disabled, only one durability gets deducted."}}] +execute unless score wear_out timber matches 1.. run tellraw @s ["",{"text":"[ ❌ ]","color":"red","click_event":{"action":"run_command","command":"function timber:settings/toggle/wear_out"}},{"text":" Additionally Wear out Tool Depending on Tree Size","hover_event":{"action":"show_text","value":"The tool's durability will get decreased by the amount of destroyed logs (or stems). When disabled, only one durability gets deducted."}}] +execute if score wear_out timber matches 1.. if score stop_chopping timber matches 1.. run tellraw @s ["",{"text":"[ ✔ ]","color":"#2B7F2B","hover_event":{"action":"show_text","value":"Can't be disabled when \"Stop Chopping Once Axe Breaks\" is enabled."}},{"text":" Additionally Wear out Tool Depending on Tree Size","hover_event":{"action":"show_text","value":"The tool's durability will get decreased by the amount of destroyed logs (or stems). When disabled, only one durability gets deducted."}}] + +execute if score drop_loot timber matches 1.. run tellraw @s ["",{"text":"[ ✔ ]","color":"green","click_event":{"action":"run_command","command":"function timber:settings/toggle/drop_loot"}},{"text":" Drop Loot Straight into Inventory","hover_event":{"action":"show_text","value":["",{"text":"Lets the dropped items of the tree teleport straight into your own inventory. As soon as you have a full inventory the loot gets dropped on the ground."},{"text":"\n\nThis option can increase performance.","color":"gray"}]}}] +execute unless score drop_loot timber matches 1.. unless score slow_chop timber matches 1.. run tellraw @s ["",{"text":"[ ❌ ]","color":"red","click_event":{"action":"run_command","command":"function timber:settings/toggle/drop_loot"}},{"text":" Drop Loot Straight into Inventory","hover_event":{"action":"show_text","value":["",{"text":"Lets the dropped items of the tree teleport straight into your own inventory. As soon as you have a full inventory the loot gets dropped on the ground."},{"text":"\n\nThis option can increase performance.","color":"gray"}]}}] +execute unless score drop_loot timber matches 1.. if score slow_chop timber matches 1.. run tellraw @s ["",{"text":"[ ❌ ]","color":"#7F2B2B","hover_event":{"action":"show_text","value":"Can't be enabled when \"Chop Slowly\" is enabled."}},{"text":" Drop Loot Straight into Inventory","hover_event":{"action":"show_text","value":["",{"text":"Lets the dropped items of the tree teleport straight into your own inventory. As soon as you have a full inventory the loot gets dropped on the ground."},{"text":"\n\nThis option can increase performance.","color":"gray"}]}}] + +execute if score hunger timber matches 1.. run tellraw @s ["",{"text":"[ ✔ ]","color":"green","click_event":{"action":"run_command","command":"function timber:settings/toggle/hunger"}},{"text":" Give Additional Hunger Effect","hover_event":{"action":"show_text","value":"Gives a hunger effect for 1 second with the same level as the size of the chopped tree."}}] +execute unless score hunger timber matches 1.. run tellraw @s ["",{"text":"[ ❌ ]","color":"red","click_event":{"action":"run_command","command":"function timber:settings/toggle/hunger"}},{"text":" Give Additional Hunger Effect","hover_event":{"action":"show_text","value":"Gives a hunger effect for 1 second with the same level as the size of the chopped tree."}}] + +execute if score stopsound timber matches 1.. run tellraw @s ["",{"text":"[ ✔ ]","color":"green","click_event":{"action":"run_command","command":"function timber:settings/toggle/stopsound"}},{"text":" Stop Loud Breaking Noises","hover_event":{"action":"show_text","value":["",{"text":"Suppresses loud breaking noises when chopping a tree."},{"text":"\n\nThis option is","color":"gray"},{"text":" experimental","color":"dark_red"},{"text":" because sometimes it still sounds loud for a fraction of a second.","color":"gray"}]}}] +execute unless score stopsound timber matches 1.. run tellraw @s ["",{"text":"[ ❌ ]","color":"red","click_event":{"action":"run_command","command":"function timber:settings/toggle/stopsound"}},{"text":" Stop Loud Breaking Noises","hover_event":{"action":"show_text","value":["",{"text":"Suppresses loud breaking noises when chopping a tree."},{"text":"\n\nThis option is","color":"gray"},{"text":" experimental","color":"dark_red"},{"text":" because sometimes it still sounds loud for a fraction of a second.","color":"gray"}]}}] + +execute if score persistent timber matches 1.. run tellraw @s ["",{"text":"[ ✔ ]","color":"green","click_event":{"action":"run_command","command":"function timber:settings/toggle/persistent"}},{"text":" Destroy Player-Placed Trees","hover_event":{"action":"show_text","value":["",{"text":"Player-placed trees are trees made out of player-placed leaves (Look at leaf block with F3 debug screen: persistent = true)."},{"text":"\n\nUse it on your own risk!\nWhen enabled, this datapack can't differentiate between generated trees and player-placed trees anymore and therefore can potentially destroy your buildings.","color":"dark_red"}]}}] +execute unless score persistent timber matches 1.. run tellraw @s ["",{"text":"[ ❌ ]","color":"red","click_event":{"action":"run_command","command":"function timber:settings/toggle/persistent"}},{"text":" Destroy Player-Placed Trees","hover_event":{"action":"show_text","value":["",{"text":"Player-placed trees are trees made out of player-placed leaves (Look at leaf block with F3 debug screen: persistent = true)."},{"text":"\n\nUse it on your own risk!\nWhen enabled, this datapack can't differentiate between generated trees and player-placed trees anymore and therefore can potentially destroy your buildings.","color":"dark_red"}]}}] + +tellraw @s ["",{"text":"§m ","color":"dark_gray"}] + +function timber:settings/end_of_message \ No newline at end of file diff --git a/datapacks/timber/overlay_71/data/timber/function/settings/settings2.mcfunction b/datapacks/timber/overlay_71/data/timber/function/settings/settings2.mcfunction new file mode 100755 index 0000000..cb78d2c --- /dev/null +++ b/datapacks/timber/overlay_71/data/timber/function/settings/settings2.mcfunction @@ -0,0 +1,52 @@ +tellraw @s ["",{"text":" "}] +tellraw @s ["",{"text":" "}] +tellraw @s ["",{"text":" "}] +tellraw @s ["",{"text":" "}] + +tellraw @s ["",{"text":"§m ","color":"dark_gray"}] + +tellraw @s ["",{"text":" Timber "},{"text":"/","color":"gray"},{"text":" Global Settings "},{"text":" < ","click_event":{"action":"run_command","command":"function timber:settings/settings1_click"}},{"text":"2/2"},{"text":" > ","click_event":{"action":"run_command","command":"function timber:settings/settings2_click"}}] + +tellraw @s ["",{"text":"§m ","color":"dark_gray"}] + +execute if score wooden_axe timber matches 1.. run tellraw @s ["",{"text":"[ ✔ ]","color":"green","click_event":{"action":"run_command","command":"function timber:settings/toggle/wooden_axe"}},{"text":" Enable Wooden Axe"}] +execute unless score wooden_axe timber matches 1.. run tellraw @s ["",{"text":"[ ❌ ]","color":"red","click_event":{"action":"run_command","command":"function timber:settings/toggle/wooden_axe"}},{"text":" Enable Wooden Axe"}] + +execute if score stone_axe timber matches 1.. run tellraw @s ["",{"text":"[ ✔ ]","color":"green","click_event":{"action":"run_command","command":"function timber:settings/toggle/stone_axe"}},{"text":" Enable Stone Axe"}] +execute unless score stone_axe timber matches 1.. run tellraw @s ["",{"text":"[ ❌ ]","color":"red","click_event":{"action":"run_command","command":"function timber:settings/toggle/stone_axe"}},{"text":" Enable Stone Axe"}] + +execute if score iron_axe timber matches 1.. run tellraw @s ["",{"text":"[ ✔ ]","color":"green","click_event":{"action":"run_command","command":"function timber:settings/toggle/iron_axe"}},{"text":" Enable Iron Axe"}] +execute unless score iron_axe timber matches 1.. run tellraw @s ["",{"text":"[ ❌ ]","color":"red","click_event":{"action":"run_command","command":"function timber:settings/toggle/iron_axe"}},{"text":" Enable Iron Axe"}] + +execute if score golden_axe timber matches 1.. run tellraw @s ["",{"text":"[ ✔ ]","color":"green","click_event":{"action":"run_command","command":"function timber:settings/toggle/golden_axe"}},{"text":" Enable Golden Axe"}] +execute unless score golden_axe timber matches 1.. run tellraw @s ["",{"text":"[ ❌ ]","color":"red","click_event":{"action":"run_command","command":"function timber:settings/toggle/golden_axe"}},{"text":" Enable Golden Axe"}] + +execute if score diamond_axe timber matches 1.. run tellraw @s ["",{"text":"[ ✔ ]","color":"green","click_event":{"action":"run_command","command":"function timber:settings/toggle/diamond_axe"}},{"text":" Enable Diamond Axe"}] +execute unless score diamond_axe timber matches 1.. run tellraw @s ["",{"text":"[ ❌ ]","color":"red","click_event":{"action":"run_command","command":"function timber:settings/toggle/diamond_axe"}},{"text":" Enable Diamond Axe"}] + +execute if score netherite_axe timber matches 1.. run tellraw @s ["",{"text":"[ ✔ ]","color":"green","click_event":{"action":"run_command","command":"function timber:settings/toggle/netherite_axe"}},{"text":" Enable Netherite Axe"}] +execute unless score netherite_axe timber matches 1.. run tellraw @s ["",{"text":"[ ❌ ]","color":"red","click_event":{"action":"run_command","command":"function timber:settings/toggle/netherite_axe"}},{"text":" Enable Netherite Axe"}] + +execute if score chop_trees timber matches 1.. run tellraw @s ["",{"text":"[ ✔ ]","color":"green","click_event":{"action":"run_command","command":"function timber:settings/toggle/chop_trees"}},{"text":" Chop Trees","hover_event":{"action":"show_text","value":"All kind of trees will get chopped."}}] +execute unless score chop_trees timber matches 1.. run tellraw @s ["",{"text":"[ ❌ ]","color":"red","click_event":{"action":"run_command","command":"function timber:settings/toggle/chop_trees"}},{"text":" Chop Trees","hover_event":{"action":"show_text","value":"All kind of trees will get chopped."}}] + +execute if score chop_fungi timber matches 1.. run tellraw @s ["",{"text":"[ ✔ ]","color":"green","click_event":{"action":"run_command","command":"function timber:settings/toggle/chop_fungi"}},{"text":" Chop Fungi","hover_event":{"action":"show_text","value":["",{"text":"Huge fungi (nether trees) as well as huge mushrooms will get chopped."},{"text":"\n\nUse it on your own risk!\nWhen enabled, this datapack can't differentiate between generated fungi and player-placed fungi and therefore can potentially destroy your buildings.","color":"dark_red"}]}}] +execute unless score chop_fungi timber matches 1.. run tellraw @s ["",{"text":"[ ❌ ]","color":"red","click_event":{"action":"run_command","command":"function timber:settings/toggle/chop_fungi"}},{"text":" Chop Fungi","hover_event":{"action":"show_text","value":["",{"text":"Huge fungi (nether trees) as well as huge mushrooms will get chopped."},{"text":"\n\nUse it on your own risk!\nWhen enabled, this datapack can't differentiate between generated fungi and player-placed fungi and therefore can potentially destroy your buildings.","color":"dark_red"}]}}] + +execute if score blocks_per_chop timber matches 1 if score slow_chop timber matches 1.. run tellraw @s ["",{"text":"[ ✎ ]","color":"gray","click_event":{"action":"suggest_command","command":"/scoreboard players set blocks_per_chop timber "},"hover_event":{"action":"show_text","value":"Default: 1"}},{"text":" Set Amount of Destroyed Blocks per Chop"},{"text":" (Current: ","color":"gray"},{"score":{"name":"blocks_per_chop","objective":"timber"},"color":"gray"},{"text":")","color":"gray"}] +execute unless score blocks_per_chop timber matches 1 if score slow_chop timber matches 1.. run tellraw @s ["",{"text":"[ ✎ ]","color":"gray","click_event":{"action":"suggest_command","command":"/scoreboard players set blocks_per_chop timber "},"hover_event":{"action":"show_text","value":"Default: 1"}},{"text":" Set Amount of Destroyed Blocks per Chop"},{"text":" (Current: ","color":"gray"},{"score":{"name":"blocks_per_chop","objective":"timber"},"color":"gray"},{"text":")","color":"gray"}] +execute unless score slow_chop timber matches 1.. run tellraw @s ["",{"text":"[ ✎ ]","color":"dark_gray","hover_event":{"action":"show_text","value":"Not active when \"Chop Slowly\" is disabled."}},{"text":" Set Amount of Destroyed Blocks per Chop"}] + +execute if score time_between_chops timber matches 1 if score slow_chop timber matches 1.. run tellraw @s ["",{"text":"[ ✎ ]","color":"gray","click_event":{"action":"suggest_command","command":"/scoreboard players set time_between_chops timber "},"hover_event":{"action":"show_text","value":"Default: 1"}},{"text":" Set Time in Ticks Between Chops"},{"text":" (Current: ","color":"gray"},{"score":{"name":"time_between_chops","objective":"timber"},"color":"gray"},{"text":")","color":"gray"}] +execute unless score time_between_chops timber matches 1 if score slow_chop timber matches 1.. run tellraw @s ["",{"text":"[ ✎ ]","color":"gray","click_event":{"action":"suggest_command","command":"/scoreboard players set time_between_chops timber "},"hover_event":{"action":"show_text","value":"Default: 1"}},{"text":" Set Time in Ticks Between Chops"},{"text":" (Current: ","color":"gray"},{"score":{"name":"time_between_chops","objective":"timber"},"color":"gray"},{"text":")","color":"gray"}] +execute unless score slow_chop timber matches 1.. run tellraw @s ["",{"text":"[ ✎ ]","color":"dark_gray","hover_event":{"action":"show_text","value":"Not active when \"Chop Slowly\" is disabled."}},{"text":" Set Time in Ticks Between Chops"}] + +execute if score max_tree_size timber matches 555 run tellraw @s ["",{"text":"[ ✎ ]","color":"gray","click_event":{"action":"suggest_command","command":"/scoreboard players set max_tree_size timber "},"hover_event":{"action":"show_text","value":"Default: 555"}},{"text":" Set Max. Tree Size","hover_event":{"action":"show_text","value":"Trees bigger than this set value won't get further processed."}},{"text":" (Current: ","color":"gray"},{"score":{"name":"max_tree_size","objective":"timber"},"color":"gray"},{"text":")","color":"gray"}] +execute unless score max_tree_size timber matches 555 run tellraw @s ["",{"text":"[ ✎ ]","color":"gray","click_event":{"action":"suggest_command","command":"/scoreboard players set max_tree_size timber "},"hover_event":{"action":"show_text","value":"Default: 555"}},{"text":" Set Max. Tree Size","hover_event":{"action":"show_text","value":"Trees bigger than this set value won't get further processed."}},{"text":" (Current: ","color":"gray"},{"score":{"name":"max_tree_size","objective":"timber"},"color":"gray"},{"text":")","color":"gray"}] + +execute if score min_leaves_found timber matches 5 run tellraw @s ["",{"text":"[ ✎ ]","color":"gray","click_event":{"action":"suggest_command","command":"/scoreboard players set min_leaves_found timber "},"hover_event":{"action":"show_text","value":"Default: 5"}},{"text":" Set Min. Leaves to Valid a Tree","hover_event":{"action":"show_text","value":"This datapack considers a tree only if it has this set value amount of naturally generated leaves at its trunk.\nFungi will get checked by the amount of cap blocks and additionally a 3×3 big cross on top of the stem."}},{"text":" (Current: ","color":"gray"},{"score":{"name":"min_leaves_found","objective":"timber"},"color":"gray"},{"text":")","color":"gray"}] +execute unless score min_leaves_found timber matches 5 run tellraw @s ["",{"text":"[ ✎ ]","color":"gray","click_event":{"action":"suggest_command","command":"/scoreboard players set min_leaves_found timber "},"hover_event":{"action":"show_text","value":"Default: 5"}},{"text":" Set Min. Leaves to Valid a Tree","hover_event":{"action":"show_text","value":"This datapack considers a tree only if it has this set value amount of naturally generated leaves at its trunk.\nFungi will get checked by the amount of cap blocks and additionally a 3×3 big cross on top of the stem."}},{"text":" (Current: ","color":"gray"},{"score":{"name":"min_leaves_found","objective":"timber"},"color":"gray"},{"text":")","color":"gray"}] + +tellraw @s ["",{"text":"§m ","color":"dark_gray"}] + +function timber:settings/end_of_message \ No newline at end of file diff --git a/datapacks/timber/overlay_71/data/timber/function/validated.mcfunction b/datapacks/timber/overlay_71/data/timber/function/validated.mcfunction new file mode 100755 index 0000000..340cc8b --- /dev/null +++ b/datapacks/timber/overlay_71/data/timber/function/validated.mcfunction @@ -0,0 +1,44 @@ +# when full inventory fix +execute if score drop_loot timber matches 1.. store result score inventory timber run data get entity @s Inventory + +# destroy blocks + # mark blocks that need to be destroyed + tag @e[type=minecraft:marker,tag=timber_log] add timber_destroy + tag @e[type=minecraft:marker,tag=timber_leaf] add timber_destroy + tag @e[type=minecraft:marker,tag=timber_stem] add timber_destroy + tag @e[type=minecraft:marker,tag=timber_cap] add timber_destroy + # api + execute unless score slow_chop timber matches 1.. at @e[type=minecraft:marker,tag=timber_log] run function #timber:api/break_log + execute unless score slow_chop timber matches 1.. at @e[type=minecraft:marker,tag=timber_leaf] run function #timber:api/break_leaf + execute unless score slow_chop timber matches 1.. at @e[type=minecraft:marker,tag=timber_stem] run function #timber:api/break_stem + execute unless score slow_chop timber matches 1.. at @e[type=minecraft:marker,tag=timber_cap] run function #timber:api/break_cap + # loot + execute unless score slow_chop timber matches 1.. unless score drop_loot timber matches 1.. at @e[type=minecraft:marker,tag=timber_destroy] run loot spawn ~ ~ ~ mine ~ ~ ~ mainhand + execute unless score slow_chop timber matches 1.. if score drop_loot timber matches 1.. unless score inventory timber matches 36.. at @e[type=minecraft:marker,tag=timber_destroy] run loot give @s mine ~ ~ ~ mainhand + execute unless score slow_chop timber matches 1.. if score drop_loot timber matches 1.. if score inventory timber matches 36.. at @e[type=minecraft:marker,tag=timber_destroy] run loot spawn ~ ~ ~ mine ~ ~ ~ mainhand + # destroy animation + gamerule doTileDrops false + execute unless score slow_chop timber matches 1.. at @e[type=minecraft:marker,tag=timber_destroy] run setblock ~ ~ ~ minecraft:air destroy + gamerule doTileDrops true + # remove destroy marker + execute unless score slow_chop timber matches 1.. run kill @e[type=minecraft:marker,tag=timber_destroy] + +# stop sound +execute if score stopsound timber matches 1.. as @a[distance=..20,tag=!global.ignore.gui] run function timber:utils/stopsound + +# save tool for slow chopping process +execute if score slow_chop timber matches 1.. at @e[type=minecraft:marker,tag=timber_tree,tag=!timber_slow_chop,distance=..7,sort=arbitrary,limit=1] run summon minecraft:armor_stand ~ 0 ~ {Silent:1b,Invulnerable:1b,Marker:1b,Invisible:1b,Tags:["timber_tool"],Rotation:[45f],Pose:{RightArm:[0f,270f,0f]}} +execute if score slow_chop timber matches 1.. at @e[type=minecraft:marker,tag=timber_tree,tag=!timber_slow_chop,distance=..7,sort=arbitrary,limit=1] run data modify entity @e[type=minecraft:armor_stand,tag=timber_tool,y=0,distance=...1,sort=arbitrary,limit=1] equipment.mainhand merge from entity @s SelectedItem +execute if score slow_chop timber matches 1.. run tag @e[type=minecraft:marker,tag=timber_tree,tag=!timber_slow_chop,distance=..7,sort=arbitrary,limit=1] add timber_slow_chop + +# tp hand-broken loot into inventory +execute if score drop_loot timber matches 1.. unless score inventory timber matches 36.. at @e[type=minecraft:marker,tag=timber_tree,tag=!timber_slow_chop,distance=..7,sort=arbitrary,limit=1] run function timber:utils/tp_item + +# wear out tool +execute if score wear_out timber matches 1.. unless score unbreakable timber matches 1 run function timber:tool/wear_out + +# break axe if worn out +execute if score wear_out timber matches 1.. unless score unbreakable timber matches 1 run function timber:tool/worn_out + +# give hunger effect +execute if score hunger timber matches 1.. run function timber:utils/hunger \ No newline at end of file diff --git a/datapacks/timber/overlay_71/data/vanillatweaks/advancement/root.json b/datapacks/timber/overlay_71/data/vanillatweaks/advancement/root.json new file mode 100755 index 0000000..ee397ab --- /dev/null +++ b/datapacks/timber/overlay_71/data/vanillatweaks/advancement/root.json @@ -0,0 +1,38 @@ +{ + "display": { + "icon": { + "id": "minecraft:player_head", + "components": { + "minecraft:profile": { + "properties": [ + { + "name": "textures", + "value": "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMTg1YzMzNWM1MjVjZGFkY2Q4MmU4MDA4MzU1N2M2OTYzMGRmYjlhMWVkZjU5OTc0YzdmNjU4ZGI1MWEwYTFkOSJ9fX0=" + } + ] + } + } + }, + "title": "Vanilla Tweaks", + "frame": "challenge", + "description": [ + "", + { + "text": "All loaded Vanilla Tweaks data packs\n", + "color": "gold" + }, + { + "text": "vanillatweaks.net", + "color": "yellow" + } + ], + "background": "minecraft:block/black_concrete", + "show_toast": false, + "announce_to_chat": false + }, + "criteria": { + "tick": { + "trigger": "minecraft:tick" + } + } +} \ No newline at end of file diff --git a/datapacks/timber/pack.mcmeta b/datapacks/timber/pack.mcmeta new file mode 100755 index 0000000..4614656 --- /dev/null +++ b/datapacks/timber/pack.mcmeta @@ -0,0 +1,30 @@ +{ + "pack": { + "pack_format": 48, + "supported_formats": { + "min_inclusive": 48, + "max_inclusive": 80 + }, + "description": [ + { + "text": "Timber", + "color": "gold" + }, + { + "text": "\nvanillatweaks.net", + "color": "yellow" + } + ] + }, + "overlays": { + "entries": [ + { + "formats": { + "min_inclusive": 71, + "max_inclusive": 2147483647 + }, + "directory": "overlay_71" + } + ] + } +} \ No newline at end of file diff --git a/datapacks/timber/pack.png b/datapacks/timber/pack.png new file mode 100755 index 0000000..30b95d1 Binary files /dev/null and b/datapacks/timber/pack.png differ diff --git a/datapacks/xp-bottling/data/minecraft/tags/function/load.json b/datapacks/xp-bottling/data/minecraft/tags/function/load.json new file mode 100755 index 0000000..3f7db04 --- /dev/null +++ b/datapacks/xp-bottling/data/minecraft/tags/function/load.json @@ -0,0 +1 @@ +{"replace":false,"values":["xp_bottling:load"]} \ No newline at end of file diff --git a/datapacks/xp-bottling/data/vanillatweaks/advancement/root.json b/datapacks/xp-bottling/data/vanillatweaks/advancement/root.json new file mode 100755 index 0000000..962ef9d --- /dev/null +++ b/datapacks/xp-bottling/data/vanillatweaks/advancement/root.json @@ -0,0 +1,38 @@ +{ + "display": { + "icon": { + "id": "minecraft:player_head", + "components": { + "minecraft:profile": { + "properties": [ + { + "name": "textures", + "value": "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMTg1YzMzNWM1MjVjZGFkY2Q4MmU4MDA4MzU1N2M2OTYzMGRmYjlhMWVkZjU5OTc0YzdmNjU4ZGI1MWEwYTFkOSJ9fX0=" + } + ] + } + } + }, + "title": "Vanilla Tweaks", + "frame": "challenge", + "description": [ + "", + { + "text": "All loaded Vanilla Tweaks data packs\n", + "color": "gold" + }, + { + "text": "vanillatweaks.net", + "color": "yellow" + } + ], + "background": "minecraft:textures/block/black_concrete.png", + "show_toast": false, + "announce_to_chat": false + }, + "criteria": { + "tick": { + "trigger": "minecraft:tick" + } + } +} \ No newline at end of file diff --git a/datapacks/xp-bottling/data/vanillatweaks/advancement/xp_management.json b/datapacks/xp-bottling/data/vanillatweaks/advancement/xp_management.json new file mode 100755 index 0000000..e58642a --- /dev/null +++ b/datapacks/xp-bottling/data/vanillatweaks/advancement/xp_management.json @@ -0,0 +1,35 @@ +{ + "display": { + "icon": { + "id": "minecraft:experience_bottle" + }, + "title": "XP Bottling ", + "description": [ + "", + { + "text": "Right-click", + "color": "green" + }, + { + "text": " an enchanting table with an empty bottle to fill it with some of your XP.\n", + "color": "gold" + }, + { + "text": "Smelt", + "color": "green" + }, + { + "text": " an XP bottle in a furnace to losslessly get your XP back.", + "color": "gold" + } + ], + "show_toast": false, + "announce_to_chat": false + }, + "parent": "vanillatweaks:root", + "criteria": { + "tick": { + "trigger": "minecraft:tick" + } + } +} \ No newline at end of file diff --git a/datapacks/xp-bottling/data/vanillatweaks/tags/function/uninstall.json b/datapacks/xp-bottling/data/vanillatweaks/tags/function/uninstall.json new file mode 100755 index 0000000..69a58b2 --- /dev/null +++ b/datapacks/xp-bottling/data/vanillatweaks/tags/function/uninstall.json @@ -0,0 +1,5 @@ +{ + "values": [ + "xp_bottling:uninstall" + ] +} diff --git a/datapacks/xp-bottling/data/xp_bottling/advancement/try_to_bottle_xp.json b/datapacks/xp-bottling/data/xp_bottling/advancement/try_to_bottle_xp.json new file mode 100755 index 0000000..6e54497 --- /dev/null +++ b/datapacks/xp-bottling/data/xp_bottling/advancement/try_to_bottle_xp.json @@ -0,0 +1,35 @@ +{ + "criteria": { + "default_block_use": { + "trigger": "minecraft:default_block_use", + "conditions": { + "location": [ + { + "condition": "minecraft:block_state_property", + "block": "minecraft:enchanting_table" + }, + { + "condition": "minecraft:entity_properties", + "entity": "this", + "predicate": { + "slots": { + "weapon.mainhand": { + "items": "minecraft:glass_bottle" + } + }, + "type_specific": { + "type": "player", + "level": { + "min": 1 + } + } + } + } + ] + } + } + }, + "rewards": { + "function": "xp_bottling:try_to_bottle_xp" + } +} \ No newline at end of file diff --git a/datapacks/xp-bottling/data/xp_bottling/function/bottle_xp.mcfunction b/datapacks/xp-bottling/data/xp_bottling/function/bottle_xp.mcfunction new file mode 100755 index 0000000..845dd6c --- /dev/null +++ b/datapacks/xp-bottling/data/xp_bottling/function/bottle_xp.mcfunction @@ -0,0 +1,7 @@ +clear @s minecraft:glass_bottle 1 +give @s minecraft:experience_bottle +xp add @s -12 points +playsound minecraft:item.bottle.fill_dragonbreath player @a ~ ~ ~ 1 1.25 +scoreboard players set #steps craXPBot.dummy 50 +execute anchored eyes positioned ^ ^ ^ run function xp_bottling:raycast +tag @s remove craXPBot.continue \ No newline at end of file diff --git a/datapacks/xp-bottling/data/xp_bottling/function/check_enchanting_table.mcfunction b/datapacks/xp-bottling/data/xp_bottling/function/check_enchanting_table.mcfunction new file mode 100755 index 0000000..68fc07c --- /dev/null +++ b/datapacks/xp-bottling/data/xp_bottling/function/check_enchanting_table.mcfunction @@ -0,0 +1,3 @@ +summon minecraft:area_effect_cloud ~ ~ ~ {Tags:["craXPBot.marker"],Duration:0,Radius:0.0f,WaitTime:0} +execute align y if entity @e[type=minecraft:area_effect_cloud,tag=craXPBot.marker,distance=..0.75] run function xp_bottling:replace_enchanting_table +kill @e[type=minecraft:area_effect_cloud,tag=craXPBot.marker] \ No newline at end of file diff --git a/datapacks/xp-bottling/data/xp_bottling/function/load.mcfunction b/datapacks/xp-bottling/data/xp_bottling/function/load.mcfunction new file mode 100755 index 0000000..496f334 --- /dev/null +++ b/datapacks/xp-bottling/data/xp_bottling/function/load.mcfunction @@ -0,0 +1,2 @@ +scoreboard objectives add craXPBot.dummy dummy +advancement revoke @a only xp_bottling:try_to_bottle_xp \ No newline at end of file diff --git a/datapacks/xp-bottling/data/xp_bottling/function/raycast.mcfunction b/datapacks/xp-bottling/data/xp_bottling/function/raycast.mcfunction new file mode 100755 index 0000000..c3e03b3 --- /dev/null +++ b/datapacks/xp-bottling/data/xp_bottling/function/raycast.mcfunction @@ -0,0 +1,3 @@ +scoreboard players remove #steps craXPBot.dummy 1 +execute if block ~ ~ ~ minecraft:enchanting_table run function xp_bottling:check_enchanting_table +execute unless score #steps craXPBot.dummy matches 0 positioned ^ ^ ^0.1 run function xp_bottling:raycast \ No newline at end of file diff --git a/datapacks/xp-bottling/data/xp_bottling/function/replace_enchanting_table.mcfunction b/datapacks/xp-bottling/data/xp_bottling/function/replace_enchanting_table.mcfunction new file mode 100755 index 0000000..55d1d53 --- /dev/null +++ b/datapacks/xp-bottling/data/xp_bottling/function/replace_enchanting_table.mcfunction @@ -0,0 +1,5 @@ +summon minecraft:item_frame ~ ~1000 ~ {Tags:["craXPBot.enchTable","craXPBot.new"],Fixed:1b,Invisible:1b,Item:{id:"minecraft:enchanting_table",components:{custom_data:{craXPBotData:{}}}}} +data modify entity @e[type=minecraft:item_frame,tag=craXPBot.new,limit=1] Item.components."minecraft:custom_data".craXPBotData set from block ~ ~ ~ {} +setblock ~ ~ ~ minecraft:snow[layers=6] +scoreboard players set #steps craXPBot.dummy 0 +schedule function xp_bottling:restore_enchanting_tables 2t append \ No newline at end of file diff --git a/datapacks/xp-bottling/data/xp_bottling/function/restore_enchanting_table.mcfunction b/datapacks/xp-bottling/data/xp_bottling/function/restore_enchanting_table.mcfunction new file mode 100755 index 0000000..bb4120e --- /dev/null +++ b/datapacks/xp-bottling/data/xp_bottling/function/restore_enchanting_table.mcfunction @@ -0,0 +1,3 @@ +setblock ~ ~ ~ minecraft:enchanting_table +data modify block ~ ~ ~ {} set from entity @s Item.components."minecaft:custom_data".craXPBotData +kill @s \ No newline at end of file diff --git a/datapacks/xp-bottling/data/xp_bottling/function/restore_enchanting_tables.mcfunction b/datapacks/xp-bottling/data/xp_bottling/function/restore_enchanting_tables.mcfunction new file mode 100755 index 0000000..0c5badc --- /dev/null +++ b/datapacks/xp-bottling/data/xp_bottling/function/restore_enchanting_tables.mcfunction @@ -0,0 +1 @@ +execute as @e[type=minecraft:item_frame,tag=craXPBot.enchTable] at @s positioned ~ ~-1000 ~ run function xp_bottling:restore_enchanting_table \ No newline at end of file diff --git a/datapacks/xp-bottling/data/xp_bottling/function/try_to_bottle_xp.mcfunction b/datapacks/xp-bottling/data/xp_bottling/function/try_to_bottle_xp.mcfunction new file mode 100755 index 0000000..566cdca --- /dev/null +++ b/datapacks/xp-bottling/data/xp_bottling/function/try_to_bottle_xp.mcfunction @@ -0,0 +1,5 @@ +advancement revoke @s only xp_bottling:try_to_bottle_xp +tag @s add craXPBot.continue +execute store result score #points craXPBot.dummy run xp query @s points +execute if score #points craXPBot.dummy matches ..4 if entity @s[level=1] run tag @s remove craXPBot.continue +execute if entity @s[tag=craXPBot.continue] run function xp_bottling:bottle_xp \ No newline at end of file diff --git a/datapacks/xp-bottling/data/xp_bottling/function/uninstall.mcfunction b/datapacks/xp-bottling/data/xp_bottling/function/uninstall.mcfunction new file mode 100755 index 0000000..eaf0453 --- /dev/null +++ b/datapacks/xp-bottling/data/xp_bottling/function/uninstall.mcfunction @@ -0,0 +1 @@ +scoreboard objectives remove craXPBot.dummy \ No newline at end of file diff --git a/datapacks/xp-bottling/data/xp_bottling/recipe/stored_xp.json b/datapacks/xp-bottling/data/xp_bottling/recipe/stored_xp.json new file mode 100755 index 0000000..4292753 --- /dev/null +++ b/datapacks/xp-bottling/data/xp_bottling/recipe/stored_xp.json @@ -0,0 +1,11 @@ +{ + "type": "minecraft:smelting", + "ingredient": { + "item": "minecraft:experience_bottle" + }, + "result": { + "id": "minecraft:glass_bottle" + }, + "experience": 12, + "cookingtime": 1 +} \ No newline at end of file diff --git a/datapacks/xp-bottling/overlay_57/data/xp_bottling/recipe/stored_xp.json b/datapacks/xp-bottling/overlay_57/data/xp_bottling/recipe/stored_xp.json new file mode 100755 index 0000000..20606cf --- /dev/null +++ b/datapacks/xp-bottling/overlay_57/data/xp_bottling/recipe/stored_xp.json @@ -0,0 +1,9 @@ +{ + "type": "minecraft:smelting", + "ingredient": "minecraft:experience_bottle", + "result": { + "id": "minecraft:glass_bottle" + }, + "experience": 12, + "cookingtime": 1 +} \ No newline at end of file diff --git a/datapacks/xp-bottling/overlay_71/data/vanillatweaks/advancement/root.json b/datapacks/xp-bottling/overlay_71/data/vanillatweaks/advancement/root.json new file mode 100755 index 0000000..ee397ab --- /dev/null +++ b/datapacks/xp-bottling/overlay_71/data/vanillatweaks/advancement/root.json @@ -0,0 +1,38 @@ +{ + "display": { + "icon": { + "id": "minecraft:player_head", + "components": { + "minecraft:profile": { + "properties": [ + { + "name": "textures", + "value": "eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvMTg1YzMzNWM1MjVjZGFkY2Q4MmU4MDA4MzU1N2M2OTYzMGRmYjlhMWVkZjU5OTc0YzdmNjU4ZGI1MWEwYTFkOSJ9fX0=" + } + ] + } + } + }, + "title": "Vanilla Tweaks", + "frame": "challenge", + "description": [ + "", + { + "text": "All loaded Vanilla Tweaks data packs\n", + "color": "gold" + }, + { + "text": "vanillatweaks.net", + "color": "yellow" + } + ], + "background": "minecraft:block/black_concrete", + "show_toast": false, + "announce_to_chat": false + }, + "criteria": { + "tick": { + "trigger": "minecraft:tick" + } + } +} \ No newline at end of file diff --git a/datapacks/xp-bottling/pack.mcmeta b/datapacks/xp-bottling/pack.mcmeta new file mode 100755 index 0000000..f4d8938 --- /dev/null +++ b/datapacks/xp-bottling/pack.mcmeta @@ -0,0 +1,37 @@ +{ + "pack": { + "pack_format": 48, + "supported_formats": { + "min_inclusive": 48, + "max_inclusive": 80 + }, + "description": [ + { + "text": "XP Bottling", + "color": "gold" + }, + { + "text": "\nvanillatweaks.net", + "color": "yellow" + } + ] + }, + "overlays": { + "entries": [ + { + "formats": { + "min_inclusive": 57, + "max_inclusive": 2147483647 + }, + "directory": "overlay_57" + }, + { + "formats": { + "min_inclusive": 71, + "max_inclusive": 2147483647 + }, + "directory": "overlay_71" + } + ] + } +} \ No newline at end of file diff --git a/datapacks/xp-bottling/pack.png b/datapacks/xp-bottling/pack.png new file mode 100755 index 0000000..d886ad1 Binary files /dev/null and b/datapacks/xp-bottling/pack.png differ diff --git a/dimensional-inventories/v2/config/main/dimension-pools.json b/dimensional-inventories/v2/config/main/dimension-pools.json new file mode 100755 index 0000000..3d0cd68 --- /dev/null +++ b/dimensional-inventories/v2/config/main/dimension-pools.json @@ -0,0 +1,29 @@ +{ + "version": 1, + "data": { + "dimensionPools": [ + { + "id": "default", + "displayName": "default", + "dimensions": [ + "minecraft:overworld", + "minecraft:the_end", + "minecraft:the_nether" + ], + "gameMode": "SURVIVAL", + "progressAdvancements": true, + "incrementStatistics": true + }, + { + "id": "creative", + "displayName": "creative", + "dimensions": [ + "minecraft:creative" + ], + "gameMode": "CREATIVE", + "progressAdvancements": false, + "incrementStatistics": false + } + ] + } +} \ No newline at end of file diff --git a/dimensional-inventories/v2/data/creative/c6a465aa-1a67-4cc5-b25b-c0c3239a340f/main/inventory.json b/dimensional-inventories/v2/data/creative/c6a465aa-1a67-4cc5-b25b-c0c3239a340f/main/inventory.json new file mode 100755 index 0000000..3fc6ca4 --- /dev/null +++ b/dimensional-inventories/v2/data/creative/c6a465aa-1a67-4cc5-b25b-c0c3239a340f/main/inventory.json @@ -0,0 +1,81 @@ +{ + "version": 1, + "data": { + "armor": [ + null, + null, + null, + null + ], + "main": [ + "{\n data: [],\n palette: [],\n count: 1,\n id: \"minecraft:wooden_axe\"\n}", + "{\n data: [],\n palette: [],\n count: 1,\n id: \"minecraft:stone\"\n}", + null, + "{\n data: [],\n palette: [],\n count: 1,\n id: \"minecraft:repeating_command_block\"\n}", + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ], + "offHand": [ + null + ], + "enderChest": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ] + } +} \ No newline at end of file diff --git a/dimensional-inventories/v2/data/creative/c6a465aa-1a67-4cc5-b25b-c0c3239a340f/main/shoulder-entity.json b/dimensional-inventories/v2/data/creative/c6a465aa-1a67-4cc5-b25b-c0c3239a340f/main/shoulder-entity.json new file mode 100755 index 0000000..316eae8 --- /dev/null +++ b/dimensional-inventories/v2/data/creative/c6a465aa-1a67-4cc5-b25b-c0c3239a340f/main/shoulder-entity.json @@ -0,0 +1,8 @@ +{ + "version": 1, + "data": { + "leftShoulderEntity": "{\n data: [],\n palette: []\n}", + "rightShoulderEntity": "{\n data: [],\n palette: []\n}", + "shoulderEntityAddedTime": 0 + } +} \ No newline at end of file diff --git a/dimensional-inventories/v2/data/creative/c6a465aa-1a67-4cc5-b25b-c0c3239a340f/main/status.json b/dimensional-inventories/v2/data/creative/c6a465aa-1a67-4cc5-b25b-c0c3239a340f/main/status.json new file mode 100755 index 0000000..9e7428f --- /dev/null +++ b/dimensional-inventories/v2/data/creative/c6a465aa-1a67-4cc5-b25b-c0c3239a340f/main/status.json @@ -0,0 +1,15 @@ +{ + "version": 1, + "data": { + "experiencePoints": 0, + "score": 0, + "foodLevel": 20, + "saturationLevel": 5.0, + "exhaustion": 0.0, + "health": 20.0, + "statusEffects": [ + "{\n data: [],\n palette: [],\n duration: 100,\n id: \"minecraft:strength\",\n show_icon: 0b,\n show_particles: 0b\n}", + "{\n data: [],\n palette: [],\n amplifier: 1b,\n duration: 100,\n id: \"minecraft:haste\",\n show_icon: 0b,\n show_particles: 0b\n}" + ] + } +} \ No newline at end of file diff --git a/dimensional-inventories/v2/data/default/98062058-93ee-3a45-a3b3-b0289f399830/main/inventory.json b/dimensional-inventories/v2/data/default/98062058-93ee-3a45-a3b3-b0289f399830/main/inventory.json new file mode 100755 index 0000000..4b1c4fb --- /dev/null +++ b/dimensional-inventories/v2/data/default/98062058-93ee-3a45-a3b3-b0289f399830/main/inventory.json @@ -0,0 +1,81 @@ +{ + "version": 1, + "data": { + "armor": [ + null, + null, + null, + null + ], + "main": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ], + "offHand": [ + null + ], + "enderChest": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ] + } +} \ No newline at end of file diff --git a/dimensional-inventories/v2/data/default/98062058-93ee-3a45-a3b3-b0289f399830/main/shoulder-entity.json b/dimensional-inventories/v2/data/default/98062058-93ee-3a45-a3b3-b0289f399830/main/shoulder-entity.json new file mode 100755 index 0000000..316eae8 --- /dev/null +++ b/dimensional-inventories/v2/data/default/98062058-93ee-3a45-a3b3-b0289f399830/main/shoulder-entity.json @@ -0,0 +1,8 @@ +{ + "version": 1, + "data": { + "leftShoulderEntity": "{\n data: [],\n palette: []\n}", + "rightShoulderEntity": "{\n data: [],\n palette: []\n}", + "shoulderEntityAddedTime": 0 + } +} \ No newline at end of file diff --git a/dimensional-inventories/v2/data/default/98062058-93ee-3a45-a3b3-b0289f399830/main/status.json b/dimensional-inventories/v2/data/default/98062058-93ee-3a45-a3b3-b0289f399830/main/status.json new file mode 100755 index 0000000..03e2ee3 --- /dev/null +++ b/dimensional-inventories/v2/data/default/98062058-93ee-3a45-a3b3-b0289f399830/main/status.json @@ -0,0 +1,12 @@ +{ + "version": 1, + "data": { + "experiencePoints": 0, + "score": 0, + "foodLevel": 20, + "saturationLevel": 5.0, + "exhaustion": 0.0, + "health": 20.0, + "statusEffects": [] + } +} \ No newline at end of file diff --git a/dimensional-inventories/v2/data/default/c6a465aa-1a67-4cc5-b25b-c0c3239a340f/main/inventory.json b/dimensional-inventories/v2/data/default/c6a465aa-1a67-4cc5-b25b-c0c3239a340f/main/inventory.json new file mode 100755 index 0000000..a84e73a --- /dev/null +++ b/dimensional-inventories/v2/data/default/c6a465aa-1a67-4cc5-b25b-c0c3239a340f/main/inventory.json @@ -0,0 +1,81 @@ +{ + "version": 1, + "data": { + "armor": [ + "{\n data: [],\n palette: [],\n count: 1,\n id: \"minecraft:iron_boots\"\n}", + "{\n data: [],\n palette: [],\n count: 1,\n id: \"minecraft:iron_leggings\"\n}", + "{\n data: [],\n palette: [],\n count: 1,\n id: \"minecraft:iron_chestplate\"\n}", + "{\n data: [],\n palette: [],\n count: 1,\n id: \"minecraft:iron_helmet\"\n}" + ], + "main": [ + null, + null, + null, + null, + null, + null, + null, + null, + "{\n data: [],\n palette: [],\n count: 15,\n id: \"minecraft:cooked_chicken\"\n}", + null, + null, + null, + null, + null, + "{\n data: [],\n palette: [],\n count: 9,\n id: \"minecraft:cooked_porkchop\"\n}", + "{\n data: [],\n palette: [],\n count: 32,\n id: \"minecraft:baked_potato\"\n}", + "{\n data: [],\n palette: [],\n count: 10,\n id: \"minecraft:cooked_mutton\"\n}", + "{\n data: [],\n palette: [],\n count: 40,\n id: \"minecraft:apple\"\n}", + "{\n data: [],\n palette: [],\n count: 1,\n id: \"minecraft:diamond_pickaxe\"\n}", + "{\n data: [],\n palette: [],\n count: 1,\n id: \"minecraft:diamond_axe\"\n}", + "{\n data: [],\n palette: [],\n count: 1,\n id: \"minecraft:diamond_shovel\"\n}", + "{\n data: [],\n palette: [],\n count: 1,\n id: \"minecraft:bow\"\n}", + null, + null, + null, + null, + "{\n data: [],\n palette: [],\n count: 27,\n id: \"minecraft:bread\"\n}", + null, + "{\n data: [],\n palette: [],\n components: {\n \"minecraft:bundle_contents\": [\n {\n count: 1,\n id: \"minecraft:crafting_table\"\n }\n ]\n },\n count: 1,\n id: \"minecraft:bundle\"\n}", + "{\n data: [],\n palette: [],\n count: 1,\n id: \"minecraft:diamond_hoe\"\n}", + null, + null, + null, + null, + null, + "{\n data: [],\n palette: [],\n count: 64,\n id: \"minecraft:baked_potato\"\n}" + ], + "offHand": [ + "{\n data: [],\n palette: [],\n count: 64,\n id: \"minecraft:torch\"\n}" + ], + "enderChest": [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ] + } +} \ No newline at end of file diff --git a/dimensional-inventories/v2/data/default/c6a465aa-1a67-4cc5-b25b-c0c3239a340f/main/shoulder-entity.json b/dimensional-inventories/v2/data/default/c6a465aa-1a67-4cc5-b25b-c0c3239a340f/main/shoulder-entity.json new file mode 100755 index 0000000..316eae8 --- /dev/null +++ b/dimensional-inventories/v2/data/default/c6a465aa-1a67-4cc5-b25b-c0c3239a340f/main/shoulder-entity.json @@ -0,0 +1,8 @@ +{ + "version": 1, + "data": { + "leftShoulderEntity": "{\n data: [],\n palette: []\n}", + "rightShoulderEntity": "{\n data: [],\n palette: []\n}", + "shoulderEntityAddedTime": 0 + } +} \ No newline at end of file diff --git a/dimensional-inventories/v2/data/default/c6a465aa-1a67-4cc5-b25b-c0c3239a340f/main/status.json b/dimensional-inventories/v2/data/default/c6a465aa-1a67-4cc5-b25b-c0c3239a340f/main/status.json new file mode 100755 index 0000000..83db19a --- /dev/null +++ b/dimensional-inventories/v2/data/default/c6a465aa-1a67-4cc5-b25b-c0c3239a340f/main/status.json @@ -0,0 +1,15 @@ +{ + "version": 1, + "data": { + "experiencePoints": 788, + "score": 789, + "foodLevel": 20, + "saturationLevel": 11.0, + "exhaustion": 1.3984275, + "health": 20.0, + "statusEffects": [ + "{\n data: [],\n palette: [],\n duration: 100,\n id: \"minecraft:strength\",\n show_icon: 0b,\n show_particles: 0b\n}", + "{\n data: [],\n palette: [],\n amplifier: 1b,\n duration: 100,\n id: \"minecraft:haste\",\n show_icon: 0b,\n show_particles: 0b\n}" + ] + } +} \ No newline at end of file diff --git a/dimensions/minecraft/creative/data/claims/!AdminClaims.json b/dimensions/minecraft/creative/data/claims/!AdminClaims.json new file mode 100755 index 0000000..a80a847 --- /dev/null +++ b/dimensions/minecraft/creative/data/claims/!AdminClaims.json @@ -0,0 +1,33 @@ +[ + { + "ID": "5e65fa8b-9eaa-4edc-9da9-2bb76494aecb", + "Name": "My Claim", + "PosxXzZY": [ + 0, + 15, + 0, + 15, + 49 + ], + "Home": [ + 7, + 64, + 7 + ], + "EnterTitle": "", + "EnterSubtitle": "", + "LeaveTitle": "", + "LeaveSubtitle": "", + "Potions": {}, + "AllowedItems": [], + "AllowedUseBlocks": [], + "AllowedBreakBlocks": [], + "AllowedEntityAttack": [], + "AllowedEntityUse": [], + "GlobalPerms": [ + "flan:can_stay", + "flan:portal", + "flan:flight" + ] + } +] \ No newline at end of file diff --git a/dimensions/minecraft/creative/data/raids.dat b/dimensions/minecraft/creative/data/raids.dat new file mode 100755 index 0000000..da55aaa Binary files /dev/null and b/dimensions/minecraft/creative/data/raids.dat differ diff --git a/dimensions/minecraft/creative/data/random_sequences.dat b/dimensions/minecraft/creative/data/random_sequences.dat new file mode 100755 index 0000000..7fbc233 Binary files /dev/null and b/dimensions/minecraft/creative/data/random_sequences.dat differ diff --git a/dimensions/minecraft/creative/data/simplechestlocker_data.dat b/dimensions/minecraft/creative/data/simplechestlocker_data.dat new file mode 100755 index 0000000..0b221ea Binary files /dev/null and b/dimensions/minecraft/creative/data/simplechestlocker_data.dat differ diff --git a/dimensions/minecraft/creative/entities/r.-1.-1.mca b/dimensions/minecraft/creative/entities/r.-1.-1.mca new file mode 100755 index 0000000..e69de29 diff --git a/dimensions/minecraft/creative/entities/r.-1.0.mca b/dimensions/minecraft/creative/entities/r.-1.0.mca new file mode 100755 index 0000000..e69de29 diff --git a/dimensions/minecraft/creative/entities/r.0.-1.mca b/dimensions/minecraft/creative/entities/r.0.-1.mca new file mode 100755 index 0000000..e69de29 diff --git a/dimensions/minecraft/creative/entities/r.0.0.mca b/dimensions/minecraft/creative/entities/r.0.0.mca new file mode 100755 index 0000000..4db903f Binary files /dev/null and b/dimensions/minecraft/creative/entities/r.0.0.mca differ diff --git a/dimensions/minecraft/creative/poi/r.-1.-1.mca b/dimensions/minecraft/creative/poi/r.-1.-1.mca new file mode 100755 index 0000000..e69de29 diff --git a/dimensions/minecraft/creative/poi/r.-1.0.mca b/dimensions/minecraft/creative/poi/r.-1.0.mca new file mode 100755 index 0000000..e69de29 diff --git a/dimensions/minecraft/creative/poi/r.0.-1.mca b/dimensions/minecraft/creative/poi/r.0.-1.mca new file mode 100755 index 0000000..e69de29 diff --git a/dimensions/minecraft/creative/poi/r.0.0.mca b/dimensions/minecraft/creative/poi/r.0.0.mca new file mode 100755 index 0000000..e69de29 diff --git a/dimensions/minecraft/creative/region/r.-1.-1.mca b/dimensions/minecraft/creative/region/r.-1.-1.mca new file mode 100755 index 0000000..fff23b8 Binary files /dev/null and b/dimensions/minecraft/creative/region/r.-1.-1.mca differ diff --git a/dimensions/minecraft/creative/region/r.-1.-2.mca b/dimensions/minecraft/creative/region/r.-1.-2.mca new file mode 100755 index 0000000..e69de29 diff --git a/dimensions/minecraft/creative/region/r.-1.0.mca b/dimensions/minecraft/creative/region/r.-1.0.mca new file mode 100755 index 0000000..f8c04c2 Binary files /dev/null and b/dimensions/minecraft/creative/region/r.-1.0.mca differ diff --git a/dimensions/minecraft/creative/region/r.-1.1.mca b/dimensions/minecraft/creative/region/r.-1.1.mca new file mode 100755 index 0000000..e69de29 diff --git a/dimensions/minecraft/creative/region/r.-2.-1.mca b/dimensions/minecraft/creative/region/r.-2.-1.mca new file mode 100755 index 0000000..e69de29 diff --git a/dimensions/minecraft/creative/region/r.-2.-2.mca b/dimensions/minecraft/creative/region/r.-2.-2.mca new file mode 100755 index 0000000..e69de29 diff --git a/dimensions/minecraft/creative/region/r.-2.0.mca b/dimensions/minecraft/creative/region/r.-2.0.mca new file mode 100755 index 0000000..e69de29 diff --git a/dimensions/minecraft/creative/region/r.-2.1.mca b/dimensions/minecraft/creative/region/r.-2.1.mca new file mode 100755 index 0000000..e69de29 diff --git a/dimensions/minecraft/creative/region/r.0.-1.mca b/dimensions/minecraft/creative/region/r.0.-1.mca new file mode 100755 index 0000000..fa5d390 Binary files /dev/null and b/dimensions/minecraft/creative/region/r.0.-1.mca differ diff --git a/dimensions/minecraft/creative/region/r.0.-2.mca b/dimensions/minecraft/creative/region/r.0.-2.mca new file mode 100755 index 0000000..e69de29 diff --git a/dimensions/minecraft/creative/region/r.0.0.mca b/dimensions/minecraft/creative/region/r.0.0.mca new file mode 100755 index 0000000..8fea1f2 Binary files /dev/null and b/dimensions/minecraft/creative/region/r.0.0.mca differ diff --git a/dimensions/minecraft/creative/region/r.0.1.mca b/dimensions/minecraft/creative/region/r.0.1.mca new file mode 100755 index 0000000..e69de29 diff --git a/dimensions/minecraft/creative/region/r.1.-1.mca b/dimensions/minecraft/creative/region/r.1.-1.mca new file mode 100755 index 0000000..e69de29 diff --git a/dimensions/minecraft/creative/region/r.1.-2.mca b/dimensions/minecraft/creative/region/r.1.-2.mca new file mode 100755 index 0000000..e69de29 diff --git a/dimensions/minecraft/creative/region/r.1.0.mca b/dimensions/minecraft/creative/region/r.1.0.mca new file mode 100755 index 0000000..e69de29 diff --git a/dimensions/minecraft/creative/region/r.1.1.mca b/dimensions/minecraft/creative/region/r.1.1.mca new file mode 100755 index 0000000..e69de29 diff --git a/entities/r.-1.-1.mca b/entities/r.-1.-1.mca new file mode 100755 index 0000000..fe87dd5 Binary files /dev/null and b/entities/r.-1.-1.mca differ diff --git a/entities/r.-1.-2.mca b/entities/r.-1.-2.mca new file mode 100755 index 0000000..bb51a3d Binary files /dev/null and b/entities/r.-1.-2.mca differ diff --git a/entities/r.-1.0.mca b/entities/r.-1.0.mca new file mode 100755 index 0000000..26eaa2c Binary files /dev/null and b/entities/r.-1.0.mca differ diff --git a/entities/r.-1.1.mca b/entities/r.-1.1.mca new file mode 100755 index 0000000..b5c40ff Binary files /dev/null and b/entities/r.-1.1.mca differ diff --git a/entities/r.-2.-1.mca b/entities/r.-2.-1.mca new file mode 100755 index 0000000..786d71d Binary files /dev/null and b/entities/r.-2.-1.mca differ diff --git a/entities/r.-2.-2.mca b/entities/r.-2.-2.mca new file mode 100755 index 0000000..e1f3c67 Binary files /dev/null and b/entities/r.-2.-2.mca differ diff --git a/entities/r.-2.0.mca b/entities/r.-2.0.mca new file mode 100755 index 0000000..d792e25 Binary files /dev/null and b/entities/r.-2.0.mca differ diff --git a/entities/r.-2.1.mca b/entities/r.-2.1.mca new file mode 100755 index 0000000..e69de29 diff --git a/entities/r.0.-1.mca b/entities/r.0.-1.mca new file mode 100755 index 0000000..0102a7e Binary files /dev/null and b/entities/r.0.-1.mca differ diff --git a/entities/r.0.-2.mca b/entities/r.0.-2.mca new file mode 100755 index 0000000..60e10ff Binary files /dev/null and b/entities/r.0.-2.mca differ diff --git a/entities/r.0.0.mca b/entities/r.0.0.mca new file mode 100755 index 0000000..a6893b1 Binary files /dev/null and b/entities/r.0.0.mca differ diff --git a/entities/r.0.1.mca b/entities/r.0.1.mca new file mode 100755 index 0000000..c25ae66 Binary files /dev/null and b/entities/r.0.1.mca differ diff --git a/entities/r.0.2.mca b/entities/r.0.2.mca new file mode 100755 index 0000000..b5b6e8d Binary files /dev/null and b/entities/r.0.2.mca differ diff --git a/entities/r.1.-1.mca b/entities/r.1.-1.mca new file mode 100755 index 0000000..15116d7 Binary files /dev/null and b/entities/r.1.-1.mca differ diff --git a/entities/r.1.-2.mca b/entities/r.1.-2.mca new file mode 100755 index 0000000..8c7f4d7 Binary files /dev/null and b/entities/r.1.-2.mca differ diff --git a/entities/r.1.0.mca b/entities/r.1.0.mca new file mode 100755 index 0000000..eb7b38f Binary files /dev/null and b/entities/r.1.0.mca differ diff --git a/entities/r.1.1.mca b/entities/r.1.1.mca new file mode 100755 index 0000000..7607f07 Binary files /dev/null and b/entities/r.1.1.mca differ diff --git a/entities/r.1.2.mca b/entities/r.1.2.mca new file mode 100755 index 0000000..eed8619 Binary files /dev/null and b/entities/r.1.2.mca differ diff --git a/entities/r.2.0.mca b/entities/r.2.0.mca new file mode 100755 index 0000000..7f51c96 Binary files /dev/null and b/entities/r.2.0.mca differ diff --git a/entities/r.2.1.mca b/entities/r.2.1.mca new file mode 100755 index 0000000..595c444 Binary files /dev/null and b/entities/r.2.1.mca differ diff --git a/level.dat b/level.dat new file mode 100755 index 0000000..400dfe2 Binary files /dev/null and b/level.dat differ diff --git a/level.dat_old b/level.dat_old new file mode 100755 index 0000000..1fe343e Binary files /dev/null and b/level.dat_old differ diff --git a/player-mod-data/98062058-93ee-3a45-a3b3-b0289f399830/worldmanager.dat b/player-mod-data/98062058-93ee-3a45-a3b3-b0289f399830/worldmanager.dat new file mode 100755 index 0000000..e5624da Binary files /dev/null and b/player-mod-data/98062058-93ee-3a45-a3b3-b0289f399830/worldmanager.dat differ diff --git a/player-mod-data/c6a465aa-1a67-4cc5-b25b-c0c3239a340f/worldmanager.dat b/player-mod-data/c6a465aa-1a67-4cc5-b25b-c0c3239a340f/worldmanager.dat new file mode 100755 index 0000000..7a887df Binary files /dev/null and b/player-mod-data/c6a465aa-1a67-4cc5-b25b-c0c3239a340f/worldmanager.dat differ diff --git a/playerdata/4e643a75-854d-48fc-8167-ecaefd25657a.dat b/playerdata/4e643a75-854d-48fc-8167-ecaefd25657a.dat new file mode 100755 index 0000000..515ec83 Binary files /dev/null and b/playerdata/4e643a75-854d-48fc-8167-ecaefd25657a.dat differ diff --git a/playerdata/4e643a75-854d-48fc-8167-ecaefd25657a.dat_old b/playerdata/4e643a75-854d-48fc-8167-ecaefd25657a.dat_old new file mode 100755 index 0000000..4374dc6 Binary files /dev/null and b/playerdata/4e643a75-854d-48fc-8167-ecaefd25657a.dat_old differ diff --git a/playerdata/623a58f4-e1a6-497e-8ec5-7b809cc99174.dat b/playerdata/623a58f4-e1a6-497e-8ec5-7b809cc99174.dat new file mode 100755 index 0000000..50a57a0 Binary files /dev/null and b/playerdata/623a58f4-e1a6-497e-8ec5-7b809cc99174.dat differ diff --git a/playerdata/623a58f4-e1a6-497e-8ec5-7b809cc99174.dat_old b/playerdata/623a58f4-e1a6-497e-8ec5-7b809cc99174.dat_old new file mode 100755 index 0000000..87efef4 Binary files /dev/null and b/playerdata/623a58f4-e1a6-497e-8ec5-7b809cc99174.dat_old differ diff --git a/playerdata/98062058-93ee-3a45-a3b3-b0289f399830.dat b/playerdata/98062058-93ee-3a45-a3b3-b0289f399830.dat new file mode 100755 index 0000000..0952e3b Binary files /dev/null and b/playerdata/98062058-93ee-3a45-a3b3-b0289f399830.dat differ diff --git a/playerdata/98062058-93ee-3a45-a3b3-b0289f399830.dat_old b/playerdata/98062058-93ee-3a45-a3b3-b0289f399830.dat_old new file mode 100755 index 0000000..60a0589 Binary files /dev/null and b/playerdata/98062058-93ee-3a45-a3b3-b0289f399830.dat_old differ diff --git a/playerdata/9cbe1283-aabc-477d-a8a2-4d06902e7545.dat b/playerdata/9cbe1283-aabc-477d-a8a2-4d06902e7545.dat new file mode 100755 index 0000000..7231c5a Binary files /dev/null and b/playerdata/9cbe1283-aabc-477d-a8a2-4d06902e7545.dat differ diff --git a/playerdata/9cbe1283-aabc-477d-a8a2-4d06902e7545.dat_old b/playerdata/9cbe1283-aabc-477d-a8a2-4d06902e7545.dat_old new file mode 100755 index 0000000..980e4be Binary files /dev/null and b/playerdata/9cbe1283-aabc-477d-a8a2-4d06902e7545.dat_old differ diff --git a/playerdata/9eafc73a-e0fb-4de0-87d5-b48012f4a510.dat b/playerdata/9eafc73a-e0fb-4de0-87d5-b48012f4a510.dat new file mode 100755 index 0000000..558c541 Binary files /dev/null and b/playerdata/9eafc73a-e0fb-4de0-87d5-b48012f4a510.dat differ diff --git a/playerdata/9eafc73a-e0fb-4de0-87d5-b48012f4a510.dat_old b/playerdata/9eafc73a-e0fb-4de0-87d5-b48012f4a510.dat_old new file mode 100755 index 0000000..ebeb581 Binary files /dev/null and b/playerdata/9eafc73a-e0fb-4de0-87d5-b48012f4a510.dat_old differ diff --git a/playerdata/a8430355-4d85-4c50-bbf8-e55332bd255b.dat b/playerdata/a8430355-4d85-4c50-bbf8-e55332bd255b.dat new file mode 100755 index 0000000..b164997 Binary files /dev/null and b/playerdata/a8430355-4d85-4c50-bbf8-e55332bd255b.dat differ diff --git a/playerdata/a8430355-4d85-4c50-bbf8-e55332bd255b.dat_old b/playerdata/a8430355-4d85-4c50-bbf8-e55332bd255b.dat_old new file mode 100755 index 0000000..123bebf Binary files /dev/null and b/playerdata/a8430355-4d85-4c50-bbf8-e55332bd255b.dat_old differ diff --git a/playerdata/c6a465aa-1a67-4cc5-b25b-c0c3239a340f.dat b/playerdata/c6a465aa-1a67-4cc5-b25b-c0c3239a340f.dat new file mode 100755 index 0000000..caed23c Binary files /dev/null and b/playerdata/c6a465aa-1a67-4cc5-b25b-c0c3239a340f.dat differ diff --git a/playerdata/c6a465aa-1a67-4cc5-b25b-c0c3239a340f.dat_old b/playerdata/c6a465aa-1a67-4cc5-b25b-c0c3239a340f.dat_old new file mode 100755 index 0000000..9f12070 Binary files /dev/null and b/playerdata/c6a465aa-1a67-4cc5-b25b-c0c3239a340f.dat_old differ diff --git a/playerdata/claimData/4e643a75-854d-48fc-8167-ecaefd25657a.json b/playerdata/claimData/4e643a75-854d-48fc-8167-ecaefd25657a.json new file mode 100755 index 0000000..50da98c --- /dev/null +++ b/playerdata/claimData/4e643a75-854d-48fc-8167-ecaefd25657a.json @@ -0,0 +1,7 @@ +{ + "ClaimBlocks": 738, + "AdditionalBlocks": 0, + "LastSeen": "2025-08-27 20:19", + "DefaultGroups": {}, + "FakePlayerNotification": true +} \ No newline at end of file diff --git a/playerdata/claimData/623a58f4-e1a6-497e-8ec5-7b809cc99174.json b/playerdata/claimData/623a58f4-e1a6-497e-8ec5-7b809cc99174.json new file mode 100755 index 0000000..a9af908 --- /dev/null +++ b/playerdata/claimData/623a58f4-e1a6-497e-8ec5-7b809cc99174.json @@ -0,0 +1,7 @@ +{ + "ClaimBlocks": 606, + "AdditionalBlocks": 0, + "LastSeen": "2025-08-24 21:18", + "DefaultGroups": {}, + "FakePlayerNotification": true +} \ No newline at end of file diff --git a/playerdata/claimData/98062058-93ee-3a45-a3b3-b0289f399830.json b/playerdata/claimData/98062058-93ee-3a45-a3b3-b0289f399830.json new file mode 100755 index 0000000..bf36cb7 --- /dev/null +++ b/playerdata/claimData/98062058-93ee-3a45-a3b3-b0289f399830.json @@ -0,0 +1,7 @@ +{ + "ClaimBlocks": 500, + "AdditionalBlocks": 0, + "LastSeen": "2025-08-27 15:50", + "DefaultGroups": {}, + "FakePlayerNotification": true +} \ No newline at end of file diff --git a/playerdata/claimData/9cbe1283-aabc-477d-a8a2-4d06902e7545.json b/playerdata/claimData/9cbe1283-aabc-477d-a8a2-4d06902e7545.json new file mode 100755 index 0000000..8098f40 --- /dev/null +++ b/playerdata/claimData/9cbe1283-aabc-477d-a8a2-4d06902e7545.json @@ -0,0 +1,7 @@ +{ + "ClaimBlocks": 615, + "AdditionalBlocks": 0, + "LastSeen": "2025-08-27 18:29", + "DefaultGroups": {}, + "FakePlayerNotification": true +} \ No newline at end of file diff --git a/playerdata/claimData/9eafc73a-e0fb-4de0-87d5-b48012f4a510.json b/playerdata/claimData/9eafc73a-e0fb-4de0-87d5-b48012f4a510.json new file mode 100755 index 0000000..3d33f99 --- /dev/null +++ b/playerdata/claimData/9eafc73a-e0fb-4de0-87d5-b48012f4a510.json @@ -0,0 +1,7 @@ +{ + "ClaimBlocks": 539, + "AdditionalBlocks": 0, + "LastSeen": "2025-08-25 22:05", + "DefaultGroups": {}, + "FakePlayerNotification": true +} \ No newline at end of file diff --git a/playerdata/claimData/a8430355-4d85-4c50-bbf8-e55332bd255b.json b/playerdata/claimData/a8430355-4d85-4c50-bbf8-e55332bd255b.json new file mode 100755 index 0000000..f1a3e34 --- /dev/null +++ b/playerdata/claimData/a8430355-4d85-4c50-bbf8-e55332bd255b.json @@ -0,0 +1,7 @@ +{ + "ClaimBlocks": 1419, + "AdditionalBlocks": 0, + "LastSeen": "2025-08-27 19:21", + "DefaultGroups": {}, + "FakePlayerNotification": true +} \ No newline at end of file diff --git a/playerdata/claimData/c6a465aa-1a67-4cc5-b25b-c0c3239a340f.json b/playerdata/claimData/c6a465aa-1a67-4cc5-b25b-c0c3239a340f.json new file mode 100755 index 0000000..ffc851b --- /dev/null +++ b/playerdata/claimData/c6a465aa-1a67-4cc5-b25b-c0c3239a340f.json @@ -0,0 +1,7 @@ +{ + "ClaimBlocks": 3883, + "AdditionalBlocks": 0, + "LastSeen": "2025-08-27 20:39", + "DefaultGroups": {}, + "FakePlayerNotification": true +} \ No newline at end of file diff --git a/poi/r.-1.-1.mca b/poi/r.-1.-1.mca new file mode 100755 index 0000000..6f73fb8 Binary files /dev/null and b/poi/r.-1.-1.mca differ diff --git a/poi/r.-1.-2.mca b/poi/r.-1.-2.mca new file mode 100755 index 0000000..e69de29 diff --git a/poi/r.-1.-3.mca b/poi/r.-1.-3.mca new file mode 100755 index 0000000..e69de29 diff --git a/poi/r.-1.0.mca b/poi/r.-1.0.mca new file mode 100755 index 0000000..f82b071 Binary files /dev/null and b/poi/r.-1.0.mca differ diff --git a/poi/r.-1.1.mca b/poi/r.-1.1.mca new file mode 100755 index 0000000..dee58a8 Binary files /dev/null and b/poi/r.-1.1.mca differ diff --git a/poi/r.-1.2.mca b/poi/r.-1.2.mca new file mode 100755 index 0000000..e69de29 diff --git a/poi/r.-2.-1.mca b/poi/r.-2.-1.mca new file mode 100755 index 0000000..e69de29 diff --git a/poi/r.-2.-2.mca b/poi/r.-2.-2.mca new file mode 100755 index 0000000..e69de29 diff --git a/poi/r.-2.0.mca b/poi/r.-2.0.mca new file mode 100755 index 0000000..83926cd Binary files /dev/null and b/poi/r.-2.0.mca differ diff --git a/poi/r.-2.1.mca b/poi/r.-2.1.mca new file mode 100755 index 0000000..e69de29 diff --git a/poi/r.0.-1.mca b/poi/r.0.-1.mca new file mode 100755 index 0000000..9566c03 Binary files /dev/null and b/poi/r.0.-1.mca differ diff --git a/poi/r.0.-2.mca b/poi/r.0.-2.mca new file mode 100755 index 0000000..9a93bda Binary files /dev/null and b/poi/r.0.-2.mca differ diff --git a/poi/r.0.-3.mca b/poi/r.0.-3.mca new file mode 100755 index 0000000..e69de29 diff --git a/poi/r.0.0.mca b/poi/r.0.0.mca new file mode 100755 index 0000000..aa4b12a Binary files /dev/null and b/poi/r.0.0.mca differ diff --git a/poi/r.0.1.mca b/poi/r.0.1.mca new file mode 100755 index 0000000..b4ac516 Binary files /dev/null and b/poi/r.0.1.mca differ diff --git a/poi/r.0.2.mca b/poi/r.0.2.mca new file mode 100755 index 0000000..940cd76 Binary files /dev/null and b/poi/r.0.2.mca differ diff --git a/poi/r.1.-1.mca b/poi/r.1.-1.mca new file mode 100755 index 0000000..c226f59 Binary files /dev/null and b/poi/r.1.-1.mca differ diff --git a/poi/r.1.-2.mca b/poi/r.1.-2.mca new file mode 100755 index 0000000..dd79559 Binary files /dev/null and b/poi/r.1.-2.mca differ diff --git a/poi/r.1.-3.mca b/poi/r.1.-3.mca new file mode 100755 index 0000000..e69de29 diff --git a/poi/r.1.0.mca b/poi/r.1.0.mca new file mode 100755 index 0000000..a01e470 Binary files /dev/null and b/poi/r.1.0.mca differ diff --git a/poi/r.1.1.mca b/poi/r.1.1.mca new file mode 100755 index 0000000..ee94e01 Binary files /dev/null and b/poi/r.1.1.mca differ diff --git a/poi/r.1.2.mca b/poi/r.1.2.mca new file mode 100755 index 0000000..fe80984 Binary files /dev/null and b/poi/r.1.2.mca differ diff --git a/poi/r.2.-1.mca b/poi/r.2.-1.mca new file mode 100755 index 0000000..e69de29 diff --git a/poi/r.2.-2.mca b/poi/r.2.-2.mca new file mode 100755 index 0000000..e69de29 diff --git a/poi/r.2.-3.mca b/poi/r.2.-3.mca new file mode 100755 index 0000000..e69de29 diff --git a/poi/r.2.0.mca b/poi/r.2.0.mca new file mode 100755 index 0000000..e69de29 diff --git a/poi/r.2.1.mca b/poi/r.2.1.mca new file mode 100755 index 0000000..c3226be Binary files /dev/null and b/poi/r.2.1.mca differ diff --git a/poi/r.2.2.mca b/poi/r.2.2.mca new file mode 100755 index 0000000..e69de29 diff --git a/poi/r.3.0.mca b/poi/r.3.0.mca new file mode 100755 index 0000000..e69de29 diff --git a/poi/r.3.1.mca b/poi/r.3.1.mca new file mode 100755 index 0000000..e69de29 diff --git a/poi/r.3.2.mca b/poi/r.3.2.mca new file mode 100755 index 0000000..e69de29 diff --git a/region/r.-1.-1.mca b/region/r.-1.-1.mca new file mode 100755 index 0000000..a6f6563 Binary files /dev/null and b/region/r.-1.-1.mca differ diff --git a/region/r.-1.-2.mca b/region/r.-1.-2.mca new file mode 100755 index 0000000..d332dc7 Binary files /dev/null and b/region/r.-1.-2.mca differ diff --git a/region/r.-1.-3.mca b/region/r.-1.-3.mca new file mode 100755 index 0000000..54ce69c Binary files /dev/null and b/region/r.-1.-3.mca differ diff --git a/region/r.-1.0.mca b/region/r.-1.0.mca new file mode 100755 index 0000000..4ebf144 Binary files /dev/null and b/region/r.-1.0.mca differ diff --git a/region/r.-1.1.mca b/region/r.-1.1.mca new file mode 100755 index 0000000..d425aa4 Binary files /dev/null and b/region/r.-1.1.mca differ diff --git a/region/r.-1.2.mca b/region/r.-1.2.mca new file mode 100755 index 0000000..61e1057 Binary files /dev/null and b/region/r.-1.2.mca differ diff --git a/region/r.-1.3.mca b/region/r.-1.3.mca new file mode 100755 index 0000000..e69de29 diff --git a/region/r.-2.-1.mca b/region/r.-2.-1.mca new file mode 100755 index 0000000..25bb741 Binary files /dev/null and b/region/r.-2.-1.mca differ diff --git a/region/r.-2.-2.mca b/region/r.-2.-2.mca new file mode 100755 index 0000000..01c7743 Binary files /dev/null and b/region/r.-2.-2.mca differ diff --git a/region/r.-2.-3.mca b/region/r.-2.-3.mca new file mode 100755 index 0000000..e69de29 diff --git a/region/r.-2.0.mca b/region/r.-2.0.mca new file mode 100755 index 0000000..1a3bcd2 Binary files /dev/null and b/region/r.-2.0.mca differ diff --git a/region/r.-2.1.mca b/region/r.-2.1.mca new file mode 100755 index 0000000..25ba48c Binary files /dev/null and b/region/r.-2.1.mca differ diff --git a/region/r.-3.-1.mca b/region/r.-3.-1.mca new file mode 100755 index 0000000..e69de29 diff --git a/region/r.-3.-2.mca b/region/r.-3.-2.mca new file mode 100755 index 0000000..e69de29 diff --git a/region/r.-3.0.mca b/region/r.-3.0.mca new file mode 100755 index 0000000..e69de29 diff --git a/region/r.0.-1.mca b/region/r.0.-1.mca new file mode 100755 index 0000000..535a131 Binary files /dev/null and b/region/r.0.-1.mca differ diff --git a/region/r.0.-2.mca b/region/r.0.-2.mca new file mode 100755 index 0000000..3db9c40 Binary files /dev/null and b/region/r.0.-2.mca differ diff --git a/region/r.0.-3.mca b/region/r.0.-3.mca new file mode 100755 index 0000000..1d56eae Binary files /dev/null and b/region/r.0.-3.mca differ diff --git a/region/r.0.0.mca b/region/r.0.0.mca new file mode 100755 index 0000000..70ab3a5 Binary files /dev/null and b/region/r.0.0.mca differ diff --git a/region/r.0.1.mca b/region/r.0.1.mca new file mode 100755 index 0000000..38b862f Binary files /dev/null and b/region/r.0.1.mca differ diff --git a/region/r.0.2.mca b/region/r.0.2.mca new file mode 100755 index 0000000..e178762 Binary files /dev/null and b/region/r.0.2.mca differ diff --git a/region/r.0.3.mca b/region/r.0.3.mca new file mode 100755 index 0000000..e69de29 diff --git a/region/r.1.-1.mca b/region/r.1.-1.mca new file mode 100755 index 0000000..bc636d2 Binary files /dev/null and b/region/r.1.-1.mca differ diff --git a/region/r.1.-2.mca b/region/r.1.-2.mca new file mode 100755 index 0000000..c8f407e Binary files /dev/null and b/region/r.1.-2.mca differ diff --git a/region/r.1.-3.mca b/region/r.1.-3.mca new file mode 100755 index 0000000..fd6110e Binary files /dev/null and b/region/r.1.-3.mca differ diff --git a/region/r.1.0.mca b/region/r.1.0.mca new file mode 100755 index 0000000..8ec3ede Binary files /dev/null and b/region/r.1.0.mca differ diff --git a/region/r.1.1.mca b/region/r.1.1.mca new file mode 100755 index 0000000..7d7ec3d Binary files /dev/null and b/region/r.1.1.mca differ diff --git a/region/r.1.2.mca b/region/r.1.2.mca new file mode 100755 index 0000000..05d5965 Binary files /dev/null and b/region/r.1.2.mca differ diff --git a/region/r.1.3.mca b/region/r.1.3.mca new file mode 100755 index 0000000..e69de29 diff --git a/region/r.2.-1.mca b/region/r.2.-1.mca new file mode 100755 index 0000000..3b258d1 Binary files /dev/null and b/region/r.2.-1.mca differ diff --git a/region/r.2.-2.mca b/region/r.2.-2.mca new file mode 100755 index 0000000..9834f47 Binary files /dev/null and b/region/r.2.-2.mca differ diff --git a/region/r.2.-3.mca b/region/r.2.-3.mca new file mode 100755 index 0000000..a8dbc5d Binary files /dev/null and b/region/r.2.-3.mca differ diff --git a/region/r.2.0.mca b/region/r.2.0.mca new file mode 100755 index 0000000..559b6c0 Binary files /dev/null and b/region/r.2.0.mca differ diff --git a/region/r.2.1.mca b/region/r.2.1.mca new file mode 100755 index 0000000..1333bbb Binary files /dev/null and b/region/r.2.1.mca differ diff --git a/region/r.2.2.mca b/region/r.2.2.mca new file mode 100755 index 0000000..4f0cb93 Binary files /dev/null and b/region/r.2.2.mca differ diff --git a/region/r.2.3.mca b/region/r.2.3.mca new file mode 100755 index 0000000..e69de29 diff --git a/region/r.3.0.mca b/region/r.3.0.mca new file mode 100755 index 0000000..10dbbfe Binary files /dev/null and b/region/r.3.0.mca differ diff --git a/region/r.3.1.mca b/region/r.3.1.mca new file mode 100755 index 0000000..c9f4bf1 Binary files /dev/null and b/region/r.3.1.mca differ diff --git a/region/r.3.2.mca b/region/r.3.2.mca new file mode 100755 index 0000000..0cd0aab Binary files /dev/null and b/region/r.3.2.mca differ diff --git a/serverconfig/readme.txt b/serverconfig/readme.txt new file mode 100755 index 0000000..c782a9f --- /dev/null +++ b/serverconfig/readme.txt @@ -0,0 +1,3 @@ +Any server configs put in this folder will override the corresponding server config from /config/. +If the config being transferred is in a subfolder of the base config folder make sure to include that folder here in the path to the file you are overwriting. +For example if you are overwriting a config with the path /config/ExampleMod/config-server.toml, you would need to put it in serverconfig/ExampleMod/config-server.toml diff --git a/session.lock b/session.lock new file mode 100755 index 0000000..0d7e5f8 --- /dev/null +++ b/session.lock @@ -0,0 +1 @@ +☃ \ No newline at end of file diff --git a/stats/4e643a75-854d-48fc-8167-ecaefd25657a.json b/stats/4e643a75-854d-48fc-8167-ecaefd25657a.json new file mode 100755 index 0000000..03ad57e --- /dev/null +++ b/stats/4e643a75-854d-48fc-8167-ecaefd25657a.json @@ -0,0 +1 @@ +{"stats":{"minecraft:dropped":{"minecraft:ominous_bottle":1,"minecraft:rotten_flesh":6,"minecraft:oak_planks":1,"minecraft:bone":2},"minecraft:killed":{"minecraft:pig":1,"minecraft:salmon":9,"minecraft:spider":4,"minecraft:creeper":4,"minecraft:skeleton":14,"minecraft:pillager":1,"minecraft:zombie":25,"minecraft:cow":4},"minecraft:crafted":{"minecraft:oak_planks":56,"minecraft:cooked_porkchop":3,"minecraft:spruce_sign":3,"minecraft:crafting_table":1,"minecraft:spruce_planks":8,"minecraft:wooden_pickaxe":1,"minecraft:furnace":2,"minecraft:cooked_salmon":9,"minecraft:bone_meal":9,"minecraft:bucket":1,"minecraft:stone_axe":1,"minecraft:air":0,"minecraft:blue_dye":1,"minecraft:iron_boots":1,"minecraft:iron_chestplate":1,"minecraft:diamond_pickaxe":1,"minecraft:iron_axe":1,"minecraft:iron_hoe":1,"minecraft:stick":28,"minecraft:iron_ingot":36,"minecraft:iron_pickaxe":1,"minecraft:stone_pickaxe":1,"minecraft:iron_leggings":1,"minecraft:chest":4,"minecraft:iron_shovel":1,"minecraft:gold_ingot":12,"minecraft:torch":56,"minecraft:shears":1},"minecraft:custom":{"minecraft:interact_with_furnace":26,"minecraft:mob_kills":66,"minecraft:interact_with_crafting_table":23,"minecraft:leave_game":1,"minecraft:time_since_death":143403,"minecraft:time_since_rest":143403,"minecraft:sprint_one_cm":325165,"minecraft:damage_taken":1623,"minecraft:walk_one_cm":499585,"minecraft:drop":4,"minecraft:damage_dealt":11060,"minecraft:swim_one_cm":11845,"minecraft:fly_one_cm":226578,"minecraft:open_chest":42,"minecraft:crouch_one_cm":1038,"minecraft:play_time":143403,"minecraft:sneak_time":637,"minecraft:walk_under_water_one_cm":13037,"minecraft:jump":1707,"minecraft:walk_on_water_one_cm":29417,"minecraft:total_world_time":143403,"minecraft:fall_one_cm":33588},"minecraft:picked_up":{"minecraft:pink_petals":1,"minecraft:crafting_table":4,"minecraft:wheat":3,"minecraft:cooked_beef":10,"minecraft:ominous_bottle":1,"minecraft:andesite":4,"minecraft:salmon":9,"minecraft:leather":6,"minecraft:lead":2,"minecraft:oak_log":14,"minecraft:gunpowder":5,"minecraft:amethyst_block":2,"minecraft:lapis_lazuli":32,"minecraft:dirt":17,"minecraft:string":2,"minecraft:bone":18,"minecraft:wheat_seeds":17,"minecraft:cobbled_deepslate":7,"minecraft:raw_gold":12,"minecraft:iron_ingot":16,"minecraft:cooked_chicken":10,"minecraft:calcite":5,"minecraft:sugar_cane":3,"minecraft:egg":4,"minecraft:furnace":3,"minecraft:stick":31,"minecraft:raw_iron":52,"minecraft:smooth_basalt":2,"minecraft:cooked_porkchop":9,"minecraft:pumpkin":19,"minecraft:torch":2,"minecraft:dandelion":4,"minecraft:porkchop":3,"minecraft:amethyst_shard":4,"minecraft:spruce_sapling":31,"minecraft:spruce_log":171,"minecraft:carrot":2,"minecraft:spider_eye":1,"minecraft:arrow":19,"minecraft:rotten_flesh":27,"minecraft:diamond":5,"minecraft:armadillo_scute":1,"minecraft:baked_potato":65,"minecraft:oak_sapling":3,"minecraft:dark_oak_fence":2,"minecraft:coal":46,"minecraft:cobblestone":41,"minecraft:oxeye_daisy":2},"minecraft:mined":{"minecraft:deepslate_diamond_ore":5,"minecraft:amethyst_cluster":1,"minecraft:dandelion":4,"minecraft:torch":1,"minecraft:crafting_table":4,"minecraft:dark_oak_fence":6,"minecraft:short_grass":84,"minecraft:grass_block":14,"minecraft:calcite":5,"minecraft:tall_grass":13,"minecraft:spruce_leaves":21,"minecraft:lapis_ore":5,"minecraft:deepslate_gold_ore":10,"minecraft:oxeye_daisy":2,"minecraft:wall_torch":1,"minecraft:amethyst_block":2,"minecraft:large_fern":2,"minecraft:pink_petals":1,"minecraft:tall_seagrass":2,"minecraft:furnace":3,"minecraft:iron_ore":48,"minecraft:spruce_log":171,"minecraft:andesite":4,"minecraft:pumpkin":19,"minecraft:coal_ore":46,"minecraft:oak_log":14,"minecraft:deepslate_iron_ore":4,"minecraft:dirt":3,"minecraft:smooth_basalt":2,"minecraft:stone":41,"minecraft:fern":1,"minecraft:oak_leaves":4,"minecraft:deepslate":7},"minecraft:used":{"minecraft:wheat_seeds":10,"minecraft:water_bucket":3,"minecraft:iron_shovel":15,"minecraft:stone_pickaxe":63,"minecraft:baked_potato":39,"minecraft:chest":4,"minecraft:wooden_pickaxe":12,"minecraft:spruce_sign":1,"minecraft:cooked_salmon":23,"minecraft:cooked_chicken":19,"minecraft:torch":45,"minecraft:dirt":6,"minecraft:crafting_table":5,"minecraft:spruce_log":59,"minecraft:iron_hoe":62,"minecraft:diamond_pickaxe":19,"minecraft:iron_axe":341,"minecraft:iron_pickaxe":94,"minecraft:stone_axe":84,"minecraft:oak_sapling":1,"minecraft:furnace":5,"minecraft:cooked_porkchop":6,"minecraft:dark_oak_fence":2,"minecraft:bucket":4,"minecraft:air":7,"minecraft:bone_meal":9}},"DataVersion":4189} \ No newline at end of file diff --git a/stats/623a58f4-e1a6-497e-8ec5-7b809cc99174.json b/stats/623a58f4-e1a6-497e-8ec5-7b809cc99174.json new file mode 100755 index 0000000..568166b --- /dev/null +++ b/stats/623a58f4-e1a6-497e-8ec5-7b809cc99174.json @@ -0,0 +1 @@ +{"stats":{"minecraft:mined":{"minecraft:furnace":1,"minecraft:orange_tulip":5,"minecraft:azure_bluet":1,"minecraft:short_grass":3,"minecraft:grass_block":4,"minecraft:oak_log":30,"minecraft:stone":7,"minecraft:oak_leaves":7},"minecraft:dropped":{"minecraft:wooden_axe":3,"minecraft:wooden_pickaxe":2},"minecraft:killed":{"minecraft:sheep":1,"minecraft:skeleton":2,"minecraft:zombie":1,"minecraft:salmon":2,"minecraft:creeper":1,"minecraft:cow":2},"minecraft:crafted":{"minecraft:oak_planks":12,"minecraft:charcoal":1,"minecraft:crafting_table":1,"minecraft:wooden_pickaxe":1,"minecraft:wooden_axe":1},"minecraft:killed_by":{"minecraft:spider":1,"minecraft:zombie":1},"minecraft:custom":{"minecraft:time_since_rest":10990,"minecraft:interact_with_furnace":3,"minecraft:sprint_one_cm":182753,"minecraft:damage_taken":1354,"minecraft:walk_one_cm":228454,"minecraft:mob_kills":9,"minecraft:drop":5,"minecraft:damage_dealt":1862,"minecraft:swim_one_cm":13648,"minecraft:interact_with_crafting_table":3,"minecraft:fly_one_cm":107402,"minecraft:open_chest":7,"minecraft:play_time":66193,"minecraft:deaths":5,"minecraft:sneak_time":192,"minecraft:walk_under_water_one_cm":6628,"minecraft:jump":530,"minecraft:leave_game":1,"minecraft:walk_on_water_one_cm":8803,"minecraft:time_since_death":10954,"minecraft:total_world_time":66193,"minecraft:fall_one_cm":13171},"minecraft:used":{"minecraft:wooden_axe":4,"minecraft:apple":2,"minecraft:wooden_pickaxe":19,"minecraft:salmon":4,"minecraft:mutton":4,"minecraft:beef":5,"minecraft:crafting_table":1,"minecraft:furnace":1,"minecraft:cooked_beef":5},"minecraft:picked_up":{"minecraft:wooden_axe":3,"minecraft:charcoal":1,"minecraft:cooked_beef":2,"minecraft:stick":7,"minecraft:azure_bluet":1,"minecraft:salmon":2,"minecraft:leather":2,"minecraft:wooden_pickaxe":2,"minecraft:oak_log":30,"minecraft:dirt":1,"minecraft:bone":4,"minecraft:rotten_flesh":1,"minecraft:apple":1,"minecraft:orange_tulip":7,"minecraft:wheat_seeds":2,"minecraft:beef":2,"minecraft:red_tulip":3,"minecraft:white_tulip":2,"minecraft:pink_tulip":4,"minecraft:oak_sapling":59,"minecraft:birch_sapling":11,"minecraft:mutton":2,"minecraft:cobblestone":7,"minecraft:white_wool":1,"minecraft:furnace":2,"minecraft:egg":2}},"DataVersion":4189} \ No newline at end of file diff --git a/stats/98062058-93ee-3a45-a3b3-b0289f399830.json b/stats/98062058-93ee-3a45-a3b3-b0289f399830.json new file mode 100755 index 0000000..0bdeddc --- /dev/null +++ b/stats/98062058-93ee-3a45-a3b3-b0289f399830.json @@ -0,0 +1 @@ +{"stats":{},"DataVersion":4189} \ No newline at end of file diff --git a/stats/9cbe1283-aabc-477d-a8a2-4d06902e7545.json b/stats/9cbe1283-aabc-477d-a8a2-4d06902e7545.json new file mode 100755 index 0000000..0e288cb --- /dev/null +++ b/stats/9cbe1283-aabc-477d-a8a2-4d06902e7545.json @@ -0,0 +1 @@ +{"stats":{"minecraft:dropped":{"minecraft:wheat_seeds":4,"minecraft:cobbled_deepslate":64,"minecraft:raw_iron":1,"minecraft:cobblestone":14,"minecraft:rotten_flesh":2,"minecraft:oak_planks":4,"minecraft:granite":3,"minecraft:stick":17,"minecraft:dirt":9,"minecraft:diorite":21,"minecraft:iron_chestplate":1,"minecraft:wooden_axe":1,"minecraft:iron_axe":1,"minecraft:arrow":7,"minecraft:sand":7,"minecraft:stone_pickaxe":3,"minecraft:wooden_pickaxe":1,"minecraft:iron_pickaxe":2},"minecraft:killed":{"minecraft:pig":5,"minecraft:spider":1,"minecraft:bat":1,"minecraft:sheep":5,"minecraft:skeleton":4,"minecraft:zombie":2,"minecraft:chicken":4},"minecraft:crafted":{"minecraft:oak_planks":36,"minecraft:diamond_axe":1,"minecraft:crafting_table":1,"minecraft:wooden_pickaxe":1,"minecraft:furnace":2,"minecraft:cooked_mutton":2,"minecraft:air":0,"minecraft:flint_and_steel":1,"minecraft:diamond_pickaxe":1,"minecraft:diamond_helmet":1,"minecraft:diamond_leggings":1,"minecraft:iron_chestplate":1,"minecraft:shield":1,"minecraft:iron_axe":1,"minecraft:stick":20,"minecraft:iron_ingot":15,"minecraft:iron_pickaxe":1,"minecraft:stone_pickaxe":2,"minecraft:wooden_axe":1,"minecraft:diamond_boots":1,"minecraft:white_bed":1,"minecraft:diamond_chestplate":1},"minecraft:custom":{"minecraft:interact_with_furnace":16,"minecraft:mob_kills":22,"minecraft:interact_with_crafting_table":15,"minecraft:leave_game":4,"minecraft:time_since_death":8150,"minecraft:time_since_rest":8182,"minecraft:sprint_one_cm":287987,"minecraft:damage_taken":1221,"minecraft:walk_one_cm":75023,"minecraft:damage_blocked_by_shield":670,"minecraft:drop":23,"minecraft:damage_dealt":2398,"minecraft:swim_one_cm":30319,"minecraft:fly_one_cm":345420,"minecraft:open_chest":3,"minecraft:crouch_one_cm":7104,"minecraft:play_time":71347,"minecraft:deaths":2,"minecraft:sneak_time":3445,"minecraft:walk_under_water_one_cm":3204,"minecraft:jump":1598,"minecraft:walk_on_water_one_cm":8460,"minecraft:total_world_time":71347,"minecraft:fall_one_cm":48216},"minecraft:picked_up":{"minecraft:crafting_table":5,"minecraft:feather":8,"minecraft:andesite":10,"minecraft:flint":1,"minecraft:tuff":31,"minecraft:oak_log":99,"minecraft:lapis_lazuli":76,"minecraft:dirt":15,"minecraft:cooked_mutton":6,"minecraft:bone":6,"minecraft:apple":5,"minecraft:wheat_seeds":4,"minecraft:cobbled_deepslate":142,"minecraft:stone_pickaxe":2,"minecraft:iron_ingot":2,"minecraft:cooked_chicken":5,"minecraft:iron_pickaxe":1,"minecraft:oak_planks":1,"minecraft:egg":8,"minecraft:furnace":4,"minecraft:raw_iron":172,"minecraft:stick":15,"minecraft:cooked_porkchop":8,"minecraft:torch":2,"minecraft:gravel":21,"minecraft:dripstone_block":2,"minecraft:sand":11,"minecraft:pointed_dripstone":8,"minecraft:diorite":21,"minecraft:redstone":19,"minecraft:arrow":7,"minecraft:rotten_flesh":2,"minecraft:diamond":63,"minecraft:granite":3,"minecraft:oak_sapling":47,"minecraft:mutton":3,"minecraft:coal":32,"minecraft:oak_leaves":5,"minecraft:white_wool":7,"minecraft:cobblestone":164},"minecraft:mined":{"minecraft:tuff":31,"minecraft:crafting_table":4,"minecraft:torch":2,"minecraft:granite":3,"minecraft:short_grass":5,"minecraft:grass_block":2,"minecraft:tall_grass":2,"minecraft:cobblestone":9,"minecraft:oak_planks":1,"minecraft:diorite":21,"minecraft:furnace":4,"minecraft:iron_ore":1,"minecraft:fire":26,"minecraft:andesite":13,"minecraft:pointed_dripstone":6,"minecraft:oak_log":7,"minecraft:gravel":22,"minecraft:sand":11,"minecraft:dirt":13,"minecraft:dripstone_block":2,"minecraft:stone":157,"minecraft:oak_leaves":2,"minecraft:deepslate":144},"minecraft:killed_by":{"minecraft:player":1},"minecraft:used":{"minecraft:cooked_mutton":19,"minecraft:flint_and_steel":27,"minecraft:stone_pickaxe":47,"minecraft:wooden_pickaxe":3,"minecraft:shield":93,"minecraft:diamond_axe":4,"minecraft:cooked_chicken":12,"minecraft:iron_chestplate":1,"minecraft:torch":2,"minecraft:sand":4,"minecraft:dirt":6,"minecraft:mutton":3,"minecraft:crafting_table":5,"minecraft:wooden_axe":19,"minecraft:apple":4,"minecraft:iron_axe":23,"minecraft:bread":4,"minecraft:iron_pickaxe":359,"minecraft:gravel":21,"minecraft:cobblestone":113,"minecraft:furnace":4,"minecraft:cooked_porkchop":5,"minecraft:andesite":10,"minecraft:egg":3,"minecraft:air":2,"minecraft:cobbled_deepslate":17}},"DataVersion":4189} \ No newline at end of file diff --git a/stats/9eafc73a-e0fb-4de0-87d5-b48012f4a510.json b/stats/9eafc73a-e0fb-4de0-87d5-b48012f4a510.json new file mode 100755 index 0000000..891afbf --- /dev/null +++ b/stats/9eafc73a-e0fb-4de0-87d5-b48012f4a510.json @@ -0,0 +1 @@ +{"stats":{"minecraft:mined":{"minecraft:short_grass":1,"minecraft:grass_block":59,"minecraft:oak_log":5},"minecraft:killed":{"minecraft:zombie":3},"minecraft:crafted":{"minecraft:iron_sword":1,"minecraft:iron_shovel":1,"minecraft:iron_axe":1,"minecraft:iron_pickaxe":1},"minecraft:killed_by":{"minecraft:zombie":1},"minecraft:custom":{"minecraft:time_since_rest":12390,"minecraft:open_chest":16,"minecraft:play_time":24286,"minecraft:crouch_one_cm":38,"minecraft:interact_with_furnace":3,"minecraft:sprint_one_cm":38953,"minecraft:deaths":1,"minecraft:damage_taken":270,"minecraft:walk_one_cm":33310,"minecraft:sneak_time":10,"minecraft:mob_kills":3,"minecraft:jump":438,"minecraft:damage_dealt":716,"minecraft:leave_game":2,"minecraft:time_since_death":12365,"minecraft:sleep_in_bed":2,"minecraft:total_world_time":24286,"minecraft:interact_with_crafting_table":2,"minecraft:fall_one_cm":14414,"minecraft:fly_one_cm":121476},"minecraft:used":{"minecraft:rotten_flesh":2,"minecraft:iron_shovel":58,"minecraft:oak_sapling":2,"minecraft:iron_axe":5,"minecraft:white_bed":1,"minecraft:egg":1,"minecraft:iron_sword":2,"minecraft:air":1},"minecraft:picked_up":{"minecraft:rotten_flesh":3,"minecraft:wheat_seeds":4,"minecraft:oak_log":5,"minecraft:oak_sapling":2,"minecraft:sunflower":1,"minecraft:stick":5,"minecraft:dirt":61,"minecraft:egg":1}},"DataVersion":4189} \ No newline at end of file diff --git a/stats/a8430355-4d85-4c50-bbf8-e55332bd255b.json b/stats/a8430355-4d85-4c50-bbf8-e55332bd255b.json new file mode 100755 index 0000000..64986bc --- /dev/null +++ b/stats/a8430355-4d85-4c50-bbf8-e55332bd255b.json @@ -0,0 +1 @@ +{"stats":{"minecraft:dropped":{"minecraft:spruce_sign":1,"minecraft:iron_sword":1,"minecraft:oak_log":2,"minecraft:glow_ink_sac":3,"minecraft:leather":6,"minecraft:flint":1,"minecraft:bone_meal":6,"minecraft:sunflower":3,"minecraft:sand":1,"minecraft:black_concrete":2,"minecraft:birch_log":6,"minecraft:bone":6,"minecraft:gravel":12,"minecraft:cobbled_deepslate":6,"minecraft:tinted_glass":1,"minecraft:birch_sapling":1,"minecraft:rotten_flesh":14,"minecraft:cooked_mutton":26,"minecraft:warped_planks":1,"minecraft:arrow":5,"minecraft:egg":1,"minecraft:crimson_planks":1,"minecraft:oak_slab":1,"minecraft:wheat_seeds":14,"minecraft:cherry_log":4,"minecraft:yellow_concrete":1,"minecraft:iron_helmet":1,"minecraft:purple_concrete":1,"minecraft:apple":1,"minecraft:stick":5,"minecraft:oxeye_daisy":1,"minecraft:torch":1,"minecraft:wooden_axe":1,"minecraft:iron_leggings":1,"minecraft:iron_axe":1,"minecraft:string":6,"minecraft:bucket":1,"minecraft:dandelion":1,"minecraft:red_concrete":1,"minecraft:furnace":1,"minecraft:lime_concrete":1,"minecraft:raw_iron":5,"minecraft:orange_concrete":1,"minecraft:clay_ball":60,"minecraft:iron_boots":1,"minecraft:light_blue_concrete":1,"minecraft:diamond_sword":2,"minecraft:andesite":10,"minecraft:iron_chestplate":1,"minecraft:spider_eye":1,"minecraft:spruce_log":4,"minecraft:stone_pickaxe":1,"minecraft:wooden_pickaxe":1,"minecraft:raw_gold":11,"minecraft:calcite":3},"minecraft:custom":{"minecraft:interact_with_crafting_table":59,"minecraft:leave_game":19,"minecraft:time_since_death":75468,"minecraft:sprint_one_cm":1618154,"minecraft:drop":76,"minecraft:talked_to_villager":1,"minecraft:play_time":559366,"minecraft:deaths":8,"minecraft:jump":12391,"minecraft:walk_on_water_one_cm":65501,"minecraft:enchant_item":24,"minecraft:interact_with_furnace":140,"minecraft:sleep_in_bed":2,"minecraft:damage_dealt":32117,"minecraft:player_kills":3,"minecraft:crouch_one_cm":312368,"minecraft:interact_with_anvil":9,"minecraft:mob_kills":190,"minecraft:climb_one_cm":13269,"minecraft:walk_one_cm":1187083,"minecraft:sneak_time":64356,"minecraft:walk_under_water_one_cm":30138,"minecraft:total_world_time":559366,"minecraft:interact_with_grindstone":6,"minecraft:interact_with_stonecutter":13,"minecraft:time_since_rest":75510,"minecraft:damage_taken":5755,"minecraft:swim_one_cm":64311,"minecraft:fly_one_cm":3138160,"minecraft:open_chest":176,"minecraft:fall_one_cm":399062},"minecraft:killed":{"minecraft:cave_spider":2,"minecraft:spider":9,"minecraft:skeleton":24,"minecraft:piglin":1,"minecraft:iron_golem":1,"minecraft:creeper":3,"minecraft:sheep":15,"minecraft:pillager":1,"minecraft:zombie":33,"minecraft:donkey":2,"minecraft:cow":65,"minecraft:horse":13,"minecraft:drowned":1,"minecraft:hoglin":2,"minecraft:squid":7,"minecraft:player":3,"minecraft:enderman":2},"minecraft:crafted":{"minecraft:brick":120,"minecraft:oak_planks":304,"minecraft:birch_wood":228,"minecraft:stone":56,"minecraft:diamond_shovel":1,"minecraft:bookshelf":16,"minecraft:bow":1,"minecraft:diamond_helmet":1,"minecraft:diamond_leggings":1,"minecraft:iron_boots":1,"minecraft:decorated_pot":15,"minecraft:chest":12,"minecraft:stone_bricks":31,"minecraft:oak_fence":18,"minecraft:oak_slab":60,"minecraft:crafting_table":3,"minecraft:diamond_axe":1,"minecraft:spruce_planks":676,"minecraft:iron_helmet":1,"minecraft:wooden_pickaxe":1,"minecraft:birch_planks":8,"minecraft:stone_brick_stairs":10,"minecraft:book":49,"minecraft:iron_chestplate":1,"minecraft:paper":192,"minecraft:charcoal":21,"minecraft:diamond_pickaxe":3,"minecraft:stick":96,"minecraft:iron_pickaxe":1,"minecraft:shears":1,"minecraft:oak_door":9,"minecraft:furnace":9,"minecraft:bone_meal":429,"minecraft:glass_pane":128,"minecraft:oak_trapdoor":24,"minecraft:flint_and_steel":1,"minecraft:terracotta":128,"minecraft:spruce_stairs":198,"minecraft:iron_axe":1,"minecraft:ladder":6,"minecraft:spruce_slab":156,"minecraft:iron_hoe":1,"minecraft:stone_pickaxe":1,"minecraft:diamond_boots":2,"minecraft:cobbled_deepslate_stairs":60,"minecraft:blackstone_stairs":60,"minecraft:cooked_beef":78,"minecraft:wheat":126,"minecraft:bone_block":21,"minecraft:diamond_sword":7,"minecraft:spruce_sign":3,"minecraft:enchanting_table":1,"minecraft:iron_sword":1,"minecraft:bucket":1,"minecraft:air":0,"minecraft:bread":76,"minecraft:wooden_axe":1,"minecraft:iron_leggings":1,"minecraft:stonecutter":1,"minecraft:anvil":1,"minecraft:torch":652,"minecraft:clay":128,"minecraft:diamond_chestplate":1},"minecraft:picked_up":{"minecraft:wheat":97,"minecraft:light_blue_concrete":1,"minecraft:diamond_sword":1,"minecraft:crimson_planks":1,"minecraft:amethyst_block":1,"minecraft:string":109,"minecraft:cobbled_deepslate":152,"minecraft:spruce_planks":27,"minecraft:white_tulip":6,"minecraft:rose_bush":150,"minecraft:calcite":504,"minecraft:iron_pickaxe":2,"minecraft:melon_slice":64,"minecraft:furnace":36,"minecraft:stick":286,"minecraft:oak_fence":7,"minecraft:torch":32,"minecraft:spruce_stairs":70,"minecraft:cherry_log":132,"minecraft:diorite":1,"minecraft:warped_planks":1,"minecraft:rotten_flesh":81,"minecraft:red_tulip":3,"minecraft:obsidian":33,"minecraft:blackstone_stairs":13,"minecraft:cobblestone":483,"minecraft:birch_log":676,"minecraft:cooked_beef":75,"minecraft:lilac":114,"minecraft:andesite":147,"minecraft:flint":4,"minecraft:lapis_lazuli":233,"minecraft:dirt":799,"minecraft:stripped_birch_log":9,"minecraft:bone":34,"minecraft:orange_tulip":99,"minecraft:stonecutter":1,"minecraft:bow":1,"minecraft:wheat_seeds":254,"minecraft:raw_gold":31,"minecraft:birch_wood":11,"minecraft:grindstone":1,"minecraft:oak_planks":1,"minecraft:sand":2,"minecraft:stripped_spruce_log":63,"minecraft:ink_sac":23,"minecraft:grass_block":2,"minecraft:lily_of_the_valley":60,"minecraft:iron_hoe":1,"minecraft:diamond":103,"minecraft:black_concrete":2,"minecraft:soul_lantern":2,"minecraft:granite":1,"minecraft:bread":14,"minecraft:deepslate_coal_ore":2,"minecraft:oak_sapling":344,"minecraft:netherrack":88,"minecraft:oak_leaves":132,"minecraft:charcoal":61,"minecraft:crafting_table":11,"minecraft:ladder":4,"minecraft:clay_ball":726,"minecraft:brick":76,"minecraft:cornflower":168,"minecraft:orange_concrete":1,"minecraft:flint_and_steel":2,"minecraft:blackstone":201,"minecraft:glass_pane":34,"minecraft:beef":91,"minecraft:poppy":2,"minecraft:spruce_slab":32,"minecraft:tinted_glass":1,"minecraft:sugar_cane":244,"minecraft:chest":8,"minecraft:birch_sapling":263,"minecraft:egg":30,"minecraft:raw_iron":110,"minecraft:stone":196,"minecraft:oak_door":1,"minecraft:redstone":81,"minecraft:arrow":45,"minecraft:decorated_pot":2,"minecraft:peony":138,"minecraft:hay_block":14,"minecraft:white_wool":15,"minecraft:bone_block":55,"minecraft:oxeye_daisy":1,"minecraft:stripped_oak_log":2,"minecraft:basalt":26,"minecraft:glow_ink_sac":3,"minecraft:leather":179,"minecraft:blackstone_slab":64,"minecraft:oak_log":731,"minecraft:cobbled_deepslate_stairs":12,"minecraft:gunpowder":6,"minecraft:deepslate_tile_slab":44,"minecraft:cooked_mutton":46,"minecraft:apple":34,"minecraft:stone_bricks":13,"minecraft:iron_ingot":98,"minecraft:soul_sand":1,"minecraft:purple_concrete":1,"minecraft:oak_slab":6,"minecraft:pumpkin":9,"minecraft:yellow_concrete":1,"minecraft:dandelion":1,"minecraft:lime_concrete":1,"minecraft:gravel":42,"minecraft:spruce_sapling":152,"minecraft:white_bed":4,"minecraft:spruce_log":765,"minecraft:spider_eye":4,"minecraft:coal_ore":64,"minecraft:cherry_sapling":59,"minecraft:red_concrete":1,"minecraft:coal":415,"minecraft:ender_pearl":3,"minecraft:sunflower":139},"minecraft:mined":{"minecraft:spruce_planks":3,"minecraft:blackstone_stairs":4,"minecraft:white_bed":3,"minecraft:oak_sapling":10,"minecraft:cobbled_deepslate_stairs":2,"minecraft:obsidian":26,"minecraft:granite":1,"minecraft:grass_block":672,"minecraft:oxeye_daisy":1,"minecraft:spawner":3,"minecraft:tall_seagrass":2,"minecraft:cobbled_deepslate":1,"minecraft:fire":2,"minecraft:pumpkin":9,"minecraft:red_tulip":1,"minecraft:spruce_slab":26,"minecraft:blackstone":198,"minecraft:deepslate_tile_slab":1,"minecraft:soul_lantern":2,"minecraft:powder_snow":14,"minecraft:clay":196,"minecraft:torch":17,"minecraft:calcite":195,"minecraft:melon":13,"minecraft:chest":8,"minecraft:cobblestone":35,"minecraft:birch_wood":11,"minecraft:grindstone":1,"minecraft:sugar_cane":47,"minecraft:oak_planks":1,"minecraft:wall_torch":3,"minecraft:amethyst_block":1,"minecraft:birch_sapling":28,"minecraft:seagrass":1,"minecraft:birch_log":14,"minecraft:lilac":41,"minecraft:orange_tulip":35,"minecraft:oak_log":195,"minecraft:dirt":81,"minecraft:sand":2,"minecraft:stonecutter":1,"minecraft:netherrack":92,"minecraft:oak_leaves":157,"minecraft:deepslate":131,"minecraft:oak_door":1,"minecraft:stripped_birch_log":9,"minecraft:ladder":3,"minecraft:decorated_pot":2,"minecraft:hay_block":14,"minecraft:spruce_sapling":25,"minecraft:furnace":36,"minecraft:andesite":148,"minecraft:stripped_spruce_log":48,"minecraft:black_concrete":4,"minecraft:peony":49,"minecraft:stripped_oak_log":2,"minecraft:white_tulip":2,"minecraft:stone":643,"minecraft:bone_block":22,"minecraft:podzol":54,"minecraft:oak_slab":6,"minecraft:glass_pane":2,"minecraft:soul_sand":1,"minecraft:lily_of_the_valley":25,"minecraft:basalt":26,"minecraft:oak_fence":7,"minecraft:crafting_table":11,"minecraft:cornflower":58,"minecraft:short_grass":455,"minecraft:rose_bush":57,"minecraft:tall_grass":44,"minecraft:diorite":1,"minecraft:spruce_stairs":60,"minecraft:spruce_log":10,"minecraft:coal_ore":5,"minecraft:sunflower":84,"minecraft:gravel":49,"minecraft:cobweb":30,"minecraft:stone_bricks":8,"minecraft:fern":1},"minecraft:killed_by":{"minecraft:enderman":1,"minecraft:skeleton":3},"minecraft:used":{"minecraft:moss_block":34,"minecraft:spruce_slab":175,"minecraft:suspicious_sand":13,"minecraft:ladder":8,"minecraft:chest":20,"minecraft:decorated_pot":17,"minecraft:stone":27,"minecraft:green_terracotta":13,"minecraft:soul_sand":1,"minecraft:deepslate_tile_slab":36,"minecraft:stripped_spruce_log":24,"minecraft:obsidian":11,"minecraft:packed_ice":13,"minecraft:stripped_dark_oak_wood":12,"minecraft:coal_ore":28,"minecraft:grass_block":20,"minecraft:birch_sapling":23,"minecraft:stone_brick_stairs":12,"minecraft:stone_bricks":41,"minecraft:bedrock":98,"minecraft:magma_block":14,"minecraft:bow":4,"minecraft:furnace":44,"minecraft:oak_sapling":2,"minecraft:egg":13,"minecraft:green_stained_glass_pane":39,"minecraft:short_grass":1,"minecraft:diorite":1,"minecraft:end_stone_bricks":18,"minecraft:diamond_boots":2,"minecraft:stripped_birch_log":9,"minecraft:stone_pickaxe":83,"minecraft:blackstone_stairs":126,"minecraft:oak_planks":25,"minecraft:birch_wood":239,"minecraft:blackstone":5,"minecraft:ender_pearl":1,"minecraft:wooden_pickaxe":9,"minecraft:diamond_axe":1258,"minecraft:sugar_cane":1,"minecraft:oak_leaves":118,"minecraft:light_blue_concrete":1,"minecraft:lime_stained_glass_pane":59,"minecraft:blue_ice":22,"minecraft:end_stone":54,"minecraft:shears":152,"minecraft:cobbled_deepslate_stairs":84,"minecraft:green_concrete":19,"minecraft:black_concrete":82,"minecraft:barrier":76,"minecraft:bread":79,"minecraft:deepslate":4,"minecraft:gravel":30,"minecraft:soul_lantern":4,"minecraft:blackstone_slab":31,"minecraft:stripped_warped_hyphae":102,"minecraft:nether_wart_block":9,"minecraft:diamond_sword":416,"minecraft:grindstone":2,"minecraft:birch_log":120,"minecraft:andesite":188,"minecraft:green_concrete_powder":19,"minecraft:deepslate_coal_ore":1,"minecraft:air":122,"minecraft:bone_meal":101,"minecraft:oak_trapdoor":18,"minecraft:oak_fence":26,"minecraft:enchanting_table":1,"minecraft:flint_and_steel":1,"minecraft:stone_shovel":20,"minecraft:stripped_warped_stem":2,"minecraft:spruce_planks":144,"minecraft:tinted_glass":112,"minecraft:stripped_birch_wood":41,"minecraft:netherrack":124,"minecraft:oak_door":9,"minecraft:torch":681,"minecraft:dirt":385,"minecraft:anvil":2,"minecraft:prismarine_bricks":6,"minecraft:spruce_stairs":260,"minecraft:stone_stairs":1,"minecraft:diamond_helmet":4,"minecraft:granite":1,"minecraft:andesite_wall":141,"minecraft:iron_hoe":96,"minecraft:stone_brick_slab":8,"minecraft:wooden_axe":27,"minecraft:dark_oak_planks":37,"minecraft:bookshelf":16,"minecraft:smooth_sandstone":12,"minecraft:crimson_planks":37,"minecraft:diamond_chestplate":2,"minecraft:basalt":26,"minecraft:beef":12,"minecraft:lime_stained_glass":33,"minecraft:deepslate_tile_stairs":70,"minecraft:cooked_beef":173,"minecraft:cobbled_deepslate":24,"minecraft:calcite":32,"minecraft:wheat_seeds":70,"minecraft:water_bucket":54,"minecraft:amethyst_block":1,"minecraft:cobblestone_stairs":3,"minecraft:birch_planks":36,"minecraft:red_nether_bricks":8,"minecraft:andesite_slab":25,"minecraft:spruce_sign":2,"minecraft:stonecutter":2,"minecraft:cobblestone_slab":34,"minecraft:waxed_exposed_copper":1,"minecraft:lime_terracotta":78,"minecraft:oak_slab":64,"minecraft:crafting_table":14,"minecraft:white_bed":2,"minecraft:campfire":33,"minecraft:spruce_log":410,"minecraft:warped_planks":38,"minecraft:oak_log":389,"minecraft:light":23,"minecraft:diamond_pickaxe":1497,"minecraft:apple":2,"minecraft:diamond_shovel":1299,"minecraft:sunflower":6,"minecraft:iron_pickaxe":2,"minecraft:stone_slab":21,"minecraft:spruce_sapling":21,"minecraft:cobblestone":258,"minecraft:stripped_crimson_hyphae":40,"minecraft:andesite_stairs":3,"minecraft:bucket":54,"minecraft:glass_pane":106,"minecraft:smooth_stone":5,"minecraft:diamond_leggings":2,"minecraft:green_stained_glass":50}},"DataVersion":4189} \ No newline at end of file diff --git a/stats/c6a465aa-1a67-4cc5-b25b-c0c3239a340f.json b/stats/c6a465aa-1a67-4cc5-b25b-c0c3239a340f.json new file mode 100755 index 0000000..8f73f8c --- /dev/null +++ b/stats/c6a465aa-1a67-4cc5-b25b-c0c3239a340f.json @@ -0,0 +1 @@ +{"stats":{"minecraft:dropped":{"minecraft:repeating_command_block":6,"minecraft:birch_planks":2,"minecraft:ominous_bottle":2,"minecraft:lapis_lazuli":17,"minecraft:cooked_beef":3,"minecraft:oak_log":2,"minecraft:baked_potato":65,"minecraft:ender_pearl":4,"minecraft:crafting_table":2,"minecraft:cooked_porkchop":9,"minecraft:stripped_birch_wood":2,"minecraft:flint":20,"minecraft:stripped_warped_hyphae":2,"minecraft:dirt":134,"minecraft:yellow_dye":32,"minecraft:stripped_dark_oak_wood":4,"minecraft:sunflower":19,"minecraft:black_concrete":3,"minecraft:dark_oak_planks":1,"minecraft:white_wool":3,"minecraft:oak_door":1,"minecraft:gravel":122,"minecraft:stone_axe":4,"minecraft:lever":1,"minecraft:cooked_chicken":10,"minecraft:cobbled_deepslate":53,"minecraft:tinted_glass":3,"minecraft:pink_dye":19,"minecraft:birch_sapling":10,"minecraft:cherry_sapling":33,"minecraft:rotten_flesh":5,"minecraft:oak_planks":2,"minecraft:yellow_stained_glass":1,"minecraft:light_gray_carpet":1,"minecraft:cooked_mutton":1,"minecraft:glass":1,"minecraft:chain_command_block":1,"minecraft:netherrack":1,"minecraft:crimson_planks":2,"minecraft:wheat_seeds":120,"minecraft:yellow_concrete":2,"minecraft:poisonous_potato":2,"minecraft:barrier":1,"minecraft:cobblestone":92,"minecraft:purple_concrete":1,"minecraft:observer":1,"minecraft:apple":1,"minecraft:granite":51,"minecraft:command_block":1,"minecraft:red_stained_glass":1,"minecraft:coal":13,"minecraft:diorite":81,"minecraft:light_blue_stained_glass":1,"minecraft:wooden_hoe":1,"minecraft:torch":64,"minecraft:wooden_axe":5,"minecraft:white_concrete":1,"minecraft:waxed_copper_bulb":1,"minecraft:cooked_salmon":2,"minecraft:pumpkin":13,"minecraft:iron_shovel":1,"minecraft:string":2,"minecraft:redstone":2,"minecraft:red_concrete":2,"minecraft:furnace":1,"minecraft:lime_concrete":1,"minecraft:sticky_piston":1,"minecraft:stone_shovel":1,"minecraft:orange_concrete":2,"minecraft:iron_hoe":1,"minecraft:slime_block":1,"minecraft:light_blue_concrete":1,"minecraft:light":1,"minecraft:oak_button":2,"minecraft:bundle":1,"minecraft:andesite":103,"minecraft:oak_sapling":248,"minecraft:redstone_torch":2,"minecraft:stone_pressure_plate":3,"minecraft:spider_eye":3,"minecraft:light_gray_dye":32,"minecraft:sandstone":1,"minecraft:stripped_crimson_hyphae":1,"minecraft:bow":4,"minecraft:stone_pickaxe":1,"minecraft:wooden_pickaxe":2,"minecraft:brick":4},"minecraft:killed":{"minecraft:spider":22,"minecraft:skeleton":41,"minecraft:chicken":41,"minecraft:pig":32,"minecraft:zombie_villager":1,"minecraft:salmon":2,"minecraft:iron_golem":1,"minecraft:creeper":27,"minecraft:sheep":45,"minecraft:trader_llama":4,"minecraft:pillager":4,"minecraft:zombie":95,"minecraft:cow":22,"minecraft:phantom":1,"minecraft:horse":14,"minecraft:drowned":1,"minecraft:rabbit":1,"minecraft:wandering_trader":2,"minecraft:player":1,"minecraft:enderman":6},"minecraft:custom":{"minecraft:interact_with_crafting_table":136,"minecraft:leave_game":28,"minecraft:time_since_death":188464,"minecraft:sprint_one_cm":1684483,"minecraft:drop":174,"minecraft:talked_to_villager":10,"minecraft:play_time":1922419,"minecraft:deaths":7,"minecraft:jump":17568,"minecraft:walk_on_water_one_cm":76769,"minecraft:interact_with_furnace":248,"minecraft:damage_dealt":54852,"minecraft:player_kills":1,"minecraft:crouch_one_cm":182996,"minecraft:inspect_dispenser":1,"minecraft:horse_one_cm":35,"minecraft:mob_kills":369,"minecraft:climb_one_cm":3834,"minecraft:walk_one_cm":3723677,"minecraft:sneak_time":80154,"minecraft:walk_under_water_one_cm":47754,"minecraft:boat_one_cm":71236,"minecraft:total_world_time":1922419,"minecraft:time_since_rest":188516,"minecraft:damage_taken":7031,"minecraft:swim_one_cm":163454,"minecraft:fly_one_cm":8645002,"minecraft:open_chest":785,"minecraft:fall_one_cm":282796},"minecraft:crafted":{"minecraft:light_gray_concrete_powder":336,"minecraft:oak_planks":2338,"minecraft:cobblestone_slab":1082,"minecraft:oak_pressure_plate":3,"minecraft:cooked_chicken":15,"minecraft:cobblestone_stairs":588,"minecraft:stone":4,"minecraft:diamond_shovel":1,"minecraft:cooked_mutton":15,"minecraft:glass":214,"minecraft:bow":1,"minecraft:iron_boots":1,"minecraft:stone_pressure_plate":2,"minecraft:chest":35,"minecraft:birch_door":3,"minecraft:magenta_dye":59,"minecraft:oak_fence":348,"minecraft:cooked_rabbit":1,"minecraft:oak_slab":162,"minecraft:arrow":36,"minecraft:cooked_porkchop":34,"minecraft:diamond_axe":1,"minecraft:crafting_table":5,"minecraft:glow_item_frame":1,"minecraft:iron_helmet":2,"minecraft:baked_potato":150,"minecraft:wooden_pickaxe":1,"minecraft:birch_planks":604,"minecraft:yellow_dye":126,"minecraft:wooden_hoe":1,"minecraft:book":1,"minecraft:iron_chestplate":1,"minecraft:charcoal":702,"minecraft:diamond_pickaxe":1,"minecraft:stick":8,"minecraft:iron_ingot":320,"minecraft:iron_pickaxe":2,"minecraft:gold_ingot":37,"minecraft:light_gray_dye":114,"minecraft:composter":1,"minecraft:oak_door":3,"minecraft:stone_shovel":1,"minecraft:diamond_hoe":1,"minecraft:furnace":5,"minecraft:bone_meal":150,"minecraft:pink_dye":147,"minecraft:oak_trapdoor":30,"minecraft:iron_axe":2,"minecraft:iron_hoe":2,"minecraft:stone_pickaxe":1,"minecraft:bundle":2,"minecraft:wheat":27,"minecraft:cooked_beef":16,"minecraft:red_dye":107,"minecraft:enchanting_table":1,"minecraft:bucket":1,"minecraft:stone_axe":1,"minecraft:orange_dye":35,"minecraft:bread":62,"minecraft:air":0,"minecraft:blue_dye":5,"minecraft:oak_boat":1,"minecraft:white_dye":44,"minecraft:wooden_axe":1,"minecraft:oak_stairs":60,"minecraft:iron_shovel":2,"minecraft:iron_leggings":1,"minecraft:torch":320},"minecraft:picked_up":{"minecraft:wooden_axe":3,"minecraft:iron_chestplate":1,"minecraft:birch_door":3,"minecraft:wheat":215,"minecraft:lead":5,"minecraft:oak_stairs":4,"minecraft:crimson_planks":1,"minecraft:string":21,"minecraft:raw_copper":224,"minecraft:cooked_salmon":2,"minecraft:iron_leggings":1,"minecraft:cobbled_deepslate":71,"minecraft:red_dye":107,"minecraft:white_tulip":42,"minecraft:redstone_torch":1,"minecraft:rose_bush":12,"minecraft:cobblestone_slab":64,"minecraft:iron_boots":1,"minecraft:furnace":6,"minecraft:stick":970,"minecraft:oak_fence":21,"minecraft:torch":207,"minecraft:porkchop":34,"minecraft:cherry_log":39,"minecraft:diorite":84,"minecraft:rotten_flesh":99,"minecraft:blue_dye":5,"minecraft:red_tulip":92,"minecraft:stripped_birch_wood":1,"minecraft:obsidian":15,"minecraft:cobblestone":2231,"minecraft:enchanting_table":1,"minecraft:birch_log":636,"minecraft:magma_block":14,"minecraft:cooked_beef":21,"minecraft:feather":44,"minecraft:lilac":27,"minecraft:andesite":101,"minecraft:brown_wool":1,"minecraft:potato":259,"minecraft:magenta_dye":59,"minecraft:flint":51,"minecraft:tuff":24,"minecraft:light_gray_dye":110,"minecraft:lapis_lazuli":333,"minecraft:dirt":1671,"minecraft:light_gray_concrete_powder":91,"minecraft:glass":19,"minecraft:bone":57,"minecraft:orange_tulip":42,"minecraft:bow":6,"minecraft:wheat_seeds":534,"minecraft:raw_gold":37,"minecraft:rabbit":1,"minecraft:oak_planks":228,"minecraft:cooked_porkchop":36,"minecraft:poisonous_potato":2,"minecraft:sand":1245,"minecraft:grass_block":3,"minecraft:lily_of_the_valley":44,"minecraft:bundle":1,"minecraft:iron_hoe":1,"minecraft:diamond":46,"minecraft:lever":1,"minecraft:writable_book":4,"minecraft:granite":51,"minecraft:bone_meal":77,"minecraft:oak_sapling":969,"minecraft:dark_oak_fence":23,"minecraft:charcoal":112,"minecraft:crafting_table":15,"minecraft:stripped_warped_hyphae":1,"minecraft:allium":5,"minecraft:azure_bluet":65,"minecraft:ominous_bottle":4,"minecraft:chicken":15,"minecraft:wooden_pickaxe":2,"minecraft:brick":4,"minecraft:cornflower":5,"minecraft:oak_trapdoor":5,"minecraft:orange_concrete":1,"minecraft:cartography_table":1,"minecraft:beef":16,"minecraft:oak_boat":3,"minecraft:light_gray_wool":5,"minecraft:tinted_glass":1,"minecraft:sugar_cane":325,"minecraft:chest":16,"minecraft:birch_sapling":160,"minecraft:egg":53,"minecraft:orange_dye":34,"minecraft:raw_iron":315,"minecraft:sandstone":1,"minecraft:oak_door":2,"minecraft:glow_item_frame":2,"minecraft:white_dye":44,"minecraft:stone_pressure_plate":4,"minecraft:arrow":36,"minecraft:peony":42,"minecraft:hay_block":3,"minecraft:stripped_dark_oak_wood":1,"minecraft:pink_tulip":66,"minecraft:mutton":16,"minecraft:white_wool":42,"minecraft:oxeye_daisy":8,"minecraft:leather":46,"minecraft:yellow_dye":78,"minecraft:red_mushroom":4,"minecraft:birch_planks":456,"minecraft:oak_log":2096,"minecraft:gunpowder":25,"minecraft:cobblestone_stairs":343,"minecraft:white_banner":2,"minecraft:cooked_mutton":52,"minecraft:apple":112,"minecraft:iron_ingot":119,"minecraft:cooked_chicken":27,"minecraft:oak_slab":13,"minecraft:pumpkin":13,"minecraft:yellow_concrete":1,"minecraft:gravel":290,"minecraft:spider_eye":8,"minecraft:stone_axe":3,"minecraft:cherry_sapling":66,"minecraft:gray_wool":1,"minecraft:baked_potato":1,"minecraft:black_wool":3,"minecraft:red_concrete":1,"minecraft:coal":358,"minecraft:pink_dye":166,"minecraft:ender_pearl":8,"minecraft:sunflower":82},"minecraft:mined":{"minecraft:stone_pressure_plate":3,"minecraft:oak_sapling":35,"minecraft:cobblestone_stairs":344,"minecraft:obsidian":15,"minecraft:granite":49,"minecraft:grass_block":1413,"minecraft:oxeye_daisy":10,"minecraft:tall_seagrass":2,"minecraft:magma_block":14,"minecraft:pumpkin":13,"minecraft:azure_bluet":64,"minecraft:enchanting_table":1,"minecraft:red_tulip":95,"minecraft:dirt_path":12,"minecraft:oak_stairs":4,"minecraft:pink_tulip":69,"minecraft:torch":19,"minecraft:chest":16,"minecraft:glass":11,"minecraft:cobblestone":340,"minecraft:sugar_cane":140,"minecraft:oak_planks":171,"minecraft:wall_torch":9,"minecraft:birch_sapling":17,"minecraft:seagrass":3,"minecraft:birch_log":4,"minecraft:wheat":20,"minecraft:lilac":27,"minecraft:birch_door":1,"minecraft:light_gray_wool":2,"minecraft:orange_tulip":49,"minecraft:oak_log":31,"minecraft:sand":1033,"minecraft:dirt":173,"minecraft:oak_leaves":25,"minecraft:deepslate":111,"minecraft:tuff":39,"minecraft:cherry_sapling":1,"minecraft:dark_oak_fence":19,"minecraft:allium":5,"minecraft:decorated_pot":1,"minecraft:cartography_table":1,"minecraft:sandstone":2,"minecraft:hay_block":3,"minecraft:oak_trapdoor":5,"minecraft:furnace":6,"minecraft:andesite":102,"minecraft:peony":43,"minecraft:cobblestone_slab":40,"minecraft:white_tulip":44,"minecraft:stone":1983,"minecraft:white_wool":5,"minecraft:oak_slab":10,"minecraft:lily_of_the_valley":43,"minecraft:dandelion":1,"minecraft:oak_fence":21,"minecraft:crafting_table":16,"minecraft:cornflower":5,"minecraft:light_gray_concrete_powder":91,"minecraft:short_grass":404,"minecraft:structure_void":1,"minecraft:rose_bush":12,"minecraft:tall_grass":29,"minecraft:diorite":87,"minecraft:birch_planks":455,"minecraft:birch_leaves":3,"minecraft:sunflower":65,"minecraft:gravel":323},"minecraft:killed_by":{"minecraft:player":3,"minecraft:enderman":1},"minecraft:used":{"minecraft:moss_block":72,"minecraft:cherry_sapling":33,"minecraft:iron_shovel":1891,"minecraft:dispenser":3,"minecraft:oak_sign":4,"minecraft:chest":47,"minecraft:stone":2,"minecraft:rotten_flesh":80,"minecraft:debug_stick":16,"minecraft:pale_oak_sign":28,"minecraft:mutton":2,"minecraft:tuff":22,"minecraft:azure_bluet":1,"minecraft:obsidian":9,"minecraft:glass":274,"minecraft:honey_block":8,"minecraft:stripped_dark_oak_wood":112,"minecraft:grass_block":36,"minecraft:birch_sapling":150,"minecraft:iron_helmet":1,"minecraft:stone_brick_stairs":1,"minecraft:bedrock":19,"minecraft:repeater":16,"minecraft:magma_block":13,"minecraft:bow":163,"minecraft:furnace":10,"minecraft:oak_sapling":722,"minecraft:yellow_glazed_terracotta":7,"minecraft:pale_oak_hanging_sign":7,"minecraft:egg":4,"minecraft:potato":26,"minecraft:stripped_pale_oak_wood":31,"minecraft:dark_oak_stairs":2,"minecraft:diorite":3,"minecraft:end_stone_bricks":12,"minecraft:red_stained_glass":24,"minecraft:stone_pickaxe":1000,"minecraft:oak_planks":1279,"minecraft:orange_tulip":7,"minecraft:wooden_pickaxe":12,"minecraft:redstone_block":1,"minecraft:structure_void":5,"minecraft:composter":1,"minecraft:diamond_axe":103,"minecraft:sugar_cane":271,"minecraft:white_wool":5,"minecraft:sand":648,"minecraft:light_blue_concrete":78,"minecraft:blue_ice":35,"minecraft:yellow_concrete":69,"minecraft:cyan_dye":2,"minecraft:end_stone":4,"minecraft:redstone_torch":24,"minecraft:sticky_piston":38,"minecraft:lever":10,"minecraft:black_concrete":513,"minecraft:barrier":77,"minecraft:string":5,"minecraft:bread":48,"minecraft:oak_pressure_plate":3,"minecraft:stripped_warped_hyphae":108,"minecraft:nether_wart_block":10,"minecraft:dark_oak_fence":1,"minecraft:poisonous_potato":18,"minecraft:andesite":521,"minecraft:oak_boat":3,"minecraft:white_concrete":287,"minecraft:air":17,"minecraft:oak_hanging_sign":11,"minecraft:coarse_dirt":29,"minecraft:waxed_copper_bulb":1,"minecraft:bone_meal":211,"minecraft:oak_fence":357,"minecraft:oak_trapdoor":22,"minecraft:enchanting_table":2,"minecraft:orange_concrete":32,"minecraft:red_concrete":86,"minecraft:stone_shovel":1595,"minecraft:redstone":94,"minecraft:light_gray_carpet":4,"minecraft:spruce_planks":12,"minecraft:tinted_glass":240,"minecraft:stripped_birch_wood":112,"minecraft:cooked_chicken":55,"minecraft:netherrack":25,"minecraft:oak_door":4,"minecraft:torch":216,"minecraft:dirt":1011,"minecraft:wheat":2,"minecraft:light_blue_dye":1,"minecraft:prismarine_bricks":9,"minecraft:stone_stairs":2,"minecraft:light_blue_stained_glass":25,"minecraft:birch_door":4,"minecraft:wooden_axe":3,"minecraft:dark_oak_planks":9,"minecraft:red_tulip":9,"minecraft:yellow_stained_glass":24,"minecraft:iron_axe":941,"minecraft:oak_stairs":22,"minecraft:slime_block":29,"minecraft:smooth_sandstone":28,"minecraft:lime_dye":2,"minecraft:crimson_planks":8,"minecraft:light_gray_wool":2,"minecraft:purple_concrete":36,"minecraft:lime_concrete":72,"minecraft:warped_stairs":2,"minecraft:lime_stained_glass":39,"minecraft:black_dye":1,"minecraft:stone_pressure_plate":3,"minecraft:cooked_beef":26,"minecraft:red_dye":2,"minecraft:cobbled_deepslate":11,"minecraft:observer":33,"minecraft:wheat_seeds":412,"minecraft:cooked_mutton":48,"minecraft:water_bucket":7,"minecraft:pink_tulip":3,"minecraft:cobblestone_stairs":907,"minecraft:birch_planks":692,"minecraft:baked_potato":170,"minecraft:red_nether_bricks":8,"minecraft:cartography_table":1,"minecraft:copper_block":5,"minecraft:andesite_slab":8,"minecraft:cherry_planks":91,"minecraft:white_dye":9,"minecraft:glow_ink_sac":35,"minecraft:cobblestone_slab":919,"minecraft:waxed_copper_block":22,"minecraft:waxed_exposed_copper":22,"minecraft:glow_item_frame":2,"minecraft:comparator":1,"minecraft:oak_slab":124,"minecraft:crafting_table":18,"minecraft:red_mushroom":4,"minecraft:light_gray_concrete_powder":267,"minecraft:warped_planks":8,"minecraft:oak_log":361,"minecraft:apple":22,"minecraft:wooden_hoe":110,"minecraft:yellow_dye":2,"minecraft:light":580,"minecraft:diamond_pickaxe":22,"minecraft:command_block":6,"minecraft:oak_button":9,"minecraft:iron_pickaxe":2147,"minecraft:netherite_axe":2,"minecraft:stone_slab":2,"minecraft:stone_axe":1056,"minecraft:cobblestone":853,"minecraft:stripped_crimson_hyphae":102,"minecraft:crimson_stairs":2,"minecraft:cooked_porkchop":107,"minecraft:chain_command_block":26,"minecraft:andesite_stairs":62,"minecraft:bucket":6,"minecraft:repeating_command_block":78,"minecraft:gray_wool":2,"minecraft:smooth_stone":1,"minecraft:birch_stairs":2}},"DataVersion":4189} \ No newline at end of file