From 2a22a8266de734ed42fab2e7b18e618ce704fca9 Mon Sep 17 00:00:00 2001 From: ribagi Date: Wed, 23 Jul 2014 16:52:53 -0700 Subject: [PATCH 01/52] Super Awesome Nether --- config.yml | 1176 +++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 969 insertions(+), 207 deletions(-) diff --git a/config.yml b/config.yml index 8bb38e16..9d3e5f48 100644 --- a/config.yml +++ b/config.yml @@ -83,11 +83,26 @@ production_general: update_cycle: 20 repair_period: 28 disrepair_period: 14 +nether_general: + disable_portals: true + nether_scale: 8 + world_name: world + nether_name: world_nether + teleport_platform_material_nether_factory: OBSIDIAN + marker_material_nether_factory: COAL_BLOCK + marker_max_distance: 64 + allow_reinforcement_creation_above_teleport_platform: false + allow_block_placement_above_teleport_platform: true + teleport_platform_invunerable: false + regenerate_teleport_block_on_teleport: false + remove_blocks_above_teleport_platform_on_teleport: true + printing_presses: fuel: Charcoal: material: 'COAL' durability: 1 + fuel_time: 5 costs: construction: "Iron block": @@ -108,10 +123,11 @@ printing_presses: plates: "Iron ingot": material: 'IRON_INGOT' - amount: 4 + amount: 1 "Gold nugget": material: "GOLD_NUGGET" amount: 1 + set_page_time: 5 repair: "Iron block": material: 'IRON_BLOCK' @@ -130,10 +146,11 @@ printing_presses: durability: 0 amount: 1 pages_per_lot: 32 + page_lead: 6 pamphlet_lot: Paper: material: 'PAPER' - amount: 8 + amount: 4 Ink: material: 'INK_SACK' durability: 0 @@ -147,7 +164,7 @@ printing_presses: material: 'INK_SACK' durability: 2 amount: 6 - security_notes_per_lot: 64 + security_notes_per_lot: 128 crafting: disable: @@ -212,8 +229,8 @@ production_factories: amount: 192 recipes: - Baked_Potato - - Cookie - - Bread + - Bake_Cookie + - Bake_Bread - Bake_Cake - Bake_Pumpkin_Pie repair_multiple: 26 @@ -530,6 +547,7 @@ production_factories: - Smelt_Jungle_Wood - Burn_Acacia_Wood - Burn_Dark_Oak_Wood + - Smelt_Coal repair_multiple: 60 repair_inputs: Charcoal: @@ -715,9 +733,9 @@ production_factories: recipes: - Smelt_Glass - Smelt_Sandstone - - Smelt_Glass_panes + - Smelt_Glass_Panes - Smelt_Bottles - - Smelt_Red_sand + - Smelt_Red_Sand - Smelt_Glass_From_Sandstone repair_multiple: 26 repair_inputs: @@ -1064,7 +1082,7 @@ production_factories: material: WOOL durability: 7 Grill: - name: Bakery + name: Grill fuel: Charcoal: material: COAL @@ -1092,6 +1110,7 @@ production_factories: - Grilled_Pork - Cooked_Beef - Cook_Salmon + - Bastion_Rations repair_multiple: 2 repair_inputs: Cooked Chicken: @@ -1155,6 +1174,7 @@ production_factories: - Iron_XP_Bottle_1 - Iron_XP_Bottle_2 - Iron_XP_Bottle_3 + - Bastion_Smaragdus_Polisher repair_multiple: 20 repair_inputs: Iron Ingot: @@ -1579,7 +1599,7 @@ production_factories: - Produce_Powered_Rail - Produce_Detector_Rail - Produce_Activator_Rail - - Procuce_Minecarts + - Produce_Minecarts repair_multiple: 4 repair_inputs: Iron Ingot: @@ -1609,7 +1629,7 @@ production_factories: Golden Apple: material: GOLDEN_APPLE amount: 64 - Slime_ball: + Slime ball: material: SLIME_BALL amount: 16 recipes: @@ -1682,7 +1702,7 @@ production_factories: Glowstone: material: GLOWSTONE amount: 256 - Iron_Ingot: + Iron Ingot: material: IRON_INGOT amount: 576 Slime ball: @@ -1707,7 +1727,7 @@ production_factories: Glowstone: material: GLOWSTONE amount: 2 - Iron_Ingot: + Iron Ingot: material: IRON_INGOT amount: 6 Slime ball: @@ -1735,8 +1755,9 @@ production_factories: - Craft_Signs - Craft_Ladders - Craft_Trap_Doors - - Craft_Item_frames + - Craft_Item_Frames - Craft_Bookshelfs + - Bastion_Framing repair_multiple: 10 repair_inputs: Paper: @@ -1769,6 +1790,7 @@ production_factories: - Smelt_Lapis_Lazuli_Ore - Smelt_Redstone_Ore - Smelt_Netherquartz_Ore + - Bastion_Walls repair_multiple: 26 repair_inputs: Lapis Lazuli: @@ -1805,6 +1827,7 @@ production_factories: - Smelt_Iron_Ore - Smelt_Gold_Ore - Smelt_Diamond_Ore + - Bastion_Base repair_multiple: 10 repair_inputs: Coal: @@ -1836,6 +1859,7 @@ production_factories: - Smelt_Cracked_Stone_Brick - Smelt_Mossy_Stone_Brick - Smelt_Chiseled_Stone_Brick + - Bastion_Flooring repair_multiple: 26 repair_inputs: Stone Brick: @@ -1889,6 +1913,68 @@ production_factories: Grass: material: GRASS amount: 5 + Mad_Scientist_Lab: + name: Mad Scientist Lab + fuel: + Emeralds: + material: EMERALD + inputs: + Glass bottles: + material: GLASS_BOTTLE + amount: 512 + Pig eggs: + material: MONSTER_EGG + durability: 90 + amount: 16 + Villager eggs: + material: MONSTER_EGG + durability: 120 + amount: 16 + Squid eggs: + material: MONSTER_EGG + durability: 94 + amount: 16 + Horse eggs: + material: MONSTER_EGG + durability: 100 + amount: 16 + Silk touch book: + material: ENCHANTED_BOOK + amount: 1 + stored_enchantments: + Silk Touch 1: + type: SILK_TOUCH + level: 1 + recipes: + - Mutate_Pigmen + - Infect_Zombies + - Mutate_Skeletons + - Mutate_Creepers + - Mutate_Witches + - Mutate_Spiders + - Mutate_Cave_Spiders + - Mutate_Ghasts + repair_multiple: 2 + repair_inputs: + Glass_bottles: + material: GLASS_BOTTLE + amount: 32 + Pig eggs: + material: MONSTER_EGG + durability: 90 + amount: 1 + Villager eggs: + material: MONSTER_EGG + durability: 120 + amount: 1 + Squid eggs: + material: MONSTER_EGG + durability: 94 + amount: 1 + Horse eggs: + material: MONSTER_EGG + durability: 100 + amount: 1 Explosives_Factory: name: Explosives Factory fuel: @@ -1908,6 +1994,8 @@ production_factories: recipes: - Produce_TNT - Produce_Fire_Charges + - Produce_Eyes_of_Ender + - Bastion_Silicon_Tetranitratobihydrotrioxycarbon repair_multiple: 10 repair_inputs: Sulphur: @@ -1934,13 +2022,14 @@ production_factories: - Forge_Buckets - Forge_Iron_Doors - Forge_Flint_And_Steel + - Bastion_Gearbox repair_multiple: 10 repair_inputs: - IRON_INGOT: - material: Iron Ingot + Iron Ingot: + material: IRON_INGOT amount: 12 - Stained_Glass_Processing: - name: Stained Glass Processing + Stained_Clay_Processing: + name: Stained Clay Processing fuel: Charcoal: material: COAL @@ -2009,45 +2098,26 @@ production_factories: material: INK_SACK amount: 20 durability: 10 - Stained Glass: - material: STAINED_GLASS - amount: 20 - durability: 7 - Stained Glass Pane: - material: STAINED_GLASS_PANE + Hardened Clay: + material: HARD_CLAY amount: 20 - durability: 7 recipes: - - Dye_Stained_Glass_Blue - - Dye_Stained_Glass_Brown - - Dye_Stained_Glass_Purple - - Dye_Stained_Glass_Yellow - - Dye_Stained_Glass_Black - - Dye_Stained_Glass_Magenta - - Dye_Stained_Glass_Pink - - Dye_Stained_Glass_Cyan - - Dye_Stained_Glass_Orange - - Dye_Stained_Glass_Green - - Dye_Stained_Glass_White - - Dye_Stained_Glass_Light_Gray - - Dye_Stained_Glass_Light_Blue - - Dye_Stained_Glass_Red - - Dye_Stained_Glass_Lime - - Dye_Stained_Glass_Pane_Blue - - Dye_Stained_Glass_Pane_Brown - - Dye_Stained_Glass_Pane_Purple - - Dye_Stained_Glass_Pane_Yellow - - Dye_Stained_Glass_Pane_Black - - Dye_Stained_Glass_Pane_Magenta - - Dye_Stained_Glass_Pane_Pink - - Dye_Stained_Glass_Pane_Cyan - - Dye_Stained_Glass_Pane_Orange - - Dye_Stained_Glass_Pane_Green - - Dye_Stained_Glass_Pane_White - - Dye_Stained_Glass_Pane_Light_Gray - - Dye_Stained_Glass_Pane_Light_Blue - - Dye_Stained_Glass_Pane_Red - - Dye_Stained_Glass_Pane_Lime + - Dye_Blue_Stained_Clay + - Dye_Brown_Stained_Clay + - Dye_Purple_Stained_Clay + - Dye_Yellow_Stained_Clay + - Dye_Black_Stained_Clay + - Dye_Magenta_Stained_Clay + - Dye_Pink_Stained_Clay + - Dye_Cyan_Stained_Clay + - Dye_Orange_Stained_Clay + - Dye_Gray_Stained_Clay + - Dye_Green_Stained_Clay + - Dye_White_Stained_Clay + - Dye_Light_Gray_Stained_Clay + - Dye_Light_Blue_Stained_Clay + - Dye_Red_Stained_Clay + - Dye_Lime_Stained_Clay repair_multiple: 2 repair_inputs: Lapis Lazuli: @@ -2097,14 +2167,10 @@ production_factories: Lime Dye: material: INK_SACK durability: 10 - Stained Glass: - material: STAINED_GLASS - durability: 7 - Stained Glass Pane: - material: STAINED_GLASS_PANE - durability: 7 - Hard_Clay_Processing: - name: Hardened Clay Processing + Hardened Clay: + material: HARD_CLAY + Stained_Glass_Processing: + name: Stained Glass Processing fuel: Charcoal: material: COAL @@ -2173,26 +2239,48 @@ production_factories: material: INK_SACK amount: 20 durability: 10 - Hardened Clay: - material: HARD_CLAY + Stained Glass: + material: STAINED_GLASS + amount: 20 + durability: 7 + Stained Glass Pane: + material: STAINED_GLASS_PANE amount: 20 durability: 7 recipes: - - Dye_Hard_Clay_Blue - - Dye_Hard_Clay_Brown - - Dye_Hard_Clay_Purple - - Dye_Hard_Clay_Yellow - - Dye_Hard_Clay_Black - - Dye_Hard_Clay_Magenta - - Dye_Hard_Clay_Pink - - Dye_Hard_Clay_Cyan - - Dye_Hard_Clay_Orange - - Dye_Hard_Clay_Green - - Dye_Hard_Clay_White - - Dye_Hard_Clay_Light_Gray - - Dye_Hard_Clay_Light_Blue - - Dye_Hard_Clay_Red - - Dye_Hard_Clay_Lime + - Dye_Blue_Stained_Glass + - Dye_Brown_Stained_Glass + - Dye_Purple_Stained_Glass + - Dye_Yellow_Stained_Glass + - Dye_Black_Stained_Glass + - Dye_Magenta_Stained_Glass + - Dye_Pink_Stained_Glass + - Dye_Cyan_Stained_Glass + - Dye_Orange_Stained_Glass + - Dye_Gray_Stained_Glass + - Dye_Green_Stained_Glass + - Dye_White_Stained_Glass + - Dye_Light_Gray_Stained_Glass + - Dye_Light_Blue_Stained_Glass + - Dye_Red_Stained_Glass + - Dye_Lime_Stained_Glass + - Dye_Blue_Stained_Glass_Pane + - Dye_Brown_Stained_Glass_Pane + - Dye_Purple_Stained_Glass_Pane + - Dye_Yellow_Stained_Glass_Pane + - Dye_Black_Stained_Glass_Pane + - Dye_Magenta_Stained_Glass_Pane + - Dye_Pink_Stained_Glass_Pane + - Dye_Cyan_Stained_Glass_Pane + - Dye_Orange_Stained_Glass_Pane + - Dye_Gray_Stained_Glass_Pane + - Dye_Green_Stained_Glass_Pane + - Dye_White_Stained_Glass_Pane + - Dye_Light_Gray_Stained_Glass_Pane + - Dye_Light_Blue_Stained_Glass_Pane + - Dye_Red_Stained_Glass_Pane + - Dye_Lime_Stained_Glass_Pane + - Bastion_Objet_Dart repair_multiple: 2 repair_inputs: Lapis Lazuli: @@ -2242,8 +2330,11 @@ production_factories: Lime Dye: material: INK_SACK durability: 10 - Hardened Clay: - material: HARD_CLAY + Gray Stained Glass: + material: STAINED_GLASS + durability: 7 + Gray Stained Glass Pane: + material: STAINED_GLASS_PANE durability: 7 Crystallisation_Factory: name: Crystallisation Factory @@ -2261,6 +2352,7 @@ production_factories: durability: 1 recipes: - Compact_Ice + - Bastion_Pure_Ice repair_multiple: 10 repair_inputs: Ice: @@ -2430,20 +2522,115 @@ production_factories: repair_inputs: Stick: material: STICK + Bastion_Factory: + name: Bastion Factory + fuel: + Charcoal: + material: COAL + durability: 1 + inputs: + Silicon Tetranitratobihydrotrioxycarbon: + material: FIREWORK_CHARGE + amount: 64 + display_name: Silicon Tetranitratobihydrotrioxycarbon + lore: An item used to create a Bastion Block + Smaragdus: + material: EMERALD + amount: 64 + display_name: Smaragdus + lore: An item used to create a Bastion Block + Flooring: + material: CLAY_BRICK + amount: 8 + display_name: Flooring + lore: An item used to create a Bastion Block + Framing: + material: STICK + amount: 8 + display_name: Framing + lore: An item used to create a Bastion Block + Gearbox: + material: WATCH + amount: 8 + display_name: Gearbox + lore: An item used to create a Bastion Block + Base: + material: IRON_INGOT + amount: 8 + display_name: Base + lore: An item used to create a Bastion Block + Walls: + material: INK_SACK + amount: 32 + durablity: 4 + display_name: Walls + lore: An item used to create a Bastion Block + recipes: + - Bastion_Block + repair_multiple: 16 + repair_inputs: + Pure Ice: + material: QUARTZ + amount: 1 + display_name: Pure Ice + lore: An item used to repair the Bastion Factory + Silicon Tetranitratobihydrotrioxycarbon: + material: FIREWORK_CHARGE + amount: 1 + display_name: Silicon Tetranitratobihydrotrioxycarbon + lore: An item used to create a Bastion Block + Smaragdus: + material: EMERALD + amount: 1 + display_name: Smaragdus + lore: An item used to create a Bastion Block +nether_factory: + name: Nether Factory + fuel: + Charcoal: + material: COAL + durability: 1 + costs: + construction: + Aspect of Nether: + material: MAGMA_CREAM + amount: 8 + display_name: Aspect of Nether + lore: A concentrated essence of the Nether + Aspect of Terra: + material: DIAMOND + amount: 8 + display_name: Aspect of Terra + lore: A concentrated essence of Terra + Aspect of END: + material: FLINT + amount: 8 + display_name: Aspect of End + lore: A concentrated essence of the End + repair: + Diamond block: + material: DIAMOND_BLOCK + amount: 1 + repair_multiple: 1 + fuel_time: 10 + repair_time: 12 + scaling_radius: 5000 + cost_scaling_radius: 5000 + use_fuel_on_teleport: false production_recipes: Wood_XP_Bottle_0: name: Brew XP Bottles - 1 inputs: Glass Bottle: material: GLASS_BOTTLE - amount: 24 + amount: 8 Wheat: material: WHEAT amount: 1280 outputs: Exp Bottle: material: EXP_BOTTLE - amount: 24 + amount: 8 Baked_Potato: name: Bake Potato production_time: 24 @@ -2460,14 +2647,14 @@ production_recipes: inputs: Glass Bottle: material: GLASS_BOTTLE - amount: 10 + amount: 5 Baked Potato: material: BAKED_POTATO amount: 1280 outputs: Exp Bottle: material: EXP_BOTTLE - amount: 10 + amount: 5 Dye_Black_Wool_Cyan: name: Dye Black Wool Cyan inputs: @@ -2982,27 +3169,27 @@ production_recipes: inputs: Glass Bottle: material: GLASS_BOTTLE - amount: 14 + amount: 6 Carrot: material: CARROT_ITEM amount: 1280 outputs: Exp Bottle: material: EXP_BOTTLE - amount: 14 + amount: 6 Wood_XP_Bottle_5: name: Brew XP Bottles - 6 inputs: Glass Bottle: material: GLASS_BOTTLE - amount: 24 + amount: 8 Hay Bale: material: HAY_BLOCK amount: 143 outputs: Exp Bottle: material: EXP_BOTTLE - amount: 24 + amount: 8 Dye_Light_Gray_Wool_Orange: name: Dye Light Gray Wool Orange inputs: @@ -3618,8 +3805,22 @@ production_recipes: amount: 16 outputs: Fire Charge: - material: FIRE_CHARGE + material: FIREBALL amount: 128 + Produce_Eyes_of_Ender: + name: Produce Eyes of Ender + production_time: 8 + inputs: + Ender pearls: + material: ENDER_PEARL + amount: 32 + Blaze Powder: + material: BLAZE_POWDER + amount: 16 + outputs: + Eyes of Ender: + material: EYE_OF_ENDER + amount: 32 Dye_White_Wool_Green: name: Dye White Wool Green inputs: @@ -3640,14 +3841,14 @@ production_recipes: inputs: Glass Bottle: material: GLASS_BOTTLE - amount: 8 + amount: 4 Cookie: material: COOKIE amount: 1280 outputs: Exp Bottle: material: EXP_BOTTLE - amount: 8 + amount: 4 Iron_Chestplate: name: Forge Iron Chestplate. production_time: 40 @@ -3899,7 +4100,7 @@ production_recipes: outputs: Exp Bottle: material: EXP_BOTTLE - amount: 128 + amount: 128 Diamond_XP_Bottle_3: name: Brew XP Bottles - 4 inputs: @@ -4069,6 +4270,7 @@ production_recipes: amount: 4 durability: 6 outputs: + Cyan Wool: material: WOOL amount: 64 @@ -4187,6 +4389,13 @@ production_recipes: Milk Bucket: material: MILK_BUCKET amount: 18 + outputs: + Cake: + material: CAKE + amount: 24 + Bucket: + material: BUCKET + amount: 18 Bake_Pumpkin_Pie: name: Bake Pumpkin Pie production_time: 24 @@ -4257,7 +4466,7 @@ production_recipes: amount: 64 outputs: Flower Pots: - material: FLOWER_POT + material: FLOWER_POT_ITEM amount: 64 Smelt_Sandstone: name: Smelt Sandstone @@ -4274,12 +4483,12 @@ production_recipes: name: Smelt Glass Panes production_time: 32 inputs: - Sand: + Glass: material: GLASS amount: 192 outputs: Glass Pane: - material: GLASS_PANE + material: THIN_GLASS amount: 768 Smelt_Bottles: name: Smelt Bottles @@ -4316,6 +4525,9 @@ production_recipes: material: GLASS amount: 768 production_time: 6 + Smelt_Lapis_Lazuli_Ore: + name: Smelt Lapis Lazuli Ore + production_time: 6 inputs: Lapis Ore: material: LAPIS_ORE @@ -5001,14 +5213,14 @@ production_recipes: inputs: Glass Bottle: material: GLASS_BOTTLE - amount: 10 + amount: 4 Nether Wart: material: NETHER_STALK amount: 1280 outputs: Exp Bottle: material: EXP_BOTTLE - amount: 10 + amount: 4 Dye_Pink_Wool_Gray: name: Dye Pink Wool Gray inputs: @@ -5186,7 +5398,7 @@ production_recipes: outputs: Cooked Fish: material: COOKED_FISH - amount: 128 + amount: 256 Dye_Pink_Wool_Black: name: Dye Pink Wool Black inputs: @@ -5692,7 +5904,7 @@ production_recipes: Produce_Leads: name: Produce Leads inputs: - Slime_Ball: + Slime Ball: material: SLIME_BALL amount: 4 String: @@ -5769,7 +5981,7 @@ production_recipes: amount: 48 outputs: Item Frames: - material: ITEM_FRAMES + material: ITEM_FRAME amount: 64 Craft_Bookshelfs: name: Craft Bookshelfs @@ -5782,7 +5994,7 @@ production_recipes: material: LEATHER amount: 48 Paper: - material: STRING + material: PAPER amount: 192 outputs: Bookshelf: @@ -5868,8 +6080,8 @@ production_recipes: Dye_White_Stained_Glass: name: Dye White Stained Glass inputs: - White Stained Glass: - material: STAINED_GLASS + Glass: + material: GLASS amount: 64 Bone Meal: material: INK_SACK @@ -5883,8 +6095,8 @@ production_recipes: Dye_Orange_Stained_Glass: name: Dye Orange Stained Glass inputs: - Orange Stained Glass: - material: STAINED_GLASS + Glass: + material: GLASS amount: 64 Orange Dye: material: INK_SACK @@ -5898,8 +6110,8 @@ production_recipes: Dye_Magenta_Stained_Glass: name: Dye Magenta Stained Glass inputs: - Magenta Stained Glass: - material: STAINED_GLASS + Glass: + material: GLASS amount: 64 Magenta Dye: material: INK_SACK @@ -5913,8 +6125,8 @@ production_recipes: Dye_Light_Blue_Stained_Glass: name: Dye Light Blue Stained Glass inputs: - Light Blue Stained Glass: - material: STAINED_GLASS + Glass: + material: GLASS amount: 64 Light Blue Dye: material: INK_SACK @@ -5928,8 +6140,8 @@ production_recipes: Dye_Yellow_Stained_Glass: name: Dye Yellow Stained Glass inputs: - Yellow Stained Glass: - material: STAINED_GLASS + Glass: + material: GLASS amount: 64 Dandelion Yellow: material: INK_SACK @@ -5943,8 +6155,8 @@ production_recipes: Dye_Lime_Stained_Glass: name: Dye Lime Stained Glass inputs: - Lime Stained Glass: - material: STAINED_GLASS + Glass: + material: GLASS amount: 64 Lime Dye: material: INK_SACK @@ -5958,8 +6170,8 @@ production_recipes: Dye_Pink_Stained_Glass: name: Dye Pink Stained Glass inputs: - Pink Stained Glass: - material: STAINED_GLASS + Glass: + material: GLASS amount: 64 Pink Dye: material: INK_SACK @@ -5973,8 +6185,8 @@ production_recipes: Dye_Gray_Stained_Glass: name: Dye Gray Stained Glass inputs: - Gray Stained Glass: - material: STAINED_GLASS + Glass: + material: GLASS amount: 64 Gray Dye: material: INK_SACK @@ -5988,8 +6200,8 @@ production_recipes: Dye_Light_Gray_Stained_Glass: name: Dye Light Gray Stained Glass inputs: - Light Gray Stained Glass: - material: STAINED_GLASS + Glass: + material: GLASS amount: 64 Light Gray Dye: material: INK_SACK @@ -6003,8 +6215,8 @@ production_recipes: Dye_Cyan_Stained_Glass: name: Dye Cyan Stained Glass inputs: - Cyan Stained Glass: - material: STAINED_GLASS + Glass: + material: GLASS amount: 64 Cyan Dye: material: INK_SACK @@ -6018,8 +6230,8 @@ production_recipes: Dye_Purple_Stained_Glass: name: Dye Purple Stained Glass inputs: - Purple Stained Glass: - material: STAINED_GLASS + Glass: + material: GLASS amount: 64 Purple Dye: material: INK_SACK @@ -6033,8 +6245,8 @@ production_recipes: Dye_Blue_Stained_Glass: name: Dye Blue Stained Glass inputs: - Blue Stained Glass: - material: STAINED_GLASS + Glass: + material: GLASS amount: 64 Lapis Lazuli: material: INK_SACK @@ -6048,8 +6260,8 @@ production_recipes: Dye_Brown_Stained_Glass: name: Dye Brown Stained Glass inputs: - Brown Stained Glass: - material: STAINED_GLASS + Glass: + material: GLASS amount: 64 Coco Beans: material: INK_SACK @@ -6063,8 +6275,8 @@ production_recipes: Dye_Green_Stained_Glass: name: Dye Green Stained Glass inputs: - Green Stained Glass: - material: STAINED_GLASS + Glass: + material: GLASS amount: 64 Cactus Green: material: INK_SACK @@ -6078,8 +6290,8 @@ production_recipes: Dye_Red_Stained_Glass: name: Dye Red Stained Glass inputs: - Red Stained Glass: - material: STAINED_GLASS + Glass: + material: GLASS amount: 64 Rose Red: material: INK_SACK @@ -6093,8 +6305,8 @@ production_recipes: Dye_Black_Stained_Glass: name: Dye Black Stained Glass inputs: - Black Stained Glass: - material: STAINED_GLASS + Glass: + material: GLASS amount: 64 Ink Sack: material: INK_SACK @@ -6108,8 +6320,8 @@ production_recipes: Dye_White_Stained_Glass_Pane: name: Dye White Stained Glass Pane inputs: - White Stained Glass Pane: - material: STAINED_GLASS_PANE + Glass Pane: + material: THIN_GLASS amount: 64 Bone Meal: material: INK_SACK @@ -6123,8 +6335,8 @@ production_recipes: Dye_Orange_Stained_Glass_Pane: name: Dye Orange Stained Glass Pane inputs: - Orange Stained Glass Pane: - material: STAINED_GLASS_PANE + Glass Pane: + material: THIN_GLASS amount: 64 Orange Dye: material: INK_SACK @@ -6138,8 +6350,8 @@ production_recipes: Dye_Magenta_Stained_Glass_Pane: name: Dye Magenta Stained Glass Pane inputs: - Magenta Stained Glass Pane: - material: STAINED_GLASS_PANE + Glass Pane: + material: THIN_GLASS amount: 64 Magenta Dye: material: INK_SACK @@ -6153,8 +6365,8 @@ production_recipes: Dye_Light_Blue_Stained_Glass_Pane: name: Dye Light Blue Stained Glass Pane inputs: - Light Blue Stained Glass Pane: - material: STAINED_GLASS_PANE + Glass Pane: + material: THIN_GLASS amount: 64 Light Blue Dye: material: INK_SACK @@ -6168,8 +6380,8 @@ production_recipes: Dye_Yellow_Stained_Glass_Pane: name: Dye Yellow Stained Glass Pane inputs: - Yellow Stained Glass Pane: - material: STAINED_GLASS_PANE + Glass Pane: + material: THIN_GLASS amount: 64 Dandelion Yellow: material: INK_SACK @@ -6183,8 +6395,8 @@ production_recipes: Dye_Lime_Stained_Glass_Pane: name: Dye Lime Stained Glass Pane inputs: - Lime Stained Glass Pane: - material: STAINED_GLASS_PANE + Glass Pane: + material: THIN_GLASS amount: 64 Lime Dye: material: INK_SACK @@ -6198,8 +6410,8 @@ production_recipes: Dye_Pink_Stained_Glass_Pane: name: Dye Pink Stained Glass Pane inputs: - Pink Stained Glass Pane: - material: STAINED_GLASS_PANE + Glass Pane: + material: THIN_GLASS amount: 64 Pink Dye: material: INK_SACK @@ -6213,8 +6425,8 @@ production_recipes: Dye_Gray_Stained_Glass_Pane: name: Dye Gray Stained Glass Pane inputs: - Gray Stained Glass Pane: - material: STAINED_GLASS_PANE + Glass Pane: + material: THIN_GLASS amount: 64 Gray Dye: material: INK_SACK @@ -6228,8 +6440,8 @@ production_recipes: Dye_Light_Gray_Stained_Glass_Pane: name: Dye Light Gray Stained Glass Pane inputs: - Light Gray Stained Glass Pane: - material: STAINED_GLASS_PANE + Glass Pane: + material: THIN_GLASS amount: 64 Light Gray Dye: material: INK_SACK @@ -6243,8 +6455,8 @@ production_recipes: Dye_Cyan_Stained_Glass_Pane: name: Dye Cyan Stained Glass Pane inputs: - Cyan Stained Glass Pane: - material: STAINED_GLASS_PANE + Glass Pane: + material: THIN_GLASS amount: 64 Cyan Dye: material: INK_SACK @@ -6258,8 +6470,8 @@ production_recipes: Dye_Purple_Stained_Glass_Pane: name: Dye Purple Stained Glass Pane inputs: - Purple Stained Glass Pane: - material: STAINED_GLASS_PANE + Glass Pane: + material: THIN_GLASS amount: 64 Purple Dye: material: INK_SACK @@ -6273,8 +6485,8 @@ production_recipes: Dye_Blue_Stained_Glass_Pane: name: Dye Blue Stained Glass Pane inputs: - Blue Stained Glass Pane: - material: STAINED_GLASS_PANE + Glass Pane: + material: THIN_GLASS amount: 64 Lapis Lazuli: material: INK_SACK @@ -6288,8 +6500,8 @@ production_recipes: Dye_Brown_Stained_Glass_Pane: name: Dye Brown Stained Glass Pane inputs: - Brown Stained Glass Pane: - material: STAINED_GLASS_PANE + Glass Pane: + material: THIN_GLASS amount: 64 Coco Beans: material: INK_SACK @@ -6303,8 +6515,8 @@ production_recipes: Dye_Green_Stained_Glass_Pane: name: Dye Green Stained Glass Pane inputs: - Green Stained Glass Pane: - material: STAINED_GLASS_PANE + Glass Pane: + material: THIN_GLASS amount: 64 Cactus Green: material: INK_SACK @@ -6318,8 +6530,8 @@ production_recipes: Dye_Red_Stained_Glass_Pane: name: Dye Red Stained Glass Pane inputs: - Red Stained Glass Pane: - material: STAINED_GLASS_PANE + Glass Pane: + material: THIN_GLASS amount: 64 Rose Red: material: INK_SACK @@ -6333,8 +6545,8 @@ production_recipes: Dye_Black_Stained_Glass_Pane: name: Dye Black Stained Glass Pane inputs: - Black Stained Glass Pane: - material: STAINED_GLASS_PANE + Glass Pane: + material: THIN_GLASS amount: 64 Ink Sack: material: INK_SACK @@ -6344,10 +6556,11 @@ production_recipes: Black Stained Glass Pane: material: STAINED_GLASS_PANE amount: 64 + durability: 15 Dye_White_Stained_Clay: name: Dye White Stained Clay inputs: - White Stained Clay: + Hardened Clay: material: HARD_CLAY amount: 64 Bone Meal: @@ -6356,13 +6569,13 @@ production_recipes: durability: 15 outputs: White Stained Clay: - material: HARD_CLAY + material: STAINED_CLAY amount: 64 durability: 0 Dye_Orange_Stained_Clay: name: Dye Orange Stained Clay inputs: - Orange Stained Clay: + Hardened Clay: material: HARD_CLAY amount: 64 Orange Dye: @@ -6371,13 +6584,13 @@ production_recipes: durability: 14 outputs: Orange Stained Clay: - material: HARD_CLAY + material: STAINED_CLAY amount: 64 durability: 1 Dye_Magenta_Stained_Clay: name: Dye Magenta Stained Clay inputs: - Magenta Stained Clay: + Hardened Clay: material: HARD_CLAY amount: 64 Magenta Dye: @@ -6385,14 +6598,14 @@ production_recipes: amount: 4 durability: 13 outputs: - Magenta Stained Clay: - material: HARD_CLAY + Hardened Clay: + material: STAINED_CLAY amount: 64 durability: 2 Dye_Light_Blue_Stained_Clay: name: Dye Light Blue Stained Clay inputs: - Light Blue Stained Clay: + Hardened Clay: material: HARD_CLAY amount: 64 Light Blue Dye: @@ -6401,13 +6614,13 @@ production_recipes: durability: 12 outputs: Light Blue Stained Clay: - material: HARD_CLAY + material: STAINED_CLAY amount: 64 durability: 3 Dye_Yellow_Stained_Clay: name: Dye Yellow Stained Clay inputs: - Yellow Stained Clay: + Hardened Clay: material: HARD_CLAY amount: 64 Dandelion Yellow: @@ -6415,14 +6628,14 @@ production_recipes: amount: 4 durability: 11 outputs: - Yellow Stained Clay: - material: HARD_CLAY + Hardened Clay: + material: STAINED_CLAY amount: 64 durability: 4 Dye_Lime_Stained_Clay: name: Dye Lime Stained Clay inputs: - Lime Stained Clay: + Hardened Clay: material: HARD_CLAY amount: 64 Lime Dye: @@ -6430,14 +6643,14 @@ production_recipes: amount: 4 durability: 10 outputs: - Lime Stained Clay: - material: HARD_CLAY + Hardened Clay: + material: STAINED_CLAY amount: 64 durability: 5 Dye_Pink_Stained_Clay: name: Dye Pink Stained Clay inputs: - Pink Stained Clay: + Hardened Clay: material: HARD_CLAY amount: 64 Pink Dye: @@ -6446,13 +6659,13 @@ production_recipes: durability: 9 outputs: Pink Stained Clay: - material: HARD_CLAY + material: STAINED_CLAY amount: 64 durability: 6 Dye_Gray_Stained_Clay: name: Dye Gray Stained Clay inputs: - Gray Stained Clay: + Hardened Clay: material: HARD_CLAY amount: 64 Gray Dye: @@ -6461,13 +6674,13 @@ production_recipes: durability: 8 outputs: Gray Stained Clay: - material: HARD_CLAY + material: STAINED_CLAY amount: 64 durability: 7 Dye_Light_Gray_Stained_Clay: name: Dye Light Gray Stained Clay inputs: - Light Gray Stained Clay: + Hardened Clay: material: HARD_CLAY amount: 64 Light Gray Dye: @@ -6476,13 +6689,13 @@ production_recipes: durability: 7 outputs: Light Gray Stained Clay: - material: HARD_CLAY + material: STAINED_CLAY amount: 64 durability: 8 Dye_Cyan_Stained_Clay: name: Dye Cyan Stained Clay inputs: - Cyan Stained Clay: + Hardened Clay: material: HARD_CLAY amount: 64 Cyan Dye: @@ -6491,13 +6704,13 @@ production_recipes: durability: 6 outputs: Cyan Stained Clay: - material: HARD_CLAY + material: STAINED_CLAY amount: 64 durability: 9 Dye_Purple_Stained_Clay: name: Dye Purple Stained Clay inputs: - Purple Stained Clay: + Hardened Clay: material: HARD_CLAY amount: 64 Purple Dye: @@ -6506,13 +6719,13 @@ production_recipes: durability: 5 outputs: Purple Stained Clay: - material: HARD_CLAY + material: STAINED_CLAY amount: 64 durability: 10 Dye_Blue_Stained_Clay: name: Dye Blue Stained Clay inputs: - Blue Stained Clay: + Hardened Clay: material: HARD_CLAY amount: 64 Lapis Lazuli: @@ -6521,13 +6734,13 @@ production_recipes: durability: 4 outputs: Blue Stained Clay: - material: HARD_CLAY + material: STAINED_CLAY amount: 64 durability: 11 Dye_Brown_Stained_Clay: name: Dye Brown Stained Clay inputs: - Brown Stained Clay: + Hardened Clay: material: HARD_CLAY amount: 64 Coco Beans: @@ -6536,13 +6749,13 @@ production_recipes: durability: 3 outputs: Brown Stained Clay: - material: HARD_CLAY + material: STAINED_CLAY amount: 64 durability: 12 Dye_Green_Stained_Clay: name: Dye Green Stained Clay inputs: - Green Stained Clay: + Hardened Clay: material: HARD_CLAY amount: 64 Cactus Green: @@ -6551,13 +6764,13 @@ production_recipes: durability: 2 outputs: Green Stained Clay: - material: HARD_CLAY + material: STAINED_CLAY amount: 64 durability: 13 Dye_Red_Stained_Clay: name: Dye Red Stained Clay inputs: - Red Stained Clay: + Hardened Clay: material: HARD_CLAY amount: 64 Rose Red: @@ -6566,13 +6779,13 @@ production_recipes: durability: 1 outputs: Red Stained Clay: - material: HARD_CLAY + material: STAINED_CLAY amount: 64 durability: 14 Dye_Black_Stained_Clay: name: Dye Black Stained Clay inputs: - Black Stained Clay: + Hardened Clay: material: HARD_CLAY amount: 64 Ink Sack: @@ -6581,10 +6794,9 @@ production_recipes: durability: 0 outputs: Black Stained Clay: - material: HARD_CLAY + material: STAINED_CLAY amount: 64 durability: 15 - durability: 15 Mutate_Spruce_Saplings: name: Mutate Spruce Saplings production_time: 64 @@ -6605,7 +6817,7 @@ production_recipes: material: SAPLING amount: 64 outputs: - Spruce Sapling: + Birch Sapling: material: SAPLING amount: 64 durability: 2 @@ -6617,7 +6829,7 @@ production_recipes: material: SAPLING amount: 64 outputs: - Spruce Sapling: + Jungle Sapling: material: SAPLING amount: 64 durability: 3 @@ -6629,7 +6841,7 @@ production_recipes: material: SAPLING amount: 64 outputs: - Spruce Sapling: + Acacia Sapling: material: SAPLING amount: 64 durability: 4 @@ -6641,7 +6853,7 @@ production_recipes: material: SAPLING amount: 64 outputs: - Spruce Sapling: + Dark Oak Sapling: material: SAPLING amount: 64 durability: 5 @@ -6669,6 +6881,168 @@ production_recipes: material: DIRT amount: 64 durability: 2 + Mutate_Pigmen: + name: Mutate Pigmen + production_time: 4 + inputs: + Pig eggs: + material: MONSTER_EGG + durability: 90 + amount: 16 + Villager eggs: + material: MONSTER_EGG + durability: 120 + amount: 16 + outputs: + Pigman eggs: + material: MONSTER_EGG + durability: 57 + amount: 16 + Infect_Zombies: + name: Infect Zombies + production_time: 4 + inputs: + Villager eggs: + material: MONSTER_EGG + durability: 120 + amount: 16 + Rotten flesh: + material: ROTTEN_FLESH + amount: 512 + outputs: + Zombie eggs: + material: MONSTER_EGG + durability: 54 + amount: 8 + Mutate_Skeletons: + name: Mutate Skeletons + production_time: 4 + inputs: + Zombie eggs: + material: MONSTER_EGG + durability: 54 + amount: 16 + Bones: + material: BONE + amount: 256 + Blaze powder: + material: BLAZE_POWDER + amount: 64 + outputs: + Skeleton eggs: + material: MONSTER_EGG + durability: 51 + amount: 8 + Mutate_Creepers: + name: Mutate Creepers + production_time: 4 + inputs: + Skeleton eggs: + material: MONSTER_EGG + durability: 51 + amount: 16 + Blaze powder: + material: BLAZE_POWDER + amount: 32 + TNT: + material: TNT + amount: 16 + Lime wool: + material: WOOL + durability: 5 + amount: 32 + outputs: + Creeper eggs: + material: MONSTER_EGG + durability: 50 + amount: 8 + Mutate_Witches: + name: Mutate Witches + production_time: 32 + inputs: + Villager eggs: + material: MONSTER_EGG + durability: 120 + amount: 16 + Ghast tears: + material: GHAST_TEAR + amount: 16 + outputs: + Witch eggs: + material: MONSTER_EGG + durability: 66 + amount: 4 + Mutate_Spiders: + name: Mutate Spiders + production_time: 16 + inputs: + Squid eggs: # For the legs + material: MONSTER_EGG + durability: 94 + amount: 16 + Cow eggs: # For food + material: MONSTER_EGG + durability: 92 + amount: 16 + Spider eyes: + material: SPIDER_EYE + amount: 256 + outputs: + Spider eggs: + material: MONSTER_EGG + durability: 52 + amount: 4 + Mutate_Cave_Spiders: + name: Mutate Cave Spiders + production_time: 16 + inputs: + Spider eggs: + material: MONSTER_EGG + durability: 52 + amount: 16 + Poison potatoes: + material: POISONOUS_POTATO + amount: 128 + Spider eyes: + material: SPIDER_EYE + amount: 256 + outputs: + Cave spider eggs: + material: MONSTER_EGG + durability: 59 + amount: 8 + Mutate_Ghasts: + name: Mutate Ghasts + production_time: 32 + inputs: + Ghast tears: + material: GHAST_TEAR + amount: 8 + Fire charges: # Ammunition + material: FIREBALL + amount: 64 + Dispensers: # Fire! + material: DISPENSER + amount: 4 + White carpets: # To make a balloon + material: CARPET + amount: 256 + Furnaces: # To heat air + material: FURNACE + amount: 4 + Charcoal: # To fuel the furnace + material: COAL + durability: 1 + amount: 256 + Villager eggs: # Operator + material: MONSTER_EGG + durability: 120 + amount: 4 + outputs: + Ghast eggs: + material: MONSTER_EGG + durability: 56 + amount: 4 Compact_Ice: name: Compact Ice production_time: 32 @@ -6680,4 +7054,392 @@ production_recipes: Packed_Ice: material: PACKED_ICE amount: 576 - + Bastion_Walls: + name: Walls + production_time: 2 + inputs: + Lapis Ore: + material: LAPIS_ORE + amount: 8 + Cracked Stone Brick: + material: SMOOTH_BRICK + amount: 32 + durability: 2 + outputs: + Walls: + material: INK_SACK + amount: 4 + durablity: 4 + display_name: Walls + lore: An item used to create a Bastion Block + Bastion_Base: + name: Base + production_time: 2 + inputs: + Diamond Ore: + material: DIAMOND_ORE + amount: 16 + Redstone Ore: + material: REDSTONE_ORE + amount: 32 + outputs: + Base: + material: IRON_INGOT + amount: 1 + display_name: Base + lore: An item used to create a Bastion Block + Bastion_Gearbox: + name: Gearbox + production_time: 2 + inputs: + Iron Block: + material: IRON_BLOCK + amount: 4 + Gold Ore: + material: GOLD_ORE + amount: 8 + outputs: + Gearbox: + material: WATCH + amount: 1 + display_name: Gearbox + lore: An item used to create a Bastion Block + Bastion_Objet_Dart: + name: Objet d'art + production_time: 2 + inputs: + Lapis Lazuli: + material: INK_SACK + amount: 16 + durability: 4 + Gray Dye: + material: INK_SACK + amount: 16 + durability: 8 + Cocoa: + material: INK_SACK + amount: 16 + durability: 3 + Purple Dye: + material: INK_SACK + amount: 16 + durability: 5 + Dandelion Yellow: + material: INK_SACK + amount: 16 + durability: 11 + Ink Sack: + material: INK_SACK + amount: 16 + durability: 0 + Magenta Dye: + material: INK_SACK + amount: 16 + durability: 13 + Pink Dye: + material: INK_SACK + amount: 16 + durability: 9 + Cyan Dye: + material: INK_SACK + amount: 16 + durability: 6 + Orange Dye: + material: INK_SACK + amount: 16 + durability: 14 + Cactus Green: + material: INK_SACK + amount: 16 + durability: 2 + Bone Meal: + material: INK_SACK + amount: 16 + durability: 15 + Light Gray Dye: + material: INK_SACK + amount: 16 + durability: 7 + Light Blue Dye: + material: INK_SACK + amount: 16 + durability: 12 + Rose Red: + material: INK_SACK + amount: 16 + durability: 1 + Lime Dye: + material: INK_SACK + amount: 16 + durability: 10 + Red Sand: + material: SAND + amount: 256 + durability: 1 + outputs: + Objet d'art: + material: FLINT + amount: 1 + display_name: Objet d'art + lore: An item used to create a Bastion Block + Bastion_Framing: + name: Framing + inputs: + Chest: + material: CHEST + amount: 64 + Iron Block: + material: IRON_BLOCK + amount: 4 + outputs: + Framing: + material: STICK + amount: 1 + display_name: Framing + lore: An item used to create a Bastion Block + Bastion_Flooring: + name: Flooring + inputs: + Clay Ball: + material: CLAY_BALL + amount: 32 + Nether Brick: + material: NETHER_BRICK + amount: 64 + outputs: + Flooring: + material: CLAY_BRICK + amount: 1 + display_name: Flooring + lore: An item used to create a Bastion Block + Bastion_Rations: + name: Rations + inputs: + Wheat: + material: WHEAT + amount: 256 + Bowl: + material: BOWL + amount: 32 + outputs: + Rations: + material: MUSHROOM_SOUP + amount: 32 + display_name: Rations + lore: An item used to create a Bastion Block + Bastion_Smaragdus_Polisher: + name: Smaragdus + production_time: 32 + inputs: + Emerald Block: + material: EMERALD_BLOCK + amount: 16 + outputs: + Smaragdus: + material: EMERALD + amount: 16 + display_name: Smaragdus + lore: An item used to create a Bastion Block + Bastion_Silicon_Tetranitratobihydrotrioxycarbon: + name: Silicon_Tetranitratobihydrotrioxycarbon + inputs: + Sulphur: + material: SULPHUR + amount: 8 + Quartz: + material: QUARTZ + amount: 32 + Podzol: + material: DIRT + amount: 32 + durability: 2 + Coal Block: + material: COAL_BLOCK + amount: 8 + Water Bucket: + material: WATER_BUCKET + amount: 2 + outputs: + Silicon Tetranitratobihydrotrioxycarbon: + material: FIREWORK_CHARGE + amount: 8 + display_name: Silicon Tetranitratobihydrotrioxycarbon + lore: An item used to create a Bastion Block + Bastion_Pure_Ice: + name: Pure Ice + inputs: + Compact Ice: + material: PACKED_ICE + amount: 512 + Leather: + material: LEATHER + amount: 32 + outputs: + Pure Ice: + material: QUARTZ + amount: 8 + display_name: Pure Ice + lore: An item used to repair the Bastion Factory + Bastion_Block: + name: Craft Bastions + inputs: + Silicon Tetranitratobihydrotrioxycarbon: + material: FIREWORK_CHARGE + amount: 16 + display_name: Silicon Tetranitratobihydrotrioxycarbon + lore: An item used to create a Bastion Block + Smaragdus: + material: EMERALD + amount: 2 + display_name: Smaragdus + lore: An item used to create a Bastion Block + Rations: + material: MUSHROOM_SOUP + amount: 16 + display_name: Rations + lore: An item used to create a Bastion Block + Flooring: + material: CLAY_BRICK + amount: 1 + display_name: Flooring + lore: An item used to create a Bastion Block + Framing: + material: STICK + amount: 1 + display_name: Framing + lore: An item used to create a Bastion Block + Objet d'art: + material: FLINT + amount: 1 + display_name: Objet d'art + lore: An item used to create a Bastion Block + Gearbox: + material: WATCH + amount: 1 + display_name: Gearbox + lore: An item used to create a Bastion Block + Base: + material: IRON_INGOT + amount: 1 + display_name: Base + lore: An item used to create a Bastion Block + Walls: + material: INK_SACK + amount: 4 + durability: 0 + display_name: Walls + lore: An item used to create a Bastion Block + outputs: + Bastion: + material: SPONGE + amount: 32 + display_name: Bastion + Aspect_Factory: + name: Arcane Elementizer + fuel: + Charcoal: + material: COAL + durability: 1 + inputs: + Netherbrick: + material: NETHER_BRICK + amount: 1536 + Redstone: + material: REDSTONE + amount: 1152 + Netherquartz: + material: QUARTZ + amount: 576 + recipes: + - Forge_Aspect_of_Terra + - Forge_Aspect_of_End + - Forge_Aspect_of_Nether + - Craft_Eye_of_Ender + repair_multiple: 26 + repair_inputs: + Nether Brick: + material: NETHER_BRICK + amount: 6 + Redstone: + material: REDSTONE + amount: 5 + Netherquartz: + material: QUARTZ + amount: 2 + Forge_Aspect_of_Terra: + name: Forge Aspect of Terra + production_time: 64 + inputs: + Emerald Block: + material: EMERALD_BLOCK + amount: 24 + Diamond Block: + material: DIAMOND_BLOCK + amount: 24 + Gold Ore: + material: GOLD_ORE + amount: 8 + Slime Ball: + material: SLIME_BALL + amount: 8 + Anvil: + material: ANVIL + amount: 8 + outputs: + Aspect of Terra: + material: DIAMOND + amount: 1 + display_name: Aspect of Terra + lore: A concentrated essence of Terra + Forge_Aspect_of_End: + name: Forge Aspect of End + production_time: 64 + inputs: + Ender Pearl: + material: ENDER_PEARL + amount: 256 + Ender Chest: + material: ENDER_CHEST + amount: 256 + Endstone: + material: ENDER_STONE + amount: 1024 + outputs: + Aspect of End: + material: FLINT + amount: 1 + display_name: Aspect of End + lore: A concentrated essence of the End + Forge_Aspect_of_Nether: + name: Forge Aspect of Nether + production_time: 64 + inputs: + Ghast Tears: + material: GHAST_TEAR + amount: 16 + Quartz Ore: + material: QUARTZ_ORE + amount: 512 + Glowstone: + material: GLOWSTONE + amount: 512 + outputs: + Aspect of Nether: + material: MAGMA_CREAM + amount: 1 + display_name: Aspect of Nether + lore: A concentrated essence of the Nether + Craft_Eye_of_Ender: + name: Craft Eye of Ender + production_time: 1 + inputs: + Blaze Powder: + material: BLAZE_POWDER + amount: 265 + Ender Pearl: + material: ENDER_PEARL + amount: 265 + outputs: + Eye of Ender: + material: EYE_OF_ENDER + amount: 256 From 75bd4901d16e7893bd399c26b71584e07ff8abaf Mon Sep 17 00:00:00 2001 From: ribagi Date: Wed, 23 Jul 2014 16:53:34 -0700 Subject: [PATCH 02/52] Update config.yml --- config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config.yml b/config.yml index 9d3e5f48..36ad34e5 100644 --- a/config.yml +++ b/config.yml @@ -96,7 +96,6 @@ nether_general: teleport_platform_invunerable: false regenerate_teleport_block_on_teleport: false remove_blocks_above_teleport_platform_on_teleport: true - printing_presses: fuel: Charcoal: @@ -7443,3 +7442,4 @@ production_recipes: Eye of Ender: material: EYE_OF_ENDER amount: 256 + From 65e1e936f676f4d1bec241468b227f01fe9c4908 Mon Sep 17 00:00:00 2001 From: ribagi Date: Wed, 23 Jul 2014 16:54:12 -0700 Subject: [PATCH 03/52] Update config.yml --- config.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/config.yml b/config.yml index 36ad34e5..370e2124 100644 --- a/config.yml +++ b/config.yml @@ -7442,4 +7442,3 @@ production_recipes: Eye of Ender: material: EYE_OF_ENDER amount: 256 - From 992e0fd1abe7d337650b5eb40a44db05bbe769f5 Mon Sep 17 00:00:00 2001 From: ribagi Date: Wed, 23 Jul 2014 23:45:48 -0700 Subject: [PATCH 04/52] Update config.yml --- config.yml | 1083 +++++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 938 insertions(+), 145 deletions(-) diff --git a/config.yml b/config.yml index 370e2124..769112ad 100644 --- a/config.yml +++ b/config.yml @@ -83,19 +83,6 @@ production_general: update_cycle: 20 repair_period: 28 disrepair_period: 14 -nether_general: - disable_portals: true - nether_scale: 8 - world_name: world - nether_name: world_nether - teleport_platform_material_nether_factory: OBSIDIAN - marker_material_nether_factory: COAL_BLOCK - marker_max_distance: 64 - allow_reinforcement_creation_above_teleport_platform: false - allow_block_placement_above_teleport_platform: true - teleport_platform_invunerable: false - regenerate_teleport_block_on_teleport: false - remove_blocks_above_teleport_platform_on_teleport: true printing_presses: fuel: Charcoal: @@ -2583,39 +2570,99 @@ production_factories: amount: 1 display_name: Smaragdus lore: An item used to create a Bastion Block -nether_factory: - name: Nether Factory - fuel: - Charcoal: - material: COAL - durability: 1 - costs: - construction: - Aspect of Nether: - material: MAGMA_CREAM - amount: 8 - display_name: Aspect of Nether - lore: A concentrated essence of the Nether - Aspect of Terra: - material: DIAMOND - amount: 8 - display_name: Aspect of Terra - lore: A concentrated essence of Terra - Aspect of END: - material: FLINT - amount: 8 - display_name: Aspect of End - lore: A concentrated essence of the End - repair: - Diamond block: - material: DIAMOND_BLOCK - amount: 1 - repair_multiple: 1 - fuel_time: 10 - repair_time: 12 - scaling_radius: 5000 - cost_scaling_radius: 5000 - use_fuel_on_teleport: false + Nether_Compactor: + name: Nether Compactor + fuel: + Charcoal: + material: COAL + durability: 1 + inputs: + recipes: + - Nether_Craft_Glass_Bottles + - Nether_Craft_Pork + - Nether_Craft_Melons + - Nether_Craft_Sugar + - Nether_Craft_Nether_Warts + - Nether_Craft_Cookies + - Nether_Craft_Potatoes + - Nether_Craft_Carrots + - Nether_Craft_Cocoa + - Nether_Craft_Pumpkins + - Nether_Craft_Cacti + - Nether_Craft_Bread + - Nether_Craft_Steak + - Nether_Craft_Wheat + - Nether_Craft_Fish + - Nether_Craft_Red_Rose + - Nether_Craft_Yellow_Flower + - Nether_Craft_Rotten_Flesh + - Nether_Craft_Red_Mushroom + - Nether_Craft_Brown_Mushroom + - Nether_Craft_Vines + - Nether_Craft_Chicken + - Nether_Craft_Spider_Eyes + - Nether_Craft_Cookie + repair_multiple: 2 + repair_inputs: + Bastion: + material: SPONGE + amount: 1 + Nether_Decompactor: + name: Nether Decompactor + fuel: + Charcoal: + material: COAL + durability: 1 + inputs: + recipes: + - Nether_Decraft_Glass_Bottles + - Nether_Decraft_Pork + - Nether_Decraft_Melons + - Nether_Decraft_Sugar + - Nether_Decraft_Nether_Warts + - Nether_Decraft_Cookies + - Nether_Decraft_Potatoes + - Nether_Decraft_Carrots + - Nether_Decraft_Cocoa + - Nether_Decraft_Pumpkins + - Nether_Decraft_Cacti + - Nether_Decraft_Bread + - Nether_Decraft_Steak + - Nether_Decraft_Wheat + - Nether_Decraft_Fish + - Nether_Decraft_Red_Rose + - Nether_Decraft_Yellow_Flower + - Nether_Decraft_Rotten_Flesh + - Nether_Decraft_Red_Mushroom + - Nether_Decraft_Brown_Mushroom + - Nether_Decraft_Vines + - Nether_Decraft_Chicken + - Nether_Decraft_Spider_Eyes + - Nether_Decraft_Cookie + repair_multiple: 2 + repair_inputs: + Bastion: + material: SPONGE + amount: 1 + Emerald_Cauldron: + name: Emerald Cauldron + fuel: + Charcoal: + material: COAL + durability: 1 + inputs: + Emerald: + material: EMERALD + amount: 50 + recipes: + - Emerald_XP_Bottle_0 + - Emerald_XP_Bottle_1 + - Emerald_XP_Bottle_2 + - Emerald_XP_Bottle_3 + repair_multiple: 5 + repair_inputs: + Emerald: + material: EMERALD production_recipes: Wood_XP_Bottle_0: name: Brew XP Bottles - 1 @@ -7333,112 +7380,858 @@ production_recipes: material: SPONGE amount: 32 display_name: Bastion - Aspect_Factory: - name: Arcane Elementizer - fuel: - Charcoal: - material: COAL - durability: 1 - inputs: - Netherbrick: - material: NETHER_BRICK - amount: 1536 - Redstone: - material: REDSTONE - amount: 1152 - Netherquartz: - material: QUARTZ - amount: 576 - recipes: - - Forge_Aspect_of_Terra - - Forge_Aspect_of_End - - Forge_Aspect_of_Nether - - Craft_Eye_of_Ender - repair_multiple: 26 - repair_inputs: - Nether Brick: - material: NETHER_BRICK - amount: 6 - Redstone: - material: REDSTONE - amount: 5 - Netherquartz: - material: QUARTZ - amount: 2 - Forge_Aspect_of_Terra: - name: Forge Aspect of Terra - production_time: 64 + Nether_Craft_Steak: + name: Craft Crate of Steak + inputs: + Cooked Beef: + material: COOKED_BEEF + amount: 2048 + outputs: + Crate of Steak: + material: WOOD + durability: 0 + amount: 32 + display_name: Crate of Steak + Nether_Craft_Pork: + name: Craft Crate of Pork + inputs: + Grilled Pork: + material: GRILLED_PORK + amount: 2048 + outputs: + Crate of Pork: + material: WOOD + durability: 0 + amount: 32 + display_name: Crate of Pork + Nether_Craft_Melons: + name: Craft Crate of Melons + inputs: + Melon Blocks: + material: MELON_BLOCK + amount: 2048 + outputs: + Crate of Melons: + material: WOOD + durability: 0 + amount: 32 + display_name: Crate of Melons + Nether_Craft_Sugar: + name: Craft Crate of Sugar + inputs: + Sugar: + material: SUGAR + amount: 2048 + outputs: + Crate of Sugar: + material: WOOD + durability: 0 + amount: 32 + display_name: Crate of Sugar + Nether_Craft_Sugar_Cane: + name: Craft Crate of Sugar Cane + inputs: + Sugar Cane: + material: SUGAR_CANE + amount: 2048 + outputs: + Crate of Sugar Cane: + material: WOOD + durability: 0 + amount: 32 + display_name: Crate of Sugar Cane + Nether_Craft_Nether_Warts: + name: Craft Crate of Nether Warts + inputs: + Nether Wart: + material: NETHER_STALK + amount: 2048 + outputs: + Crate of Nether Warts: + material: WOOD + durability: 0 + amount: 32 + display_name: Crate of Nether Warts + Nether_Craft_Cookies: + name: Craft Crate of Cookies + inputs: + Cookie: + material: COOKIE + amount: 2048 + outputs: + Crate of Cookies: + material: WOOD + durability: 0 + amount: 32 + display_name: Crate of Cookies + Nether_Craft_Potatoes: + name: Craft Crate of Potatoes + inputs: + Potato: + material: BAKED_POTATO + amount: 2048 + outputs: + Crate of Potatoes: + material: WOOD + durability: 0 + amount: 32 + display_name: Crate of Potatoes + Nether_Craft_Carrots: + name: Craft Crate of Carrots + inputs: + Carrot: + material: CARROT_ITEM + amount: 2048 + outputs: + Crate of Carrots: + material: WOOD + durability: 0 + amount: 32 + display_name: Crate of Carrots + Nether_Craft_Cocoa: + name: Craft Crate of Cocoa + inputs: + Cocoa: + material: INK_SACK + durability: 3 + amount: 2048 + outputs: + Crate of Cocoa: + material: WOOD + durability: 0 + amount: 32 + display_name: Crate of Cocoa + Nether_Craft_Pumpkins: + name: Craft Crate of Pumpkins + inputs: + Pumpkin: + material: PUMPKIN + amount: 2048 + outputs: + Crate of Pumpkins: + material: WOOD + durability: 0 + amount: 32 + display_name: Crate of Pumpkins + Nether_Craft_Cacti: + name: Craft Crate of Cacti + inputs: + Catus: + material: CACTUS + amount: 2048 + outputs: + Crate of Cacti: + material: WOOD + durability: 0 + amount: 32 + display_name: Crate of Cacti + Nether_Craft_Bread: + name: Craft Crate of Bread + inputs: + Bread: + material: BREAD + amount: 2048 + outputs: + Crate of Bread: + material: WOOD + durability: 0 + amount: 32 + display_name: Crate of Bread + Nether_Craft_Wheat: + name: Craft Crate of Wheat + inputs: + Wheat: + material: WHEAT + amount: 2048 + outputs: + Crate of Bread: + material: WOOD + durability: 0 + amount: 32 + display_name: Crate of Wheat + Nether_Craft_Grass: + name: Craft Crate of Grass + inputs: + Grass: + material: LONG_GRASS + amount: 2048 + outputs: + Crate of Grass: + material: WOOD + durability: 0 + amount: 32 + display_name: Crate of Grass + Nether_Craft_Fish: + name: Craft Crate of Fish + inputs: + Fish: + material: COOKED_FISH + amount: 2048 + outputs: + Crate of Fish: + material: WOOD + durability: 0 + amount: 32 + display_name: Crate of Fish + Nether_Craft_Red_Rose: + name: Craft Crate of Red Rose + inputs: + Fish: + material: RED_ROSE + amount: 2048 + outputs: + Crate of Red Rose: + material: WOOD + durability: 0 + amount: 32 + display_name: Crate of Red Rose + Nether_Craft_Spider_Eyes: + name: Craft Crate of Spider Eyes + inputs: + Spider Eyes: + material: SPIDER_EYE + amount: 2048 + outputs: + Crate of Spider Eyes: + material: WOOD + durability: 0 + amount: 32 + display_name: Crate of Spider Eyes + Nether_Craft_Chicken: + name: Craft Crate of Chicken + inputs: + Cooked Chicken: + material: COOKED_CHICKEN + amount: 2048 + outputs: + Crate of Chicken: + material: WOOD + durability: 0 + amount: 32 + display_name: Crate of Chicken + Nether_Craft_Vine: + name: Craft Crate of Vine + inputs: + Vine: + material: VINE + amount: 2048 + outputs: + Crate of Vine: + material: WOOD + durability: 0 + amount: 32 + display_name: Crate of Vine + Nether_Craft_Brown_Mushrooms: + name: Craft Crate of Brown Mushrooms + inputs: + Brown Mushroom: + material: BROWN_MUSHROOM + amount: 2048 + outputs: + Crate of Brown Mushrooms: + material: WOOD + durability: 0 + amount: 32 + display_name: Crate of Brown Mushrooms + Nether_Craft_Red_Mushrooms: + name: Craft Crate of Red Mushrooms + inputs: + Red Mushroom: + material: RED_MUSHROOM + amount: 2048 + outputs: + Crate of Red Mushrooms: + material: WOOD + durability: 0 + amount: 32 + display_name: Crate of Red Mushrooms + Nether_Craft_Rotten_Flesh: + name: Craft Crate of Rotten Flesh + inputs: + Rotten Flesh: + material: ROTTEN_FLESH + amount: 2048 + outputs: + Crate of Rotten Flesh: + material: WOOD + durability: 0 + amount: 32 + display_name: Crate of Rotten Flesh + Nether_Craft_Vine: + name: Craft Crate of Vine + inputs: + Cooked Vine: + material: VINE + amount: 2048 + outputs: + Crate of Vine: + material: WOOD + durability: 0 + amount: 32 + display_name: Crate of Vine + Nether_Craft_Yellow_Flower: + name: Craft Crate of Yellow Flower + inputs: + Yellow Flower: + material: YELLOW_FLOWER + amount: 2048 + outputs: + Crate of Yellow Flower: + material: WOOD + durability: 0 + amount: 32 + display_name: Crate of Yellow Flower + Nether_Craft_Glass_Bottles: + name: Craft Crate of Glass Bottles + inputs: + Glass Bottles: + material: GLASS_BOTTLE + amount: 2048 + outputs: + Crate of Glass Bottles: + material: WOOD + durability: 0 + amount: 32 + display_name: Crate of Glass Bottles + Nether_Decraft_Steak: + name: Decraft Crate of Steak + outputs: + Cooked Beef: + material: COOKED_BEEF + amount: 2048 + inputs: + Crate of Steak: + material: WOOD + durability: 0 + amount: 32 + display_name: Crate of Steak + Nether_Decraft_Pork: + name: Decraft Crate of Pork + outputs: + Grilled Pork: + material: GRILLED_PORK + amount: 2048 + inputs: + Crate of Pork: + material: WOOD + durability: 0 + amount: 32 + display_name: Crate of Pork + Nether_Decraft_Melons: + name: Decraft Crate of Melons + outputs: + Melon Blocks: + material: MELON_BLOCK + amount: 2048 + inputs: + Crate of Melons: + material: WOOD + durability: 0 + amount: 32 + display_name: Crate of Melons + Nether_Decraft_Sugar: + name: Decraft Crate of Sugar + outputs: + Sugar: + material: SUGAR + amount: 2048 + inputs: + Crate of Sugar: + material: WOOD + durability: 0 + amount: 32 + display_name: Crate of Sugar + Nether_Decraft_Sugar_Cane: + name: Decraft Crate of Sugar Cane + outputs: + Sugar Cane: + material: SUGAR_CANE + amount: 2048 + inputs: + Crate of Sugar Cane: + material: WOOD + durability: 0 + amount: 32 + display_name: Crate of Sugar Cane + Nether_Decraft_Nether_Warts: + name: Decraft Crate of Nether Warts + outputs: + Nether Wart: + material: NETHER_STALK + amount: 2048 + inputs: + Crate of Nether Warts: + material: WOOD + durability: 0 + amount: 32 + display_name: Crate of Nether Warts + Nether_Decraft_Cookies: + name: Decraft Crate of Cookies + outputs: + Cookie: + material: COOKIE + amount: 2048 + inputs: + Crate of Cookies: + material: WOOD + durability: 0 + amount: 32 + display_name: Crate of Cookies + Nether_Decraft_Potatoes: + name: Decraft Crate of Potatoes + outputs: + Potato: + material: BAKED_POTATO + amount: 2048 + inputs: + Crate of Potatoes: + material: WOOD + durability: 0 + amount: 32 + display_name: Crate of Potatoes + Nether_Decraft_Carrots: + name: Decraft Crate of Carrots + outputs: + Carrot: + material: CARROT_ITEM + amount: 2048 + inputs: + Crate of Carrots: + material: WOOD + durability: 0 + amount: 32 + display_name: Crate of Carrots + Nether_Decraft_Cocoa: + name: Decraft Crate of Cocoa + outputs: + Cocoa: + material: INK_SACK + durability: 3 + amount: 2048 + inputs: + Crate of Cocoa: + material: WOOD + durability: 0 + amount: 32 + display_name: Crate of Cocoa + Nether_Decraft_Pumpkins: + name: Decraft Crate of Pumpkins + outputs: + Pumpkin: + material: PUMPKIN + amount: 2048 + inputs: + Crate of Pumpkins: + material: WOOD + durability: 0 + amount: 32 + display_name: Crate of Pumpkins + Nether_Decraft_Cacti: + name: Decraft Crate of Cacti + outputs: + Catus: + material: CACTUS + amount: 2048 + inputs: + Crate of Cacti: + material: WOOD + durability: 0 + amount: 32 + display_name: Crate of Cacti + Nether_Decraft_Bread: + name: Decraft Crate of Bread + outputs: + Bread: + material: BREAD + amount: 2048 + inputs: + Crate of Bread: + material: WOOD + durability: 0 + amount: 32 + display_name: Crate of Bread + Nether_Decraft_Wheat: + name: Decraft Crate of Wheat + outputs: + Wheat: + material: WHEAT + amount: 2048 + inputs: + Crate of Bread: + material: WOOD + durability: 0 + amount: 32 + display_name: Crate of Wheat + Nether_Decraft_Grass: + name: Decraft Crate of Grass + outputs: + Grass: + material: LONG_GRASS + amount: 2048 + inputs: + Crate of Grass: + material: WOOD + durability: 0 + amount: 32 + display_name: Crate of Grass + Nether_Decraft_Fish: + name: Decraft Crate of Fish + outputs: + Fish: + material: COOKED_FISH + amount: 2048 + inputs: + Crate of Fish: + material: WOOD + durability: 0 + amount: 32 + display_name: Crate of Fish + Nether_Decraft_Red_Rose: + name: Decraft Crate of Red Rose + outputs: + Fish: + material: RED_ROSE + amount: 2048 + inputs: + Crate of Red Rose: + material: WOOD + durability: 0 + amount: 32 + display_name: Crate of Red Rose + Nether_Decraft_Spider_Eyes: + name: Decraft Crate of Spider Eyes + outputs: + Spider Eyes: + material: SPIDER_EYE + amount: 2048 + inputs: + Crate of Spider Eyes: + material: WOOD + durability: 0 + amount: 32 + display_name: Crate of Spider Eyes + Nether_Decraft_Chicken: + name: Decraft Crate of Chicken + outputs: + Cooked Chicken: + material: COOKED_CHICKEN + amount: 2048 + inputs: + Crate of Chicken: + material: WOOD + durability: 0 + amount: 32 + display_name: Crate of Chicken + Nether_Decraft_Vine: + name: Decraft Crate of Vine + outputs: + Vine: + material: VINE + amount: 2048 + inputs: + Crate of Vine: + material: WOOD + durability: 0 + amount: 32 + display_name: Crate of Vine + Nether_Decraft_Brown_Mushrooms: + name: Decraft Crate of Brown Mushrooms + outputs: + Brown Mushroom: + material: BROWN_MUSHROOM + amount: 2048 + inputs: + Crate of Brown Mushrooms: + material: WOOD + durability: 0 + amount: 32 + display_name: Crate of Brown Mushrooms + Nether_Decraft_Red_Mushrooms: + name: Decraft Crate of Red Mushrooms + outputs: + Red Mushroom: + material: RED_MUSHROOM + amount: 2048 + inputs: + Crate of Red Mushrooms: + material: WOOD + durability: 0 + amount: 32 + display_name: Crate of Red Mushrooms + Nether_Decraft_Rotten_Flesh: + name: Decraft Crate of Rotten Flesh + outputs: + Rotten Flesh: + material: ROTTEN_FLESH + amount: 2048 + inputs: + Crate of Rotten Flesh: + material: WOOD + durability: 0 + amount: 32 + display_name: Crate of Rotten Flesh + Nether_Decraft_Vine: + name: Decraft Crate of Vine + outputs: + Cooked Vine: + material: VINE + amount: 2048 + inputs: + Crate of Vine: + material: WOOD + durability: 0 + amount: 32 + display_name: Crate of Vine + Nether_Decraft_Yellow_Flower: + name: Decraft Crate of Yellow Flower + outputs: + Yellow Flower: + material: YELLOW_FLOWER + amount: 2048 + inputs: + Crate of Yellow Flower: + material: WOOD + durability: 0 + amount: 32 + display_name: Crate of Yellow Flower + Nether_Decraft_Glass_Bottles: + name: Decraft Crate of Glass Bottles + outputs: + Glass Bottles: + material: GLASS_BOTTLE + amount: 2048 + inputs: + Crate of Glass Bottles: + material: WOOD + durability: 0 + amount: 32 + display_name: Crate of Glass Bottles + Emerald_XP_Bottle_0: + name: Brew XP Bottles - 1 inputs: - Emerald Block: + Crate of Glass Bottles: + material: WOOD + durability: 0 + display_name: Crate of Glass Bottles + amount: 96 + Crate of Carrots: + material: WOOD + durability: 0 + display_name: Crate of Carrots + amount: 48 + Crate of Melons: + material: WOOD + durability: 0 + display_name: Crate of Melons + amount: 16 + Crate of Cacti: + material: WOOD + durability: 0 + display_name: Crate of Cacti + amount: 128 + Crate of Red Rose: + material: WOOD + durability: 0 + display_name: Crate of Red Rose + amount: 4 + Crate of Rotten Flesh: + material: WOOD + durability: 0 + display_name: Crate of Rotten Flesh + amount: 64 + Crate of Red Mushrooms: + material: WOOD + durability: 0 + display_name: Crate of Red Mushrooms + amount: 16 + Crate of Vine: + material: WOOD + durability: 0 + display_name: Crate of Vine + amount: 16 + Crate of Bread: + material: WOOD + durability: 0 + display_name: Crate of Bread + amount: 64 + Crate of Pork: + material: WOOD + durability: 0 + display_name: Crate of Pork + amount: 16 + outputs: + Exp Bottle: material: EMERALD_BLOCK - amount: 24 - Diamond Block: - material: DIAMOND_BLOCK - amount: 24 - Gold Ore: - material: GOLD_ORE - amount: 8 - Slime Ball: - material: SLIME_BALL + amount: 66 + Emerald_XP_Bottle_1: + name: Brew XP Bottles - 2 + inputs: + Crate of Glass Bottles: + material: WOOD + durability: 0 + display_name: Crate of Glass Bottles + amount: 96 + Crate of Nether Warts: + material: WOOD + durability: 0 + display_name: Crate of Nether Warts + amount: 32 + Crate of Melons: + material: WOOD + durability: 0 + display_name: Crate of Melons + amount: 16 + Crate of Sugar Cane: + material: WOOD + durability: 0 + display_name: Crate of Sugar Cane + amount: 64 + Crate of Yellow Flower: + material: WOOD + durability: 0 + display_name: Crate of Yellow Flower amount: 8 - Anvil: - material: ANVIL + Crate of Rotten Flesh: + material: WOOD + durability: 0 + display_name: Crate of Rotten Flesh + amount: 64 + Crate of Brown Mushrooms: + material: WOOD + durability: 0 + display_name: Crate of Brown Mushrooms + amount: 32 + Crate of Vine: + material: WOOD + durability: 0 + display_name: Crate of Vine + amount: 16 + Crate of Potatoes: + material: WOOD + durability: 0 + display_name: Crate of Potatoes + amount: 128 + Crate of Chicken: + material: WOOD + durability: 0 + display_name: Crate of Chicken amount: 8 outputs: - Aspect of Terra: - material: DIAMOND - amount: 1 - display_name: Aspect of Terra - lore: A concentrated essence of Terra - Forge_Aspect_of_End: - name: Forge Aspect of End - production_time: 64 - inputs: - Ender Pearl: - material: ENDER_PEARL - amount: 256 - Ender Chest: - material: ENDER_CHEST - amount: 256 - Endstone: - material: ENDER_STONE - amount: 1024 - outputs: - Aspect of End: - material: FLINT - amount: 1 - display_name: Aspect of End - lore: A concentrated essence of the End - Forge_Aspect_of_Nether: - name: Forge Aspect of Nether - production_time: 64 + Exp Bottle: + material: EMERALD_BLOCK + amount: 66 + Emerald_XP_Bottle_2: + name: Brew XP Bottles - 3 inputs: - Ghast Tears: - material: GHAST_TEAR + Crate of Glass Bottles: + material: WOOD + durability: 0 + display_name: Crate of Glass Bottles + amount: 96 + Crate of Bread: + material: WOOD + durability: 0 + display_name: Crate of Wheat + amount: 64 + Crate of Cocoa: + material: WOOD + durability: 0 + display_name: Crate of Cocoa + amount: 8 + Crate of Pumpkins: + material: WOOD + durability: 0 + display_name: Crate of Pumpkins + amount: 64 + Crate of Cacti: + material: WOOD + durability: 0 + display_name: Crate of Cacti + amount: 128 + Crate of Red Rose: + material: WOOD + durability: 0 + display_name: Crate of Red Rose + amount: 4 + Crate of Spider Eyes: + material: WOOD + durability: 0 + display_name: Crate of Spider Eyes amount: 16 - Quartz Ore: - material: QUARTZ_ORE - amount: 512 - Glowstone: - material: GLOWSTONE - amount: 512 + Crate of Red Mushrooms: + material: WOOD + durability: 0 + display_name: Crate of Red Mushrooms + amount: 8 + Crate of Grass: + material: WOOD + durability: 0 + display_name: Crate of Grass + amount: 16 + durability: 1 + Crate of Chicken: + material: WOOD + durability: 0 + display_name: Crate of Chicken + amount: 8 outputs: - Aspect of Nether: - material: MAGMA_CREAM - amount: 1 - display_name: Aspect of Nether - lore: A concentrated essence of the Nether - Craft_Eye_of_Ender: - name: Craft Eye of Ender - production_time: 1 + Exp Bottle: + material: EMERALD_BLOCK + amount: 66 + Emerald_XP_Bottle_3: + name: Brew XP Bottles - 4 inputs: - Blaze Powder: - material: BLAZE_POWDER - amount: 265 - Ender Pearl: - material: ENDER_PEARL - amount: 265 + Crate of Glass Bottles: + material: WOOD + durability: 0 + display_name: Crate of Glass Bottles + amount: 96 + Crate of Nether Warts: + material: WOOD + durability: 0 + display_name: Crate of Nether Warts + amount: 32 + Crate of Pumpkins: + material: WOOD + durability: 0 + display_name: Crate of Pumpkins + amount: 64 + Crate of Sugar: + material: WOOD + durability: 0 + display_name: Crate of Sugar + amount: 64 + Crate of Yellow Flower: + material: WOOD + durability: 0 + display_name: Crate of Yellow Flower + amount: 8 + Crate of Spider Eyes: + material: WOOD + durability: 0 + display_name: Crate of Spider Eyes + amount: 16 + Crate of Brown Mushrooms: + material: WOOD + durability: 0 + display_name: Crate of Brown Mushrooms + amount: 32 + Crate of Grass: + material: WOOD + durability: 0 + display_name: Crate of Grass + amount: 32 + Crate of Cookies: + material: WOOD + durability: 0 + display_name: Crate of Cookies + amount: 128 + Crate of Steak: + material: WOOD + durability: 0 + display_name: Crate of Steak + amount: 16 outputs: - Eye of Ender: - material: EYE_OF_ENDER - amount: 256 + Exp Bottle: + material: EMERALD_BLOCK + amount: 66 From da67888ace9ddc295445787238571a1311e07255 Mon Sep 17 00:00:00 2001 From: ribagi Date: Thu, 24 Jul 2014 13:39:08 -0700 Subject: [PATCH 05/52] Update config.yml --- config.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/config.yml b/config.yml index 769112ad..fe3bbc3a 100644 --- a/config.yml +++ b/config.yml @@ -7573,7 +7573,7 @@ production_recipes: durability: 0 amount: 32 display_name: Crate of Fish - Nether_Craft_Red_Rose: + Nether_Craft_Red_Rose: name: Craft Crate of Red Rose inputs: Fish: @@ -7886,7 +7886,7 @@ production_recipes: durability: 0 amount: 32 display_name: Crate of Fish - Nether_Decraft_Red_Rose: + Nether_Decraft_Red_Rose: name: Decraft Crate of Red Rose outputs: Fish: @@ -8006,7 +8006,7 @@ production_recipes: durability: 0 amount: 32 display_name: Crate of Glass Bottles - Emerald_XP_Bottle_0: + Emerald_XP_Bottle_0: name: Brew XP Bottles - 1 inputs: Crate of Glass Bottles: @@ -8076,12 +8076,12 @@ production_recipes: durability: 0 display_name: Crate of Nether Warts amount: 32 - Crate of Melons: + Crate of Melons: material: WOOD durability: 0 display_name: Crate of Melons amount: 16 - Crate of Sugar Cane: + Crate of Sugar Cane: material: WOOD durability: 0 display_name: Crate of Sugar Cane From 006a997539264c0f221ac5f6b93859079e744fa8 Mon Sep 17 00:00:00 2001 From: ribagi Date: Thu, 24 Jul 2014 14:07:57 -0700 Subject: [PATCH 06/52] Update config.yml --- config.yml | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/config.yml b/config.yml index fe3bbc3a..f21ecf86 100644 --- a/config.yml +++ b/config.yml @@ -2577,6 +2577,12 @@ production_factories: material: COAL durability: 1 inputs: + Bastion: + material: SPONGE + amount: 4 + Diamond: + material: DIAMOND + amount: 1 recipes: - Nether_Craft_Glass_Bottles - Nether_Craft_Pork @@ -2614,6 +2620,12 @@ production_factories: material: COAL durability: 1 inputs: + Bastion: + material: SPONGE + amount: 4 + Iron Block: + material: IRON_BLOCK + amount: 1 recipes: - Nether_Decraft_Glass_Bottles - Nether_Decraft_Pork @@ -2652,8 +2664,8 @@ production_factories: durability: 1 inputs: Emerald: - material: EMERALD - amount: 50 + material: EMERALD_BLOCK + amount: 128 recipes: - Emerald_XP_Bottle_0 - Emerald_XP_Bottle_1 From f0bfcb8ec5da8b2d87f6e1349d2a11f2c14bec2c Mon Sep 17 00:00:00 2001 From: ribagi Date: Tue, 5 Aug 2014 18:48:45 -0700 Subject: [PATCH 07/52] Update config.yml --- config.yml | 322 +++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 253 insertions(+), 69 deletions(-) diff --git a/config.yml b/config.yml index f21ecf86..81443691 100644 --- a/config.yml +++ b/config.yml @@ -1891,6 +1891,12 @@ production_factories: - Mutate_Dark_Oak_Saplings - Mutate_Podzol - Mutate_Grassless_Dirt + - Sequencing_Sunflower + - Sequencing_Lilac + - Sequencing_Double_Tallgrass + - Sequencing_Large_Fern + - Sequencing_Rose_Bush + - Sequencing_Peony repair_multiple: 10 repair_inputs: Oak Saplings: @@ -2577,12 +2583,15 @@ production_factories: material: COAL durability: 1 inputs: - Bastion: - material: SPONGE - amount: 4 - Diamond: - material: DIAMOND - amount: 1 + Redstone Block: + material: REDSTONE_BLOCK + amount: 16 + Iron Block: + material: IRON_BLOCK + amount: 24 + Chest: + material: CHEST + amount: 64 recipes: - Nether_Craft_Glass_Bottles - Nether_Craft_Pork @@ -2608,7 +2617,7 @@ production_factories: - Nether_Craft_Chicken - Nether_Craft_Spider_Eyes - Nether_Craft_Cookie - repair_multiple: 2 + repair_multiple: 10 repair_inputs: Bastion: material: SPONGE @@ -2620,12 +2629,15 @@ production_factories: material: COAL durability: 1 inputs: - Bastion: - material: SPONGE - amount: 4 + Redstone Block: + material: REDSTONE_BLOCK + amount: 24 Iron Block: material: IRON_BLOCK - amount: 1 + amount: 16 + Chest: + material: CHEST + amount: 64 recipes: - Nether_Decraft_Glass_Bottles - Nether_Decraft_Pork @@ -2651,7 +2663,7 @@ production_factories: - Nether_Decraft_Chicken - Nether_Decraft_Spider_Eyes - Nether_Decraft_Cookie - repair_multiple: 2 + repair_multiple: 10 repair_inputs: Bastion: material: SPONGE @@ -2665,16 +2677,16 @@ production_factories: inputs: Emerald: material: EMERALD_BLOCK - amount: 128 + amount: 420 recipes: - Emerald_XP_Bottle_0 - Emerald_XP_Bottle_1 - Emerald_XP_Bottle_2 - Emerald_XP_Bottle_3 - repair_multiple: 5 + repair_multiple: 10 repair_inputs: Emerald: - material: EMERALD + material: EMERALD_BLOCK production_recipes: Wood_XP_Bottle_0: name: Brew XP Bottles - 1 @@ -7404,6 +7416,7 @@ production_recipes: durability: 0 amount: 32 display_name: Crate of Steak + lore: Crate of Steak Nether_Craft_Pork: name: Craft Crate of Pork inputs: @@ -7416,6 +7429,7 @@ production_recipes: durability: 0 amount: 32 display_name: Crate of Pork + lore: Crate of Pork Nether_Craft_Melons: name: Craft Crate of Melons inputs: @@ -7428,6 +7442,7 @@ production_recipes: durability: 0 amount: 32 display_name: Crate of Melons + lore: Crate of Melons Nether_Craft_Sugar: name: Craft Crate of Sugar inputs: @@ -7440,6 +7455,7 @@ production_recipes: durability: 0 amount: 32 display_name: Crate of Sugar + lore: Crate of Sugar Nether_Craft_Sugar_Cane: name: Craft Crate of Sugar Cane inputs: @@ -7452,6 +7468,7 @@ production_recipes: durability: 0 amount: 32 display_name: Crate of Sugar Cane + lore: Crate of Sugar Cane Nether_Craft_Nether_Warts: name: Craft Crate of Nether Warts inputs: @@ -7464,6 +7481,7 @@ production_recipes: durability: 0 amount: 32 display_name: Crate of Nether Warts + lore: Crate of Nether Warts Nether_Craft_Cookies: name: Craft Crate of Cookies inputs: @@ -7476,6 +7494,7 @@ production_recipes: durability: 0 amount: 32 display_name: Crate of Cookies + lore: Crate of Cookies Nether_Craft_Potatoes: name: Craft Crate of Potatoes inputs: @@ -7488,6 +7507,7 @@ production_recipes: durability: 0 amount: 32 display_name: Crate of Potatoes + lore: Crate of Potatoes Nether_Craft_Carrots: name: Craft Crate of Carrots inputs: @@ -7500,6 +7520,7 @@ production_recipes: durability: 0 amount: 32 display_name: Crate of Carrots + lore: Crate of Carrots Nether_Craft_Cocoa: name: Craft Crate of Cocoa inputs: @@ -7513,6 +7534,7 @@ production_recipes: durability: 0 amount: 32 display_name: Crate of Cocoa + lore: Crate of Cocoa Nether_Craft_Pumpkins: name: Craft Crate of Pumpkins inputs: @@ -7525,6 +7547,7 @@ production_recipes: durability: 0 amount: 32 display_name: Crate of Pumpkins + lore: Crate of Pumpkins Nether_Craft_Cacti: name: Craft Crate of Cacti inputs: @@ -7537,6 +7560,7 @@ production_recipes: durability: 0 amount: 32 display_name: Crate of Cacti + lore: Crate of Cacti Nether_Craft_Bread: name: Craft Crate of Bread inputs: @@ -7549,6 +7573,7 @@ production_recipes: durability: 0 amount: 32 display_name: Crate of Bread + lore: Crate of Bread Nether_Craft_Wheat: name: Craft Crate of Wheat inputs: @@ -7561,6 +7586,7 @@ production_recipes: durability: 0 amount: 32 display_name: Crate of Wheat + lore: Crate of Wheat Nether_Craft_Grass: name: Craft Crate of Grass inputs: @@ -7573,6 +7599,7 @@ production_recipes: durability: 0 amount: 32 display_name: Crate of Grass + lore: Crate of Grass Nether_Craft_Fish: name: Craft Crate of Fish inputs: @@ -7585,6 +7612,7 @@ production_recipes: durability: 0 amount: 32 display_name: Crate of Fish + lore: Crate of Fish Nether_Craft_Red_Rose: name: Craft Crate of Red Rose inputs: @@ -7597,6 +7625,7 @@ production_recipes: durability: 0 amount: 32 display_name: Crate of Red Rose + lore: Crate of Red Rose Nether_Craft_Spider_Eyes: name: Craft Crate of Spider Eyes inputs: @@ -7609,6 +7638,7 @@ production_recipes: durability: 0 amount: 32 display_name: Crate of Spider Eyes + lore: Crate of Spider Eyes Nether_Craft_Chicken: name: Craft Crate of Chicken inputs: @@ -7621,6 +7651,7 @@ production_recipes: durability: 0 amount: 32 display_name: Crate of Chicken + lore: Crate of Chicken Nether_Craft_Vine: name: Craft Crate of Vine inputs: @@ -7633,6 +7664,7 @@ production_recipes: durability: 0 amount: 32 display_name: Crate of Vine + lore: Crate of Vine Nether_Craft_Brown_Mushrooms: name: Craft Crate of Brown Mushrooms inputs: @@ -7645,6 +7677,7 @@ production_recipes: durability: 0 amount: 32 display_name: Crate of Brown Mushrooms + lore: Crate of Brown Mushrooms Nether_Craft_Red_Mushrooms: name: Craft Crate of Red Mushrooms inputs: @@ -7657,6 +7690,7 @@ production_recipes: durability: 0 amount: 32 display_name: Crate of Red Mushrooms + lore: Crate of Red Mushrooms Nether_Craft_Rotten_Flesh: name: Craft Crate of Rotten Flesh inputs: @@ -7669,10 +7703,11 @@ production_recipes: durability: 0 amount: 32 display_name: Crate of Rotten Flesh + lore: Crate of Rotten Flesh Nether_Craft_Vine: name: Craft Crate of Vine inputs: - Cooked Vine: + Vine: material: VINE amount: 2048 outputs: @@ -7681,6 +7716,7 @@ production_recipes: durability: 0 amount: 32 display_name: Crate of Vine + lore: Crate of Vine Nether_Craft_Yellow_Flower: name: Craft Crate of Yellow Flower inputs: @@ -7693,6 +7729,7 @@ production_recipes: durability: 0 amount: 32 display_name: Crate of Yellow Flower + lore: Crate of Yellow Flower Nether_Craft_Glass_Bottles: name: Craft Crate of Glass Bottles inputs: @@ -7705,370 +7742,407 @@ production_recipes: durability: 0 amount: 32 display_name: Crate of Glass Bottles + lore: Crate of Glass Bottles Nether_Decraft_Steak: name: Decraft Crate of Steak - outputs: + inputs: Cooked Beef: material: COOKED_BEEF amount: 2048 - inputs: + outputs: Crate of Steak: material: WOOD durability: 0 amount: 32 display_name: Crate of Steak + lore: Crate of Steak Nether_Decraft_Pork: name: Decraft Crate of Pork - outputs: + inputs: Grilled Pork: material: GRILLED_PORK amount: 2048 - inputs: + outputs: Crate of Pork: material: WOOD durability: 0 amount: 32 display_name: Crate of Pork + lore: Crate of Pork Nether_Decraft_Melons: name: Decraft Crate of Melons - outputs: + inputs: Melon Blocks: material: MELON_BLOCK amount: 2048 - inputs: + outputs: Crate of Melons: material: WOOD durability: 0 amount: 32 display_name: Crate of Melons + lore: Crate of Melons Nether_Decraft_Sugar: name: Decraft Crate of Sugar - outputs: + inputs: Sugar: material: SUGAR amount: 2048 - inputs: + outputs: Crate of Sugar: material: WOOD durability: 0 amount: 32 display_name: Crate of Sugar + lore: Crate of Sugar Nether_Decraft_Sugar_Cane: name: Decraft Crate of Sugar Cane - outputs: + inputs: Sugar Cane: material: SUGAR_CANE amount: 2048 - inputs: + outputs: Crate of Sugar Cane: material: WOOD durability: 0 amount: 32 display_name: Crate of Sugar Cane + lore: Crate of Sugar Cane Nether_Decraft_Nether_Warts: name: Decraft Crate of Nether Warts - outputs: + inputs: Nether Wart: material: NETHER_STALK amount: 2048 - inputs: + outputs: Crate of Nether Warts: material: WOOD durability: 0 amount: 32 display_name: Crate of Nether Warts + lore: Crate of Nether Warts Nether_Decraft_Cookies: name: Decraft Crate of Cookies - outputs: + inputs: Cookie: material: COOKIE amount: 2048 - inputs: + outputs: Crate of Cookies: material: WOOD durability: 0 amount: 32 display_name: Crate of Cookies + lore: Crate of Cookies Nether_Decraft_Potatoes: name: Decraft Crate of Potatoes - outputs: + inputs: Potato: material: BAKED_POTATO amount: 2048 - inputs: + outputs: Crate of Potatoes: material: WOOD durability: 0 amount: 32 display_name: Crate of Potatoes + lore: Crate of Potatoes Nether_Decraft_Carrots: name: Decraft Crate of Carrots - outputs: + inputs: Carrot: material: CARROT_ITEM amount: 2048 - inputs: + outputs: Crate of Carrots: material: WOOD durability: 0 amount: 32 display_name: Crate of Carrots + lore: Crate of Carrots Nether_Decraft_Cocoa: name: Decraft Crate of Cocoa - outputs: + inputs: Cocoa: material: INK_SACK durability: 3 amount: 2048 - inputs: + outputs: Crate of Cocoa: material: WOOD durability: 0 amount: 32 display_name: Crate of Cocoa + lore: Crate of Cocoa Nether_Decraft_Pumpkins: name: Decraft Crate of Pumpkins - outputs: + inputs: Pumpkin: material: PUMPKIN amount: 2048 - inputs: + outputs: Crate of Pumpkins: material: WOOD durability: 0 amount: 32 display_name: Crate of Pumpkins + lore: Crate of Pumpkins Nether_Decraft_Cacti: name: Decraft Crate of Cacti - outputs: + inputs: Catus: material: CACTUS amount: 2048 - inputs: + outputs: Crate of Cacti: material: WOOD durability: 0 amount: 32 display_name: Crate of Cacti + lore: Crate of Cacti Nether_Decraft_Bread: name: Decraft Crate of Bread - outputs: + inputs: Bread: material: BREAD amount: 2048 - inputs: + outputs: Crate of Bread: material: WOOD durability: 0 amount: 32 display_name: Crate of Bread + lore: Crate of Bread Nether_Decraft_Wheat: name: Decraft Crate of Wheat - outputs: + inputs: Wheat: material: WHEAT amount: 2048 - inputs: + outputs: Crate of Bread: material: WOOD durability: 0 amount: 32 display_name: Crate of Wheat + lore: Crate of Wheat Nether_Decraft_Grass: name: Decraft Crate of Grass - outputs: + inputs: Grass: material: LONG_GRASS amount: 2048 - inputs: + outputs: Crate of Grass: material: WOOD durability: 0 amount: 32 display_name: Crate of Grass + lore: Crate of Grass Nether_Decraft_Fish: name: Decraft Crate of Fish - outputs: + inputs: Fish: material: COOKED_FISH amount: 2048 - inputs: + outputs: Crate of Fish: material: WOOD durability: 0 amount: 32 display_name: Crate of Fish + lore: Crate of Fish Nether_Decraft_Red_Rose: name: Decraft Crate of Red Rose - outputs: + inputs: Fish: material: RED_ROSE amount: 2048 - inputs: + outputs: Crate of Red Rose: material: WOOD durability: 0 amount: 32 display_name: Crate of Red Rose + lore: Crate of Red Rose Nether_Decraft_Spider_Eyes: name: Decraft Crate of Spider Eyes - outputs: + inputs: Spider Eyes: material: SPIDER_EYE amount: 2048 - inputs: + outputs: Crate of Spider Eyes: material: WOOD durability: 0 amount: 32 display_name: Crate of Spider Eyes + lore: Crate of Spider Eyes Nether_Decraft_Chicken: name: Decraft Crate of Chicken - outputs: + inputs: Cooked Chicken: material: COOKED_CHICKEN amount: 2048 - inputs: + outputs: Crate of Chicken: material: WOOD durability: 0 amount: 32 display_name: Crate of Chicken + lore: Crate of Chicken Nether_Decraft_Vine: name: Decraft Crate of Vine - outputs: + inputs: Vine: material: VINE amount: 2048 - inputs: + outputs: Crate of Vine: material: WOOD durability: 0 amount: 32 display_name: Crate of Vine + lore: Crate of Vine Nether_Decraft_Brown_Mushrooms: name: Decraft Crate of Brown Mushrooms - outputs: + inputs: Brown Mushroom: material: BROWN_MUSHROOM amount: 2048 - inputs: + outputs: Crate of Brown Mushrooms: material: WOOD durability: 0 amount: 32 display_name: Crate of Brown Mushrooms + lore: Crate of Brown Mushrooms Nether_Decraft_Red_Mushrooms: name: Decraft Crate of Red Mushrooms - outputs: + inputs: Red Mushroom: material: RED_MUSHROOM amount: 2048 - inputs: + outputs: Crate of Red Mushrooms: material: WOOD durability: 0 amount: 32 display_name: Crate of Red Mushrooms + lore: Crate of Red Mushrooms Nether_Decraft_Rotten_Flesh: name: Decraft Crate of Rotten Flesh - outputs: + inputs: Rotten Flesh: material: ROTTEN_FLESH amount: 2048 - inputs: + outputs: Crate of Rotten Flesh: material: WOOD durability: 0 amount: 32 display_name: Crate of Rotten Flesh + lore: Crate of Rotten Flesh Nether_Decraft_Vine: name: Decraft Crate of Vine - outputs: - Cooked Vine: + inputs: + Vine: material: VINE amount: 2048 - inputs: + outputs: Crate of Vine: material: WOOD durability: 0 amount: 32 display_name: Crate of Vine + lore: Crate of Vine Nether_Decraft_Yellow_Flower: name: Decraft Crate of Yellow Flower - outputs: + inputs: Yellow Flower: material: YELLOW_FLOWER amount: 2048 - inputs: + outputs: Crate of Yellow Flower: material: WOOD durability: 0 amount: 32 display_name: Crate of Yellow Flower + lore: Crate of Yellow Flower Nether_Decraft_Glass_Bottles: name: Decraft Crate of Glass Bottles - outputs: + inputs: Glass Bottles: material: GLASS_BOTTLE amount: 2048 - inputs: + outputs: Crate of Glass Bottles: material: WOOD durability: 0 amount: 32 display_name: Crate of Glass Bottles + lore: Crate of Glass Bottles Emerald_XP_Bottle_0: name: Brew XP Bottles - 1 inputs: Crate of Glass Bottles: material: WOOD durability: 0 + lore: Crate of Glass Bottles display_name: Crate of Glass Bottles amount: 96 Crate of Carrots: material: WOOD durability: 0 + lore: Crate of Carrots display_name: Crate of Carrots amount: 48 Crate of Melons: material: WOOD durability: 0 + lore: Crate of Melons display_name: Crate of Melons amount: 16 Crate of Cacti: material: WOOD durability: 0 + lore: Crate of Cacti display_name: Crate of Cacti amount: 128 Crate of Red Rose: material: WOOD durability: 0 + lore: Crate of Red Rose display_name: Crate of Red Rose amount: 4 Crate of Rotten Flesh: material: WOOD durability: 0 + lore: Crate of Rotten Flesh display_name: Crate of Rotten Flesh amount: 64 Crate of Red Mushrooms: material: WOOD durability: 0 + lore: Crate of Red Mushrooms display_name: Crate of Red Mushrooms amount: 16 Crate of Vine: material: WOOD durability: 0 + lore: Crate of Vine display_name: Crate of Vine amount: 16 Crate of Bread: material: WOOD durability: 0 + lore: Crate of Bread display_name: Crate of Bread amount: 64 Crate of Pork: material: WOOD durability: 0 + lore: Crate of Pork display_name: Crate of Pork amount: 16 outputs: @@ -8081,51 +8155,61 @@ production_recipes: Crate of Glass Bottles: material: WOOD durability: 0 + lore: Crate of Glass Bottles display_name: Crate of Glass Bottles amount: 96 Crate of Nether Warts: material: WOOD durability: 0 + lore: Crate of Nether Warts display_name: Crate of Nether Warts amount: 32 Crate of Melons: material: WOOD durability: 0 + lore: Crate of Melons display_name: Crate of Melons amount: 16 Crate of Sugar Cane: material: WOOD durability: 0 + lore: Crate of Sugar Cane display_name: Crate of Sugar Cane amount: 64 Crate of Yellow Flower: material: WOOD durability: 0 + lore: Crate of Yellow Flower display_name: Crate of Yellow Flower amount: 8 Crate of Rotten Flesh: material: WOOD durability: 0 + lore: Crate of Rotten Flesh display_name: Crate of Rotten Flesh amount: 64 Crate of Brown Mushrooms: material: WOOD durability: 0 + lore: Crate of Brown Mushrooms display_name: Crate of Brown Mushrooms amount: 32 Crate of Vine: material: WOOD durability: 0 + lore: Crate of Vine display_name: Crate of Vine amount: 16 Crate of Potatoes: material: WOOD durability: 0 + lore: Crate of Potatoes display_name: Crate of Potatoes amount: 128 Crate of Chicken: material: WOOD durability: 0 + lore: Crate of Chicken display_name: Crate of Chicken amount: 8 outputs: @@ -8138,52 +8222,62 @@ production_recipes: Crate of Glass Bottles: material: WOOD durability: 0 + lore: Crate of Glass Bottles display_name: Crate of Glass Bottles amount: 96 Crate of Bread: material: WOOD durability: 0 + lore: Crate of Wheat display_name: Crate of Wheat amount: 64 Crate of Cocoa: material: WOOD durability: 0 + lore: Crate of Cocoa display_name: Crate of Cocoa amount: 8 Crate of Pumpkins: material: WOOD durability: 0 + lore: Crate of Pumpkins display_name: Crate of Pumpkins amount: 64 Crate of Cacti: material: WOOD durability: 0 + lore: Crate of Cacti display_name: Crate of Cacti amount: 128 Crate of Red Rose: material: WOOD durability: 0 + lore: Crate of Red Rose display_name: Crate of Red Rose amount: 4 Crate of Spider Eyes: material: WOOD durability: 0 + lore: Crate of Spider Eyes display_name: Crate of Spider Eyes amount: 16 Crate of Red Mushrooms: material: WOOD durability: 0 + lore: Crate of Red Mushrooms display_name: Crate of Red Mushrooms amount: 8 Crate of Grass: material: WOOD durability: 0 + lore: Crate of Grass display_name: Crate of Grass amount: 16 durability: 1 Crate of Chicken: material: WOOD durability: 0 + lore: Crate of Chicken display_name: Crate of Chicken amount: 8 outputs: @@ -8196,54 +8290,144 @@ production_recipes: Crate of Glass Bottles: material: WOOD durability: 0 + lore: Crate of Glass Bottles display_name: Crate of Glass Bottles amount: 96 Crate of Nether Warts: material: WOOD durability: 0 + lore: Crate of Nether Warts display_name: Crate of Nether Warts amount: 32 Crate of Pumpkins: material: WOOD durability: 0 + lore: Crate of Pumpkins display_name: Crate of Pumpkins amount: 64 Crate of Sugar: material: WOOD durability: 0 + lore: Crate of Sugar display_name: Crate of Sugar amount: 64 Crate of Yellow Flower: material: WOOD durability: 0 + lore: Crate of Yellow Flower display_name: Crate of Yellow Flower amount: 8 Crate of Spider Eyes: material: WOOD durability: 0 + lore: Crate of Spider Eyes display_name: Crate of Spider Eyes amount: 16 Crate of Brown Mushrooms: material: WOOD durability: 0 + lore: Crate of Brown Mushrooms display_name: Crate of Brown Mushrooms amount: 32 Crate of Grass: material: WOOD durability: 0 + lore: Crate of Grass display_name: Crate of Grass amount: 32 Crate of Cookies: material: WOOD durability: 0 + lore: Crate of Cookies display_name: Crate of Cookies amount: 128 Crate of Steak: material: WOOD durability: 0 + lore: Crate of Steak display_name: Crate of Steak amount: 16 outputs: Exp Bottle: material: EMERALD_BLOCK amount: 66 + Sequencing_Sunflower: + name: Sequencing Sunflower + inputs: + Dandelion: + material: YELLOW_FLOWER + amount: 8 + Sugar Cane: + material: SUGAR_CANE + amount: 8 + outputs: + Sunflower: + material: DOUBLE_PLANT + amount: 4 + durability: 0 + Sequencing_Lilac: + name: Sequencing Lilac + inputs: + Poppy: + material: RED_ROSE + amount: 8 + Oak Sapling: + material: SAPLING + amount: 8 + outputs: + Lilac: + material: DOUBLE_PLANT + amount: 4 + durability: 1 + Sequencing_Double_Tallgrass: + name: Sequencing Double Tallgrass + inputs: + Grass: + material: LONG_GRASS + amount: 16 + durability: 1 + outputs: + Double Tallgrass: + material: DOUBLE_PLANT + amount: 4 + durability: 2 + Sequencing_Large_Fern: + name: Sequencing Large Fern + inputs: + Grass: + material: LONG_GRASS + amount: 16 + durability: 1 + outputs: + Large Fern: + material: DOUBLE_PLANT + amount: 4 + durability: 3 + Sequencing_Rose_Bush: + name: Sequencing Rose Bush + inputs: + Poppy: + material: RED_ROSE + amount: 8 + Cactus: + material: CACTUS + amount: 8 + outputs: + Rose Bush: + material: DOUBLE_PLANT + amount: 4 + durability: 4 + Sequencing_Peony: + name: Sequencing Peony + inputs: + Poppy: + material: RED_ROSE + amount: 8 + Oak Leaves: + material: LEAVES + amount: 8 + outputs: + Peony: + material: DOUBLE_PLANT + amount: 4 + durability: 5 From 99716b056eeb92a23958045976f1508dc5363852 Mon Sep 17 00:00:00 2001 From: ribagi Date: Tue, 12 Aug 2014 12:33:27 -0700 Subject: [PATCH 08/52] Update config.yml --- config.yml | 1215 +++++++--------------------------------------------- 1 file changed, 156 insertions(+), 1059 deletions(-) diff --git a/config.yml b/config.yml index 81443691..0d59d6a1 100644 --- a/config.yml +++ b/config.yml @@ -83,6 +83,19 @@ production_general: update_cycle: 20 repair_period: 28 disrepair_period: 14 +nether_general: + disable_portals: true + nether_scale: 8 + world_name: world + nether_name: world_nether + teleport_platform_material_nether_factory: OBSIDIAN + marker_material_nether_factory: COAL_BLOCK + marker_max_distance: 64 + allow_reinforcement_creation_above_teleport_platform: false + allow_block_placement_above_teleport_platform: true + teleport_platform_invunerable: false + regenerate_teleport_block_on_teleport: false + remove_blocks_above_teleport_platform_on_teleport: true printing_presses: fuel: Charcoal: @@ -1890,7 +1903,7 @@ production_factories: - Mutate_Acacia_Saplings - Mutate_Dark_Oak_Saplings - Mutate_Podzol - - Mutate_Grassless_Dirt + - Mutate_Grassless_Dirt - Sequencing_Sunflower - Sequencing_Lilac - Sequencing_Double_Tallgrass @@ -2576,117 +2589,39 @@ production_factories: amount: 1 display_name: Smaragdus lore: An item used to create a Bastion Block - Nether_Compactor: - name: Nether Compactor - fuel: - Charcoal: - material: COAL - durability: 1 - inputs: - Redstone Block: - material: REDSTONE_BLOCK - amount: 16 - Iron Block: - material: IRON_BLOCK - amount: 24 - Chest: - material: CHEST - amount: 64 - recipes: - - Nether_Craft_Glass_Bottles - - Nether_Craft_Pork - - Nether_Craft_Melons - - Nether_Craft_Sugar - - Nether_Craft_Nether_Warts - - Nether_Craft_Cookies - - Nether_Craft_Potatoes - - Nether_Craft_Carrots - - Nether_Craft_Cocoa - - Nether_Craft_Pumpkins - - Nether_Craft_Cacti - - Nether_Craft_Bread - - Nether_Craft_Steak - - Nether_Craft_Wheat - - Nether_Craft_Fish - - Nether_Craft_Red_Rose - - Nether_Craft_Yellow_Flower - - Nether_Craft_Rotten_Flesh - - Nether_Craft_Red_Mushroom - - Nether_Craft_Brown_Mushroom - - Nether_Craft_Vines - - Nether_Craft_Chicken - - Nether_Craft_Spider_Eyes - - Nether_Craft_Cookie - repair_multiple: 10 - repair_inputs: - Bastion: - material: SPONGE - amount: 1 - Nether_Decompactor: - name: Nether Decompactor - fuel: - Charcoal: - material: COAL - durability: 1 - inputs: - Redstone Block: - material: REDSTONE_BLOCK - amount: 24 - Iron Block: - material: IRON_BLOCK - amount: 16 - Chest: - material: CHEST - amount: 64 - recipes: - - Nether_Decraft_Glass_Bottles - - Nether_Decraft_Pork - - Nether_Decraft_Melons - - Nether_Decraft_Sugar - - Nether_Decraft_Nether_Warts - - Nether_Decraft_Cookies - - Nether_Decraft_Potatoes - - Nether_Decraft_Carrots - - Nether_Decraft_Cocoa - - Nether_Decraft_Pumpkins - - Nether_Decraft_Cacti - - Nether_Decraft_Bread - - Nether_Decraft_Steak - - Nether_Decraft_Wheat - - Nether_Decraft_Fish - - Nether_Decraft_Red_Rose - - Nether_Decraft_Yellow_Flower - - Nether_Decraft_Rotten_Flesh - - Nether_Decraft_Red_Mushroom - - Nether_Decraft_Brown_Mushroom - - Nether_Decraft_Vines - - Nether_Decraft_Chicken - - Nether_Decraft_Spider_Eyes - - Nether_Decraft_Cookie - repair_multiple: 10 - repair_inputs: - Bastion: - material: SPONGE - amount: 1 - Emerald_Cauldron: - name: Emerald Cauldron - fuel: - Charcoal: - material: COAL - durability: 1 - inputs: - Emerald: - material: EMERALD_BLOCK - amount: 420 - recipes: - - Emerald_XP_Bottle_0 - - Emerald_XP_Bottle_1 - - Emerald_XP_Bottle_2 - - Emerald_XP_Bottle_3 - repair_multiple: 10 - repair_inputs: - Emerald: - material: EMERALD_BLOCK +nether_factory: + name: Nether Factory + fuel: + Charcoal: + material: COAL + durability: 1 + costs: + construction: + Aspect of Nether: + material: MAGMA_CREAM + amount: 8 + display_name: Aspect of Nether + lore: A concentrated essence of the Nether + Aspect of Terra: + material: DIAMOND + amount: 8 + display_name: Aspect of Terra + lore: A concentrated essence of Terra + Aspect of END: + material: FLINT + amount: 8 + display_name: Aspect of End + lore: A concentrated essence of the End + repair: + Diamond block: + material: DIAMOND_BLOCK + amount: 1 + repair_multiple: 1 + fuel_time: 10 + repair_time: 12 + scaling_radius: 5000 + cost_scaling_radius: 5000 + use_fuel_on_teleport: false production_recipes: Wood_XP_Bottle_0: name: Brew XP Bottles - 1 @@ -7404,953 +7339,6 @@ production_recipes: material: SPONGE amount: 32 display_name: Bastion - Nether_Craft_Steak: - name: Craft Crate of Steak - inputs: - Cooked Beef: - material: COOKED_BEEF - amount: 2048 - outputs: - Crate of Steak: - material: WOOD - durability: 0 - amount: 32 - display_name: Crate of Steak - lore: Crate of Steak - Nether_Craft_Pork: - name: Craft Crate of Pork - inputs: - Grilled Pork: - material: GRILLED_PORK - amount: 2048 - outputs: - Crate of Pork: - material: WOOD - durability: 0 - amount: 32 - display_name: Crate of Pork - lore: Crate of Pork - Nether_Craft_Melons: - name: Craft Crate of Melons - inputs: - Melon Blocks: - material: MELON_BLOCK - amount: 2048 - outputs: - Crate of Melons: - material: WOOD - durability: 0 - amount: 32 - display_name: Crate of Melons - lore: Crate of Melons - Nether_Craft_Sugar: - name: Craft Crate of Sugar - inputs: - Sugar: - material: SUGAR - amount: 2048 - outputs: - Crate of Sugar: - material: WOOD - durability: 0 - amount: 32 - display_name: Crate of Sugar - lore: Crate of Sugar - Nether_Craft_Sugar_Cane: - name: Craft Crate of Sugar Cane - inputs: - Sugar Cane: - material: SUGAR_CANE - amount: 2048 - outputs: - Crate of Sugar Cane: - material: WOOD - durability: 0 - amount: 32 - display_name: Crate of Sugar Cane - lore: Crate of Sugar Cane - Nether_Craft_Nether_Warts: - name: Craft Crate of Nether Warts - inputs: - Nether Wart: - material: NETHER_STALK - amount: 2048 - outputs: - Crate of Nether Warts: - material: WOOD - durability: 0 - amount: 32 - display_name: Crate of Nether Warts - lore: Crate of Nether Warts - Nether_Craft_Cookies: - name: Craft Crate of Cookies - inputs: - Cookie: - material: COOKIE - amount: 2048 - outputs: - Crate of Cookies: - material: WOOD - durability: 0 - amount: 32 - display_name: Crate of Cookies - lore: Crate of Cookies - Nether_Craft_Potatoes: - name: Craft Crate of Potatoes - inputs: - Potato: - material: BAKED_POTATO - amount: 2048 - outputs: - Crate of Potatoes: - material: WOOD - durability: 0 - amount: 32 - display_name: Crate of Potatoes - lore: Crate of Potatoes - Nether_Craft_Carrots: - name: Craft Crate of Carrots - inputs: - Carrot: - material: CARROT_ITEM - amount: 2048 - outputs: - Crate of Carrots: - material: WOOD - durability: 0 - amount: 32 - display_name: Crate of Carrots - lore: Crate of Carrots - Nether_Craft_Cocoa: - name: Craft Crate of Cocoa - inputs: - Cocoa: - material: INK_SACK - durability: 3 - amount: 2048 - outputs: - Crate of Cocoa: - material: WOOD - durability: 0 - amount: 32 - display_name: Crate of Cocoa - lore: Crate of Cocoa - Nether_Craft_Pumpkins: - name: Craft Crate of Pumpkins - inputs: - Pumpkin: - material: PUMPKIN - amount: 2048 - outputs: - Crate of Pumpkins: - material: WOOD - durability: 0 - amount: 32 - display_name: Crate of Pumpkins - lore: Crate of Pumpkins - Nether_Craft_Cacti: - name: Craft Crate of Cacti - inputs: - Catus: - material: CACTUS - amount: 2048 - outputs: - Crate of Cacti: - material: WOOD - durability: 0 - amount: 32 - display_name: Crate of Cacti - lore: Crate of Cacti - Nether_Craft_Bread: - name: Craft Crate of Bread - inputs: - Bread: - material: BREAD - amount: 2048 - outputs: - Crate of Bread: - material: WOOD - durability: 0 - amount: 32 - display_name: Crate of Bread - lore: Crate of Bread - Nether_Craft_Wheat: - name: Craft Crate of Wheat - inputs: - Wheat: - material: WHEAT - amount: 2048 - outputs: - Crate of Bread: - material: WOOD - durability: 0 - amount: 32 - display_name: Crate of Wheat - lore: Crate of Wheat - Nether_Craft_Grass: - name: Craft Crate of Grass - inputs: - Grass: - material: LONG_GRASS - amount: 2048 - outputs: - Crate of Grass: - material: WOOD - durability: 0 - amount: 32 - display_name: Crate of Grass - lore: Crate of Grass - Nether_Craft_Fish: - name: Craft Crate of Fish - inputs: - Fish: - material: COOKED_FISH - amount: 2048 - outputs: - Crate of Fish: - material: WOOD - durability: 0 - amount: 32 - display_name: Crate of Fish - lore: Crate of Fish - Nether_Craft_Red_Rose: - name: Craft Crate of Red Rose - inputs: - Fish: - material: RED_ROSE - amount: 2048 - outputs: - Crate of Red Rose: - material: WOOD - durability: 0 - amount: 32 - display_name: Crate of Red Rose - lore: Crate of Red Rose - Nether_Craft_Spider_Eyes: - name: Craft Crate of Spider Eyes - inputs: - Spider Eyes: - material: SPIDER_EYE - amount: 2048 - outputs: - Crate of Spider Eyes: - material: WOOD - durability: 0 - amount: 32 - display_name: Crate of Spider Eyes - lore: Crate of Spider Eyes - Nether_Craft_Chicken: - name: Craft Crate of Chicken - inputs: - Cooked Chicken: - material: COOKED_CHICKEN - amount: 2048 - outputs: - Crate of Chicken: - material: WOOD - durability: 0 - amount: 32 - display_name: Crate of Chicken - lore: Crate of Chicken - Nether_Craft_Vine: - name: Craft Crate of Vine - inputs: - Vine: - material: VINE - amount: 2048 - outputs: - Crate of Vine: - material: WOOD - durability: 0 - amount: 32 - display_name: Crate of Vine - lore: Crate of Vine - Nether_Craft_Brown_Mushrooms: - name: Craft Crate of Brown Mushrooms - inputs: - Brown Mushroom: - material: BROWN_MUSHROOM - amount: 2048 - outputs: - Crate of Brown Mushrooms: - material: WOOD - durability: 0 - amount: 32 - display_name: Crate of Brown Mushrooms - lore: Crate of Brown Mushrooms - Nether_Craft_Red_Mushrooms: - name: Craft Crate of Red Mushrooms - inputs: - Red Mushroom: - material: RED_MUSHROOM - amount: 2048 - outputs: - Crate of Red Mushrooms: - material: WOOD - durability: 0 - amount: 32 - display_name: Crate of Red Mushrooms - lore: Crate of Red Mushrooms - Nether_Craft_Rotten_Flesh: - name: Craft Crate of Rotten Flesh - inputs: - Rotten Flesh: - material: ROTTEN_FLESH - amount: 2048 - outputs: - Crate of Rotten Flesh: - material: WOOD - durability: 0 - amount: 32 - display_name: Crate of Rotten Flesh - lore: Crate of Rotten Flesh - Nether_Craft_Vine: - name: Craft Crate of Vine - inputs: - Vine: - material: VINE - amount: 2048 - outputs: - Crate of Vine: - material: WOOD - durability: 0 - amount: 32 - display_name: Crate of Vine - lore: Crate of Vine - Nether_Craft_Yellow_Flower: - name: Craft Crate of Yellow Flower - inputs: - Yellow Flower: - material: YELLOW_FLOWER - amount: 2048 - outputs: - Crate of Yellow Flower: - material: WOOD - durability: 0 - amount: 32 - display_name: Crate of Yellow Flower - lore: Crate of Yellow Flower - Nether_Craft_Glass_Bottles: - name: Craft Crate of Glass Bottles - inputs: - Glass Bottles: - material: GLASS_BOTTLE - amount: 2048 - outputs: - Crate of Glass Bottles: - material: WOOD - durability: 0 - amount: 32 - display_name: Crate of Glass Bottles - lore: Crate of Glass Bottles - Nether_Decraft_Steak: - name: Decraft Crate of Steak - inputs: - Cooked Beef: - material: COOKED_BEEF - amount: 2048 - outputs: - Crate of Steak: - material: WOOD - durability: 0 - amount: 32 - display_name: Crate of Steak - lore: Crate of Steak - Nether_Decraft_Pork: - name: Decraft Crate of Pork - inputs: - Grilled Pork: - material: GRILLED_PORK - amount: 2048 - outputs: - Crate of Pork: - material: WOOD - durability: 0 - amount: 32 - display_name: Crate of Pork - lore: Crate of Pork - Nether_Decraft_Melons: - name: Decraft Crate of Melons - inputs: - Melon Blocks: - material: MELON_BLOCK - amount: 2048 - outputs: - Crate of Melons: - material: WOOD - durability: 0 - amount: 32 - display_name: Crate of Melons - lore: Crate of Melons - Nether_Decraft_Sugar: - name: Decraft Crate of Sugar - inputs: - Sugar: - material: SUGAR - amount: 2048 - outputs: - Crate of Sugar: - material: WOOD - durability: 0 - amount: 32 - display_name: Crate of Sugar - lore: Crate of Sugar - Nether_Decraft_Sugar_Cane: - name: Decraft Crate of Sugar Cane - inputs: - Sugar Cane: - material: SUGAR_CANE - amount: 2048 - outputs: - Crate of Sugar Cane: - material: WOOD - durability: 0 - amount: 32 - display_name: Crate of Sugar Cane - lore: Crate of Sugar Cane - Nether_Decraft_Nether_Warts: - name: Decraft Crate of Nether Warts - inputs: - Nether Wart: - material: NETHER_STALK - amount: 2048 - outputs: - Crate of Nether Warts: - material: WOOD - durability: 0 - amount: 32 - display_name: Crate of Nether Warts - lore: Crate of Nether Warts - Nether_Decraft_Cookies: - name: Decraft Crate of Cookies - inputs: - Cookie: - material: COOKIE - amount: 2048 - outputs: - Crate of Cookies: - material: WOOD - durability: 0 - amount: 32 - display_name: Crate of Cookies - lore: Crate of Cookies - Nether_Decraft_Potatoes: - name: Decraft Crate of Potatoes - inputs: - Potato: - material: BAKED_POTATO - amount: 2048 - outputs: - Crate of Potatoes: - material: WOOD - durability: 0 - amount: 32 - display_name: Crate of Potatoes - lore: Crate of Potatoes - Nether_Decraft_Carrots: - name: Decraft Crate of Carrots - inputs: - Carrot: - material: CARROT_ITEM - amount: 2048 - outputs: - Crate of Carrots: - material: WOOD - durability: 0 - amount: 32 - display_name: Crate of Carrots - lore: Crate of Carrots - Nether_Decraft_Cocoa: - name: Decraft Crate of Cocoa - inputs: - Cocoa: - material: INK_SACK - durability: 3 - amount: 2048 - outputs: - Crate of Cocoa: - material: WOOD - durability: 0 - amount: 32 - display_name: Crate of Cocoa - lore: Crate of Cocoa - Nether_Decraft_Pumpkins: - name: Decraft Crate of Pumpkins - inputs: - Pumpkin: - material: PUMPKIN - amount: 2048 - outputs: - Crate of Pumpkins: - material: WOOD - durability: 0 - amount: 32 - display_name: Crate of Pumpkins - lore: Crate of Pumpkins - Nether_Decraft_Cacti: - name: Decraft Crate of Cacti - inputs: - Catus: - material: CACTUS - amount: 2048 - outputs: - Crate of Cacti: - material: WOOD - durability: 0 - amount: 32 - display_name: Crate of Cacti - lore: Crate of Cacti - Nether_Decraft_Bread: - name: Decraft Crate of Bread - inputs: - Bread: - material: BREAD - amount: 2048 - outputs: - Crate of Bread: - material: WOOD - durability: 0 - amount: 32 - display_name: Crate of Bread - lore: Crate of Bread - Nether_Decraft_Wheat: - name: Decraft Crate of Wheat - inputs: - Wheat: - material: WHEAT - amount: 2048 - outputs: - Crate of Bread: - material: WOOD - durability: 0 - amount: 32 - display_name: Crate of Wheat - lore: Crate of Wheat - Nether_Decraft_Grass: - name: Decraft Crate of Grass - inputs: - Grass: - material: LONG_GRASS - amount: 2048 - outputs: - Crate of Grass: - material: WOOD - durability: 0 - amount: 32 - display_name: Crate of Grass - lore: Crate of Grass - Nether_Decraft_Fish: - name: Decraft Crate of Fish - inputs: - Fish: - material: COOKED_FISH - amount: 2048 - outputs: - Crate of Fish: - material: WOOD - durability: 0 - amount: 32 - display_name: Crate of Fish - lore: Crate of Fish - Nether_Decraft_Red_Rose: - name: Decraft Crate of Red Rose - inputs: - Fish: - material: RED_ROSE - amount: 2048 - outputs: - Crate of Red Rose: - material: WOOD - durability: 0 - amount: 32 - display_name: Crate of Red Rose - lore: Crate of Red Rose - Nether_Decraft_Spider_Eyes: - name: Decraft Crate of Spider Eyes - inputs: - Spider Eyes: - material: SPIDER_EYE - amount: 2048 - outputs: - Crate of Spider Eyes: - material: WOOD - durability: 0 - amount: 32 - display_name: Crate of Spider Eyes - lore: Crate of Spider Eyes - Nether_Decraft_Chicken: - name: Decraft Crate of Chicken - inputs: - Cooked Chicken: - material: COOKED_CHICKEN - amount: 2048 - outputs: - Crate of Chicken: - material: WOOD - durability: 0 - amount: 32 - display_name: Crate of Chicken - lore: Crate of Chicken - Nether_Decraft_Vine: - name: Decraft Crate of Vine - inputs: - Vine: - material: VINE - amount: 2048 - outputs: - Crate of Vine: - material: WOOD - durability: 0 - amount: 32 - display_name: Crate of Vine - lore: Crate of Vine - Nether_Decraft_Brown_Mushrooms: - name: Decraft Crate of Brown Mushrooms - inputs: - Brown Mushroom: - material: BROWN_MUSHROOM - amount: 2048 - outputs: - Crate of Brown Mushrooms: - material: WOOD - durability: 0 - amount: 32 - display_name: Crate of Brown Mushrooms - lore: Crate of Brown Mushrooms - Nether_Decraft_Red_Mushrooms: - name: Decraft Crate of Red Mushrooms - inputs: - Red Mushroom: - material: RED_MUSHROOM - amount: 2048 - outputs: - Crate of Red Mushrooms: - material: WOOD - durability: 0 - amount: 32 - display_name: Crate of Red Mushrooms - lore: Crate of Red Mushrooms - Nether_Decraft_Rotten_Flesh: - name: Decraft Crate of Rotten Flesh - inputs: - Rotten Flesh: - material: ROTTEN_FLESH - amount: 2048 - outputs: - Crate of Rotten Flesh: - material: WOOD - durability: 0 - amount: 32 - display_name: Crate of Rotten Flesh - lore: Crate of Rotten Flesh - Nether_Decraft_Vine: - name: Decraft Crate of Vine - inputs: - Vine: - material: VINE - amount: 2048 - outputs: - Crate of Vine: - material: WOOD - durability: 0 - amount: 32 - display_name: Crate of Vine - lore: Crate of Vine - Nether_Decraft_Yellow_Flower: - name: Decraft Crate of Yellow Flower - inputs: - Yellow Flower: - material: YELLOW_FLOWER - amount: 2048 - outputs: - Crate of Yellow Flower: - material: WOOD - durability: 0 - amount: 32 - display_name: Crate of Yellow Flower - lore: Crate of Yellow Flower - Nether_Decraft_Glass_Bottles: - name: Decraft Crate of Glass Bottles - inputs: - Glass Bottles: - material: GLASS_BOTTLE - amount: 2048 - outputs: - Crate of Glass Bottles: - material: WOOD - durability: 0 - amount: 32 - display_name: Crate of Glass Bottles - lore: Crate of Glass Bottles - Emerald_XP_Bottle_0: - name: Brew XP Bottles - 1 - inputs: - Crate of Glass Bottles: - material: WOOD - durability: 0 - lore: Crate of Glass Bottles - display_name: Crate of Glass Bottles - amount: 96 - Crate of Carrots: - material: WOOD - durability: 0 - lore: Crate of Carrots - display_name: Crate of Carrots - amount: 48 - Crate of Melons: - material: WOOD - durability: 0 - lore: Crate of Melons - display_name: Crate of Melons - amount: 16 - Crate of Cacti: - material: WOOD - durability: 0 - lore: Crate of Cacti - display_name: Crate of Cacti - amount: 128 - Crate of Red Rose: - material: WOOD - durability: 0 - lore: Crate of Red Rose - display_name: Crate of Red Rose - amount: 4 - Crate of Rotten Flesh: - material: WOOD - durability: 0 - lore: Crate of Rotten Flesh - display_name: Crate of Rotten Flesh - amount: 64 - Crate of Red Mushrooms: - material: WOOD - durability: 0 - lore: Crate of Red Mushrooms - display_name: Crate of Red Mushrooms - amount: 16 - Crate of Vine: - material: WOOD - durability: 0 - lore: Crate of Vine - display_name: Crate of Vine - amount: 16 - Crate of Bread: - material: WOOD - durability: 0 - lore: Crate of Bread - display_name: Crate of Bread - amount: 64 - Crate of Pork: - material: WOOD - durability: 0 - lore: Crate of Pork - display_name: Crate of Pork - amount: 16 - outputs: - Exp Bottle: - material: EMERALD_BLOCK - amount: 66 - Emerald_XP_Bottle_1: - name: Brew XP Bottles - 2 - inputs: - Crate of Glass Bottles: - material: WOOD - durability: 0 - lore: Crate of Glass Bottles - display_name: Crate of Glass Bottles - amount: 96 - Crate of Nether Warts: - material: WOOD - durability: 0 - lore: Crate of Nether Warts - display_name: Crate of Nether Warts - amount: 32 - Crate of Melons: - material: WOOD - durability: 0 - lore: Crate of Melons - display_name: Crate of Melons - amount: 16 - Crate of Sugar Cane: - material: WOOD - durability: 0 - lore: Crate of Sugar Cane - display_name: Crate of Sugar Cane - amount: 64 - Crate of Yellow Flower: - material: WOOD - durability: 0 - lore: Crate of Yellow Flower - display_name: Crate of Yellow Flower - amount: 8 - Crate of Rotten Flesh: - material: WOOD - durability: 0 - lore: Crate of Rotten Flesh - display_name: Crate of Rotten Flesh - amount: 64 - Crate of Brown Mushrooms: - material: WOOD - durability: 0 - lore: Crate of Brown Mushrooms - display_name: Crate of Brown Mushrooms - amount: 32 - Crate of Vine: - material: WOOD - durability: 0 - lore: Crate of Vine - display_name: Crate of Vine - amount: 16 - Crate of Potatoes: - material: WOOD - durability: 0 - lore: Crate of Potatoes - display_name: Crate of Potatoes - amount: 128 - Crate of Chicken: - material: WOOD - durability: 0 - lore: Crate of Chicken - display_name: Crate of Chicken - amount: 8 - outputs: - Exp Bottle: - material: EMERALD_BLOCK - amount: 66 - Emerald_XP_Bottle_2: - name: Brew XP Bottles - 3 - inputs: - Crate of Glass Bottles: - material: WOOD - durability: 0 - lore: Crate of Glass Bottles - display_name: Crate of Glass Bottles - amount: 96 - Crate of Bread: - material: WOOD - durability: 0 - lore: Crate of Wheat - display_name: Crate of Wheat - amount: 64 - Crate of Cocoa: - material: WOOD - durability: 0 - lore: Crate of Cocoa - display_name: Crate of Cocoa - amount: 8 - Crate of Pumpkins: - material: WOOD - durability: 0 - lore: Crate of Pumpkins - display_name: Crate of Pumpkins - amount: 64 - Crate of Cacti: - material: WOOD - durability: 0 - lore: Crate of Cacti - display_name: Crate of Cacti - amount: 128 - Crate of Red Rose: - material: WOOD - durability: 0 - lore: Crate of Red Rose - display_name: Crate of Red Rose - amount: 4 - Crate of Spider Eyes: - material: WOOD - durability: 0 - lore: Crate of Spider Eyes - display_name: Crate of Spider Eyes - amount: 16 - Crate of Red Mushrooms: - material: WOOD - durability: 0 - lore: Crate of Red Mushrooms - display_name: Crate of Red Mushrooms - amount: 8 - Crate of Grass: - material: WOOD - durability: 0 - lore: Crate of Grass - display_name: Crate of Grass - amount: 16 - durability: 1 - Crate of Chicken: - material: WOOD - durability: 0 - lore: Crate of Chicken - display_name: Crate of Chicken - amount: 8 - outputs: - Exp Bottle: - material: EMERALD_BLOCK - amount: 66 - Emerald_XP_Bottle_3: - name: Brew XP Bottles - 4 - inputs: - Crate of Glass Bottles: - material: WOOD - durability: 0 - lore: Crate of Glass Bottles - display_name: Crate of Glass Bottles - amount: 96 - Crate of Nether Warts: - material: WOOD - durability: 0 - lore: Crate of Nether Warts - display_name: Crate of Nether Warts - amount: 32 - Crate of Pumpkins: - material: WOOD - durability: 0 - lore: Crate of Pumpkins - display_name: Crate of Pumpkins - amount: 64 - Crate of Sugar: - material: WOOD - durability: 0 - lore: Crate of Sugar - display_name: Crate of Sugar - amount: 64 - Crate of Yellow Flower: - material: WOOD - durability: 0 - lore: Crate of Yellow Flower - display_name: Crate of Yellow Flower - amount: 8 - Crate of Spider Eyes: - material: WOOD - durability: 0 - lore: Crate of Spider Eyes - display_name: Crate of Spider Eyes - amount: 16 - Crate of Brown Mushrooms: - material: WOOD - durability: 0 - lore: Crate of Brown Mushrooms - display_name: Crate of Brown Mushrooms - amount: 32 - Crate of Grass: - material: WOOD - durability: 0 - lore: Crate of Grass - display_name: Crate of Grass - amount: 32 - Crate of Cookies: - material: WOOD - durability: 0 - lore: Crate of Cookies - display_name: Crate of Cookies - amount: 128 - Crate of Steak: - material: WOOD - durability: 0 - lore: Crate of Steak - display_name: Crate of Steak - amount: 16 - outputs: - Exp Bottle: - material: EMERALD_BLOCK - amount: 66 Sequencing_Sunflower: name: Sequencing Sunflower inputs: @@ -8431,3 +7419,112 @@ production_recipes: material: DOUBLE_PLANT amount: 4 durability: 5 + Aspect_Factory: + name: Arcane Elementizer + fuel: + Charcoal: + material: COAL + durability: 1 + inputs: + Netherbrick: + material: NETHER_BRICK + amount: 1536 + Redstone: + material: REDSTONE + amount: 1152 + Netherquartz: + material: QUARTZ + amount: 576 + recipes: + - Forge_Aspect_of_Terra + - Forge_Aspect_of_End + - Forge_Aspect_of_Nether + - Craft_Eye_of_Ender + repair_multiple: 26 + repair_inputs: + Nether Brick: + material: NETHER_BRICK + amount: 6 + Redstone: + material: REDSTONE + amount: 5 + Netherquartz: + material: QUARTZ + amount: 2 + Forge_Aspect_of_Terra: + name: Forge Aspect of Terra + production_time: 64 + inputs: + Emerald Block: + material: EMERALD_BLOCK + amount: 24 + Diamond Block: + material: DIAMOND_BLOCK + amount: 24 + Gold Ore: + material: GOLD_ORE + amount: 8 + Slime Ball: + material: SLIME_BALL + amount: 8 + Anvil: + material: ANVIL + amount: 8 + outputs: + Aspect of Terra: + material: DIAMOND + amount: 1 + display_name: Aspect of Terra + lore: A concentrated essence of Terra + Forge_Aspect_of_End: + name: Forge Aspect of End + production_time: 64 + inputs: + Ender Pearl: + material: ENDER_PEARL + amount: 256 + Ender Chest: + material: ENDER_CHEST + amount: 256 + Endstone: + material: ENDER_STONE + amount: 1024 + outputs: + Aspect of End: + material: FLINT + amount: 1 + display_name: Aspect of End + lore: A concentrated essence of the End + Forge_Aspect_of_Nether: + name: Forge Aspect of Nether + production_time: 64 + inputs: + Ghast Tears: + material: GHAST_TEAR + amount: 16 + Quartz Ore: + material: QUARTZ_ORE + amount: 512 + Glowstone: + material: GLOWSTONE + amount: 512 + outputs: + Aspect of Nether: + material: MAGMA_CREAM + amount: 1 + display_name: Aspect of Nether + lore: A concentrated essence of the Nether + Craft_Eye_of_Ender: + name: Craft Eye of Ender + production_time: 1 + inputs: + Blaze Powder: + material: BLAZE_POWDER + amount: 265 + Ender Pearl: + material: ENDER_PEARL + amount: 265 + outputs: + Eye of Ender: + material: EYE_OF_ENDER + amount: 256 From eac55341d5a8c108dfca802d461406147e9e4083 Mon Sep 17 00:00:00 2001 From: ribagi Date: Thu, 14 Aug 2014 12:19:19 -0700 Subject: [PATCH 09/52] Updatting to self git --- FactoryMod-20140619.jar | Bin 0 -> 125999 bytes FactoryMod.jar | Bin 123952 -> 0 bytes plugin.yml | 2 +- pom.xml | 53 +++++ .../igotyou/FactoryMod/FactoryModPlugin.java | 68 +++++- .../listeners/NoteStackListener.java | 194 ++++++++++++++++++ .../igotyou/FactoryMod/utility/ItemList.java | 2 +- validate_config.rb | 54 +++++ 8 files changed, 365 insertions(+), 8 deletions(-) create mode 100644 FactoryMod-20140619.jar delete mode 100644 FactoryMod.jar create mode 100644 pom.xml create mode 100644 src/com/github/igotyou/FactoryMod/listeners/NoteStackListener.java create mode 100644 validate_config.rb diff --git a/FactoryMod-20140619.jar b/FactoryMod-20140619.jar new file mode 100644 index 0000000000000000000000000000000000000000..366633e07bac834701fbdad199c20db9e79bef39 GIT binary patch literal 125999 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 literal 0 HcmV?d00001 diff --git a/FactoryMod.jar b/FactoryMod.jar deleted file mode 100644 index 1a4860f7701d6172080b391f5315477a5090a7e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 123952 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

TC;rZ;XgiRW69Y=keY-~ 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 KUDn2dcmD@*Mx+A( diff --git a/plugin.yml b/plugin.yml index 2f5e8694..aac4e6e3 100644 --- a/plugin.yml +++ b/plugin.yml @@ -1,4 +1,4 @@ name: FactoryMod main: com.github.igotyou.FactoryMod.FactoryModPlugin author: igotyou -version: 1.0 \ No newline at end of file +version: 1.1 diff --git a/pom.xml b/pom.xml new file mode 100644 index 00000000..b35753c9 --- /dev/null +++ b/pom.xml @@ -0,0 +1,53 @@ + + 4.0.0 + com.github.igotyou + FactoryMod + jar + 1.0-SNAPSHOT + FactoryMod + https://github.com/ttk2/FactoryMod + + + 1.7 + 1.7 + + + + ${basedir}/src + + + + ${basedir} + + *.yml + license.txt + + + + + + + + org.bukkit + bukkit + 1.7.2-R0.3 + provided + + + com.untamedears + Citadel + [2.5,) + provided + + + + + + bukkit-repo + http://repo.bukkit.org/content/groups/public/ + + + diff --git a/src/com/github/igotyou/FactoryMod/FactoryModPlugin.java b/src/com/github/igotyou/FactoryMod/FactoryModPlugin.java index 18b8c275..47c39d46 100644 --- a/src/com/github/igotyou/FactoryMod/FactoryModPlugin.java +++ b/src/com/github/igotyou/FactoryMod/FactoryModPlugin.java @@ -11,12 +11,18 @@ import org.bukkit.inventory.Recipe; import org.bukkit.inventory.ItemStack; import org.bukkit.plugin.java.JavaPlugin; +import org.bukkit.potion.PotionEffect; +import org.bukkit.potion.PotionEffectType; +import org.bukkit.inventory.meta.EnchantmentStorageMeta; import org.bukkit.inventory.meta.ItemMeta; +import org.bukkit.inventory.meta.PotionMeta; +import org.bukkit.inventory.meta.Repairable; import org.bukkit.configuration.ConfigurationSection; import com.github.igotyou.FactoryMod.FactoryObject.FactoryType; import com.github.igotyou.FactoryMod.interfaces.Properties; import com.github.igotyou.FactoryMod.listeners.FactoryModListener; +import com.github.igotyou.FactoryMod.listeners.NoteStackListener; import com.github.igotyou.FactoryMod.listeners.RedstoneListener; import com.github.igotyou.FactoryMod.managers.FactoryModManager; import com.github.igotyou.FactoryMod.properties.PrintingPressProperties; @@ -80,6 +86,7 @@ public void registerEvents() { getServer().getPluginManager().registerEvents(new FactoryModListener(manager), this); getServer().getPluginManager().registerEvents(new RedstoneListener(manager, manager.getProductionManager()), this); + getServer().getPluginManager().registerEvents(new NoteStackListener(this), this); } catch(Exception e) { @@ -276,6 +283,31 @@ private List getEnchantments(ConfigurationSection conf return enchantments; } + private List getPotionEffects( + ConfigurationSection configurationSection) { + List potionEffects = new ArrayList(); + if(configurationSection!=null) + { + Iterator names=configurationSection.getKeys(false).iterator(); + while (names.hasNext()) + { + String name=names.next(); + ConfigurationSection configEffect=configurationSection.getConfigurationSection(name); + String type=configEffect.getString("type"); + if (type!=null) + { + PotionEffectType effect = PotionEffectType.getByName(type); + if (effect != null) { + int duration=configEffect.getInt("duration",200); + int amplifier=configEffect.getInt("amplifier",0); + potionEffects.add(new PotionEffect(effect, duration, amplifier)); + } + } + } + } + return potionEffects; + } + public ItemList getItems(ConfigurationSection configItems) { ItemList items=new ItemList(); @@ -288,37 +320,61 @@ public ItemList getItems(ConfigurationSection configItems) String materialName=configItem.getString("material"); Material material = Material.getMaterial(materialName); //only proceeds if an acceptable material name was provided - if(material!=null) + if (material == null) + { + getLogger().severe(configItems.getCurrentPath() + " requires invalid material " + materialName); + } + else { int amount=configItem.getInt("amount",1); short durability=(short)configItem.getInt("durability",0); + int repairCost=(short)configItem.getInt("repair_cost",0); String displayName=configItem.getString("display_name"); String lore=configItem.getString("lore"); - items.add(createItemStack(material,amount,durability,displayName,lore,commonName)); + List compulsoryEnchantments = getEnchantments(configItem.getConfigurationSection("enchantments")); + List storedEnchantments = getEnchantments(configItem.getConfigurationSection("stored_enchantments")); + List potionEffects = getPotionEffects(configItem.getConfigurationSection("potion_effects")); + items.add(createItemStack(material,amount,durability,displayName,lore,commonName,repairCost,compulsoryEnchantments,storedEnchantments,potionEffects)); } } } return items; } - - private NamedItemStack createItemStack(Material material,int stackSize,short durability,String name,String loreString,String commonName) + + private NamedItemStack createItemStack(Material material,int stackSize,short durability,String name,String loreString,String commonName,int repairCost,List compulsoryEnchants,List storedEnchants, List potionEffects) { NamedItemStack namedItemStack= new NamedItemStack(material, stackSize, durability,commonName); - if(name!=null||loreString!=null) + if(name!=null||loreString!=null||compulsoryEnchants.size()>0||storedEnchants.size()>0||potionEffects.size()>0||repairCost > 0) { ItemMeta meta=namedItemStack.getItemMeta(); if (name!=null) meta.setDisplayName(name); + if (meta instanceof Repairable && repairCost > 0) + ((Repairable) meta).setRepairCost(repairCost); if (loreString!=null) { List lore = new ArrayList(); lore.add(loreString); meta.setLore(lore); } + for (ProbabilisticEnchantment enchant : compulsoryEnchants) { + meta.addEnchant(enchant.getEnchantment(), enchant.getLevel(), false); + } + if (meta instanceof EnchantmentStorageMeta) { + EnchantmentStorageMeta esm = (EnchantmentStorageMeta) meta; + for (ProbabilisticEnchantment enchant : storedEnchants) { + esm.addStoredEnchant(enchant.getEnchantment(), enchant.getLevel(), false); + } + } + if (meta instanceof PotionMeta) { + PotionMeta pm = (PotionMeta) meta; + for (PotionEffect effect : potionEffects) { + pm.addCustomEffect(effect, true); + } + } namedItemStack.setItemMeta(meta); } return namedItemStack; - } private void removeRecipe(Recipe removalRecipe) diff --git a/src/com/github/igotyou/FactoryMod/listeners/NoteStackListener.java b/src/com/github/igotyou/FactoryMod/listeners/NoteStackListener.java new file mode 100644 index 00000000..86152bf1 --- /dev/null +++ b/src/com/github/igotyou/FactoryMod/listeners/NoteStackListener.java @@ -0,0 +1,194 @@ +package com.github.igotyou.FactoryMod.listeners; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import org.bukkit.Material; +import org.bukkit.block.Block; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.event.block.Action; +import org.bukkit.event.inventory.PrepareItemCraftEvent; +import org.bukkit.event.player.PlayerInteractEvent; +import org.bukkit.inventory.ItemStack; +import org.bukkit.inventory.ShapelessRecipe; +import org.bukkit.inventory.meta.ItemMeta; + +import sun.misc.Regexp; + +import com.github.igotyou.FactoryMod.FactoryModPlugin; + +public class NoteStackListener implements Listener { + private FactoryModPlugin plugin; + private static final Pattern stackableRegexp = Pattern.compile("^(§2.*?)( \\(x([1-9][0-9]*)\\))?$"); + private static final Pattern nameRegexp = Pattern.compile("^(.*?)( §2x([1-9][0-9]*))?$"); + private static final int SCALE_FACTOR = 4; + private static final int MAX_SCALE = 64; + + public NoteStackListener(FactoryModPlugin plugin) { + this.plugin = plugin; + } + + @EventHandler(priority = EventPriority.LOW, ignoreCancelled = true) + public void playerInteractionEvent(PlayerInteractEvent e) + { + Block clicked = e.getClickedBlock(); + Player player = e.getPlayer(); + + ItemStack item = player.getItemInHand(); + if (item == null) return; + if (!item.getType().equals(Material.PAPER)) return; + + //if the player left clicked a block + if (e.getAction().equals(Action.LEFT_CLICK_BLOCK)) + { + if (clicked.getType().equals(Material.ENCHANTMENT_TABLE)) { + // Break notes + int multiplier = getMultiplier(player.getItemInHand()); + if (multiplier >= SCALE_FACTOR) { + int count = item.getAmount() * SCALE_FACTOR; + int newMultiplier = multiplier / SCALE_FACTOR; + player.setItemInHand(new ItemStack(Material.AIR)); + ItemStack newMultipleStack = setMultiplier(item, newMultiplier); + + while (count > 0) { + ItemStack toAdd = new ItemStack(newMultipleStack); + if (count > 64) { + toAdd.setAmount(64); + } else { + toAdd.setAmount(count); + } + // Try to add to hand first when breaking over 64 + if (count > 64 && player.getItemInHand() == null || player.getItemInHand().getType().equals(Material.AIR)) { + player.setItemInHand(toAdd); + } else { + Map overflow = player.getInventory().addItem(toAdd); + if (overflow != null && overflow.size() > 0) { + for (ItemStack spill : overflow.values()) { + player.getWorld().dropItem(player.getLocation(), spill); + } + } + } + count = count - 64; + } + + player.updateInventory(); + } + } + } else if (e.getAction().equals(Action.RIGHT_CLICK_BLOCK)) { + if (clicked.getType().equals(Material.ENCHANTMENT_TABLE)) { + // Combine notes + int multiplier = getMultiplier(item); + if (multiplier > 0 && item.getAmount() >= SCALE_FACTOR) { + int count = item.getAmount() / SCALE_FACTOR; + int residual = item.getAmount() - count * SCALE_FACTOR; + int newMultiplier = multiplier * SCALE_FACTOR; + if (newMultiplier > MAX_SCALE) { + return; + } + if (residual > 0) { + ItemStack singleRemainder = new ItemStack(item); + singleRemainder.setAmount(residual); + player.setItemInHand(singleRemainder); + } else { + player.setItemInHand(new ItemStack(Material.AIR)); + } + ItemStack newMultipleStack = setMultiplier(item, newMultiplier); + + while (count > 0) { + ItemStack toAdd = new ItemStack(newMultipleStack); + if (count > 64) { + toAdd.setAmount(64); + } else { + toAdd.setAmount(count); + } + // Try to add to hand first + Map overflow = player.getInventory().addItem(toAdd); + if (overflow != null && overflow.size() > 0) { + for (ItemStack spill : overflow.values()) { + player.getWorld().dropItem(player.getLocation(), spill); + } + } + count = count - 64; + } + + e.setCancelled(true); + player.updateInventory(); + } + } + } + } + + private int getMultiplier(ItemStack item) { + List lore = item.getItemMeta().getLore(); + if (item.getType().equals(Material.PAPER)) { + if (lore != null && lore.size() > 0) { + String lastLore = lore.get(lore.size() - 1); + Matcher matcher = stackableRegexp.matcher(lastLore); + if (matcher.find()) { + String digits = matcher.group(3); + if (digits != null) { + return Integer.parseInt(digits); + } else { + return 1; + } + } + return 0; + } else { + return 0; + } + } else { + return 0; + } + } + + private ItemStack setMultiplier(ItemStack item, int multiplier) { + String name = item.getItemMeta().getDisplayName(); + List lore = item.getItemMeta().getLore(); + if (item.getType().equals(Material.PAPER)) { + if (name != null) { + Matcher matcher = nameRegexp.matcher(name); + if (matcher.find()) { + String newName; + if (multiplier == 1) { + newName = matcher.group(1); + } else { + newName = matcher.group(1) + " §2x" + Integer.toString(multiplier); + } + + ItemMeta newMeta = item.getItemMeta().clone(); + newMeta.setDisplayName(newName); + item = new ItemStack(item); + item.setItemMeta(newMeta); + } + } + + if (lore != null && lore.size() > 0) { + String lastLore = lore.get(lore.size() - 1); + Matcher matcher = stackableRegexp.matcher(lastLore); + List newLore = new ArrayList(); + if (matcher.find()) { + for (int i = 0; i < lore.size() - 1; i++) { + newLore.add(lore.get(i)); + } + if (multiplier == 1) { + newLore.add(matcher.group(1)); + } else { + newLore.add(matcher.group(1) + " (x" + Integer.toString(multiplier) + ")"); + } + + ItemMeta newMeta = item.getItemMeta().clone(); + newMeta.setLore(newLore); + item = new ItemStack(item); + item.setItemMeta(newMeta); + } + } + } + return item; + } +} diff --git a/src/com/github/igotyou/FactoryMod/utility/ItemList.java b/src/com/github/igotyou/FactoryMod/utility/ItemList.java index 8f8c6efc..a9dc723f 100644 --- a/src/com/github/igotyou/FactoryMod/utility/ItemList.java +++ b/src/com/github/igotyou/FactoryMod/utility/ItemList.java @@ -219,7 +219,7 @@ private int amountAvailable(Inventory inventory, ItemStack itemStack) for(ItemStack currentItemStack:inventory) { if(currentItemStack!=null) - { + { /*For some reason I can't fathom the orientaion of the comparison * of the two ItemStacks in the following statement matters. * It likely has to do with the fact that itemStack is a NamedItemStack diff --git a/validate_config.rb b/validate_config.rb new file mode 100644 index 00000000..7f511191 --- /dev/null +++ b/validate_config.rb @@ -0,0 +1,54 @@ +require 'yaml' + +ok = true + +raw = File.read('config.yml') + +if raw[/\t/] + ok = false + puts "Contains tabs" +end + +data = YAML.load(raw) + +factories = data['production_factories'] +recipes = data['production_recipes'] + +referenced_recipes = factories.values.map {|e| e['recipes']}.flatten.uniq + +missing_recipes = referenced_recipes - recipes.keys +if missing_recipes.length > 0 + ok = false + puts "Missing recipes:" + puts " " + missing_recipes.inspect +end + +unused_recipes = recipes.keys - referenced_recipes +if unused_recipes.length > 0 + ok = false + puts "Unused recipes:" + puts " " + unused_recipes.inspect +end + +factory_build_materials = factories.values.map {|e| e['inputs']} +factory_repair_materials = factories.values.map {|e| e['repair_inputs']} +recipe_input_materials = recipes.values.map {|e| e['inputs']} +recipe_output_materials = recipes.values.map {|e| e['outputs']} + +BukkitMaterials = ["ACACIA_STAIRS", "ACTIVATOR_RAIL", "AIR", "ANVIL", "APPLE", "ARROW", "BAKED_POTATO", "BEACON", "BED", "BED_BLOCK", "BEDROCK", "BIRCH_WOOD_STAIRS", "BLAZE_POWDER", "BLAZE_ROD", "BOAT", "BONE", "BOOK", "BOOK_AND_QUILL", "BOOKSHELF", "BOW", "BOWL", "BREAD", "BREWING_STAND", "BREWING_STAND_ITEM", "BRICK", "BRICK_STAIRS", "BROWN_MUSHROOM", "BUCKET", "BURNING_FURNACE", "CACTUS", "CAKE", "CAKE_BLOCK", "CARPET", "CARROT", "CARROT_ITEM", "CARROT_STICK", "CAULDRON", "CAULDRON_ITEM", "CHAINMAIL_BOOTS", "CHAINMAIL_CHESTPLATE", "CHAINMAIL_HELMET", "CHAINMAIL_LEGGINGS", "CHEST", "CLAY", "CLAY_BALL", "CLAY_BRICK", "COAL", "COAL_BLOCK", "COAL_ORE", "COBBLE_WALL", "COBBLESTONE", "COBBLESTONE_STAIRS", "COCOA", "COMMAND", "COMMAND_MINECART", "COMPASS", "COOKED_BEEF", "COOKED_CHICKEN", "COOKED_FISH", "COOKIE", "CROPS", "DARK_OAK_STAIRS", "DAYLIGHT_DETECTOR", "DEAD_BUSH", "DETECTOR_RAIL", "DIAMOND", "DIAMOND_AXE", "DIAMOND_BARDING", "DIAMOND_BLOCK", "DIAMOND_BOOTS", "DIAMOND_CHESTPLATE", "DIAMOND_HELMET", "DIAMOND_HOE", "DIAMOND_LEGGINGS", "DIAMOND_ORE", "DIAMOND_PICKAXE", "DIAMOND_SPADE", "DIAMOND_SWORD", "DIODE", "DIODE_BLOCK_OFF", "DIODE_BLOCK_ON", "DIRT", "DISPENSER", "DOUBLE_PLANT", "DOUBLE_STEP", "DRAGON_EGG", "DROPPER", "EGG", "EMERALD", "EMERALD_BLOCK", "EMERALD_ORE", "EMPTY_MAP", "ENCHANTED_BOOK", "ENCHANTMENT_TABLE", "ENDER_CHEST", "ENDER_PEARL", "ENDER_PORTAL", "ENDER_PORTAL_FRAME", "ENDER_STONE", "EXP_BOTTLE", "EXPLOSIVE_MINECART", "EYE_OF_ENDER", "FEATHER", "FENCE", "FENCE_GATE", "FERMENTED_SPIDER_EYE", "FIRE", "FIREBALL", "FIREWORK", "FIREWORK_CHARGE", "FISHING_ROD", "FLINT", "FLINT_AND_STEEL", "FLOWER_POT", "FLOWER_POT_ITEM", "FURNACE", "GHAST_TEAR", "GLASS", "GLASS_BOTTLE", "GLOWING_REDSTONE_ORE", "GLOWSTONE", "GLOWSTONE_DUST", "GOLD_AXE", "GOLD_BARDING", "GOLD_BLOCK", "GOLD_BOOTS", "GOLD_CHESTPLATE", "GOLD_HELMET", "GOLD_HOE", "GOLD_INGOT", "GOLD_LEGGINGS", "GOLD_NUGGET", "GOLD_ORE", "GOLD_PICKAXE", "GOLD_PLATE", "GOLD_RECORD", "GOLD_SPADE", "GOLD_SWORD", "GOLDEN_APPLE", "GOLDEN_CARROT", "GRASS", "GRAVEL", "GREEN_RECORD", "GRILLED_PORK", "HARD_CLAY", "HAY_BLOCK", "HOPPER", "HOPPER_MINECART", "HUGE_MUSHROOM_1", "HUGE_MUSHROOM_2", "ICE", "INK_SACK", "IRON_AXE", "IRON_BARDING", "IRON_BLOCK", "IRON_BOOTS", "IRON_CHESTPLATE", "IRON_DOOR", "IRON_DOOR_BLOCK", "IRON_FENCE", "IRON_HELMET", "IRON_HOE", "IRON_INGOT", "IRON_LEGGINGS", "IRON_ORE", "IRON_PICKAXE", "IRON_PLATE", "IRON_SPADE", "IRON_SWORD", "ITEM_FRAME", "JACK_O_LANTERN", "JUKEBOX", "JUNGLE_WOOD_STAIRS", "LADDER", "LAPIS_BLOCK", "LAPIS_ORE", "LAVA", "LAVA_BUCKET", "LEASH", "LEATHER", "LEATHER_BOOTS", "LEATHER_CHESTPLATE", "LEATHER_HELMET", "LEATHER_LEGGINGS", "LEAVES", "LEAVES_2", "LEVER", "LOCKED_CHEST", "Deprecated.", "LOG", "LOG_2", "LONG_GRASS", "MAGMA_CREAM", "MAP", "MELON", "MELON_BLOCK", "MELON_SEEDS", "MELON_STEM", "MILK_BUCKET", "MINECART", "MOB_SPAWNER", "MONSTER_EGG", "MONSTER_EGGS", "MOSSY_COBBLESTONE", "MUSHROOM_SOUP", "MYCEL", "NAME_TAG", "NETHER_BRICK", "NETHER_BRICK_ITEM", "NETHER_BRICK_STAIRS", "NETHER_FENCE", "NETHER_STALK", "NETHER_STAR", "NETHER_WARTS", "NETHERRACK", "NOTE_BLOCK", "OBSIDIAN", "PACKED_ICE", "PAINTING", "PAPER", "PISTON_BASE", "PISTON_EXTENSION", "PISTON_MOVING_PIECE", "PISTON_STICKY_BASE", "POISONOUS_POTATO", "PORK", "PORTAL", "POTATO", "POTATO_ITEM", "POTION", "POWERED_MINECART", "POWERED_RAIL", "PUMPKIN", "PUMPKIN_PIE", "PUMPKIN_SEEDS", "PUMPKIN_STEM", "QUARTZ", "QUARTZ_BLOCK", "QUARTZ_ORE", "QUARTZ_STAIRS", "RAILS", "RAW_BEEF", "RAW_CHICKEN", "RAW_FISH", "RECORD_10", "RECORD_11", "RECORD_12", "RECORD_3", "RECORD_4", "RECORD_5", "RECORD_6", "RECORD_7", "RECORD_8", "RECORD_9", "RED_MUSHROOM", "RED_ROSE", "REDSTONE", "REDSTONE_BLOCK", "REDSTONE_COMPARATOR", "REDSTONE_COMPARATOR_OFF", "REDSTONE_COMPARATOR_ON", "REDSTONE_LAMP_OFF", "REDSTONE_LAMP_ON", "REDSTONE_ORE", "REDSTONE_TORCH_OFF", "REDSTONE_TORCH_ON", "REDSTONE_WIRE", "ROTTEN_FLESH", "SADDLE", "SAND", "SANDSTONE", "SANDSTONE_STAIRS", "SAPLING", "SEEDS", "SHEARS", "SIGN", "SIGN_POST", "SKULL", "SKULL_ITEM", "SLIME_BALL", "SMOOTH_BRICK", "SMOOTH_STAIRS", "SNOW", "SNOW_BALL", "SNOW_BLOCK", "SOIL", "SOUL_SAND", "SPECKLED_MELON", "SPIDER_EYE", "SPONGE", "SPRUCE_WOOD_STAIRS", "STAINED_CLAY", "STAINED_GLASS", "STAINED_GLASS_PANE", "STATIONARY_LAVA", "STATIONARY_WATER", "STEP", "STICK", "STONE", "STONE_AXE", "STONE_BUTTON", "STONE_HOE", "STONE_PICKAXE", "STONE_PLATE", "STONE_SPADE", "STONE_SWORD", "STORAGE_MINECART", "STRING", "SUGAR", "SUGAR_CANE", "SUGAR_CANE_BLOCK", "SULPHUR", "THIN_GLASS", "TNT", "TORCH", "TRAP_DOOR", "TRAPPED_CHEST", "TRIPWIRE", "TRIPWIRE_HOOK", "VINE", "WALL_SIGN", "WATCH", "WATER", "WATER_BUCKET", "WATER_LILY", "WEB", "WHEAT", "WOOD", "WOOD_AXE", "WOOD_BUTTON", "WOOD_DOOR", "WOOD_DOUBLE_STEP", "WOOD_HOE", "WOOD_PICKAXE", "WOOD_PLATE", "WOOD_SPADE", "WOOD_STAIRS", "WOOD_STEP", "WOOD_SWORD", "WOODEN_DOOR", "WOOL", "WORKBENCH", "WRITTEN_BOOK", "YELLOW_FLOWER"] + +all_materials = ( + factory_build_materials.map {|i| i.values.map {|e| e['material']}} + + factory_repair_materials.map {|i| i.values.map {|e| e['material']}} + + recipe_input_materials.map {|i| i.values.map {|e| e['material']}} + + recipe_output_materials.map {|i| i.values.map {|e| e['material']}} +).flatten.uniq.sort + +unknown_materials = all_materials - BukkitMaterials +if unknown_materials.length > 0 + ok = false + puts "Unknown materials:" + puts " " + unknown_materials.inspect +end + +puts "OK" if ok From b01b5c3425f990f37b30e8c705bb56ce251943cd Mon Sep 17 00:00:00 2001 From: ribagi Date: Wed, 27 Aug 2014 09:52:10 -0700 Subject: [PATCH 10/52] Update config.yml --- config.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/config.yml b/config.yml index 0d59d6a1..fdb912b4 100644 --- a/config.yml +++ b/config.yml @@ -7419,6 +7419,7 @@ production_recipes: material: DOUBLE_PLANT amount: 4 durability: 5 + Aspect_Factory: name: Arcane Elementizer fuel: From 3272c82a5bb90f7ca497f68d475f2fb3a5326052 Mon Sep 17 00:00:00 2001 From: ribagi Date: Wed, 27 Aug 2014 13:14:50 -0700 Subject: [PATCH 11/52] s s From 55d1d4f7b65491798f9d62f025627fe706f697d3 Mon Sep 17 00:00:00 2001 From: ribagi Date: Wed, 27 Aug 2014 13:15:03 -0700 Subject: [PATCH 12/52] Update FactoryObject.java --- src/com/github/igotyou/FactoryMod/FactoryObject.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/github/igotyou/FactoryMod/FactoryObject.java b/src/com/github/igotyou/FactoryMod/FactoryObject.java index d55d102a..0f95fe05 100644 --- a/src/com/github/igotyou/FactoryMod/FactoryObject.java +++ b/src/com/github/igotyou/FactoryMod/FactoryObject.java @@ -203,4 +203,4 @@ public boolean isWhole() } return false; } -} \ No newline at end of file +} From 430f3cf981520d1d57bd1a2ada652e32cae57bbf Mon Sep 17 00:00:00 2001 From: ribagi Date: Wed, 27 Aug 2014 13:15:56 -0700 Subject: [PATCH 13/52] Update FactoryModPlugin.java From 9c8d56013acdf860b8ad5dcb96ece3a5728ee1ad Mon Sep 17 00:00:00 2001 From: ribagi Date: Wed, 27 Aug 2014 13:16:45 -0700 Subject: [PATCH 14/52] Update ItemList.java --- .../igotyou/FactoryMod/utility/ItemList.java | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/com/github/igotyou/FactoryMod/utility/ItemList.java b/src/com/github/igotyou/FactoryMod/utility/ItemList.java index a9dc723f..68807640 100644 --- a/src/com/github/igotyou/FactoryMod/utility/ItemList.java +++ b/src/com/github/igotyou/FactoryMod/utility/ItemList.java @@ -281,4 +281,25 @@ public ItemList getMultiple(int multiplier) } return multipliedItemList; } + public ItemList getMultiple(double multiplier) + { + ItemList multipliedItemList=new ItemList(); + for (NamedItemStack itemStack:this) + { + NamedItemStack itemStackClone=itemStack.clone(); + long newAmount = (long) Math.round(itemStackClone.getAmount()*multiplier); + if (newAmount > 64) + { + for (;newAmount > 64; newAmount = newAmount-64) + { + NamedItemStack newItemStack = itemStack.clone(); + newItemStack.setAmount(64); + multipliedItemList.add(newItemStack); + } + } + itemStackClone.setAmount((int) newAmount); + multipliedItemList.add(itemStackClone); + } + return multipliedItemList; + } } From bdeef9853de850c6ada208495ccb211b31725130 Mon Sep 17 00:00:00 2001 From: ribagi Date: Wed, 27 Aug 2014 13:17:01 -0700 Subject: [PATCH 15/52] Update InteractionResponse.java --- .../github/igotyou/FactoryMod/utility/InteractionResponse.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/github/igotyou/FactoryMod/utility/InteractionResponse.java b/src/com/github/igotyou/FactoryMod/utility/InteractionResponse.java index a0632731..2b1f8458 100644 --- a/src/com/github/igotyou/FactoryMod/utility/InteractionResponse.java +++ b/src/com/github/igotyou/FactoryMod/utility/InteractionResponse.java @@ -84,4 +84,4 @@ public InteractionResult getInteractionResult() return interactionResult; } -} \ No newline at end of file +} From 80f24501c35fb3c7a1559dc5ddde795cc3508e35 Mon Sep 17 00:00:00 2001 From: ribagi Date: Wed, 27 Aug 2014 13:17:24 -0700 Subject: [PATCH 16/52] Update NamedItemStack.java From f1d449ba9fc06753bb47edd64d2f8594dc780a56 Mon Sep 17 00:00:00 2001 From: ribagi Date: Wed, 27 Aug 2014 13:18:59 -0700 Subject: [PATCH 17/52] Update config.yml From 458a9f992b75c449bbacf0c1416ad4819e11d1ad Mon Sep 17 00:00:00 2001 From: ribagi Date: Wed, 27 Aug 2014 13:19:28 -0700 Subject: [PATCH 18/52] Update FactoryObject.java From dd1976bd4e7f3f0c5bda305e4b14bcc1a2860251 Mon Sep 17 00:00:00 2001 From: ribagi Date: Wed, 27 Aug 2014 13:21:13 -0700 Subject: [PATCH 19/52] Update FactoryModPlugin.java --- .../igotyou/FactoryMod/FactoryModPlugin.java | 97 ++++++++++++++----- 1 file changed, 72 insertions(+), 25 deletions(-) diff --git a/src/com/github/igotyou/FactoryMod/FactoryModPlugin.java b/src/com/github/igotyou/FactoryMod/FactoryModPlugin.java index 47c39d46..b43331f3 100644 --- a/src/com/github/igotyou/FactoryMod/FactoryModPlugin.java +++ b/src/com/github/igotyou/FactoryMod/FactoryModPlugin.java @@ -25,12 +25,14 @@ import com.github.igotyou.FactoryMod.listeners.NoteStackListener; import com.github.igotyou.FactoryMod.listeners.RedstoneListener; import com.github.igotyou.FactoryMod.managers.FactoryModManager; +import com.github.igotyou.FactoryMod.properties.NetherFactoryProperties; import com.github.igotyou.FactoryMod.properties.PrintingPressProperties; import com.github.igotyou.FactoryMod.properties.ProductionProperties; import com.github.igotyou.FactoryMod.recipes.ProductionRecipe; import com.github.igotyou.FactoryMod.recipes.ProbabilisticEnchantment; import com.github.igotyou.FactoryMod.utility.ItemList; import com.github.igotyou.FactoryMod.utility.NamedItemStack; + import org.bukkit.inventory.ShapedRecipe; import org.bukkit.inventory.ShapelessRecipe; @@ -42,6 +44,7 @@ public class FactoryModPlugin extends JavaPlugin public static HashMap productionProperties; public static HashMap productionRecipes; public PrintingPressProperties printingPressProperties; + public NetherFactoryProperties netherFactoryProperties; public static final String VERSION = "v1.0"; //Current version of plugin public static final String PLUGIN_NAME = "FactoryMod"; //Name of plugin @@ -50,6 +53,17 @@ public class FactoryModPlugin extends JavaPlugin public static final int TICKS_PER_SECOND = 20; //The number of ticks per second public static final String PRINTING_PRESSES_SAVE_FILE = "pressSaves"; + public static final String NETHER_FACTORY_SAVE_FILE = "netherSaves"; + public static boolean DISABLE_PORTALS; + public static int NETHER_SCALE; + public static boolean ALLOW_REINFORCEMENT_CREATION_ABOVE_TELEPORT_PLATFORM; + public static boolean ALLOW_BLOCK_PLACEMENT_ABOVE_TELEPORT_PLATFORM; + public static boolean TELEPORT_PLATFORM_INVUNERABLE; + public static boolean REGENERATE_TELEPORT_BLOCK_ON_TELEPORT; + public static boolean REMOVE_BLOCK_ABOVE_TELEPORT_PLATFORM_ON_TELEPORT; + public static String WORLD_NAME; + public static String NETHER_NAME; + public static int PRODUCER_UPDATE_CYCLE; public static boolean PRODUCTION_ENEABLED; public static int SAVE_CYCLE; @@ -58,6 +72,9 @@ public class FactoryModPlugin extends JavaPlugin public static boolean CITADEL_ENABLED; public static Material FACTORY_INTERACTION_MATERIAL; public static boolean DESTRUCTIBLE_FACTORIES; + public static int NETHER_MARKER_MAX_DISTANCE; + public static Material NETHER_FACTORY_TELEPORT_PLATFORM_MATERIAL; + public static Material NETHER_FACTORY_MARKER_MATERIAL; public static boolean DISABLE_EXPERIENCE; public static long DISREPAIR_PERIOD; public static long REPAIR_PERIOD; @@ -106,31 +123,55 @@ public void initConfig() this.saveDefaultConfig(); reloadConfig(); config = getConfig(); - //how often should the managers save? - SAVE_CYCLE = config.getInt("general.save_cycle",15)*60*20; - //what's the material of the center block of factorys? - CENTRAL_BLOCK_MATERIAL = Material.getMaterial(config.getString("general.central_block")); - //Return the build materials upon destruction of factory. - RETURN_BUILD_MATERIALS = config.getBoolean("general.return_build_materials",false); - //is citadel enabled? - CITADEL_ENABLED = config.getBoolean("general.citadel_enabled",true); - //what's the tool that we use to interact with the factorys? - FACTORY_INTERACTION_MATERIAL = Material.getMaterial(config.getString("general.factory_interaction_material","STICK")); - //If factories are removed upon destruction of their blocks - DESTRUCTIBLE_FACTORIES=config.getBoolean("general.destructible_factories",false); - //Check if XP drops should be disabled - DISABLE_EXPERIENCE=config.getBoolean("general.disable_experience",false); - //How frequently factories are updated - PRODUCER_UPDATE_CYCLE = config.getInt("production_general.update_cycle",20); - //Period of days before a factory is removed after it falls into disrepair - DISREPAIR_PERIOD= config.getLong("general.disrepair_period",14)*24*60*60*1000; - //The length of time it takes a factory to go to 0% health - REPAIR_PERIOD = config.getLong("production_general.repair_period",28)*24*60*60*1000; - //Disable recipes which result in the following items - //Do we output the running state with a lever? - LEVER_OUTPUT_ENABLED = config.getBoolean("general.lever_output_enabled",true); - //Do we allow factories to be started with redstone? - REDSTONE_START_ENABLED = config.getBoolean("general.redstone_start_enabled",true); + //what should the nether scaling be for the nether factorys? + NETHER_SCALE = config.getInt("nether_general.nether_scale",8); + //Should we Disable regular portals? + DISABLE_PORTALS = config.getBoolean("nether_general.disable_portals", true); + //Allow reinforcement above nether factory teleport platforms. + ALLOW_REINFORCEMENT_CREATION_ABOVE_TELEPORT_PLATFORM = config.getBoolean("nether_general.allow_reinforcement_creation_above_teleport_platform", false); + //Allow people to place blocks above nether factory teleport platforms. + ALLOW_BLOCK_PLACEMENT_ABOVE_TELEPORT_PLATFORM = config.getBoolean("nether_general.allow_block_placement_above_teleport_platform", false); + //Make teleport platforms unbreakable + TELEPORT_PLATFORM_INVUNERABLE = config.getBoolean("nether_general.teleport_platform_invunerable",false); + //Right before a player get's teleported, should the teleport platform be regenerated? + REGENERATE_TELEPORT_BLOCK_ON_TELEPORT = config.getBoolean("nether_general.regenerate_teleport_block_on_teleport", false); + //Right before a player get's teleported, should the blocks above the portal be destroyed(ignotes citadel)? + REMOVE_BLOCK_ABOVE_TELEPORT_PLATFORM_ON_TELEPORT = config.getBoolean("nether_general.remove_blocks_above_teleport_platform_on_teleport", false); + //what's the name of the overworld? + WORLD_NAME = config.getString("nether_general.world_name", "world"); + //what's the name of the overworld? + NETHER_NAME = config.getString("nether_general.nether_name", "world_nether"); + //how often should the managers save? + SAVE_CYCLE = config.getInt("general.save_cycle",15)*60*20; + //what's the material of the center block of factorys? + CENTRAL_BLOCK_MATERIAL = Material.getMaterial(config.getString("general.central_block")); + //what's the material of the nether portal teleportation platforms? + NETHER_FACTORY_TELEPORT_PLATFORM_MATERIAL = Material.getMaterial(config.getString("nether_general.teleport_platform_material_nether_factory")); + //what's the material of the marker blocks for nether factorys? + NETHER_FACTORY_MARKER_MATERIAL = Material.getMaterial(config.getString("nether_general.marker_material_nether_factory")); + //how far from the factory can the marker be? + NETHER_MARKER_MAX_DISTANCE = config.getInt("nether_general.marker_max_distance"); + //Return the build materials upon destruction of factory. + RETURN_BUILD_MATERIALS = config.getBoolean("general.return_build_materials",false); + //is citadel enabled? + CITADEL_ENABLED = config.getBoolean("general.citadel_enabled",true); + //what's the tool that we use to interact with the factorys? + FACTORY_INTERACTION_MATERIAL = Material.getMaterial(config.getString("general.factory_interaction_material","STICK")); + //If factories are removed upon destruction of their blocks + DESTRUCTIBLE_FACTORIES=config.getBoolean("general.destructible_factories",false); + //Check if XP drops should be disabled + DISABLE_EXPERIENCE=config.getBoolean("general.disable_experience",false); + //How frequently factories are updated + PRODUCER_UPDATE_CYCLE = config.getInt("production_general.update_cycle",20); + //Period of days before a factory is removed after it falls into disrepair + DISREPAIR_PERIOD= config.getLong("general.disrepair_period",14)*24*60*60*1000; + //The length of time it takes a factory to go to 0% health + REPAIR_PERIOD = config.getLong("production_general.repair_period",28)*24*60*60*1000; + //Disable recipes which result in the following items + //Do we output the running state with a lever? + LEVER_OUTPUT_ENABLED = config.getBoolean("general.lever_output_enabled",true); + //Do we allow factories to be started with redstone? + REDSTONE_START_ENABLED = config.getBoolean("general.redstone_start_enabled",true); int g = 0; Iterator disabledRecipes=config.getStringList("crafting.disable").iterator(); while(disabledRecipes.hasNext()) @@ -257,7 +298,9 @@ public void initConfig() } ConfigurationSection configPrintingPresses=config.getConfigurationSection("printing_presses"); + ConfigurationSection configNetherFactory=config.getConfigurationSection("nether_factory"); printingPressProperties = PrintingPressProperties.fromConfig(this, configPrintingPresses); + netherFactoryProperties = NetherFactoryProperties.fromConfig(this, configNetherFactory); } private List getEnchantments(ConfigurationSection configEnchantments) @@ -415,4 +458,8 @@ public static void sendConsoleMessage(String message) public PrintingPressProperties getPrintingPressProperties() { return printingPressProperties; } + + public NetherFactoryProperties getNetherFactoryProperties() { + return netherFactoryProperties; + } } From 8e4d5616545b9ae88fb4ea2575a7239857a833ac Mon Sep 17 00:00:00 2001 From: ribagi Date: Wed, 27 Aug 2014 13:22:07 -0700 Subject: [PATCH 20/52] Update FactoryModPlugin.java --- .../igotyou/FactoryMod/FactoryModPlugin.java | 97 +++++-------------- 1 file changed, 25 insertions(+), 72 deletions(-) diff --git a/src/com/github/igotyou/FactoryMod/FactoryModPlugin.java b/src/com/github/igotyou/FactoryMod/FactoryModPlugin.java index b43331f3..47c39d46 100644 --- a/src/com/github/igotyou/FactoryMod/FactoryModPlugin.java +++ b/src/com/github/igotyou/FactoryMod/FactoryModPlugin.java @@ -25,14 +25,12 @@ import com.github.igotyou.FactoryMod.listeners.NoteStackListener; import com.github.igotyou.FactoryMod.listeners.RedstoneListener; import com.github.igotyou.FactoryMod.managers.FactoryModManager; -import com.github.igotyou.FactoryMod.properties.NetherFactoryProperties; import com.github.igotyou.FactoryMod.properties.PrintingPressProperties; import com.github.igotyou.FactoryMod.properties.ProductionProperties; import com.github.igotyou.FactoryMod.recipes.ProductionRecipe; import com.github.igotyou.FactoryMod.recipes.ProbabilisticEnchantment; import com.github.igotyou.FactoryMod.utility.ItemList; import com.github.igotyou.FactoryMod.utility.NamedItemStack; - import org.bukkit.inventory.ShapedRecipe; import org.bukkit.inventory.ShapelessRecipe; @@ -44,7 +42,6 @@ public class FactoryModPlugin extends JavaPlugin public static HashMap productionProperties; public static HashMap productionRecipes; public PrintingPressProperties printingPressProperties; - public NetherFactoryProperties netherFactoryProperties; public static final String VERSION = "v1.0"; //Current version of plugin public static final String PLUGIN_NAME = "FactoryMod"; //Name of plugin @@ -53,17 +50,6 @@ public class FactoryModPlugin extends JavaPlugin public static final int TICKS_PER_SECOND = 20; //The number of ticks per second public static final String PRINTING_PRESSES_SAVE_FILE = "pressSaves"; - public static final String NETHER_FACTORY_SAVE_FILE = "netherSaves"; - public static boolean DISABLE_PORTALS; - public static int NETHER_SCALE; - public static boolean ALLOW_REINFORCEMENT_CREATION_ABOVE_TELEPORT_PLATFORM; - public static boolean ALLOW_BLOCK_PLACEMENT_ABOVE_TELEPORT_PLATFORM; - public static boolean TELEPORT_PLATFORM_INVUNERABLE; - public static boolean REGENERATE_TELEPORT_BLOCK_ON_TELEPORT; - public static boolean REMOVE_BLOCK_ABOVE_TELEPORT_PLATFORM_ON_TELEPORT; - public static String WORLD_NAME; - public static String NETHER_NAME; - public static int PRODUCER_UPDATE_CYCLE; public static boolean PRODUCTION_ENEABLED; public static int SAVE_CYCLE; @@ -72,9 +58,6 @@ public class FactoryModPlugin extends JavaPlugin public static boolean CITADEL_ENABLED; public static Material FACTORY_INTERACTION_MATERIAL; public static boolean DESTRUCTIBLE_FACTORIES; - public static int NETHER_MARKER_MAX_DISTANCE; - public static Material NETHER_FACTORY_TELEPORT_PLATFORM_MATERIAL; - public static Material NETHER_FACTORY_MARKER_MATERIAL; public static boolean DISABLE_EXPERIENCE; public static long DISREPAIR_PERIOD; public static long REPAIR_PERIOD; @@ -123,55 +106,31 @@ public void initConfig() this.saveDefaultConfig(); reloadConfig(); config = getConfig(); - //what should the nether scaling be for the nether factorys? - NETHER_SCALE = config.getInt("nether_general.nether_scale",8); - //Should we Disable regular portals? - DISABLE_PORTALS = config.getBoolean("nether_general.disable_portals", true); - //Allow reinforcement above nether factory teleport platforms. - ALLOW_REINFORCEMENT_CREATION_ABOVE_TELEPORT_PLATFORM = config.getBoolean("nether_general.allow_reinforcement_creation_above_teleport_platform", false); - //Allow people to place blocks above nether factory teleport platforms. - ALLOW_BLOCK_PLACEMENT_ABOVE_TELEPORT_PLATFORM = config.getBoolean("nether_general.allow_block_placement_above_teleport_platform", false); - //Make teleport platforms unbreakable - TELEPORT_PLATFORM_INVUNERABLE = config.getBoolean("nether_general.teleport_platform_invunerable",false); - //Right before a player get's teleported, should the teleport platform be regenerated? - REGENERATE_TELEPORT_BLOCK_ON_TELEPORT = config.getBoolean("nether_general.regenerate_teleport_block_on_teleport", false); - //Right before a player get's teleported, should the blocks above the portal be destroyed(ignotes citadel)? - REMOVE_BLOCK_ABOVE_TELEPORT_PLATFORM_ON_TELEPORT = config.getBoolean("nether_general.remove_blocks_above_teleport_platform_on_teleport", false); - //what's the name of the overworld? - WORLD_NAME = config.getString("nether_general.world_name", "world"); - //what's the name of the overworld? - NETHER_NAME = config.getString("nether_general.nether_name", "world_nether"); - //how often should the managers save? - SAVE_CYCLE = config.getInt("general.save_cycle",15)*60*20; - //what's the material of the center block of factorys? - CENTRAL_BLOCK_MATERIAL = Material.getMaterial(config.getString("general.central_block")); - //what's the material of the nether portal teleportation platforms? - NETHER_FACTORY_TELEPORT_PLATFORM_MATERIAL = Material.getMaterial(config.getString("nether_general.teleport_platform_material_nether_factory")); - //what's the material of the marker blocks for nether factorys? - NETHER_FACTORY_MARKER_MATERIAL = Material.getMaterial(config.getString("nether_general.marker_material_nether_factory")); - //how far from the factory can the marker be? - NETHER_MARKER_MAX_DISTANCE = config.getInt("nether_general.marker_max_distance"); - //Return the build materials upon destruction of factory. - RETURN_BUILD_MATERIALS = config.getBoolean("general.return_build_materials",false); - //is citadel enabled? - CITADEL_ENABLED = config.getBoolean("general.citadel_enabled",true); - //what's the tool that we use to interact with the factorys? - FACTORY_INTERACTION_MATERIAL = Material.getMaterial(config.getString("general.factory_interaction_material","STICK")); - //If factories are removed upon destruction of their blocks - DESTRUCTIBLE_FACTORIES=config.getBoolean("general.destructible_factories",false); - //Check if XP drops should be disabled - DISABLE_EXPERIENCE=config.getBoolean("general.disable_experience",false); - //How frequently factories are updated - PRODUCER_UPDATE_CYCLE = config.getInt("production_general.update_cycle",20); - //Period of days before a factory is removed after it falls into disrepair - DISREPAIR_PERIOD= config.getLong("general.disrepair_period",14)*24*60*60*1000; - //The length of time it takes a factory to go to 0% health - REPAIR_PERIOD = config.getLong("production_general.repair_period",28)*24*60*60*1000; - //Disable recipes which result in the following items - //Do we output the running state with a lever? - LEVER_OUTPUT_ENABLED = config.getBoolean("general.lever_output_enabled",true); - //Do we allow factories to be started with redstone? - REDSTONE_START_ENABLED = config.getBoolean("general.redstone_start_enabled",true); + //how often should the managers save? + SAVE_CYCLE = config.getInt("general.save_cycle",15)*60*20; + //what's the material of the center block of factorys? + CENTRAL_BLOCK_MATERIAL = Material.getMaterial(config.getString("general.central_block")); + //Return the build materials upon destruction of factory. + RETURN_BUILD_MATERIALS = config.getBoolean("general.return_build_materials",false); + //is citadel enabled? + CITADEL_ENABLED = config.getBoolean("general.citadel_enabled",true); + //what's the tool that we use to interact with the factorys? + FACTORY_INTERACTION_MATERIAL = Material.getMaterial(config.getString("general.factory_interaction_material","STICK")); + //If factories are removed upon destruction of their blocks + DESTRUCTIBLE_FACTORIES=config.getBoolean("general.destructible_factories",false); + //Check if XP drops should be disabled + DISABLE_EXPERIENCE=config.getBoolean("general.disable_experience",false); + //How frequently factories are updated + PRODUCER_UPDATE_CYCLE = config.getInt("production_general.update_cycle",20); + //Period of days before a factory is removed after it falls into disrepair + DISREPAIR_PERIOD= config.getLong("general.disrepair_period",14)*24*60*60*1000; + //The length of time it takes a factory to go to 0% health + REPAIR_PERIOD = config.getLong("production_general.repair_period",28)*24*60*60*1000; + //Disable recipes which result in the following items + //Do we output the running state with a lever? + LEVER_OUTPUT_ENABLED = config.getBoolean("general.lever_output_enabled",true); + //Do we allow factories to be started with redstone? + REDSTONE_START_ENABLED = config.getBoolean("general.redstone_start_enabled",true); int g = 0; Iterator disabledRecipes=config.getStringList("crafting.disable").iterator(); while(disabledRecipes.hasNext()) @@ -298,9 +257,7 @@ public void initConfig() } ConfigurationSection configPrintingPresses=config.getConfigurationSection("printing_presses"); - ConfigurationSection configNetherFactory=config.getConfigurationSection("nether_factory"); printingPressProperties = PrintingPressProperties.fromConfig(this, configPrintingPresses); - netherFactoryProperties = NetherFactoryProperties.fromConfig(this, configNetherFactory); } private List getEnchantments(ConfigurationSection configEnchantments) @@ -458,8 +415,4 @@ public static void sendConsoleMessage(String message) public PrintingPressProperties getPrintingPressProperties() { return printingPressProperties; } - - public NetherFactoryProperties getNetherFactoryProperties() { - return netherFactoryProperties; - } } From e5600b78c0e9827205fdbb5040734849f1313179 Mon Sep 17 00:00:00 2001 From: ribagi Date: Wed, 27 Aug 2014 13:22:29 -0700 Subject: [PATCH 21/52] Update FactoryModPlugin.java --- .../igotyou/FactoryMod/FactoryModPlugin.java | 534 ++++++------------ 1 file changed, 161 insertions(+), 373 deletions(-) diff --git a/src/com/github/igotyou/FactoryMod/FactoryModPlugin.java b/src/com/github/igotyou/FactoryMod/FactoryModPlugin.java index 47c39d46..0f95fe05 100644 --- a/src/com/github/igotyou/FactoryMod/FactoryModPlugin.java +++ b/src/com/github/igotyou/FactoryMod/FactoryModPlugin.java @@ -1,418 +1,206 @@ package com.github.igotyou.FactoryMod; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import org.bukkit.Bukkit; -import org.bukkit.Material; -import org.bukkit.configuration.file.FileConfiguration; -import org.bukkit.inventory.Recipe; -import org.bukkit.inventory.ItemStack; -import org.bukkit.plugin.java.JavaPlugin; -import org.bukkit.potion.PotionEffect; -import org.bukkit.potion.PotionEffectType; -import org.bukkit.inventory.meta.EnchantmentStorageMeta; -import org.bukkit.inventory.meta.ItemMeta; -import org.bukkit.inventory.meta.PotionMeta; -import org.bukkit.inventory.meta.Repairable; -import org.bukkit.configuration.ConfigurationSection; +import org.bukkit.Location; +import org.bukkit.block.Chest; +import org.bukkit.block.Furnace; +import org.bukkit.inventory.Inventory; -import com.github.igotyou.FactoryMod.FactoryObject.FactoryType; import com.github.igotyou.FactoryMod.interfaces.Properties; -import com.github.igotyou.FactoryMod.listeners.FactoryModListener; -import com.github.igotyou.FactoryMod.listeners.NoteStackListener; -import com.github.igotyou.FactoryMod.listeners.RedstoneListener; -import com.github.igotyou.FactoryMod.managers.FactoryModManager; -import com.github.igotyou.FactoryMod.properties.PrintingPressProperties; -import com.github.igotyou.FactoryMod.properties.ProductionProperties; -import com.github.igotyou.FactoryMod.recipes.ProductionRecipe; -import com.github.igotyou.FactoryMod.recipes.ProbabilisticEnchantment; -import com.github.igotyou.FactoryMod.utility.ItemList; -import com.github.igotyou.FactoryMod.utility.NamedItemStack; -import org.bukkit.inventory.ShapedRecipe; -import org.bukkit.inventory.ShapelessRecipe; +import java.util.Date; - -public class FactoryModPlugin extends JavaPlugin +//original file: +/** + * MachineObject.java + * Purpose: Basic object base for machines to extend + * + * @author MrTwiggy + * @version 0.1 1/14/13 + */ +//edited version: +/** + * FactoryObject.java + * Purpose basic object base for factories to extend + * @author igotyou + * + */ +public class FactoryObject { - - FactoryModManager manager; - public static HashMap productionProperties; - public static HashMap productionRecipes; - public PrintingPressProperties printingPressProperties; - - public static final String VERSION = "v1.0"; //Current version of plugin - public static final String PLUGIN_NAME = "FactoryMod"; //Name of plugin - public static final String PLUGIN_PREFIX = PLUGIN_NAME + " " + VERSION + ": "; - public static final String PRODUCTION_SAVES_FILE = "productionSaves"; // The production saves file name - public static final int TICKS_PER_SECOND = 20; //The number of ticks per second - public static final String PRINTING_PRESSES_SAVE_FILE = "pressSaves"; - - public static int PRODUCER_UPDATE_CYCLE; - public static boolean PRODUCTION_ENEABLED; - public static int SAVE_CYCLE; - public static Material CENTRAL_BLOCK_MATERIAL; - public static boolean RETURN_BUILD_MATERIALS; - public static boolean CITADEL_ENABLED; - public static Material FACTORY_INTERACTION_MATERIAL; - public static boolean DESTRUCTIBLE_FACTORIES; - public static boolean DISABLE_EXPERIENCE; - public static long DISREPAIR_PERIOD; - public static long REPAIR_PERIOD; - public static boolean REDSTONE_START_ENABLED; - public static boolean LEVER_OUTPUT_ENABLED; - - public void onEnable() + //the diffrent factory types, NOTE: these are not the sub-factory types, these are the main types. + public enum FactoryType { - //load the config.yml - initConfig(); - //create the main manager - manager = new FactoryModManager(this); - //register the events(this should be moved...) - registerEvents(); + PRODUCTION, + PRINTING_PRESS } - public void onDisable() - { - //call the disable method, this will save the data etc. - manager.onDisable(); - } - public void registerEvents() + protected Location factoryLocation; // Current location of factory center + protected Location factoryInventoryLocation; //Current location of factory inventory(normmaly a chest) + protected Location factoryPowerSourceLocation;//Current location of factory power source(normmaly a furnace) + protected boolean active; // Whether factory is currently active + protected Inventory factoryInventory; // The inventory of the factory + protected Inventory factoryPowerInventory;//The inventory of the power source. + protected FactoryType factoryType; // The type this factory is + protected String subFactoryType;//the SUBfactory type(the ones loaded from the config file) + protected Properties factoryProperties; // The properties of this factory type and tier + protected boolean upgraded; // Whether the tier has recently upgraded + + /** + * Constructor + */ + public FactoryObject(Location factoryLocation, Location factoryInventoryLocation, Location factoryPowerSource, + FactoryType factoryType, String subFactoryType) { - try + this.factoryLocation = factoryLocation; + this.factoryInventoryLocation = factoryInventoryLocation; + this.factoryPowerSourceLocation = factoryPowerSource; + this.active = false; + this.factoryType = factoryType; + this.subFactoryType = subFactoryType; + this.upgraded = false; + if (this.isWhole()) { - getServer().getPluginManager().registerEvents(new FactoryModListener(manager), this); - getServer().getPluginManager().registerEvents(new RedstoneListener(manager, manager.getProductionManager()), this); - getServer().getPluginManager().registerEvents(new NoteStackListener(this), this); + initializeInventory(); } - catch(Exception e) + updateProperties(); + } + + /** + * Constructor + */ + public FactoryObject(Location factoryLocation, Location factoryInventoryLocation, Location factoryPowerSource, + boolean active, FactoryType factoryType, String subFactoryType) + { + this.factoryLocation = factoryLocation; + this.factoryInventoryLocation = factoryInventoryLocation; + this.factoryPowerSourceLocation = factoryPowerSource; + this.active = active; + this.factoryType = factoryType; + this.subFactoryType = subFactoryType; + this.upgraded = false; + if (this.isWhole()) { - e.printStackTrace(); + initializeInventory(); } + updateProperties(); } - public void initConfig() + /** + * Constructor + */ + public FactoryObject(Location factoryLocation, Location factoryInventoryLocation, Location factoryPowerSource, + boolean active, int tierLevel, FactoryType factoryType, Inventory factoryInventory, + String subFactoryType) { - productionProperties = new HashMap(); - productionRecipes = new HashMap(); - FileConfiguration config = getConfig(); - if(getConfig().getDefaults().getBoolean("copy_defaults", true)) - { - saveResource("config.yml",true); - } - this.saveDefaultConfig(); - reloadConfig(); - config = getConfig(); - //how often should the managers save? - SAVE_CYCLE = config.getInt("general.save_cycle",15)*60*20; - //what's the material of the center block of factorys? - CENTRAL_BLOCK_MATERIAL = Material.getMaterial(config.getString("general.central_block")); - //Return the build materials upon destruction of factory. - RETURN_BUILD_MATERIALS = config.getBoolean("general.return_build_materials",false); - //is citadel enabled? - CITADEL_ENABLED = config.getBoolean("general.citadel_enabled",true); - //what's the tool that we use to interact with the factorys? - FACTORY_INTERACTION_MATERIAL = Material.getMaterial(config.getString("general.factory_interaction_material","STICK")); - //If factories are removed upon destruction of their blocks - DESTRUCTIBLE_FACTORIES=config.getBoolean("general.destructible_factories",false); - //Check if XP drops should be disabled - DISABLE_EXPERIENCE=config.getBoolean("general.disable_experience",false); - //How frequently factories are updated - PRODUCER_UPDATE_CYCLE = config.getInt("production_general.update_cycle",20); - //Period of days before a factory is removed after it falls into disrepair - DISREPAIR_PERIOD= config.getLong("general.disrepair_period",14)*24*60*60*1000; - //The length of time it takes a factory to go to 0% health - REPAIR_PERIOD = config.getLong("production_general.repair_period",28)*24*60*60*1000; - //Disable recipes which result in the following items - //Do we output the running state with a lever? - LEVER_OUTPUT_ENABLED = config.getBoolean("general.lever_output_enabled",true); - //Do we allow factories to be started with redstone? - REDSTONE_START_ENABLED = config.getBoolean("general.redstone_start_enabled",true); - int g = 0; - Iterator disabledRecipes=config.getStringList("crafting.disable").iterator(); - while(disabledRecipes.hasNext()) - { - ItemStack recipeItemStack = new ItemStack(Material.getMaterial(disabledRecipes.next())); - List tempList = getServer().getRecipesFor(recipeItemStack); - for (int itterator = 0; itterator < tempList.size(); itterator ++) - { - removeRecipe(tempList.get(itterator)); - g++; - } + this.factoryLocation = factoryLocation; + this.factoryInventoryLocation = factoryInventoryLocation; + this.factoryPowerSourceLocation = factoryPowerSource; + this.active = active; + this.factoryType = factoryType; + this.subFactoryType = subFactoryType; + this.factoryInventory = factoryInventory; + updateProperties(); + } - } - //Enable the following recipes - ConfigurationSection configCraftingEnable=config.getConfigurationSection("crafting.enable"); - for (String recipeName:configCraftingEnable.getKeys(false)) - { - ConfigurationSection configSection=configCraftingEnable.getConfigurationSection(recipeName); - Recipe recipe; - List shape=configSection.getStringList("shape"); - NamedItemStack output=getItems(configSection.getConfigurationSection("output")).get(0); - if(shape.isEmpty()) - { - ShapelessRecipe shapelessRecipe=new ShapelessRecipe(output); - for (ItemStack input:getItems(configSection.getConfigurationSection("inputs"))) - { - shapelessRecipe.addIngredient(input.getAmount(),input.getType(),input.getDurability()); - } - recipe=shapelessRecipe; - } - else - { - ShapedRecipe shapedRecipe=new ShapedRecipe(output); - shapedRecipe.shape(shape.toArray(new String[shape.size()])); - for(String inputKey:configSection.getConfigurationSection("inputs").getKeys(false)) - { - ItemStack input=getItems(configSection.getConfigurationSection("inputs."+inputKey)).get(0); - shapedRecipe.setIngredient(inputKey.charAt(0),input.getType(),input.getDurability()); - } - recipe=shapedRecipe; - } - Bukkit.addRecipe(recipe); - } - - //Import recipes from config.yml - ConfigurationSection configProdRecipes=config.getConfigurationSection("production_recipes"); - //Temporary Storage array to store where recipes should point to each other - HashMap outputRecipes=new HashMap(); - Iterator recipeTitles=configProdRecipes.getKeys(false).iterator(); - while (recipeTitles.hasNext()) - { - //Section header in recipe file, also serves as unique identifier for the recipe - //All spaces are replaced with udnerscores so they don't disrupt saving format - //There should be a check for uniqueness of this identifier... - String title=recipeTitles.next(); - ConfigurationSection configSection=configProdRecipes.getConfigurationSection(title); - title=title.replaceAll(" ","_"); - //Display name of the recipe, Deafult of "Default Name" - String recipeName = configSection.getString("name","Default Name"); - //Production time of the recipe, default of 1 - int productionTime=configSection.getInt("production_time",2); - //Inputs of the recipe, empty of there are no inputs - ItemList inputs = getItems(configSection.getConfigurationSection("inputs")); - //Inputs of the recipe, empty of there are no inputs - ItemList upgrades = getItems(configSection.getConfigurationSection("upgrades")); - //Outputs of the recipe, empty of there are no inputs - ItemList outputs = getItems(configSection.getConfigurationSection("outputs")); - //Enchantments of the recipe, empty of there are no inputs - List enchantments=getEnchantments(configSection.getConfigurationSection("enchantments")); - //Whether this recipe can only be used once - boolean useOnce = configSection.getBoolean("use_once"); - ProductionRecipe recipe = new ProductionRecipe(title,recipeName,productionTime,inputs,upgrades,outputs,enchantments,useOnce,new ItemList()); - productionRecipes.put(title,recipe); - //Store the titles of the recipes that this should point to - ArrayList currentOutputRecipes=new ArrayList(); - currentOutputRecipes.addAll(configSection.getStringList("output_recipes")); - outputRecipes.put(recipe,currentOutputRecipes); - } - //Once ProductionRecipe objects have been created correctly insert different pointers - Iterator recipeIterator=outputRecipes.keySet().iterator(); - while (recipeIterator.hasNext()) - { - ProductionRecipe recipe=recipeIterator.next(); - Iterator outputIterator=outputRecipes.get(recipe).iterator(); - while(outputIterator.hasNext()) - { - recipe.addOutputRecipe(productionRecipes.get(outputIterator.next())); - } - } - - - //Import factories from config.yml - ConfigurationSection configProdFactories=config.getConfigurationSection("production_factories"); - Iterator factoryTitles=configProdFactories.getKeys(false).iterator(); - while(factoryTitles.hasNext()) + /** + * Initializes the inventory for this factory + */ + //Due to non-destructable factories this will not have been called on reconstructed factories + //however I am unable to find a use for this method in the current code, so it doesn't + //seem to be an issue right now, maybe the calls in the constructor should be gotten rid of + //all methods that get the inventory reinitialize the contents. + public void initializeInventory() + { + switch(factoryType) { - String title=factoryTitles.next(); - ConfigurationSection configSection=configProdFactories.getConfigurationSection(title); - title=title.replaceAll(" ","_"); - String factoryName=configSection.getString("name","Default Name"); - //Uses overpowered getItems method for consistency, should always return a list of size=1 - //If no fuel is found, default to charcoal - ItemList fuel=getItems(configSection.getConfigurationSection("fuel")); - if(fuel.isEmpty()) - { - fuel=new ItemList(); - fuel.add(new NamedItemStack(Material.getMaterial("COAL"),1,(short)1,"Charcoal")); - } - int fuelTime=configSection.getInt("fuel_time",2); - ItemList inputs=getItems(configSection.getConfigurationSection("inputs")); - ItemList repairs=getItems(configSection.getConfigurationSection("repair_inputs")); - List factoryRecipes=new ArrayList(); - Iterator ouputRecipeIterator=configSection.getStringList("recipes").iterator(); - while (ouputRecipeIterator.hasNext()) - { - factoryRecipes.add(productionRecipes.get(ouputRecipeIterator.next())); - } - int repair=configSection.getInt("repair_multiple",0); - //Create repair recipe - productionRecipes.put(title+"REPAIR",new ProductionRecipe(title+"REPAIR","Repair Factory",1,repairs)); - factoryRecipes.add(productionRecipes.get(title+"REPAIR")); - ProductionProperties productionProperty = new ProductionProperties(inputs, factoryRecipes, fuel, fuelTime, factoryName, repair); - productionProperties.put(title, productionProperty); + case PRODUCTION: + Chest chestBlock = (Chest)factoryInventoryLocation.getBlock().getState(); + factoryInventory = chestBlock.getInventory(); + Furnace furnaceBlock = (Furnace)factoryPowerSourceLocation.getBlock().getState(); + factoryPowerInventory = furnaceBlock.getInventory(); + break; + default: + break; } - - ConfigurationSection configPrintingPresses=config.getConfigurationSection("printing_presses"); - printingPressProperties = PrintingPressProperties.fromConfig(this, configPrintingPresses); } - private List getEnchantments(ConfigurationSection configEnchantments) + /** + * Updates the current properties for the factory. + */ + public void updateProperties() { - List enchantments=new ArrayList(); - if(configEnchantments!=null) - { - Iterator names=configEnchantments.getKeys(false).iterator(); - while (names.hasNext()) - { - String name=names.next(); - ConfigurationSection configEnchantment=configEnchantments.getConfigurationSection(name); - String type=configEnchantment.getString("type"); - if (type!=null) - { - int level=configEnchantment.getInt("level",1); - double probability=configEnchantment.getDouble("probability",1.0); - ProbabilisticEnchantment enchantment=new ProbabilisticEnchantment(name,type,level,probability); - enchantments.add(enchantment); - } - } - } - return enchantments; + factoryProperties = FactoryModPlugin.getProperties(factoryType, subFactoryType); } - private List getPotionEffects( - ConfigurationSection configurationSection) { - List potionEffects = new ArrayList(); - if(configurationSection!=null) + /** + * Returns the user-friendly name for this factory type + */ + public String factoryName() + { + switch (factoryType) { - Iterator names=configurationSection.getKeys(false).iterator(); - while (names.hasNext()) - { - String name=names.next(); - ConfigurationSection configEffect=configurationSection.getConfigurationSection(name); - String type=configEffect.getString("type"); - if (type!=null) - { - PotionEffectType effect = PotionEffectType.getByName(type); - if (effect != null) { - int duration=configEffect.getInt("duration",200); - int amplifier=configEffect.getInt("amplifier",0); - potionEffects.add(new PotionEffect(effect, duration, amplifier)); - } - } - } + case PRODUCTION: + return "Production"; + default: + return null; } - return potionEffects; } - - public ItemList getItems(ConfigurationSection configItems) + + /** + * returns the factory Inventory(normally a chest), updates the inventory variable aswell. + */ + public Inventory getInventory() { - ItemList items=new ItemList(); - if(configItems!=null) - { - for(String commonName:configItems.getKeys(false)) - { - - ConfigurationSection configItem= configItems.getConfigurationSection(commonName); - String materialName=configItem.getString("material"); - Material material = Material.getMaterial(materialName); - //only proceeds if an acceptable material name was provided - if (material == null) - { - getLogger().severe(configItems.getCurrentPath() + " requires invalid material " + materialName); - } - else - { - int amount=configItem.getInt("amount",1); - short durability=(short)configItem.getInt("durability",0); - int repairCost=(short)configItem.getInt("repair_cost",0); - String displayName=configItem.getString("display_name"); - String lore=configItem.getString("lore"); - List compulsoryEnchantments = getEnchantments(configItem.getConfigurationSection("enchantments")); - List storedEnchantments = getEnchantments(configItem.getConfigurationSection("stored_enchantments")); - List potionEffects = getPotionEffects(configItem.getConfigurationSection("potion_effects")); - items.add(createItemStack(material,amount,durability,displayName,lore,commonName,repairCost,compulsoryEnchantments,storedEnchantments,potionEffects)); - } - } - } - return items; + Chest chestBlock = (Chest)factoryInventoryLocation.getBlock().getState(); + factoryInventory = chestBlock.getInventory(); + return factoryInventory; } - private NamedItemStack createItemStack(Material material,int stackSize,short durability,String name,String loreString,String commonName,int repairCost,List compulsoryEnchants,List storedEnchants, List potionEffects) + /** + * Returns the power Source inventory, updates it aswell. + */ + public Inventory getPowerSourceInventory() { - NamedItemStack namedItemStack= new NamedItemStack(material, stackSize, durability,commonName); - if(name!=null||loreString!=null||compulsoryEnchants.size()>0||storedEnchants.size()>0||potionEffects.size()>0||repairCost > 0) - { - ItemMeta meta=namedItemStack.getItemMeta(); - if (name!=null) - meta.setDisplayName(name); - if (meta instanceof Repairable && repairCost > 0) - ((Repairable) meta).setRepairCost(repairCost); - if (loreString!=null) - { - List lore = new ArrayList(); - lore.add(loreString); - meta.setLore(lore); - } - for (ProbabilisticEnchantment enchant : compulsoryEnchants) { - meta.addEnchant(enchant.getEnchantment(), enchant.getLevel(), false); - } - if (meta instanceof EnchantmentStorageMeta) { - EnchantmentStorageMeta esm = (EnchantmentStorageMeta) meta; - for (ProbabilisticEnchantment enchant : storedEnchants) { - esm.addStoredEnchant(enchant.getEnchantment(), enchant.getLevel(), false); - } - } - if (meta instanceof PotionMeta) { - PotionMeta pm = (PotionMeta) meta; - for (PotionEffect effect : potionEffects) { - pm.addCustomEffect(effect, true); - } - } - namedItemStack.setItemMeta(meta); - } - return namedItemStack; + Furnace furnaceBlock = (Furnace)factoryPowerSourceLocation.getBlock().getState(); + factoryPowerInventory = furnaceBlock.getInventory(); + return factoryPowerInventory; } - private void removeRecipe(Recipe removalRecipe) + /** + * Returns the sub-factory type of the factory. + */ + public String getSubFactoryType() { - Iterator itterator = getServer().recipeIterator(); - while (itterator.hasNext()) - { - Recipe recipe = itterator.next(); - if (recipe.getResult().getType() == removalRecipe.getResult().getType()) - { - itterator.remove(); - } - } + return subFactoryType; } - - public static Properties getProperties(FactoryType factoryType, String subFactoryType) + + + /** + * returns if the factory is on or not. + */ + public boolean getActive() { - switch(factoryType) - { - case PRODUCTION: - return FactoryModPlugin.productionProperties.get(subFactoryType); - default: - return null; - } + return active; } - - public static int getMaxTiers(FactoryType factoryType) + + /** + * returns true if all factory blocks are occupied with the correct blocks + */ + public boolean isWhole() { - // TODO Auto-generated method stub - return 0; - } - - public static void sendConsoleMessage(String message) + //Check if power source exists + if(factoryPowerSourceLocation.getBlock().getType().getId()== 61 || factoryPowerSourceLocation.getBlock().getType().getId()== 62) { - Bukkit.getLogger().info(FactoryModPlugin.PLUGIN_PREFIX + message); + //Check inventory location + if(factoryInventoryLocation.getBlock().getType().getId()== 54) + { + //Check Interaction block location + if(factoryLocation.getBlock().getType().getId()==FactoryModPlugin.CENTRAL_BLOCK_MATERIAL.getId()) + { + return true; + } + } } - - public PrintingPressProperties getPrintingPressProperties() { - return printingPressProperties; + return false; } } From 64b9001516f038a1875eefb7d6bea662620a74c4 Mon Sep 17 00:00:00 2001 From: ribagi Date: Wed, 27 Aug 2014 13:23:55 -0700 Subject: [PATCH 22/52] Update BaseFactory.java --- src/com/github/igotyou/FactoryMod/Factorys/BaseFactory.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/github/igotyou/FactoryMod/Factorys/BaseFactory.java b/src/com/github/igotyou/FactoryMod/Factorys/BaseFactory.java index 0d7e9a84..1f651a3f 100644 --- a/src/com/github/igotyou/FactoryMod/Factorys/BaseFactory.java +++ b/src/com/github/igotyou/FactoryMod/Factorys/BaseFactory.java @@ -441,7 +441,7 @@ public void destroy(Location destroyLocation) /* * Repairs the factory */ - private void repair(int amountRepaired) + protected void repair(int amountRepaired) { currentRepair-=amountRepaired; if(currentRepair<0) From bb4b7090764d2fe392bd982d1e4541598e02c0f1 Mon Sep 17 00:00:00 2001 From: ribagi Date: Wed, 27 Aug 2014 13:25:22 -0700 Subject: [PATCH 23/52] Update FactoryModListener.java --- .../listeners/FactoryModListener.java | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/src/com/github/igotyou/FactoryMod/listeners/FactoryModListener.java b/src/com/github/igotyou/FactoryMod/listeners/FactoryModListener.java index 20d0b4e8..c46b8d7a 100644 --- a/src/com/github/igotyou/FactoryMod/listeners/FactoryModListener.java +++ b/src/com/github/igotyou/FactoryMod/listeners/FactoryModListener.java @@ -18,6 +18,7 @@ import org.bukkit.event.player.PlayerInteractEvent; import com.github.igotyou.FactoryMod.FactoryModPlugin; +import com.github.igotyou.FactoryMod.Factorys.NetherFactory; import com.github.igotyou.FactoryMod.Factorys.PrintingPress; import com.github.igotyou.FactoryMod.Factorys.ProductionFactory; import com.github.igotyou.FactoryMod.interfaces.Factory; @@ -27,6 +28,7 @@ import com.github.igotyou.FactoryMod.utility.InteractionResponse; import com.github.igotyou.FactoryMod.utility.InteractionResponse.InteractionResult; import com.untamedears.citadel.entity.PlayerReinforcement; + import org.bukkit.event.entity.ExpBottleEvent; import org.bukkit.event.player.PlayerExpChangeEvent; @@ -247,6 +249,49 @@ else if (clicked.getType() == Material.CHEST) } } + else if (clicked.getType() == FactoryModPlugin.NETHER_FACTORY_TELEPORT_PLATFORM_MATERIAL) + { + if (factoryMan.factoryExistsAt(clicked.getLocation())) + { + if(factoryMan.getFactory(clicked.getLocation()).getClass() == NetherFactory.class) + { + NetherFactory netherFactory = (NetherFactory) factoryMan.getFactory(clicked.getLocation()); + if (FactoryModPlugin.REGENERATE_TELEPORT_BLOCK_ON_TELEPORT) + { + netherFactory.regenerateTeleportBlock(clicked.getLocation()); + } + if(factoryMan.factoryWholeAt(clicked.getLocation())) + { + //toggle the recipe, and print the returned message. + InteractionResponse.messagePlayerResults(player, netherFactory.getTeleportationBlockResponse(player, clicked.getLocation())); + e.setCancelled(true); + } + } + } + } + } + else if (player.getItemInHand().getType() == Material.PAPER) + { + if (clicked.getType() == FactoryModPlugin.NETHER_FACTORY_TELEPORT_PLATFORM_MATERIAL) + { + if (factoryMan.factoryExistsAt(clicked.getLocation())) + { + if(factoryMan.getFactory(clicked.getLocation()).getClass() == NetherFactory.class) + { + NetherFactory netherFactory = (NetherFactory) factoryMan.getFactory(clicked.getLocation()); + if (FactoryModPlugin.REGENERATE_TELEPORT_BLOCK_ON_TELEPORT) + { + netherFactory.regenerateTeleportBlock(clicked.getLocation()); + } + if(factoryMan.factoryWholeAt(clicked.getLocation())) + { + //toggle the recipe, and print the returned message. + InteractionResponse.messagePlayerResults(player, netherFactory.getTeleportationBlockResponse(player, clicked.getLocation())); + e.setCancelled(true); + } + } + } + } } } /* Section commented out since there exists range of bugs that circumvent From 517dbeaf5169c9ea7d14aac6a691f9de3b8ba3be Mon Sep 17 00:00:00 2001 From: ribagi Date: Wed, 27 Aug 2014 13:25:59 -0700 Subject: [PATCH 24/52] Update NoteStackListener.java --- .../igotyou/FactoryMod/listeners/NoteStackListener.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/com/github/igotyou/FactoryMod/listeners/NoteStackListener.java b/src/com/github/igotyou/FactoryMod/listeners/NoteStackListener.java index 86152bf1..3333f81b 100644 --- a/src/com/github/igotyou/FactoryMod/listeners/NoteStackListener.java +++ b/src/com/github/igotyou/FactoryMod/listeners/NoteStackListener.java @@ -25,8 +25,8 @@ public class NoteStackListener implements Listener { private FactoryModPlugin plugin; - private static final Pattern stackableRegexp = Pattern.compile("^(§2.*?)( \\(x([1-9][0-9]*)\\))?$"); - private static final Pattern nameRegexp = Pattern.compile("^(.*?)( §2x([1-9][0-9]*))?$"); + private static final Pattern stackableRegexp = Pattern.compile("^(ยง2.*?)( \\(x([1-9][0-9]*)\\))?$"); + private static final Pattern nameRegexp = Pattern.compile("^(.*?)( ยง2x([1-9][0-9]*))?$"); private static final int SCALE_FACTOR = 4; private static final int MAX_SCALE = 64; @@ -158,7 +158,7 @@ private ItemStack setMultiplier(ItemStack item, int multiplier) { if (multiplier == 1) { newName = matcher.group(1); } else { - newName = matcher.group(1) + " §2x" + Integer.toString(multiplier); + newName = matcher.group(1) + " ยง2x" + Integer.toString(multiplier); } ItemMeta newMeta = item.getItemMeta().clone(); From 3ce845ac41014a20299c84d1e2b83ee496558997 Mon Sep 17 00:00:00 2001 From: ribagi Date: Wed, 27 Aug 2014 13:26:46 -0700 Subject: [PATCH 25/52] Update FactoryModManager.java --- .../igotyou/FactoryMod/managers/FactoryModManager.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/com/github/igotyou/FactoryMod/managers/FactoryModManager.java b/src/com/github/igotyou/FactoryMod/managers/FactoryModManager.java index 2e327ece..ceff2ab7 100644 --- a/src/com/github/igotyou/FactoryMod/managers/FactoryModManager.java +++ b/src/com/github/igotyou/FactoryMod/managers/FactoryModManager.java @@ -64,6 +64,7 @@ private void initializeManagers() //if (FactoryModPlugin.PRODUCTION_ENEABLED) //{ initializeProductionManager(); + initializeNetherFactoryManager(); initializePrintingPressManager(); //} } @@ -88,6 +89,13 @@ private void initializePrintingPressManager() managers.add(printingMan); } + private void initializeNetherFactoryManager() + { + NetherFactoryManager netherMan = new NetherFactoryManager(plugin); + + managers.add(netherMan); + } + /** * When plugin disabled, this is called. */ From e52f0477dab9cb7648dfa45dfe4578a46cfced61 Mon Sep 17 00:00:00 2001 From: ribagi Date: Wed, 27 Aug 2014 13:27:33 -0700 Subject: [PATCH 26/52] Update PrintingPressManager.java --- .../igotyou/FactoryMod/managers/PrintingPressManager.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/github/igotyou/FactoryMod/managers/PrintingPressManager.java b/src/com/github/igotyou/FactoryMod/managers/PrintingPressManager.java index a9b99d7d..464cdfaa 100644 --- a/src/com/github/igotyou/FactoryMod/managers/PrintingPressManager.java +++ b/src/com/github/igotyou/FactoryMod/managers/PrintingPressManager.java @@ -254,7 +254,7 @@ public boolean factoryWholeAt(Location factoryLocation) boolean returnValue = false; if (getFactory(factoryLocation) != null) { - returnValue = getFactory(factoryLocation).isWhole(); + returnValue = getFactory(factoryLocation).isWhole(false); } return returnValue; } From 33c4cbdf3cdb6cf30f08ba83d12b95eed112d289 Mon Sep 17 00:00:00 2001 From: ribagi Date: Wed, 27 Aug 2014 13:28:06 -0700 Subject: [PATCH 27/52] Update ProductionManager.java --- .../github/igotyou/FactoryMod/managers/ProductionManager.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/github/igotyou/FactoryMod/managers/ProductionManager.java b/src/com/github/igotyou/FactoryMod/managers/ProductionManager.java index 05a7e5a8..0085443f 100644 --- a/src/com/github/igotyou/FactoryMod/managers/ProductionManager.java +++ b/src/com/github/igotyou/FactoryMod/managers/ProductionManager.java @@ -302,7 +302,7 @@ public boolean factoryWholeAt(Location factoryLocation) boolean returnValue = false; if (getFactory(factoryLocation) != null) { - returnValue = getFactory(factoryLocation).isWhole(); + returnValue = getFactory(factoryLocation).isWhole(false); } return returnValue; } From 8a926019ebeaebd6ed48241494205d0d144a5f75 Mon Sep 17 00:00:00 2001 From: ribagi Date: Wed, 27 Aug 2014 13:28:48 -0700 Subject: [PATCH 28/52] Update ProductionManager.java --- .../managers/ProductionManager.java | 474 ++++++++---------- 1 file changed, 210 insertions(+), 264 deletions(-) diff --git a/src/com/github/igotyou/FactoryMod/managers/ProductionManager.java b/src/com/github/igotyou/FactoryMod/managers/ProductionManager.java index 0085443f..99cdf929 100644 --- a/src/com/github/igotyou/FactoryMod/managers/ProductionManager.java +++ b/src/com/github/igotyou/FactoryMod/managers/ProductionManager.java @@ -1,338 +1,284 @@ -package com.github.igotyou.FactoryMod.managers; +/* + * To change this template, choose Tools | Templates + * and open the template in the editor. + */ +package com.github.igotyou.FactoryMod.utility; -import java.io.BufferedReader; -import java.io.BufferedWriter; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.InputStreamReader; -import java.io.OutputStreamWriter; +import com.github.igotyou.FactoryMod.FactoryModPlugin; +import com.github.igotyou.FactoryMod.recipes.ProbabilisticEnchantment; +import com.github.igotyou.FactoryMod.recipes.ProductionRecipe; import java.util.ArrayList; import java.util.HashMap; -import java.util.HashSet; import java.util.List; +import java.util.ListIterator; import java.util.Map; -import java.util.Set; - -import org.bukkit.Location; +import java.util.Random; import org.bukkit.Material; -import org.bukkit.block.Block; -import org.bukkit.block.Chest; +import org.bukkit.enchantments.Enchantment; import org.bukkit.inventory.Inventory; +import org.bukkit.inventory.ItemStack; -import com.github.igotyou.FactoryMod.FactoryModPlugin; -import com.github.igotyou.FactoryMod.Factorys.ProductionFactory; -import com.github.igotyou.FactoryMod.interfaces.Factory; -import com.github.igotyou.FactoryMod.interfaces.Manager; -import com.github.igotyou.FactoryMod.interfaces.Recipe; -import com.github.igotyou.FactoryMod.properties.ProductionProperties; -import com.github.igotyou.FactoryMod.utility.InteractionResponse; -import com.github.igotyou.FactoryMod.utility.InteractionResponse.InteractionResult; -import com.github.igotyou.FactoryMod.recipes.ProductionRecipe; -import com.github.igotyou.FactoryMod.utility.ItemList; -import com.github.igotyou.FactoryMod.utility.NamedItemStack; -import java.util.Iterator; - -//original file: /** -* Manager.java -* Purpose: Interface for Manager objects for basic manager functionality -* -* @author MrTwiggy -* @version 0.1 1/08/13 -*/ -//edited version: -/** -* Manager.java -* Purpose: Interface for Manager objects for basic manager functionality -* @author igotyou -* -*/ - -public class ProductionManager implements Manager -{ - private FactoryModPlugin plugin; - private List producers; - private long repairTime; - - public ProductionManager(FactoryModPlugin plugin) - { - this.plugin = plugin; - producers = new ArrayList(); - //Set maintenance clock to 0 - updateFactorys(); - } - - public void save(File file) throws IOException + * + * @author Brian Landry + */ +public class ItemList extends ArrayList { + public boolean exactlyIn(Inventory inventory) { - //Takes difference between last repair update and current one and scales repair accordingly - updateRepair(System.currentTimeMillis()-repairTime); - repairTime=System.currentTimeMillis(); - FileOutputStream fileOutputStream = new FileOutputStream(file); - BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(fileOutputStream)); - for (ProductionFactory production : producers) + boolean returnValue=true; + //Checks that the ItemList ItemStacks are contained in the inventory + for(ItemStack itemStack:this) { - //order: subFactoryType world recipe1,recipe2 central_x central_y central_z inventory_x inventory_y inventory_z power_x power_y power_z active productionTimer energyTimer current_Recipe_number - - Location centerlocation = production.getCenterLocation(); - Location inventoryLoctation = production.getInventoryLocation(); - Location powerLocation = production.getPowerSourceLocation(); - - - - bufferedWriter.append(production.getSubFactoryType()); - bufferedWriter.append(" "); - - List recipes=production.getRecipes(); - for (int i = 0; i < recipes.size(); i++) - { - bufferedWriter.append(String.valueOf(recipes.get(i).getTitle())); - bufferedWriter.append(","); - } - bufferedWriter.append(" "); - - bufferedWriter.append(centerlocation.getWorld().getName()); - bufferedWriter.append(" "); - bufferedWriter.append(Integer.toString(centerlocation.getBlockX())); - bufferedWriter.append(" "); - bufferedWriter.append(Integer.toString(centerlocation.getBlockY())); - bufferedWriter.append(" "); - bufferedWriter.append(Integer.toString(centerlocation.getBlockZ())); - bufferedWriter.append(" "); - - bufferedWriter.append(Integer.toString(inventoryLoctation.getBlockX())); - bufferedWriter.append(" "); - bufferedWriter.append(Integer.toString(inventoryLoctation.getBlockY())); - bufferedWriter.append(" "); - bufferedWriter.append(Integer.toString(inventoryLoctation.getBlockZ())); - bufferedWriter.append(" "); - - bufferedWriter.append(Integer.toString(powerLocation.getBlockX())); - bufferedWriter.append(" "); - bufferedWriter.append(Integer.toString(powerLocation.getBlockY())); - bufferedWriter.append(" "); - bufferedWriter.append(Integer.toString(powerLocation.getBlockZ())); - bufferedWriter.append(" "); - - bufferedWriter.append(Boolean.toString(production.getActive())); - bufferedWriter.append(" "); - bufferedWriter.append(Integer.toString(production.getProductionTimer())); - bufferedWriter.append(" "); - bufferedWriter.append(Integer.toString(production.getEnergyTimer())); - bufferedWriter.append(" "); - bufferedWriter.append(Integer.toString(production.getCurrentRecipeNumber())); - bufferedWriter.append(" "); - bufferedWriter.append(Double.toString(production.getCurrentRepair())); - bufferedWriter.append(" "); - bufferedWriter.append(String.valueOf(production.getTimeDisrepair())); - bufferedWriter.append("\n"); + returnValue=returnValue&&(amountAvailable(inventory,itemStack)==itemStack.getAmount()); } - bufferedWriter.flush(); - fileOutputStream.close(); - } - - public void load(File file) throws IOException - { - repairTime=System.currentTimeMillis(); - FileInputStream fileInputStream = new FileInputStream(file); - BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(fileInputStream)); - String line; - while ((line = bufferedReader.readLine()) != null) + //Checks that inventory has not ItemStacks in addition to the ones in the itemList + for(ItemStack invItemStack:inventory.getContents()) { - String parts[] = line.split(" "); - - //order: subFactoryType world recipe1,recipe2 central_x central_y central_z inventory_x inventory_y inventory_z power_x power_y power_z active productionTimer energyTimer current_Recipe_number - String subFactoryType = parts[0]; - String recipeNames[] = parts[1].split(","); - - Location centerLocation = new Location(plugin.getServer().getWorld(parts[2]), Integer.parseInt(parts[3]), Integer.parseInt(parts[4]), Integer.parseInt(parts[5])); - Location inventoryLocation = new Location(plugin.getServer().getWorld(parts[2]), Integer.parseInt(parts[6]), Integer.parseInt(parts[7]), Integer.parseInt(parts[8])); - Location powerLocation = new Location(plugin.getServer().getWorld(parts[2]), Integer.parseInt(parts[9]), Integer.parseInt(parts[10]), Integer.parseInt(parts[11])); - boolean active = Boolean.parseBoolean(parts[12]); - int productionTimer = Integer.parseInt(parts[13]); - int energyTimer = Integer.parseInt(parts[14]); - int currentRecipeNumber = Integer.parseInt(parts[15]); - double currentRepair = Double.parseDouble(parts[16]); - long timeDisrepair = Long.parseLong(parts[17]); - if(FactoryModPlugin.productionProperties.containsKey(subFactoryType)) + if(invItemStack!=null) { - Set recipes=new HashSet(); - - // TODO: Give default recipes for subfactory type - ProductionProperties properties = FactoryModPlugin.productionProperties.get(subFactoryType); - recipes.addAll(properties.getRecipes()); - - for(String name:recipeNames) + boolean itemPresent=false; + for(ItemStack itemStack:this) { - if(FactoryModPlugin.productionRecipes.containsKey(name)) + if(itemStack.isSimilar(invItemStack)) { - recipes.add(FactoryModPlugin.productionRecipes.get(name)); + itemPresent=true; } } - - ProductionFactory production = new ProductionFactory(centerLocation, inventoryLocation, powerLocation, subFactoryType, active, productionTimer, energyTimer, new ArrayList(recipes), currentRecipeNumber, currentRepair,timeDisrepair); - addFactory(production); + returnValue=returnValue&&itemPresent; } } - fileInputStream.close(); + return returnValue; } - - public void updateFactorys() + public boolean oneIn(Inventory inventory) { - plugin.getServer().getScheduler().scheduleSyncRepeatingTask(plugin, new Runnable() + if(this.isEmpty()) + { + return true; + } + else { - @Override - public void run() + for(ItemStack itemStack:this) { - for (ProductionFactory production: producers) + if (amountAvailable(inventory, itemStack)>=itemStack.getAmount()) { - production.update(); + return true; } } - }, 0L, FactoryModPlugin.PRODUCER_UPDATE_CYCLE); + return false; + } } - - public InteractionResponse createFactory(Location factoryLocation, Location inventoryLocation, Location powerSourceLocation) + public boolean allIn(Inventory inventory) { - if (!factoryExistsAt(factoryLocation)) + for(ItemStack itemStack:this) { - HashMap properties = plugin.productionProperties; - Block inventoryBlock = inventoryLocation.getBlock(); - Chest chest = (Chest) inventoryBlock.getState(); - Inventory chestInventory = chest.getInventory(); - String subFactoryType = null; - for (Map.Entry entry : properties.entrySet()) + if (amountAvailable(inventory, itemStack) inputs = entry.getValue().getInputs(); - if(inputs.exactlyIn(chestInventory)) - { - subFactoryType = entry.getKey(); - } + return false; } - if (subFactoryType != null) + } + return true; + } + + public boolean removeFrom(Inventory inventory) + { + boolean returnValue=true; + if(allIn(inventory)) + { + for(ItemStack itemStack:this) { - ProductionFactory production = new ProductionFactory(factoryLocation, inventoryLocation, powerSourceLocation,subFactoryType); - if (properties.get(subFactoryType).getInputs().allIn(production.getInventory())) - { - addFactory(production); - properties.get(subFactoryType).getInputs().removeFrom(production.getInventory()); - return new InteractionResponse(InteractionResult.SUCCESS, "Successfully created " + production.getProductionFactoryProperties().getName()); - } + returnValue=returnValue&&removeItemStack(inventory,itemStack); } - return new InteractionResponse(InteractionResult.FAILURE, "Incorrect materials in chest! Stacks must match perfectly."); } - return new InteractionResponse(InteractionResult.FAILURE, "There is already a factory there!"); + else + { + returnValue=false; + } + return returnValue; } - - public InteractionResponse createFactory(Location factoryLocation, Location inventoryLocation, Location powerSourceLocation, int productionTimer, int energyTimer) + public int removeMaxFrom(Inventory inventory,int maxAmount) { - if (!factoryExistsAt(factoryLocation)) + int amountRemoved=0; + while(size()!=0&&allIn(inventory)&&amountRemoved<=maxAmount) { - HashMap properties = plugin.productionProperties; - Block inventoryBlock = inventoryLocation.getBlock(); - Chest chest = (Chest) inventoryBlock.getState(); - Inventory chestInventory = chest.getInventory(); - String subFactoryType = null; - boolean hasMaterials = true; - for (Map.Entry entry : properties.entrySet()) + if(removeFrom(inventory)) { - ItemList inputs = entry.getValue().getInputs(); - if(!inputs.allIn(chestInventory)) - { - hasMaterials = false; - } - if (hasMaterials == true) - { - subFactoryType = entry.getKey(); - } + amountRemoved++; } - if (hasMaterials && subFactoryType != null) + } + return amountRemoved; + } + public ItemList removeOneFrom(Inventory inventory) + { + ItemList itemList=new ItemList(); + for(NamedItemStack itemStack:this) + { + if(removeItemStack(inventory,itemStack)) { - ProductionFactory production = new ProductionFactory(factoryLocation, inventoryLocation, powerSourceLocation,subFactoryType); - if (properties.get(subFactoryType).getInputs().removeFrom(production.getInventory())) - { - addFactory(production); - return new InteractionResponse(InteractionResult.SUCCESS, "Successfully created " + subFactoryType + " production factory"); - } + itemList.add(itemStack.clone()); + break; } - return new InteractionResponse(InteractionResult.FAILURE, "Not enough materials in chest!"); } - return new InteractionResponse(InteractionResult.FAILURE, "There is already a factory there!"); + return itemList; } - - public InteractionResponse addFactory(Factory factory) + public ItemList getDifference(Inventory inventory) { - ProductionFactory production = (ProductionFactory) factory; - if (production.getCenterLocation().getBlock().getType().equals(Material.WORKBENCH) && (!factoryExistsAt(production.getCenterLocation())) - || !factoryExistsAt(production.getInventoryLocation()) || !factoryExistsAt(production.getPowerSourceLocation())) + ItemList missingItems=new ItemList(); + for(NamedItemStack itemStack:this) { - producers.add(production); - return new InteractionResponse(InteractionResult.SUCCESS, ""); + int difference=itemStack.getAmount()-amountAvailable(inventory, itemStack); + if (difference>0) + { + NamedItemStack clonedItemStack=itemStack.clone(); + clonedItemStack.setAmount(difference); + missingItems.add(clonedItemStack); + } } - else + return missingItems; + } + public int amountAvailable(Inventory inventory) + { + int amountAvailable=0; + for(ItemStack itemStack:this) { - return new InteractionResponse(InteractionResult.FAILURE, ""); + int currentAmountAvailable=amountAvailable(inventory,itemStack); + amountAvailable=amountAvailable>currentAmountAvailable ? amountAvailable : currentAmountAvailable; } + return amountAvailable; } - - public ProductionFactory getFactory(Location factoryLocation) + public void putIn(Inventory inventory) + { + putIn(inventory,new ArrayList()); + } + public void putIn(Inventory inventory,List probabilisticEnchaments) { - for (ProductionFactory production : producers) + for(ItemStack itemStack:this) { - if (production.getCenterLocation().equals(factoryLocation) || production.getInventoryLocation().equals(factoryLocation) - || production.getPowerSourceLocation().equals(factoryLocation)) - return production; + int maxStackSize=itemStack.getMaxStackSize(); + int amount=itemStack.getAmount(); + while(amount>maxStackSize) + { + ItemStack itemClone=itemStack.clone(); + Map enchantments=getEnchantments(probabilisticEnchaments); + for(Enchantment enchantment:enchantments.keySet()) + { + if(enchantment.canEnchantItem(itemStack)) + { + itemClone.addUnsafeEnchantment(enchantment,enchantments.get(enchantment)); + } + } + itemClone.setAmount(maxStackSize); + inventory.addItem(itemClone); + amount-=maxStackSize; + } + ItemStack itemClone=itemStack.clone(); + Map enchantments=getEnchantments(probabilisticEnchaments); + for(Enchantment enchantment:enchantments.keySet()) + { + if(enchantment.canEnchantItem(itemStack)) + { + itemClone.addUnsafeEnchantment(enchantment,enchantments.get(enchantment)); + } + } + itemClone.setAmount(amount); + inventory.addItem(itemClone); } - return null; } - public boolean factoryExistsAt(Location factoryLocation) + public HashMap getEnchantments(List probabilisticEnchaments) { - boolean returnValue = false; - if (getFactory(factoryLocation) != null) + HashMap enchantments = new HashMap(); + Random rand = new Random(); + for(int i=0;i=rand.nextDouble()) + { + enchantments.put(probabilisticEnchaments.get(i).getEnchantment(),probabilisticEnchaments.get(i).getLevel()); + } } - return returnValue; + return enchantments; } - public boolean factoryWholeAt(Location factoryLocation) + public String toString() { - boolean returnValue = false; - if (getFactory(factoryLocation) != null) + String returnString=""; + for(int i=0;i itr=producers.iterator(); - while(itr.hasNext()) + return totalMaterial; + } + //Removes an itemstacks worth of material from an inventory + private boolean removeItemStack(Inventory inventory,ItemStack itemStack) + { + int materialsToRemove = itemStack.getAmount(); + ListIterator iterator = inventory.iterator(); + while(iterator.hasNext()) { - ProductionFactory producer=itr.next(); - if(currentTime>(producer.getTimeDisrepair()+FactoryModPlugin.DISREPAIR_PERIOD)) + ItemStack currentItemStack = iterator.next(); + if (itemStack.isSimilar(currentItemStack)) { - itr.remove(); + if (materialsToRemove <= 0) + { + break; + } + if(currentItemStack.getAmount() == materialsToRemove) + { + iterator.set(new ItemStack(Material.AIR, 0)); + materialsToRemove = 0; + } + else if(currentItemStack.getAmount() > materialsToRemove) + { + ItemStack temp = currentItemStack.clone(); + temp.setAmount(currentItemStack.getAmount() - materialsToRemove); + iterator.set(temp); + materialsToRemove = 0; + } + else + { + int inStack = currentItemStack.getAmount(); + iterator.set(new ItemStack(Material.AIR, 0)); + materialsToRemove -= inStack; + } } - } + } + return materialsToRemove == 0; } - - public String getSavesFileName() + public ItemList getMultiple(int multiplier) { - return FactoryModPlugin.PRODUCTION_SAVES_FILE; + ItemList multipliedItemList=new ItemList(); + for (NamedItemStack itemStack:this) + { + NamedItemStack itemStackClone=itemStack.clone(); + itemStackClone.setAmount(itemStack.getAmount()*multiplier); + multipliedItemList.add(itemStackClone); + } + return multipliedItemList; } - } From 5e46b889795bad23a9d75078bac94b8513418dfd Mon Sep 17 00:00:00 2001 From: ribagi Date: Wed, 27 Aug 2014 13:35:13 -0700 Subject: [PATCH 29/52] Nether Comps --- .../FactoryMod/Factorys/NetherFactory.java | 605 ++++++++++++++++++ .../managers/NetherFactoryManager.java | 407 ++++++++++++ .../properties/NetherFactoryProperties.java | 119 ++++ 3 files changed, 1131 insertions(+) create mode 100644 src/com/github/igotyou/FactoryMod/Factorys/NetherFactory.java create mode 100644 src/com/github/igotyou/FactoryMod/managers/NetherFactoryManager.java create mode 100644 src/com/github/igotyou/FactoryMod/properties/NetherFactoryProperties.java diff --git a/src/com/github/igotyou/FactoryMod/Factorys/NetherFactory.java b/src/com/github/igotyou/FactoryMod/Factorys/NetherFactory.java new file mode 100644 index 00000000..0ff2fe92 --- /dev/null +++ b/src/com/github/igotyou/FactoryMod/Factorys/NetherFactory.java @@ -0,0 +1,605 @@ +package com.github.igotyou.FactoryMod.Factorys; + +import static com.untamedears.citadel.Utility.getReinforcement; +import static com.untamedears.citadel.Utility.isReinforced; + +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; + +import com.github.igotyou.FactoryMod.FactoryModPlugin; +import com.github.igotyou.FactoryMod.managers.NetherFactoryManager; +import com.github.igotyou.FactoryMod.properties.NetherFactoryProperties; +import com.github.igotyou.FactoryMod.utility.InteractionResponse; +import com.github.igotyou.FactoryMod.utility.InteractionResponse.InteractionResult; +import com.github.igotyou.FactoryMod.utility.ItemList; +import com.github.igotyou.FactoryMod.utility.NamedItemStack; +import com.untamedears.citadel.entity.PlayerReinforcement; + +import java.util.ArrayList; +import java.util.List; + +public class NetherFactory extends BaseFactory +{ + + private NetherFactoryProperties netherFactoryProperties;//the properties of the production factory + private Location netherTeleportPlatform; + private Location overworldTeleportPlatform; + private NetherOperationMode mode; + private NetherFactoryManager netherManager; + public NetherOperationMode getMode() { + return mode; + } + + /** + * Constructor called when creating portal + */ + public NetherFactory (Location factoryLocation, Location factoryInventoryLocation, Location factoryPowerSource, Location nTeleportPlatform, Location oTeleportPlatform, + NetherFactoryProperties netherFactoryProperties, NetherFactoryManager netherManager) + { + super(factoryLocation, factoryInventoryLocation, factoryPowerSource, FactoryType.NETHER_FACTORY, "Nether factory"); + this.netherTeleportPlatform = nTeleportPlatform; + this.overworldTeleportPlatform = oTeleportPlatform; + this.netherFactoryProperties = netherFactoryProperties; + this.mode = NetherOperationMode.REPAIR; + this.netherManager = netherManager; + } + + /** + * Constructor + */ + public NetherFactory (Location factoryLocation, Location factoryInventoryLocation, Location factoryPowerSource, Location nTeleportPlatform, Location oTeleportPlatform, + boolean active, double currentMaintenance, + long timeDisrepair, NetherOperationMode mode, NetherFactoryProperties netherFactoryProperties, + NetherFactoryManager netherManager) + { + super(factoryLocation, factoryInventoryLocation, factoryPowerSource, FactoryType.NETHER_FACTORY, active, "Nether factory", 0 , 0, currentMaintenance, timeDisrepair); + this.netherFactoryProperties = netherFactoryProperties; + this.netherTeleportPlatform = nTeleportPlatform; + this.overworldTeleportPlatform = oTeleportPlatform; + this.mode = mode; + this.netherManager = netherManager; + } + + @Override + public boolean isRepairing() { + return mode == NetherOperationMode.REPAIR; + } + + @Override + public void destroy(Location destroyLocation) + { + if (destroyLocation.equals(overworldTeleportPlatform) || destroyLocation.equals(netherTeleportPlatform)) + { + powerOff(); + } + else if (destroyLocation.equals(factoryLocation) || destroyLocation.equals(factoryInventoryLocation) || destroyLocation.equals(factoryPowerSourceLocation)) + { + powerOff(); + currentRepair=getMaxRepair(); + timeDisrepair=System.currentTimeMillis(); + } + } + + /** + * Returns either a success or error message. + * Called by the blockListener when a player left clicks the center block, with the InteractionMaterial + */ + @Override + public void update() + { + if (mode == NetherOperationMode.REPAIR) + { + //if factory is turned on + if (active) + { + //if the materials required to produce the current recipe are in the factory inventory + if (checkHasMaterials()) + { + //if the factory has been working for less than the required time for the recipe + if (currentProductionTimer < getProductionTime()) + { + //if the factory power source inventory has enough fuel for at least 1 energyCycle + if (isFuelAvailable()) + { + //if the time since fuel was last consumed is equal to how often fuel needs to be consumed + if (currentEnergyTimer == getEnergyTime()-1) + { + //remove one fuel. + getFuel().removeFrom(getPowerSourceInventory()); + //0 seconds since last fuel consumption + currentEnergyTimer = 0; + fuelConsumed(); + } + //if we don't need to consume fuel, just increment the energy timer + else + { + currentEnergyTimer++; + } + //increment the production timer + currentProductionTimer ++; + postUpdate(); + } + //if there is no fuel Available turn off the factory + else + { + powerOff(); + } + } + + //if the production timer has reached the recipes production time remove input from chest, and add output material + else if (currentProductionTimer >= getProductionTime()) + { + consumeInputs(); + produceOutputs(); + //Repairs the factory + repair(getRepairs().removeMaxFrom(getInventory(),(int)currentRepair)); + recipeFinished(); + + currentProductionTimer = 0; + powerOff(); + } + } + else + { + powerOff(); + } + } + } + else if (mode == NetherOperationMode.TELEPORT) + { + if(!isFuelAvailable()) + { + togglePower(); + } + } + } + + public List getTeleportationBlockResponse(Player player, Location clickedBlock) + { + List responses=new ArrayList(); + //does the player have acsess to the nether factory via ciatdel? + if ((!FactoryModPlugin.CITADEL_ENABLED || (FactoryModPlugin.CITADEL_ENABLED && !isReinforced(factoryLocation))) || + (((PlayerReinforcement) getReinforcement(factoryLocation)).isAccessible(player))) + { + if (mode == NetherOperationMode.TELEPORT) + { + if (active) + { + if (isFuelAvailable() || !netherFactoryProperties.getUseFuelOnTeleport()) + { + Location playerLocation = player.getLocation(); + if ( playerLocation.getBlockX() == clickedBlock.getBlockX() + && (playerLocation.getBlockY()-1) == clickedBlock.getBlockY() + && playerLocation.getBlockZ() == clickedBlock.getBlockZ()) + { + responses.add(new InteractionResponse(InteractionResult.SUCCESS, "Commencing teleportation...")); + if (clickedBlock.getWorld().getName().equalsIgnoreCase(FactoryModPlugin.WORLD_NAME)) + { + if (FactoryModPlugin.REMOVE_BLOCK_ABOVE_TELEPORT_PLATFORM_ON_TELEPORT) + { + removeBlocksAboveTeleportPlatform(netherTeleportPlatform); + } + Location destination = new Location(netherTeleportPlatform.getWorld(), netherTeleportPlatform.getX(), netherTeleportPlatform.getY(), netherTeleportPlatform.getZ(), playerLocation.getYaw(), playerLocation.getPitch()); + destination.add(0.5, 1.5, 0.5); + player.teleport(destination); + if (netherFactoryProperties.getUseFuelOnTeleport()) + { + getFuel().removeFrom(getPowerSourceInventory()); + } + } + else if (clickedBlock.getWorld().getName().equalsIgnoreCase(FactoryModPlugin.NETHER_NAME)) + { + if (FactoryModPlugin.REMOVE_BLOCK_ABOVE_TELEPORT_PLATFORM_ON_TELEPORT) + { + removeBlocksAboveTeleportPlatform(overworldTeleportPlatform); + } + Location destination = new Location(overworldTeleportPlatform.getWorld(), overworldTeleportPlatform.getX(), overworldTeleportPlatform.getY(), overworldTeleportPlatform.getZ(), playerLocation.getYaw(), playerLocation.getPitch()); + destination.add(0.5, 1.5, 0.5); + player.teleport(destination); + if (netherFactoryProperties.getUseFuelOnTeleport()) + { + getFuel().removeFrom(getPowerSourceInventory()); + } + } + } + else + { + responses.add(new InteractionResponse(InteractionResult.FAILURE, "Can't teleport, you must stand on the teleportation block!")); + } + } + else + { + responses.add(new InteractionResponse(InteractionResult.FAILURE, "Can't teleport, factory is missing fuel! ("+getFuel().getMultiple(1).toString()+")")); + } + } + else + { + responses.add(new InteractionResponse(InteractionResult.FAILURE, "Can't teleport, factory is turned off!")); + } + } + else + { + responses.add(new InteractionResponse(InteractionResult.FAILURE, "Can't teleport, factory is not in teleport mode.")); + } + return responses; + } + else + { + //is the player potentialy holding a security note/ticket? + ItemStack itemInHand = player.getItemInHand(); + if (itemInHand.getType() == Material.PAPER) + { + if (isInTicketMode()) + { + int ticketCheck = checkTicket(itemInHand); + if (ticketCheck > 0) + { + if (mode == NetherOperationMode.TELEPORT) + { + if (active) + { + if (isFuelAvailable()) + { + Location playerLocation = player.getLocation(); + if ( playerLocation.getBlockX() == clickedBlock.getBlockX() + && (playerLocation.getBlockY()-1) == clickedBlock.getBlockY() + && playerLocation.getBlockZ() == clickedBlock.getBlockZ()) + { + responses.add(new InteractionResponse(InteractionResult.SUCCESS, "Commencing teleportation...")); + if (clickedBlock.getWorld().getName().equalsIgnoreCase(FactoryModPlugin.WORLD_NAME)) + { + if (FactoryModPlugin.REMOVE_BLOCK_ABOVE_TELEPORT_PLATFORM_ON_TELEPORT) + { + removeBlocksAboveTeleportPlatform(netherTeleportPlatform); + } + Location destination = new Location(netherTeleportPlatform.getWorld(), netherTeleportPlatform.getX(), netherTeleportPlatform.getY(), netherTeleportPlatform.getZ(), playerLocation.getYaw(), playerLocation.getPitch()); + destination.add(0.5, 1.5, 0.5); + player.teleport(destination); + if (ticketCheck == 2) + { + transferTicket(player, itemInHand); + } + if (netherFactoryProperties.getUseFuelOnTeleport()) + { + getFuel().removeFrom(getPowerSourceInventory()); + } + } + else if (clickedBlock.getWorld().getName().equalsIgnoreCase(FactoryModPlugin.NETHER_NAME)) + { + if (FactoryModPlugin.REMOVE_BLOCK_ABOVE_TELEPORT_PLATFORM_ON_TELEPORT) + { + removeBlocksAboveTeleportPlatform(overworldTeleportPlatform); + } + Location destination = new Location(overworldTeleportPlatform.getWorld(), overworldTeleportPlatform.getX(), overworldTeleportPlatform.getY(), overworldTeleportPlatform.getZ(), playerLocation.getYaw(), playerLocation.getPitch()); + destination.add(0.5, 1.5, 0.5); + player.teleport(destination); + if (ticketCheck == 2) + { + transferTicket(player, itemInHand); + } + if (netherFactoryProperties.getUseFuelOnTeleport()) + { + getFuel().removeFrom(getPowerSourceInventory()); + } + } + } + else + { + responses.add(new InteractionResponse(InteractionResult.FAILURE, "Can't teleport, you must stand on the teleportation block!")); + } + } + else + { + responses.add(new InteractionResponse(InteractionResult.FAILURE, "Can't teleport, factory is missing fuel! ("+getFuel().getMultiple(1).toString()+")")); + } + } + else + { + responses.add(new InteractionResponse(InteractionResult.FAILURE, "Can't teleport, factory is turned off!")); + } + } + else + { + responses.add(new InteractionResponse(InteractionResult.FAILURE, "Can't teleport, factory is not in teleport mode.")); + } + } + else + { + responses.add(new InteractionResponse(InteractionResult.FAILURE, "Your ticket does not match any in the factory.")); + } + } + else + { + responses.add(new InteractionResponse(InteractionResult.FAILURE, "You don't have permission to use this factory.")); + } + } + else + { + responses.add(new InteractionResponse(InteractionResult.FAILURE, "You don't have permission to use this factory.")); + } + } + return responses; + } + + @Override + public List getCentralBlockResponse() + { + List responses=new ArrayList(); + //Is the factory off + if (!active) + { + //is the recipe is initiated + if (mode == null) + { + mode = NetherOperationMode.REPAIR; + } + else + { + mode = mode.getNext(); + } + + responses.add(new InteractionResponse(InteractionResult.SUCCESS, "-----------------------------------------------------")); + responses.add(new InteractionResponse(InteractionResult.SUCCESS, "Switched mode to: " + mode.getDescription()+".")); + responses.add(new InteractionResponse(InteractionResult.SUCCESS, "Next mode is: "+mode.getNext().getDescription()+".")); + } + else + { + responses.add(new InteractionResponse(InteractionResult.FAILURE, "You can't change modes while the nether factory is on! Turn it off first.")); + } + return responses; + } + + @Override + public ItemList getFuel() { + return netherFactoryProperties.getFuel(); + } + + /** + * Returns the factory's properties + */ + public NetherFactoryProperties getProperties() + { + return netherFactoryProperties; + } + + @Override + public List getChestResponse() + { + List responses=new ArrayList(); + String status=active ? "On" : "Off"; + //Name: Status with XX% health. + int maxRepair = netherFactoryProperties.getRepair(); + boolean maintenanceActive = maxRepair!=0; + int health =(!maintenanceActive) ? 100 : (int) Math.round(100*(1-currentRepair/(maxRepair))); + responses.add(new InteractionResponse(InteractionResult.SUCCESS, netherFactoryProperties.getName()+": "+status+" with "+String.valueOf(health)+"% health.")); + //Current mode: mode description + responses.add(new InteractionResponse(InteractionResult.SUCCESS, "Current mode: " + mode.getDescription())); + //Overworld side teleport platform is at X: Y: Z: + responses.add(new InteractionResponse(InteractionResult.SUCCESS, "Overworld side teleport platform is:" + overworldTeleportPlatform.getBlockX() + " Y:" + overworldTeleportPlatform.getBlockY() + " Z:" + overworldTeleportPlatform.getBlockZ())); + //Nether side teleport platform is at X: Y: Z: + responses.add(new InteractionResponse(InteractionResult.SUCCESS, "Nether side teleport platform is:" + netherTeleportPlatform.getBlockX() + " Y:" + netherTeleportPlatform.getBlockY() + " Z:" + netherTeleportPlatform.getBlockZ())); + //[Will repair XX% of the factory] + if(!getRepairs().isEmpty()&&maintenanceActive) + { + int amountAvailable=getRepairs().amountAvailable(getInventory()); + int amountRepaired=amountAvailable>currentRepair ? (int) Math.ceil(currentRepair) : amountAvailable; + int percentRepaired=(int) (( (double) amountRepaired)/netherFactoryProperties.getRepair()*100); + responses.add(new InteractionResponse(InteractionResult.SUCCESS,"Will repair "+String.valueOf(percentRepaired)+"% of the factory with "+getRepairs().getMultiple(amountRepaired).toString()+".")); + } + return responses; + } + + protected void recipeFinished() { + } + + @Override + public ItemList getInputs() { + if(mode == NetherOperationMode.REPAIR) + { + return new ItemList(); + } + else + { + return new ItemList(); + } + } + + @Override + public ItemList getOutputs() { + return new ItemList(); + } + + @Override + public ItemList getRepairs() { + ItemList repairMaterials = new ItemList(); + switch(mode) { + case REPAIR: + repairMaterials.addAll(netherFactoryProperties.getRepairMaterials()); + repairMaterials = repairMaterials.getMultiple(netherManager.getScalingFactor(factoryLocation)); + break; + default: + break; + } + return repairMaterials; + } + + @Override + public double getEnergyTime() { + return netherFactoryProperties.getEnergyTime(); + } + + @Override + public double getProductionTime() { + switch(mode) { + case REPAIR: + return netherFactoryProperties.getRepairTime(); + default: + return 1; + } + } + + @Override + public int getMaxRepair() { + return netherFactoryProperties.getRepair(); + } + + public Location getNetherTeleportPlatform() + { + return netherTeleportPlatform; + } + + + public Location getOverworldTeleportPlatform() + { + return overworldTeleportPlatform; + } + + @Override + public boolean isWhole(boolean initCall) + { + //Check if power source exists + if(factoryPowerSourceLocation.getBlock().getType().getId()== 61 || factoryPowerSourceLocation.getBlock().getType().getId()== 62) + { + //Check inventory location + if(factoryInventoryLocation.getBlock().getType().getId()== 54) + { + //Check Interaction block location + if(factoryLocation.getBlock().getType()==FactoryModPlugin.CENTRAL_BLOCK_MATERIAL) + { + if (netherTeleportPlatform == null && overworldTeleportPlatform == null && initCall) + { + return true; + } + else + { + if (netherTeleportPlatform.getBlock().getType() == FactoryModPlugin.NETHER_FACTORY_TELEPORT_PLATFORM_MATERIAL) + { + if (overworldTeleportPlatform.getBlock().getType() == FactoryModPlugin.NETHER_FACTORY_TELEPORT_PLATFORM_MATERIAL) + { + return true; + } + } + } + } + } + } + return false; + } + + public boolean isInTicketMode() + { + for (ItemStack itemSlot : getInventory().getContents()) + { + if (itemSlot != null && itemSlot.getType() == Material.PAPER) + { + return true; + } + } + return false; + } + + public int checkTicket(ItemStack ticket) + { + int amount = 0; + for(ItemStack itemStack: getInventory().getContents()) + { + if (itemStack == null) + { + continue; + } + if (itemStack.isSimilar(ticket)) + { + amount = amount+itemStack.getAmount(); + } + } + if (amount == 1) + { + return 1; + } + else if (amount >= 2) + { + return 2; + } + else + { + return 0; + } + } + + public void removeBlocksAboveTeleportPlatform(Location teleportPlatform) + { + Location netherLocation1 = teleportPlatform.clone(); + netherLocation1.add(0, 1, 0); + Location netherLocation2 = teleportPlatform.clone(); + netherLocation2.add(0, 2, 0); + Location netherLocation3 = teleportPlatform.clone(); + netherLocation3.add(0, 3, 0); + netherLocation1.getBlock().setType(Material.AIR); + netherLocation1.getBlock().getState().update(true); + netherLocation2.getBlock().setType(Material.AIR); + netherLocation2.getBlock().getState().update(true); + netherLocation3.getBlock().setType(Material.AIR); + netherLocation3.getBlock().getState().update(true); + } + + public void regenerateTeleportBlock(Location location) + { + if (location.equals(overworldTeleportPlatform)) + { + netherTeleportPlatform.getBlock().setType(FactoryModPlugin.NETHER_FACTORY_TELEPORT_PLATFORM_MATERIAL); + netherTeleportPlatform.getBlock().getState().update(true); + } + else if(location.equals(netherTeleportPlatform)) + { + overworldTeleportPlatform.getBlock().setType(FactoryModPlugin.NETHER_FACTORY_TELEPORT_PLATFORM_MATERIAL); + overworldTeleportPlatform.getBlock().getState().update(true); + } + + } + + public void transferTicket(Player player, ItemStack ticket) + { + ItemStack clonedTicket = ticket.clone(); + clonedTicket.setAmount(1); + ticket.setAmount(ticket.getAmount()-1); + player.setItemInHand(ticket); + getInventory().addItem(clonedTicket); + } + + public enum NetherOperationMode { + REPAIR(0, "Repair"), + TELEPORT(1, "Teleport"); + + private static final int MAX_ID = 2; + private int id; + private String description; + + private NetherOperationMode(int id, String description) { + this.id = id; + this.description = description; + } + + public String getDescription() { + return description; + } + + public static NetherOperationMode byId(int id) { + for (NetherOperationMode mode : NetherOperationMode.values()) { + if (mode.getId() == id) + return mode; + } + return null; + } + + public int getId() { + return id; + } + + public NetherOperationMode getNext() { + int nextId = (getId() + 1) % MAX_ID; + return NetherOperationMode.byId(nextId); + } + } +} \ No newline at end of file diff --git a/src/com/github/igotyou/FactoryMod/managers/NetherFactoryManager.java b/src/com/github/igotyou/FactoryMod/managers/NetherFactoryManager.java new file mode 100644 index 00000000..dd4a3765 --- /dev/null +++ b/src/com/github/igotyou/FactoryMod/managers/NetherFactoryManager.java @@ -0,0 +1,407 @@ +package com.github.igotyou.FactoryMod.managers; + +import static com.untamedears.citadel.Utility.isReinforced; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; +import java.util.ArrayList; +import java.util.List; + +import org.bukkit.Bukkit; +import org.bukkit.Location; +import org.bukkit.Material; +import org.bukkit.World; +import org.bukkit.block.Block; +import org.bukkit.block.Chest; +import org.bukkit.inventory.Inventory; + +import com.github.igotyou.FactoryMod.FactoryModPlugin; +import com.github.igotyou.FactoryMod.Factorys.NetherFactory; +import com.github.igotyou.FactoryMod.Factorys.NetherFactory.NetherOperationMode; +import com.github.igotyou.FactoryMod.interfaces.Factory; +import com.github.igotyou.FactoryMod.interfaces.Manager; +import com.github.igotyou.FactoryMod.properties.NetherFactoryProperties; +import com.github.igotyou.FactoryMod.utility.InteractionResponse; +import com.github.igotyou.FactoryMod.utility.InteractionResponse.InteractionResult; +import com.github.igotyou.FactoryMod.utility.ItemList; +import com.github.igotyou.FactoryMod.utility.NamedItemStack; + +import java.util.Iterator; + +//original file: +/** +* Manager.java +* Purpose: Interface for Manager objects for basic manager functionality +* +* @author MrTwiggy +* @version 0.1 1/08/13 +*/ +//edited version: +/** +* Manager.java +* Purpose: Interface for Manager objects for basic manager functionality +* @author igotyou +* +*/ + +public class NetherFactoryManager implements Manager +{ + private FactoryModPlugin plugin; + private List netherFactorys; + private long repairTime; + + public NetherFactoryManager(FactoryModPlugin plugin) + { + this.plugin = plugin; + netherFactorys = new ArrayList(); + //Set maintenance clock to 0 + updateFactorys(); + } + + public void save(File file) throws IOException + { + //Takes difference between last repair update and current one and scales repair accordingly + updateRepair(System.currentTimeMillis()-repairTime); + repairTime=System.currentTimeMillis(); + FileOutputStream fileOutputStream = new FileOutputStream(file); + ObjectOutputStream oos = new ObjectOutputStream(fileOutputStream); + int version = 1; + oos.writeInt(version); + oos.writeInt(netherFactorys.size()); + for (NetherFactory factory : netherFactorys) + { + Location centerlocation = factory.getCenterLocation(); + Location inventoryLocation = factory.getInventoryLocation(); + Location powerLocation = factory.getPowerSourceLocation(); + Location netherTeleportPlatformLocation = factory.getNetherTeleportPlatform(); + Location overworldTeleportPlatformLocation = factory.getOverworldTeleportPlatform(); + + oos.writeUTF(centerlocation.getWorld().getName()); + + oos.writeInt(centerlocation.getBlockX()); + oos.writeInt(centerlocation.getBlockY()); + oos.writeInt(centerlocation.getBlockZ()); + + oos.writeInt(inventoryLocation.getBlockX()); + oos.writeInt(inventoryLocation.getBlockY()); + oos.writeInt(inventoryLocation.getBlockZ()); + + oos.writeInt(powerLocation.getBlockX()); + oos.writeInt(powerLocation.getBlockY()); + oos.writeInt(powerLocation.getBlockZ()); + + oos.writeInt(overworldTeleportPlatformLocation.getBlockX()); + oos.writeInt(overworldTeleportPlatformLocation.getBlockY()); + oos.writeInt(overworldTeleportPlatformLocation.getBlockZ()); + + oos.writeUTF(netherTeleportPlatformLocation.getWorld().getName()); + oos.writeInt(netherTeleportPlatformLocation.getBlockX()); + oos.writeInt(netherTeleportPlatformLocation.getBlockY()); + oos.writeInt(netherTeleportPlatformLocation.getBlockZ()); + + oos.writeBoolean(factory.getActive()); + oos.writeInt(factory.getMode().getId()); + oos.writeDouble(factory.getCurrentRepair()); + oos.writeLong(factory.getTimeDisrepair()); + + } + oos.flush(); + fileOutputStream.close(); + } + + public void load(File file) throws IOException + { + try { + repairTime=System.currentTimeMillis(); + FileInputStream fileInputStream = new FileInputStream(file); + ObjectInputStream ois = new ObjectInputStream(fileInputStream); + int version = ois.readInt(); + assert(version == 1); + int count = ois.readInt(); + int i = 0; + for (i = 0; i < count; i++) + { + String worldName = ois.readUTF(); + World world = plugin.getServer().getWorld(worldName); + + Location centerLocation = new Location(world, ois.readInt(), ois.readInt(), ois.readInt()); + Location inventoryLocation = new Location(world, ois.readInt(), ois.readInt(), ois.readInt()); + Location powerLocation = new Location(world, ois.readInt(), ois.readInt(), ois.readInt()); + Location overworldTeleportPlatformLocation = new Location(world, ois.readInt(), ois.readInt(), ois.readInt()); + + String worldName2 = ois.readUTF(); + World world2 = plugin.getServer().getWorld(worldName2); + + Location netherTeleportPlatformLocation = new Location(world2, ois.readInt(), ois.readInt(), ois.readInt()); + + boolean active = ois.readBoolean(); + NetherOperationMode mode = NetherFactory.NetherOperationMode.byId(ois.readInt()); + double currentRepair = ois.readDouble(); + long timeDisrepair = ois.readLong(); + + NetherFactory factory = new NetherFactory(centerLocation, inventoryLocation, powerLocation, netherTeleportPlatformLocation, overworldTeleportPlatformLocation, + active, currentRepair, timeDisrepair, + mode, + plugin.getNetherFactoryProperties(), this); + addFactory(factory); + } + fileInputStream.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + + public void updateFactorys() + { + plugin.getServer().getScheduler().scheduleSyncRepeatingTask(plugin, new Runnable() + { + @Override + public void run() + { + for (NetherFactory factory: netherFactorys) + { + factory.update(); + } + } + }, 0L, FactoryModPlugin.PRODUCER_UPDATE_CYCLE); + } + + public InteractionResponse createFactory(Location factoryLocation, Location inventoryLocation, Location powerSourceLocation) + { + NetherFactoryProperties netherFactoryProperties = plugin.getNetherFactoryProperties(); + Block inventoryBlock = inventoryLocation.getBlock(); + Chest chest = (Chest) inventoryBlock.getState(); + Inventory chestInventory = chest.getInventory(); + ItemList constructionMaterials = netherFactoryProperties.getConstructionMaterials(); + if(constructionMaterials.oneIn(chestInventory)) + { + if (factoryLocation.getWorld().getName().equalsIgnoreCase(FactoryModPlugin.WORLD_NAME)) + { + if (factoryLocation.getBlock().getType().equals(FactoryModPlugin.CENTRAL_BLOCK_MATERIAL)) + { + if (!factoryExistsAt(factoryLocation)) + { + double scalingFactor = getScalingFactor(factoryLocation); + if (scalingFactor < 10000) + { + constructionMaterials = constructionMaterials.getMultiple(scalingFactor); + boolean hasMaterials = constructionMaterials.allIn(chestInventory); + if (hasMaterials) + { + boolean markerFound = false; + Location markerLocation = factoryLocation.clone(); + int blockY = markerLocation.getBlockY(); + for (int centerY = blockY-plugin.NETHER_MARKER_MAX_DISTANCE; centerY <= blockY+plugin.NETHER_MARKER_MAX_DISTANCE && !markerFound; centerY++) + { + markerLocation.setY(centerY); + Location oneUp = markerLocation.clone(); + oneUp.setY(centerY+1); + if (markerLocation.getBlock().getType() == FactoryModPlugin.NETHER_FACTORY_MARKER_MATERIAL && oneUp.getBlock().getType() == FactoryModPlugin.NETHER_FACTORY_TELEPORT_PLATFORM_MATERIAL) + { + markerFound = true; + } + } + if (markerFound) + { + int nether_scale = FactoryModPlugin.NETHER_SCALE; + boolean locationOk = false; + int startX = Math.round(factoryLocation.getBlockX()/nether_scale); + int startY = factoryLocation.getBlockY(); + int startZ = Math.round(factoryLocation.getBlockZ()/nether_scale); + Location netherLocation = new Location(Bukkit.getWorld(FactoryModPlugin.NETHER_NAME), startX,startY,startZ); + Location netherLocation1 = new Location(Bukkit.getWorld(FactoryModPlugin.NETHER_NAME), startX,startY+1,startZ); + Location netherLocation2 = new Location(Bukkit.getWorld(FactoryModPlugin.NETHER_NAME), startX,startY+2,startZ); + Location netherLocation3 = new Location(Bukkit.getWorld(FactoryModPlugin.NETHER_NAME), startX,startY+3,startZ); + if (FactoryModPlugin.CITADEL_ENABLED && (isReinforced(netherLocation) || isReinforced(netherLocation1) || isReinforced(netherLocation2) || isReinforced(netherLocation3))) + { + for(int scanX = startX-1; scanX <= startX+1 && !locationOk; scanX++) + { + + for(int scanZ = startZ-1; scanZ <= startZ+1 && !locationOk; scanZ++) + { + for(int scanY = startY; scanY <= 250 && !locationOk; scanY++) + { + netherLocation = new Location(Bukkit.getWorld(FactoryModPlugin.NETHER_NAME), scanX,scanY,scanZ); + netherLocation1 = new Location(Bukkit.getWorld(FactoryModPlugin.NETHER_NAME), scanX,scanY+1,scanZ); + netherLocation2 = new Location(Bukkit.getWorld(FactoryModPlugin.NETHER_NAME), scanX,scanY+2,scanZ); + netherLocation3 = new Location(Bukkit.getWorld(FactoryModPlugin.NETHER_NAME), scanX,scanY+3,scanZ); + if(!isReinforced(netherLocation) && !isReinforced(netherLocation1) && !isReinforced(netherLocation2) && !isReinforced(netherLocation3)) + { + locationOk = true; + + } + } + } + } + } + if (!factoryExistsAt(netherLocation)) + { + netherLocation.getBlock().setType(FactoryModPlugin.NETHER_FACTORY_TELEPORT_PLATFORM_MATERIAL); + netherLocation.getBlock().getState().update(true); + netherLocation1.getBlock().setType(Material.AIR); + netherLocation1.getBlock().getState().update(true); + netherLocation2.getBlock().setType(Material.AIR); + netherLocation2.getBlock().getState().update(true); + netherLocation3.getBlock().setType(Material.AIR); + netherLocation3.getBlock().getState().update(true); + if(netherLocation.getBlock().getType() != (FactoryModPlugin.NETHER_FACTORY_TELEPORT_PLATFORM_MATERIAL) && + netherLocation1.getBlock().getType() != Material.AIR && + netherLocation2.getBlock().getType() != Material.AIR && + netherLocation3.getBlock().getType() != Material.AIR) + { + return new InteractionResponse(InteractionResult.FAILURE, "For some reason the nether side obsidian block did not generate...blame bukkit"); + } + Location oneUp = markerLocation.clone(); + oneUp.add(0,1,0); + NetherFactory netherFactory = new NetherFactory(factoryLocation, inventoryLocation, powerSourceLocation, netherLocation, oneUp, plugin.getNetherFactoryProperties(), this); + if (constructionMaterials.removeFrom(netherFactory.getInventory())) + { + addFactory(netherFactory); + return new InteractionResponse(InteractionResult.SUCCESS, "Successfully created " + netherFactoryProperties.getName()); + } + } + else + { + return new InteractionResponse(InteractionResult.FAILURE, "There is a other " + netherFactoryProperties.getName() + " too close."); + } + } + else + { + return new InteractionResponse(InteractionResult.FAILURE, "No marker found. Place a " + FactoryModPlugin.NETHER_FACTORY_MARKER_MATERIAL + " 1-20 blocks above the center block of the nether factory with a " + FactoryModPlugin.NETHER_FACTORY_TELEPORT_PLATFORM_MATERIAL + " right above."); + } + } + return new InteractionResponse(InteractionResult.FAILURE, "Not enough materials in chest! You need " + constructionMaterials.toString()); + } + else + { + return new InteractionResponse(InteractionResult.FAILURE, "Factory is too close to a other nether factory!"); + } + } + return new InteractionResponse(InteractionResult.FAILURE, "There is already a " + netherFactoryProperties.getName() + " there!"); + } + else + { + return new InteractionResponse(InteractionResult.FAILURE, "Wrong center block!"); + } + } + else + { + return new InteractionResponse(InteractionResult.FAILURE, netherFactoryProperties.getName() + "'s can only be built in the overworld"); + } + } + return new InteractionResponse(InteractionResult.FAILURE, "No factory was identified!"); + } + + public InteractionResponse addFactory(Factory factory) + { + NetherFactory netherFactory = (NetherFactory) factory; + if (netherFactory.getCenterLocation().getBlock().getType().equals(FactoryModPlugin.CENTRAL_BLOCK_MATERIAL) && + (!factoryExistsAt(netherFactory.getCenterLocation()) + || !factoryExistsAt(netherFactory.getInventoryLocation()) + || !factoryExistsAt(netherFactory.getPowerSourceLocation()) + || !factoryExistsAt(netherFactory.getNetherTeleportPlatform()) + || !factoryExistsAt(netherFactory.getOverworldTeleportPlatform()) )) + { + netherFactorys.add(netherFactory); + return new InteractionResponse(InteractionResult.SUCCESS, ""); + } + else + { + return new InteractionResponse(InteractionResult.FAILURE, ""); + } + } + + public NetherFactory getFactory(Location factoryLocation) + { + for (NetherFactory factory : netherFactorys) + { + if (factory.getCenterLocation().equals(factoryLocation) + || factory.getInventoryLocation().equals(factoryLocation) + || factory.getPowerSourceLocation().equals(factoryLocation) + || factory.getNetherTeleportPlatform().equals(factoryLocation) + || factory.getOverworldTeleportPlatform().equals(factoryLocation)) + return factory; + } + return null; + } + + public boolean factoryExistsAt(Location factoryLocation) + { + boolean returnValue = false; + if (getFactory(factoryLocation) != null) + { + returnValue = true; + } + return returnValue; + } + + public boolean factoryWholeAt(Location factoryLocation) + { + boolean returnValue = false; + if (getFactory(factoryLocation) != null) + { + returnValue = getFactory(factoryLocation).isWhole(false); + } + return returnValue; + } + + public void removeFactory(Factory factory) + { + netherFactorys.remove((NetherFactory)factory); + } + + public void updateRepair(long time) + { + for (NetherFactory factory: netherFactorys) + { + factory.updateRepair(time/((double)FactoryModPlugin.REPAIR_PERIOD)); + } + long currentTime=System.currentTimeMillis(); + Iterator itr=netherFactorys.iterator(); + while(itr.hasNext()) + { + NetherFactory factory=itr.next(); + if(currentTime>(factory.getTimeDisrepair()+FactoryModPlugin.DISREPAIR_PERIOD)) + { + itr.remove(); + } + } + } + + public String getSavesFileName() + { + return FactoryModPlugin.NETHER_FACTORY_SAVE_FILE; + } + + public double getScalingFactor(Location location) + { + double scalingFactor = 1; + NetherFactoryProperties properties = plugin.getNetherFactoryProperties(); + for (NetherFactory factory : netherFactorys) + { + Location factoryLoc = factory.getCenterLocation(); + if(factory.getCenterLocation().equals(location)) + { + continue; + } + //the distance function uses square root, which is quite expensive, let's check if it's even realistic that it's within range first. + if ((location.getBlockX()-factoryLoc.getBlockX()) < properties.getScalingRadius() || (location.getBlockX()-factoryLoc.getBlockX()) > -(properties.getScalingRadius())) + { + if ((location.getBlockZ()-factoryLoc.getBlockZ()) < properties.getScalingRadius() || (location.getBlockZ()-factoryLoc.getBlockZ()) > -(properties.getScalingRadius())) + { + double distance = location.distance(factoryLoc); + if (distance <= properties.getScalingRadius()) + { + scalingFactor = scalingFactor * Math.exp(1/(distance/properties.getCostScalingRadius())); + } + } + } + } + return scalingFactor; + } + +} \ No newline at end of file diff --git a/src/com/github/igotyou/FactoryMod/properties/NetherFactoryProperties.java b/src/com/github/igotyou/FactoryMod/properties/NetherFactoryProperties.java new file mode 100644 index 00000000..b5378da8 --- /dev/null +++ b/src/com/github/igotyou/FactoryMod/properties/NetherFactoryProperties.java @@ -0,0 +1,119 @@ +package com.github.igotyou.FactoryMod.properties; + + +import org.bukkit.Material; +import org.bukkit.configuration.ConfigurationSection; + +import com.github.igotyou.FactoryMod.FactoryModPlugin; +import com.github.igotyou.FactoryMod.utility.ItemList; +import com.github.igotyou.FactoryMod.utility.NamedItemStack; + + +public class NetherFactoryProperties +{ + private ItemList constructionMaterials; + private ItemList fuel; + private ItemList repairMaterials; + private int energyTime; + private String name; + private int repair; + private double repairTime; + private int scalingMode; + private int scalingRadius; + private int costScalingRadius; + private boolean useFuelOnTeleport; + + public NetherFactoryProperties(ItemList constructionMaterials, ItemList fuel, ItemList repairMaterials, + int energyTime, String name,int repair, double repairTime, int scalingRadius, boolean useFuelOnTeleport, int costScalingRadius) + { + this.constructionMaterials = constructionMaterials; + this.fuel = fuel; + this.repairMaterials = repairMaterials; + this.energyTime = energyTime; + this.name = name; + this.repair=repair; + this.repairTime=repairTime; + this.scalingRadius = scalingRadius; + this.costScalingRadius = costScalingRadius; + this.useFuelOnTeleport = useFuelOnTeleport; + } + + public int getRepair() + { + return repair; + } + + public int getScalingRadius() + { + return scalingRadius; + } + + public int getCostScalingRadius() + { + return costScalingRadius; + } + + //0 == no scaling, 1==linear scaling, 2==exponential scaling + public int getScalingMode() + { + return scalingMode; + } + + public ItemList getConstructionMaterials() + { + return constructionMaterials; + } + + public ItemList getFuel() + { + return fuel; + } + + public ItemList getRepairMaterials() + { + return repairMaterials; + } + + public int getEnergyTime() + { + return energyTime; + } + + public String getName() + { + return name; + } + + public static NetherFactoryProperties fromConfig(FactoryModPlugin plugin, ConfigurationSection configNetherFactory) + { + ItemList nfFuel=plugin.getItems(configNetherFactory.getConfigurationSection("fuel")); + if(nfFuel.isEmpty()) + { + nfFuel=new ItemList(); + nfFuel.add(new NamedItemStack(Material.getMaterial("COAL"),1,(short)1,"Charcoal")); + } + ConfigurationSection costs = configNetherFactory.getConfigurationSection("costs"); + ItemList nfConstructionCost=plugin.getItems(costs.getConfigurationSection("construction")); + ItemList nfRepairCost=plugin.getItems(costs.getConfigurationSection("repair")); + int nfEnergyTime = configNetherFactory.getInt("fuel_time", 10); + int nfRepair = costs.getInt("repair_multiple",1); + String nfName = configNetherFactory.getString("name", "Nether Factory"); + int repairTime = configNetherFactory.getInt("repair_time",12); + int nfScalingRadius = configNetherFactory.getInt("scaling_radius", 5000); + int costScalingRadius = configNetherFactory.getInt("scaling_radius", 5000); + boolean nfUseFuelOnTeleport = configNetherFactory.getBoolean("use_fuel_on_teleport", false); + return new NetherFactoryProperties(nfConstructionCost, nfFuel, nfRepairCost, nfEnergyTime, nfName, nfRepair, repairTime, nfScalingRadius,nfUseFuelOnTeleport, costScalingRadius); + + } + + public double getRepairTime() + { + return repairTime; + } + + public boolean getUseFuelOnTeleport() + { + return useFuelOnTeleport; + } + +} \ No newline at end of file From 342554e59bde8c6a650fef5ad48e11e49749e62f Mon Sep 17 00:00:00 2001 From: ribagi Date: Wed, 27 Aug 2014 13:42:46 -0700 Subject: [PATCH 30/52] Update config.yml --- config.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/config.yml b/config.yml index fdb912b4..0d59d6a1 100644 --- a/config.yml +++ b/config.yml @@ -7419,7 +7419,6 @@ production_recipes: material: DOUBLE_PLANT amount: 4 durability: 5 - Aspect_Factory: name: Arcane Elementizer fuel: From 1c568a2738c140da680d1b9aadacbcbe2efa7180 Mon Sep 17 00:00:00 2001 From: ribagi Date: Wed, 27 Aug 2014 13:43:11 -0700 Subject: [PATCH 31/52] Update config.yml From 0c8e6d2f690f28c5b68f0443e6317c8cb984a2b3 Mon Sep 17 00:00:00 2001 From: ribagi Date: Wed, 27 Aug 2014 13:48:01 -0700 Subject: [PATCH 32/52] Update config.yml --- config.yml | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/config.yml b/config.yml index 0d59d6a1..3f677ec6 100644 --- a/config.yml +++ b/config.yml @@ -83,19 +83,19 @@ production_general: update_cycle: 20 repair_period: 28 disrepair_period: 14 -nether_general: - disable_portals: true - nether_scale: 8 - world_name: world - nether_name: world_nether - teleport_platform_material_nether_factory: OBSIDIAN - marker_material_nether_factory: COAL_BLOCK - marker_max_distance: 64 - allow_reinforcement_creation_above_teleport_platform: false - allow_block_placement_above_teleport_platform: true - teleport_platform_invunerable: false - regenerate_teleport_block_on_teleport: false - remove_blocks_above_teleport_platform_on_teleport: true + + + + + + + + + + + + + printing_presses: fuel: Charcoal: @@ -1903,7 +1903,7 @@ production_factories: - Mutate_Acacia_Saplings - Mutate_Dark_Oak_Saplings - Mutate_Podzol - - Mutate_Grassless_Dirt + - Mutate_Grassless_Dirt - Sequencing_Sunflower - Sequencing_Lilac - Sequencing_Double_Tallgrass From 801043f4eb0bf25f086f9cad14ec6a7989908cf7 Mon Sep 17 00:00:00 2001 From: ribagi Date: Wed, 27 Aug 2014 13:48:40 -0700 Subject: [PATCH 33/52] Update config.yml --- config.yml | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/config.yml b/config.yml index 3f677ec6..2eec4497 100644 --- a/config.yml +++ b/config.yml @@ -83,19 +83,6 @@ production_general: update_cycle: 20 repair_period: 28 disrepair_period: 14 - - - - - - - - - - - - - printing_presses: fuel: Charcoal: From 86098a315be6ead3ee145477421cad42cda02a33 Mon Sep 17 00:00:00 2001 From: ribagi Date: Wed, 27 Aug 2014 13:49:14 -0700 Subject: [PATCH 34/52] Update config.yml From bf30edf28b9193c1d20b9cbca944545541558594 Mon Sep 17 00:00:00 2001 From: ribagi Date: Wed, 27 Aug 2014 13:49:54 -0700 Subject: [PATCH 35/52] Update config.yml From 2e251ce261316ffd56eecb7a0af8da83d63d767a Mon Sep 17 00:00:00 2001 From: ribagi Date: Thu, 2 Oct 2014 23:03:12 -0700 Subject: [PATCH 36/52] Header of Aspect Factory in wrong spot This prevents the aspects factory from even being created. Don't put this on the live server until Nether factories are released or an off switch is written into the costs, such as 1 bedrock. --- config.yml | 64 +++++++++++++++++++++++++++--------------------------- 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/config.yml b/config.yml index 2eec4497..1bf20da4 100644 --- a/config.yml +++ b/config.yml @@ -2576,6 +2576,38 @@ production_factories: amount: 1 display_name: Smaragdus lore: An item used to create a Bastion Block + Aspect_Factory: + name: Arcane Elementizer + fuel: + Charcoal: + material: COAL + durability: 1 + inputs: + Netherbrick: + material: NETHER_BRICK + amount: 1536 + Redstone: + material: REDSTONE + amount: 1152 + Netherquartz: + material: QUARTZ + amount: 576 + recipes: + - Forge_Aspect_of_Terra + - Forge_Aspect_of_End + - Forge_Aspect_of_Nether + - Craft_Eye_of_Ender + repair_multiple: 26 + repair_inputs: + Nether Brick: + material: NETHER_BRICK + amount: 6 + Redstone: + material: REDSTONE + amount: 5 + Netherquartz: + material: QUARTZ + amount: 2 nether_factory: name: Nether Factory fuel: @@ -7406,38 +7438,6 @@ production_recipes: material: DOUBLE_PLANT amount: 4 durability: 5 - Aspect_Factory: - name: Arcane Elementizer - fuel: - Charcoal: - material: COAL - durability: 1 - inputs: - Netherbrick: - material: NETHER_BRICK - amount: 1536 - Redstone: - material: REDSTONE - amount: 1152 - Netherquartz: - material: QUARTZ - amount: 576 - recipes: - - Forge_Aspect_of_Terra - - Forge_Aspect_of_End - - Forge_Aspect_of_Nether - - Craft_Eye_of_Ender - repair_multiple: 26 - repair_inputs: - Nether Brick: - material: NETHER_BRICK - amount: 6 - Redstone: - material: REDSTONE - amount: 5 - Netherquartz: - material: QUARTZ - amount: 2 Forge_Aspect_of_Terra: name: Forge Aspect of Terra production_time: 64 From d12c9a8d8f9805a3d737d3b9c4b781569260975e Mon Sep 17 00:00:00 2001 From: ribagi Date: Fri, 31 Oct 2014 22:21:22 -0700 Subject: [PATCH 37/52] Update config.yml --- config.yml | 7286 +--------------------------------------------------- 1 file changed, 54 insertions(+), 7232 deletions(-) diff --git a/config.yml b/config.yml index 1bf20da4..b96eaf4e 100644 --- a/config.yml +++ b/config.yml @@ -194,7250 +194,72 @@ crafting: Double Stone Slab: material: DOUBLE_STEP production_factories: - Bakery: - name: Bakery - fuel: - Charcoal: - material: COAL - durability: 1 - inputs: - Baked Potato: - material: BAKED_POTATO - amount: 512 - Cookie: - material: COOKIE - amount: 1024 - Bread: - material: BREAD - amount: 256 - Pumpkin Pie: - material: PUMPKIN_PIE - amount: 192 - recipes: - - Baked_Potato - - Bake_Cookie - - Bake_Bread - - Bake_Cake - - Bake_Pumpkin_Pie - repair_multiple: 26 - repair_inputs: - Baked Potato: - material: BAKED_POTATO - amount: 2 - Cookie: - material: COOKIE - amount: 4 - Bread: - material: BREAD - Pumpkin Pie: - material: PUMPKIN_PIE - Black_Wool_Processing: - name: Black Wool Processing - fuel: - Charcoal: - material: COAL - durability: 1 - inputs: - Lapis Lazuli: - material: INK_SACK - amount: 20 - durability: 4 - Gray Dye: - material: INK_SACK - amount: 20 - durability: 8 - Cocoa: - material: INK_SACK - amount: 20 - durability: 3 - Purple Dye: - material: INK_SACK - amount: 20 - durability: 5 - Dandelion Yellow: - material: INK_SACK - amount: 20 - durability: 11 - Ink Sack: - material: INK_SACK - amount: 20 - Magenta Dye: - material: INK_SACK - amount: 20 - durability: 13 - Pink Dye: - material: INK_SACK - amount: 20 - durability: 9 - Cyan Dye: - material: INK_SACK - amount: 20 - durability: 6 - Orange Dye: - material: INK_SACK - amount: 20 - durability: 14 - Cactus Green: - material: INK_SACK - amount: 20 - durability: 2 - Bone Meal: - material: INK_SACK - amount: 20 - durability: 15 - Light Gray Dye: - material: INK_SACK - amount: 20 - durability: 7 - Light Blue Dye: - material: INK_SACK - amount: 20 - durability: 12 - Rose Red: - material: INK_SACK - amount: 20 - durability: 1 - Lime Dye: - material: INK_SACK - amount: 20 - durability: 10 - Black Wool: - material: WOOL - amount: 20 - durability: 15 - recipes: - - Dye_Black_Wool_Blue - - Dye_Black_Wool_Gray - - Dye_Black_Wool_Brown - - Dye_Black_Wool_Purple - - Dye_Black_Wool_Yellow - - Dye_Black_Wool_Magenta - - Dye_Black_Wool_Pink - - Dye_Black_Wool_Cyan - - Dye_Black_Wool_Orange - - Dye_Black_Wool_Green - - Dye_Black_Wool_White - - Dye_Black_Wool_Light_Gray - - Dye_Black_Wool_Light_Blue - - Dye_Black_Wool_Red - - Dye_Black_Wool_Lime - repair_multiple: 2 - repair_inputs: - Lapis Lazuli: - material: INK_SACK - durability: 4 - Gray Dye: - material: INK_SACK - durability: 8 - Cocoa: - material: INK_SACK - durability: 3 - Purple Dye: - material: INK_SACK - durability: 5 - Dandelion Yellow: - material: INK_SACK - durability: 11 - Ink Sack: - material: INK_SACK - Magenta Dye: - material: INK_SACK - durability: 13 - Pink Dye: - material: INK_SACK - durability: 9 - Cyan Dye: - material: INK_SACK - durability: 6 - Orange Dye: - material: INK_SACK - durability: 14 - Cactus Green: - material: INK_SACK - durability: 2 - Bone Meal: - material: INK_SACK - durability: 15 - Light Gray Dye: - material: INK_SACK - durability: 7 - Light Blue Dye: - material: INK_SACK - durability: 12 - Rose Red: - material: INK_SACK - durability: 1 - Lime Dye: - material: INK_SACK - durability: 10 - Black Wool: - material: WOOL - durability: 15 - Brown_Wool_Processing: - name: Brown Wool Processing - fuel: - Charcoal: - material: COAL - durability: 1 - inputs: - Lapis Lazuli: - material: INK_SACK - amount: 20 - durability: 4 - Gray Dye: - material: INK_SACK - amount: 20 - durability: 8 - Cocoa: - material: INK_SACK - amount: 20 - durability: 3 - Purple Dye: - material: INK_SACK - amount: 20 - durability: 5 - Dandelion Yellow: - material: INK_SACK - amount: 20 - durability: 11 - Ink Sack: - material: INK_SACK - amount: 20 - Magenta Dye: - material: INK_SACK - amount: 20 - durability: 13 - Pink Dye: - material: INK_SACK - amount: 20 - durability: 9 - Cyan Dye: - material: INK_SACK - amount: 20 - durability: 6 - Orange Dye: - material: INK_SACK - amount: 20 - durability: 14 - Cactus Green: - material: INK_SACK - amount: 20 - durability: 2 - Bone Meal: - material: INK_SACK - amount: 20 - durability: 15 - Light Gray Dye: - material: INK_SACK - amount: 20 - durability: 7 - Light Blue Dye: - material: INK_SACK - amount: 20 - durability: 12 - Rose Red: - material: INK_SACK - amount: 20 - durability: 1 - Lime Dye: - material: INK_SACK - amount: 20 - durability: 10 - Brown Wool: - material: WOOL - amount: 20 - durability: 12 - recipes: - - Dye_Brown_Wool_Blue - - Dye_Brown_Wool_Gray - - Dye_Brown_Wool_Purple - - Dye_Brown_Wool_Yellow - - Dye_Brown_Wool_Black - - Dye_Brown_Wool_Magenta - - Dye_Brown_Wool_Pink - - Dye_Brown_Wool_Cyan - - Dye_Brown_Wool_Orange - - Dye_Brown_Wool_Green - - Dye_Brown_Wool_White - - Dye_Brown_Wool_Light_Gray - - Dye_Brown_Wool_Light_Blue - - Dye_Brown_Wool_Red - - Dye_Brown_Wool_Lime - repair_multiple: 2 - repair_inputs: - Lapis Lazuli: - material: INK_SACK - durability: 4 - Gray Dye: - material: INK_SACK - durability: 8 - Cocoa: - material: INK_SACK - durability: 3 - Purple Dye: - material: INK_SACK - durability: 5 - Dandelion Yellow: - material: INK_SACK - durability: 11 - Ink Sack: - material: INK_SACK - Magenta Dye: - material: INK_SACK - durability: 13 - Pink Dye: - material: INK_SACK - durability: 9 - Cyan Dye: - material: INK_SACK - durability: 6 - Orange Dye: - material: INK_SACK - durability: 14 - Cactus Green: - material: INK_SACK - durability: 2 - Bone Meal: - material: INK_SACK - durability: 15 - Light Gray Dye: - material: INK_SACK - durability: 7 - Light Blue Dye: - material: INK_SACK - durability: 12 - Rose Red: - material: INK_SACK - durability: 1 - Lime Dye: - material: INK_SACK - durability: 10 - Brown Wool: - material: WOOL - durability: 12 - Charcoal_Smelter: - name: Charcoal Burner - fuel: - Charcoal: - material: COAL - durability: 1 - inputs: - Charcoal: - material: COAL - amount: 600 - durability: 1 - recipes: - - Smelt_Oak_Wood - - Smelt_Spruce_Wood - - Smelt_Birch_Wood - - Smelt_Jungle_Wood - - Burn_Acacia_Wood - - Burn_Dark_Oak_Wood - - Smelt_Coal - repair_multiple: 60 - repair_inputs: - Charcoal: - material: COAL - durability: 1 - Diamond_Axe_Smithy: - name: Diamond Axe Smithy - fuel: - Charcoal: - material: COAL - durability: 1 - inputs: - Diamond: - material: DIAMOND - amount: 64 - recipes: - - Diamond_Axe - repair_multiple: 7 - repair_inputs: - Diamond: - material: DIAMOND - Diamond_Boots_Smithy: - name: Diamond Boots Smithy - fuel: - Charcoal: - material: COAL - durability: 1 - inputs: - Diamond: - material: DIAMOND - amount: 160 - recipes: - - Diamond_Boots - repair_multiple: 16 - repair_inputs: - Diamond: - material: DIAMOND - Diamond_Cauldron: - name: Diamond Cauldron - fuel: - Charcoal: - material: COAL - durability: 1 - inputs: - Diamond: - material: DIAMOND - amount: 50 - recipes: - - Diamond_XP_Bottle_0 - - Diamond_XP_Bottle_1 - - Diamond_XP_Bottle_2 - - Diamond_XP_Bottle_3 - repair_multiple: 5 - repair_inputs: - Diamond: - material: DIAMOND - Diamond_Chestplate_Smithy: - name: Diamond Chestplate Smithy - fuel: - Charcoal: - material: COAL - durability: 1 - inputs: - Diamond: - material: DIAMOND - amount: 320 - recipes: - - Diamond_Chestplate - repair_multiple: 32 - repair_inputs: - Diamond: - material: DIAMOND - Diamond_Helmet_Smithy: - name: Diamond Helmet Smithy - fuel: - Charcoal: - material: COAL - durability: 1 - inputs: - Diamond: - material: DIAMOND - amount: 192 - recipes: - - Diamond_Helmet - repair_multiple: 20 - repair_inputs: - Diamond: - material: DIAMOND - Diamond_Hoe_Smithy: - name: Diamond Hoe Smithy - fuel: - Charcoal: - material: COAL - durability: 1 - inputs: - Diamond: - material: DIAMOND - amount: 32 - recipes: - - Diamond_Hoe - repair_multiple: 4 - repair_inputs: - Diamond: - material: DIAMOND - Diamond_Leggings_Smithy: - name: Diamond Leggings Smithy - fuel: - Charcoal: - material: COAL - durability: 1 - inputs: - Diamond: - material: DIAMOND - amount: 256 - recipes: - - Diamond_Leggings - repair_multiple: 26 - repair_inputs: - Diamond: - material: DIAMOND - Diamond_Pickaxe_Smithy: - name: Diamond Pickaxe Smithy - fuel: - Charcoal: - material: COAL - durability: 1 - inputs: - Diamond: - material: DIAMOND - amount: 96 - recipes: - - Diamond_Pickaxe - repair_multiple: 10 - repair_inputs: - Diamond: - material: DIAMOND - Diamond_Spade_Smithy: - name: Diamond Spade Smithy - fuel: - Charcoal: - material: COAL - durability: 1 - inputs: - Diamond: - material: DIAMOND - amount: 48 - recipes: - - Diamond_Spade - repair_multiple: 5 - repair_inputs: - Diamond: - material: DIAMOND - Diamond_Sword_Smithy: - name: Diamond Sword Smithy - fuel: - Charcoal: - material: COAL - durability: 1 - inputs: - Diamond: - material: DIAMOND - amount: 80 - recipes: - - Diamond_Sword - repair_multiple: 8 - repair_inputs: - Diamond: - material: DIAMOND - Glass_Smelter: - name: Glass Smelter - fuel: - Charcoal: - material: COAL - durability: 1 - inputs: - Sand: - material: SAND - amount: 2048 - Charcoal: - material: COAL - amount: 256 - durability: 1 - recipes: - - Smelt_Glass - - Smelt_Sandstone - - Smelt_Glass_Panes - - Smelt_Bottles - - Smelt_Red_Sand - - Smelt_Glass_From_Sandstone - repair_multiple: 26 - repair_inputs: - Sand: - material: SAND - amount: 8 - Charcoal: - material: COAL - durability: 1 - Nether_Brick_Smelter: - name: Nether Brick Smelter - fuel: - Charcoal: - material: COAL - durability: 1 - inputs: - Netherrack: - material: NETHERRACK - amount: 2048 - Charcoal: - material: COAL - amount: 256 - durability: 1 - recipes: - - Smelt_Nether_bricks - repair_multiple: 26 - repair_inputs: - Netherrack: - material: NETHERRACK - amount: 8 - Charcoal: - material: COAL - durability: 1 - Kiln: - name: Kiln - fuel: - Charcoal: - material: COAL - durability: 1 - inputs: - Clay: - material: CLAY - amount: 1280 - Charcoal: - material: COAL - amount: 256 - durability: 1 - recipes: - - Bake_clay_blocks - - Bake_bricks - - Bake_pots - repair_multiple: 26 - repair_inputs: - Clay: - material: CLAY - amount: 8 - Charcoal: - material: COAL - durability: 1 - Gold_Axe_Smithy: - name: Gold Axe Smithy - fuel: - Charcoal: - material: COAL - durability: 1 - inputs: - Gold Ingot: - material: GOLD_INGOT - amount: 64 - recipes: - - Gold_Axe - repair_multiple: 7 - repair_inputs: - Gold Ingot: - material: GOLD_INGOT - Gold_Boots_Smithy: - name: Gold Boots Smithy - fuel: - Charcoal: - material: COAL - durability: 1 - inputs: - Gold Ingot: - material: GOLD_INGOT - amount: 160 - recipes: - - Gold_Boots - repair_multiple: 16 - repair_inputs: - Gold Ingot: - material: GOLD_INGOT - Gold_Chestplate_Smithy: - name: Gold Chestplate Smithy - fuel: - Charcoal: - material: COAL - durability: 1 - inputs: - Gold Ingot: - material: GOLD_INGOT - amount: 320 - recipes: - - Gold_Chestplate - repair_multiple: 32 - repair_inputs: - Gold Ingot: - material: GOLD_INGOT - Gold_Helmet_Smithy: - name: Gold Helmet Smithy - fuel: - Charcoal: - material: COAL - durability: 1 - inputs: - Gold Ingot: - material: GOLD_INGOT - amount: 192 - recipes: - - Gold_Helmet - repair_multiple: 20 - repair_inputs: - Gold Ingot: - material: GOLD_INGOT - Gold_Hoe_Smithy: - name: Gold Hoe Smithy - fuel: - Charcoal: - material: COAL - durability: 1 - inputs: - Gold Ingot: - material: GOLD_INGOT - amount: 32 - recipes: - - Gold_Hoe - repair_multiple: 4 - repair_inputs: - Gold Ingot: - material: GOLD_INGOT - Gold_Leggings_Smithy: - name: Gold Leggings Smithy - fuel: - Charcoal: - material: COAL - durability: 1 - inputs: - Gold Ingot: - material: GOLD_INGOT - amount: 256 - recipes: - - Gold_Leggings - repair_multiple: 26 - repair_inputs: - Gold Ingot: - material: GOLD_INGOT - Gold_Pickaxe_Smithy: - name: Gold Pickaxe Smithy - fuel: - Charcoal: - material: COAL - durability: 1 - inputs: - Gold Ingot: - material: GOLD_INGOT - amount: 96 - recipes: - - Gold_Pickaxe - repair_multiple: 10 - repair_inputs: - Gold Ingot: - material: GOLD_INGOT - Gold_Spade_Smithy: - name: Gold Spade Smithy - fuel: - Charcoal: - material: COAL - durability: 1 - inputs: - Gold Ingot: - material: GOLD_INGOT - amount: 48 - recipes: - - Gold_Spade - repair_multiple: 5 - repair_inputs: - Gold Ingot: - material: GOLD_INGOT - Gold_Sword_Smithy: - name: Gold Sword Smithy - fuel: - Charcoal: - material: COAL - durability: 1 - inputs: - Gold Ingot: - material: GOLD_INGOT - amount: 80 - recipes: - - Gold_Sword - repair_multiple: 8 - repair_inputs: - Gold Ingot: - material: GOLD_INGOT - Gray_Wool_Processing: - name: Gray Wool Processing - fuel: - Charcoal: - material: COAL - durability: 1 - inputs: - Lapis Lazuli: - material: INK_SACK - amount: 20 - durability: 4 - Gray Dye: - material: INK_SACK - amount: 20 - durability: 8 - Cocoa: - material: INK_SACK - amount: 20 - durability: 3 - Purple Dye: - material: INK_SACK - amount: 20 - durability: 5 - Dandelion Yellow: - material: INK_SACK - amount: 20 - durability: 11 - Ink Sack: - material: INK_SACK - amount: 20 - Magenta Dye: - material: INK_SACK - amount: 20 - durability: 13 - Pink Dye: - material: INK_SACK - amount: 20 - durability: 9 - Cyan Dye: - material: INK_SACK - amount: 20 - durability: 6 - Orange Dye: - material: INK_SACK - amount: 20 - durability: 14 - Cactus Green: - material: INK_SACK - amount: 20 - durability: 2 - Bone Meal: - material: INK_SACK - amount: 20 - durability: 15 - Light Gray Dye: - material: INK_SACK - amount: 20 - durability: 7 - Light Blue Dye: - material: INK_SACK - amount: 20 - durability: 12 - Rose Red: - material: INK_SACK - amount: 20 - durability: 1 - Lime Dye: - material: INK_SACK - amount: 20 - durability: 10 - Gray Wool: - material: WOOL - amount: 20 - durability: 7 - recipes: - - Dye_Gray_Wool_Blue - - Dye_Gray_Wool_Brown - - Dye_Gray_Wool_Purple - - Dye_Gray_Wool_Yellow - - Dye_Gray_Wool_Black - - Dye_Gray_Wool_Magenta - - Dye_Gray_Wool_Pink - - Dye_Gray_Wool_Cyan - - Dye_Gray_Wool_Orange - - Dye_Gray_Wool_Green - - Dye_Gray_Wool_White - - Dye_Gray_Wool_Light_Gray - - Dye_Gray_Wool_Light_Blue - - Dye_Gray_Wool_Red - - Dye_Gray_Wool_Lime - repair_multiple: 2 - repair_inputs: - Lapis Lazuli: - material: INK_SACK - durability: 4 - Gray Dye: - material: INK_SACK - durability: 8 - Cocoa: - material: INK_SACK - durability: 3 - Purple Dye: - material: INK_SACK - durability: 5 - Dandelion Yellow: - material: INK_SACK - durability: 11 - Ink Sack: - material: INK_SACK - Magenta Dye: - material: INK_SACK - durability: 13 - Pink Dye: - material: INK_SACK - durability: 9 - Cyan Dye: - material: INK_SACK - durability: 6 - Orange Dye: - material: INK_SACK - durability: 14 - Cactus Green: - material: INK_SACK - durability: 2 - Bone Meal: - material: INK_SACK - durability: 15 - Light Gray Dye: - material: INK_SACK - durability: 7 - Light Blue Dye: - material: INK_SACK - durability: 12 - Rose Red: - material: INK_SACK - durability: 1 - Lime Dye: - material: INK_SACK - durability: 10 - Gray Wool: - material: WOOL - durability: 7 - Grill: - name: Grill - fuel: - Charcoal: - material: COAL - durability: 1 - inputs: - Cooked Chicken: - material: COOKED_CHICKEN - amount: 192 - Cooked Fish: - material: COOKED_FISH - amount: 16 - Cooked Salmon: - material: COOKED_FISH - amount: 16 - durability: 1 - Grilled Pork: - material: GRILLED_PORK - amount: 160 - Cooked Beef: - material: COOKED_BEEF - amount: 64 - recipes: - - Cooked_Chicken - - Cooked_Fish - - Grilled_Pork - - Cooked_Beef - - Cook_Salmon - - Bastion_Rations - repair_multiple: 2 - repair_inputs: - Cooked Chicken: - material: COOKED_CHICKEN - amount: 10 - Cooked Fish: - material: COOKED_FISH - Cooked Salmon: - material: COOKED_FISH - durability: 1 - Grilled Pork: - material: GRILLED_PORK - amount: 8 - Cooked Beef: - material: COOKED_BEEF - amount: 4 - Iron_Axe_Smithy: - name: Iron Axe Smithy - fuel: - Charcoal: - material: COAL - durability: 1 - inputs: - Iron Ingot: - material: IRON_INGOT - amount: 64 - recipes: - - Iron_Axe - repair_multiple: 7 - repair_inputs: - Iron Ingot: - material: IRON_INGOT - Iron_Boots_Smithy: - name: Iron Boots Smithy - fuel: - Charcoal: - material: COAL - durability: 1 - inputs: - Iron Ingot: - material: IRON_INGOT - amount: 160 - recipes: - - Iron_Boots - repair_multiple: 16 - repair_inputs: - Iron Ingot: - material: IRON_INGOT - Iron_Cauldron: - name: Iron Cauldron - fuel: - Charcoal: - material: COAL - durability: 1 - inputs: - Iron Ingot: - material: IRON_INGOT - amount: 200 - recipes: - - Iron_XP_Bottle_0 - - Iron_XP_Bottle_1 - - Iron_XP_Bottle_2 - - Iron_XP_Bottle_3 - - Bastion_Smaragdus_Polisher - repair_multiple: 20 - repair_inputs: - Iron Ingot: - material: IRON_INGOT - Iron_Chestplate_Smithy: - name: Iron Chestplate Smithy - fuel: - Charcoal: - material: COAL - durability: 1 - inputs: - Iron Ingot: - material: IRON_INGOT - amount: 320 - recipes: - - Iron_Chestplate - repair_multiple: 32 - repair_inputs: - Iron Ingot: - material: IRON_INGOT - Iron_Helmet_Smithy: - name: Iron Helmet Smithy - fuel: - Charcoal: - material: COAL - durability: 1 - inputs: - Iron Ingot: - material: IRON_INGOT - amount: 192 - recipes: - - Iron_Helmet - repair_multiple: 20 - repair_inputs: - Iron Ingot: - material: IRON_INGOT - Iron_Hoe_Smithy: - name: Iron Hoe Smithy - fuel: - Charcoal: - material: COAL - durability: 1 - inputs: - Iron Ingot: - material: IRON_INGOT - amount: 32 - recipes: - - Iron_Hoe - repair_multiple: 4 - repair_inputs: - Iron Ingot: - material: IRON_INGOT - Iron_Leggings_Smithy: - name: Iron Leggings Smithy - fuel: - Charcoal: - material: COAL - durability: 1 - inputs: - Iron Ingot: - material: IRON_INGOT - amount: 256 - recipes: - - Iron_Leggings - repair_multiple: 26 - repair_inputs: - Iron Ingot: - material: IRON_INGOT - Iron_Pickaxe_Smithy: - name: Iron Pickaxe Smithy - fuel: - Charcoal: - material: COAL - durability: 1 - inputs: - Iron Ingot: - material: IRON_INGOT - amount: 96 - recipes: - - Iron_Pickaxe - repair_multiple: 10 - repair_inputs: - Iron Ingot: - material: IRON_INGOT - Iron_Spade_Smithy: - name: Iron Spade Smithy - fuel: - Charcoal: - material: COAL - durability: 1 - inputs: - Iron Ingot: - material: IRON_INGOT - amount: 48 - recipes: - - Iron_Spade - repair_multiple: 5 - repair_inputs: - Iron Ingot: - material: IRON_INGOT - Iron_Sword_Smithy: - name: Iron Sword Smithy - fuel: - Charcoal: - material: COAL - durability: 1 - inputs: - Iron Ingot: - material: IRON_INGOT - amount: 80 - recipes: - - Iron_Sword - repair_multiple: 8 - repair_inputs: - Iron Ingot: - material: IRON_INGOT - Light_Gray_Wool_Processing: - name: Light Gray Wool Processing - fuel: - Charcoal: - material: COAL - durability: 1 - inputs: - Lapis Lazuli: - material: INK_SACK - amount: 20 - durability: 4 - Gray Dye: - material: INK_SACK - amount: 20 - durability: 8 - Cocoa: - material: INK_SACK - amount: 20 - durability: 3 - Purple Dye: - material: INK_SACK - amount: 20 - durability: 5 - Dandelion Yellow: - material: INK_SACK - amount: 20 - durability: 11 - Ink Sack: - material: INK_SACK - amount: 20 - Magenta Dye: - material: INK_SACK - amount: 20 - durability: 13 - Pink Dye: - material: INK_SACK - amount: 20 - durability: 9 - Cyan Dye: - material: INK_SACK - amount: 20 - durability: 6 - Orange Dye: - material: INK_SACK - amount: 20 - durability: 14 - Cactus Green: - material: INK_SACK - amount: 20 - durability: 2 - Bone Meal: - material: INK_SACK - amount: 20 - durability: 15 - Light Gray Dye: - material: INK_SACK - amount: 20 - durability: 7 - Light Blue Dye: - material: INK_SACK - amount: 20 - durability: 12 - Rose Red: - material: INK_SACK - amount: 20 - durability: 1 - Lime Dye: - material: INK_SACK - amount: 20 - durability: 10 - Light Gray Wool: - material: WOOL - amount: 20 - durability: 8 - recipes: - - Dye_Light_Gray_Wool_Blue - - Dye_Light_Gray_Wool_Gray - - Dye_Light_Gray_Wool_Brown - - Dye_Light_Gray_Wool_Purple - - Dye_Light_Gray_Wool_Yellow - - Dye_Light_Gray_Wool_Black - - Dye_Light_Gray_Wool_Magenta - - Dye_Light_Gray_Wool_Pink - - Dye_Light_Gray_Wool_Cyan - - Dye_Light_Gray_Wool_Orange - - Dye_Light_Gray_Wool_Green - - Dye_Light_Gray_Wool_White - - Dye_Light_Gray_Wool_Light_Blue - - Dye_Light_Gray_Wool_Red - - Dye_Light_Gray_Wool_Lime - repair_multiple: 2 - repair_inputs: - Lapis Lazuli: - material: INK_SACK - durability: 4 - Gray Dye: - material: INK_SACK - durability: 8 - Cocoa: - material: INK_SACK - durability: 3 - Purple Dye: - material: INK_SACK - durability: 5 - Dandelion Yellow: - material: INK_SACK - durability: 11 - Ink Sack: - material: INK_SACK - Magenta Dye: - material: INK_SACK - durability: 13 - Pink Dye: - material: INK_SACK - durability: 9 - Cyan Dye: - material: INK_SACK - durability: 6 - Orange Dye: - material: INK_SACK - durability: 14 - Cactus Green: - material: INK_SACK - durability: 2 - Bone Meal: - material: INK_SACK - durability: 15 - Light Gray Dye: - material: INK_SACK - durability: 7 - Light Blue Dye: - material: INK_SACK - durability: 12 - Rose Red: - material: INK_SACK - durability: 1 - Lime Dye: - material: INK_SACK - durability: 10 - Light Gray Wool: - material: WOOL - durability: 8 - Pink_Wool_Processing: - name: Pink Wool Processing - fuel: - Charcoal: - material: COAL - durability: 1 - inputs: - Lapis Lazuli: - material: INK_SACK - amount: 20 - durability: 4 - Gray Dye: - material: INK_SACK - amount: 20 - durability: 8 - Cocoa: - material: INK_SACK - amount: 20 - durability: 3 - Purple Dye: - material: INK_SACK - amount: 20 - durability: 5 - Dandelion Yellow: - material: INK_SACK - amount: 20 - durability: 11 - Ink Sack: - material: INK_SACK - amount: 20 - Magenta Dye: - material: INK_SACK - amount: 20 - durability: 13 - Pink Dye: - material: INK_SACK - amount: 20 - durability: 9 - Cyan Dye: - material: INK_SACK - amount: 20 - durability: 6 - Orange Dye: - material: INK_SACK - amount: 20 - durability: 14 - Cactus Green: - material: INK_SACK - amount: 20 - durability: 2 - Bone Meal: - material: INK_SACK - amount: 20 - durability: 15 - Light Gray Dye: - material: INK_SACK - amount: 20 - durability: 7 - Light Blue Dye: - material: INK_SACK - amount: 20 - durability: 12 - Rose Red: - material: INK_SACK - amount: 20 - durability: 1 - Lime Dye: - material: INK_SACK - amount: 20 - durability: 10 - Pink Wool: - material: WOOL - amount: 20 - durability: 6 - recipes: - - Dye_Pink_Wool_Blue - - Dye_Pink_Wool_Gray - - Dye_Pink_Wool_Brown - - Dye_Pink_Wool_Purple - - Dye_Pink_Wool_Yellow - - Dye_Pink_Wool_Black - - Dye_Pink_Wool_Magenta - - Dye_Pink_Wool_Cyan - - Dye_Pink_Wool_Orange - - Dye_Pink_Wool_Green - - Dye_Pink_Wool_White - - Dye_Pink_Wool_Light_Gray - - Dye_Pink_Wool_Light_Blue - - Dye_Pink_Wool_Red - - Dye_Pink_Wool_Lime - repair_multiple: 2 - repair_inputs: - Lapis Lazuli: - material: INK_SACK - durability: 4 - Gray Dye: - material: INK_SACK - durability: 8 - Cocoa: - material: INK_SACK - durability: 3 - Purple Dye: - material: INK_SACK - durability: 5 - Dandelion Yellow: - material: INK_SACK - durability: 11 - Ink Sack: - material: INK_SACK - Magenta Dye: - material: INK_SACK - durability: 13 - Pink Dye: - material: INK_SACK - durability: 9 - Cyan Dye: - material: INK_SACK - durability: 6 - Orange Dye: - material: INK_SACK - durability: 14 - Cactus Green: - material: INK_SACK - durability: 2 - Bone Meal: - material: INK_SACK - durability: 15 - Light Gray Dye: - material: INK_SACK - durability: 7 - Light Blue Dye: - material: INK_SACK - durability: 12 - Rose Red: - material: INK_SACK - durability: 1 - Lime Dye: - material: INK_SACK - durability: 10 - Pink Wool: - material: WOOL - durability: 6 - Rail_Factory: - name: Rail Factory - fuel: - Charcoal: - material: COAL - durability: 1 - inputs: - Iron Ingot: - material: IRON_INGOT - amount: 320 - Stick: - material: STICK - amount: 128 - Gold Ingot: - material: GOLD_INGOT - amount: 192 - Redstone: - material: REDSTONE - amount: 32 - recipes: - - Produce_Rail - - Produce_Powered_Rail - - Produce_Detector_Rail - - Produce_Activator_Rail - - Produce_Minecarts - repair_multiple: 4 - repair_inputs: - Iron Ingot: - material: IRON_INGOT - amount: 7 - Stick: - material: STICK - amount: 3 - Gold Ingot: - material: GOLD_INGOT - amount: 5 - Redstone: - material: REDSTONE - Horse_Factory: - name: Animal Husbandry Factory - fuel: - Charcoal: - material: COAL - durability: 1 - inputs: - Iron Block: - material: IRON_BLOCK - amount: 64 - Hay Bale: - material: HAY_BLOCK - amount: 64 - Golden Apple: - material: GOLDEN_APPLE - amount: 64 - Slime ball: - material: SLIME_BALL - amount: 16 - recipes: - - Produce_Saddle - - Produce_Diamond_Horse_Armor - - Produce_Gold_Horse_Armor - - Produce_Iron_Horse_Armor - - Produce_Leads - repair_multiple: 6 - repair_inputs: - Iron Block: - material: IRON_BLOCK - Hay Bale: - material: HAY_BLOCK - Golden Apple: - material: GOLDEN_APPLE - amount: 1 - durability: 0 - Basic_Redstone_Factory: - name: Basic Redstone Mechanism Factory - fuel: - Charcoal: - material: COAL - durability: 1 - inputs: - Redstone: - material: REDSTONE - amount: 960 - Stick: - material: STICK - amount: 512 - Stone: - material: STONE - amount: 576 - Netherquartz: - material: QUARTZ - amount: 256 - Glass: - material: GLASS - amount: 128 - recipes: - - Produce_Redstone_Torches - - Produce_Repeaters - - Produce_Comparators - - Produce_Daylight_Sensors - repair_multiple: 10 - repair_inputs: - Netherquartz: - material: QUARTZ - amount: 25 - Glass: - material: GLASS - amount: 12 - Redstone: - material: REDSTONE - amount: 9 - Advanced_Redstone_Factory: - name: Advanced Redstone Mechanism Factory - fuel: - Charcoal: - material: COAL - durability: 1 - inputs: - Redstone: - material: REDSTONE - amount: 960 - Chest: - material: CHEST - amount: 72 - Glowstone: - material: GLOWSTONE - amount: 256 - Iron Ingot: - material: IRON_INGOT - amount: 576 - Slime ball: - material: SLIME_BALL - amount: 64 - Diamond: - material: DIAMOND - amount: 64 - recipes: - - Produce_Noteblocks - - Produce_Dispensers - - Produce_Redstone_lamps - - Produce_Pistons - - Produce_Sticky_Pistons - - Produce_Jukeboxes - - Produce_Hoppers - repair_multiple: 10 - repair_inputs: - Redstone: - material: REDSTONE - amount: 9 - Glowstone: - material: GLOWSTONE - amount: 2 - Iron Ingot: - material: IRON_INGOT - amount: 6 - Slime ball: - material: SLIME_BALL - amount: 1 - Carpentry_factory: - name: Carpentry factory - fuel: - Charcoal: - material: COAL - durability: 1 - inputs: - Paper: - material: PAPER - amount: 384 - Chest: - material: CHEST - amount: 128 - Leather: - material: LEATHER - amount: 128 - recipes: - - Craft_Fences - - Craft_Boats - - Craft_Signs - - Craft_Ladders - - Craft_Trap_Doors - - Craft_Item_Frames - - Craft_Bookshelfs - - Bastion_Framing - repair_multiple: 10 - repair_inputs: - Paper: - material: PAPER - amount: 4 - Chest: - material: CHEST - amount: 1 - Leather: - material: LEATHER - amount: 1 - Fancy_Ore_Smelter: - name: Fancy Ore Smelter - fuel: - Charcoal: - material: COAL - durability: 1 - inputs: - Lapis Lazuli: - material: INK_SACK - amount: 1536 - durability: 4 - Redstone: - material: REDSTONE - amount: 1152 - Netherquartz: - material: QUARTZ - amount: 576 - recipes: - - Smelt_Lapis_Lazuli_Ore - - Smelt_Redstone_Ore - - Smelt_Netherquartz_Ore - - Bastion_Walls - repair_multiple: 26 - repair_inputs: - Lapis Lazuli: - material: INK_SACK - amount: 6 - durability: 4 - Redstone: - material: REDSTONE - amount: 5 - Netherquartz: - material: QUARTZ - amount: 2 - Smelter: - name: Ore Smelter - fuel: - Charcoal: - material: COAL - durability: 1 - inputs: - Coal: - material: COAL - amount: 512 - Iron Ingot: - material: IRON_INGOT - amount: 384 - Gold Ingot: - material: GOLD_INGOT - amount: 192 - Diamond: - material: DIAMOND - amount: 96 - recipes: - - Smelt_Coal_Ore - - Smelt_Iron_Ore - - Smelt_Gold_Ore - - Smelt_Diamond_Ore - - Bastion_Base - repair_multiple: 10 - repair_inputs: - Coal: - material: COAL - amount: 6 - Iron Ingot: - material: IRON_INGOT - amount: 4 - Gold Ingot: - material: GOLD_INGOT - amount: 2 - Diamond: - material: DIAMOND - Stone_Brick_Smelter: - name: Fancy Stone Brick Smelter - fuel: - Charcoal: - material: COAL - durability: 1 - inputs: - Stone Brick: - material: SMOOTH_BRICK - amount: 512 - Lapis Lazuli: - material: INK_SACK - amount: 256 - durability: 4 - recipes: - - Smelt_Cracked_Stone_Brick - - Smelt_Mossy_Stone_Brick - - Smelt_Chiseled_Stone_Brick - - Bastion_Flooring - repair_multiple: 26 - repair_inputs: - Stone Brick: - material: SMOOTH_BRICK - amount: 2 - Lapis Lazuli: - material: INK_SACK - durability: 4 - Stone_Smelter: - name: Stone Smelter - fuel: - Charcoal: - material: COAL - durability: 1 - inputs: - Stone: - material: STONE - amount: 2048 - recipes: - - Smelt_Stone - repair_multiple: 205 - repair_inputs: - Stone: - material: STONE - Bio_Lab: - name: Bio Lab - fuel: - Charcoal: - material: COAL - durability: 1 - inputs: - Oak Saplings: - material: SAPLING - amount: 512 - Grass: - material: GRASS - amount: 512 - recipes: - - Mutate_Spruce_Saplings - - Mutate_Birch_Saplings - - Mutate_Jungle_Saplings - - Mutate_Acacia_Saplings - - Mutate_Dark_Oak_Saplings - - Mutate_Podzol - - Mutate_Grassless_Dirt - - Sequencing_Sunflower - - Sequencing_Lilac - - Sequencing_Double_Tallgrass - - Sequencing_Large_Fern - - Sequencing_Rose_Bush - - Sequencing_Peony - repair_multiple: 10 - repair_inputs: - Oak Saplings: - material: SAPLING - amount: 5 - Grass: - material: GRASS - amount: 5 - Mad_Scientist_Lab: - name: Mad Scientist Lab - fuel: - Emeralds: - material: EMERALD - inputs: - Glass bottles: - material: GLASS_BOTTLE - amount: 512 - Pig eggs: - material: MONSTER_EGG - durability: 90 - amount: 16 - Villager eggs: - material: MONSTER_EGG - durability: 120 - amount: 16 - Squid eggs: - material: MONSTER_EGG - durability: 94 - amount: 16 - Horse eggs: - material: MONSTER_EGG - durability: 100 - amount: 16 - Silk touch book: - material: ENCHANTED_BOOK - amount: 1 - stored_enchantments: - Silk Touch 1: - type: SILK_TOUCH - level: 1 - recipes: - - Mutate_Pigmen - - Infect_Zombies - - Mutate_Skeletons - - Mutate_Creepers - - Mutate_Witches - - Mutate_Spiders - - Mutate_Cave_Spiders - - Mutate_Ghasts - repair_multiple: 2 - repair_inputs: - Glass_bottles: - material: GLASS_BOTTLE - amount: 32 - Pig eggs: - material: MONSTER_EGG - durability: 90 - amount: 1 - Villager eggs: - material: MONSTER_EGG - durability: 120 - amount: 1 - Squid eggs: - material: MONSTER_EGG - durability: 94 - amount: 1 - Horse eggs: - material: MONSTER_EGG - durability: 100 - amount: 1 - Explosives_Factory: - name: Explosives Factory - fuel: - Charcoal: - material: COAL - durability: 1 - inputs: - Sulphur: - material: SULPHUR - amount: 384 - Sand: - material: SAND - amount: 384 - Blaze Powder: - material: BLAZE_POWDER - amount: 64 - recipes: - - Produce_TNT - - Produce_Fire_Charges - - Produce_Eyes_of_Ender - - Bastion_Silicon_Tetranitratobihydrotrioxycarbon - repair_multiple: 10 - repair_inputs: - Sulphur: - material: SULPHUR - amount: 4 - Sand: - material: SAND - amount: 4 - Iron_Forge_factory: - name: Iron Forge - fuel: - Charcoal: - material: COAL - durability: 1 - inputs: - Iron Ingot: - material: IRON_INGOT - amount: 1152 - recipes: - - Forge_Shears - - Forge_Anvils - - Forge_Tripwire_Hooks - - Forge_Iron_Bars - - Forge_Buckets - - Forge_Iron_Doors - - Forge_Flint_And_Steel - - Bastion_Gearbox - repair_multiple: 10 - repair_inputs: - Iron Ingot: - material: IRON_INGOT - amount: 12 - Stained_Clay_Processing: - name: Stained Clay Processing - fuel: - Charcoal: - material: COAL - durability: 1 - inputs: - Lapis Lazuli: - material: INK_SACK - amount: 20 - durability: 4 - Gray Dye: - material: INK_SACK - amount: 20 - durability: 8 - Cocoa: - material: INK_SACK - amount: 20 - durability: 3 - Purple Dye: - material: INK_SACK - amount: 20 - durability: 5 - Dandelion Yellow: - material: INK_SACK - amount: 20 - durability: 11 - Ink Sack: - material: INK_SACK - amount: 20 - Magenta Dye: - material: INK_SACK - amount: 20 - durability: 13 - Pink Dye: - material: INK_SACK - amount: 20 - durability: 9 - Cyan Dye: - material: INK_SACK - amount: 20 - durability: 6 - Orange Dye: - material: INK_SACK - amount: 20 - durability: 14 - Cactus Green: - material: INK_SACK - amount: 20 - durability: 2 - Bone Meal: - material: INK_SACK - amount: 20 - durability: 15 - Light Gray Dye: - material: INK_SACK - amount: 20 - durability: 7 - Light Blue Dye: - material: INK_SACK - amount: 20 - durability: 12 - Rose Red: - material: INK_SACK - amount: 20 - durability: 1 - Lime Dye: - material: INK_SACK - amount: 20 - durability: 10 - Hardened Clay: - material: HARD_CLAY - amount: 20 - recipes: - - Dye_Blue_Stained_Clay - - Dye_Brown_Stained_Clay - - Dye_Purple_Stained_Clay - - Dye_Yellow_Stained_Clay - - Dye_Black_Stained_Clay - - Dye_Magenta_Stained_Clay - - Dye_Pink_Stained_Clay - - Dye_Cyan_Stained_Clay - - Dye_Orange_Stained_Clay - - Dye_Gray_Stained_Clay - - Dye_Green_Stained_Clay - - Dye_White_Stained_Clay - - Dye_Light_Gray_Stained_Clay - - Dye_Light_Blue_Stained_Clay - - Dye_Red_Stained_Clay - - Dye_Lime_Stained_Clay - repair_multiple: 2 - repair_inputs: - Lapis Lazuli: - material: INK_SACK - durability: 4 - Gray Dye: - material: INK_SACK - durability: 8 - Cocoa: - material: INK_SACK - durability: 3 - Purple Dye: - material: INK_SACK - durability: 5 - Dandelion Yellow: - material: INK_SACK - durability: 11 - Ink Sack: - material: INK_SACK - Magenta Dye: - material: INK_SACK - durability: 13 - Pink Dye: - material: INK_SACK - durability: 9 - Cyan Dye: - material: INK_SACK - durability: 6 - Orange Dye: - material: INK_SACK - durability: 14 - Cactus Green: - material: INK_SACK - durability: 2 - Bone Meal: - material: INK_SACK - durability: 15 - Light Gray Dye: - material: INK_SACK - durability: 7 - Light Blue Dye: - material: INK_SACK - durability: 12 - Rose Red: - material: INK_SACK - durability: 1 - Lime Dye: - material: INK_SACK - durability: 10 - Hardened Clay: - material: HARD_CLAY - Stained_Glass_Processing: - name: Stained Glass Processing - fuel: - Charcoal: - material: COAL - durability: 1 - inputs: - Lapis Lazuli: - material: INK_SACK - amount: 20 - durability: 4 - Gray Dye: - material: INK_SACK - amount: 20 - durability: 8 - Cocoa: - material: INK_SACK - amount: 20 - durability: 3 - Purple Dye: - material: INK_SACK - amount: 20 - durability: 5 - Dandelion Yellow: - material: INK_SACK - amount: 20 - durability: 11 - Ink Sack: - material: INK_SACK - amount: 20 - Magenta Dye: - material: INK_SACK - amount: 20 - durability: 13 - Pink Dye: - material: INK_SACK - amount: 20 - durability: 9 - Cyan Dye: - material: INK_SACK - amount: 20 - durability: 6 - Orange Dye: - material: INK_SACK - amount: 20 - durability: 14 - Cactus Green: - material: INK_SACK - amount: 20 - durability: 2 - Bone Meal: - material: INK_SACK - amount: 20 - durability: 15 - Light Gray Dye: - material: INK_SACK - amount: 20 - durability: 7 - Light Blue Dye: - material: INK_SACK - amount: 20 - durability: 12 - Rose Red: - material: INK_SACK - amount: 20 - durability: 1 - Lime Dye: - material: INK_SACK - amount: 20 - durability: 10 - Stained Glass: - material: STAINED_GLASS - amount: 20 - durability: 7 - Stained Glass Pane: - material: STAINED_GLASS_PANE - amount: 20 - durability: 7 - recipes: - - Dye_Blue_Stained_Glass - - Dye_Brown_Stained_Glass - - Dye_Purple_Stained_Glass - - Dye_Yellow_Stained_Glass - - Dye_Black_Stained_Glass - - Dye_Magenta_Stained_Glass - - Dye_Pink_Stained_Glass - - Dye_Cyan_Stained_Glass - - Dye_Orange_Stained_Glass - - Dye_Gray_Stained_Glass - - Dye_Green_Stained_Glass - - Dye_White_Stained_Glass - - Dye_Light_Gray_Stained_Glass - - Dye_Light_Blue_Stained_Glass - - Dye_Red_Stained_Glass - - Dye_Lime_Stained_Glass - - Dye_Blue_Stained_Glass_Pane - - Dye_Brown_Stained_Glass_Pane - - Dye_Purple_Stained_Glass_Pane - - Dye_Yellow_Stained_Glass_Pane - - Dye_Black_Stained_Glass_Pane - - Dye_Magenta_Stained_Glass_Pane - - Dye_Pink_Stained_Glass_Pane - - Dye_Cyan_Stained_Glass_Pane - - Dye_Orange_Stained_Glass_Pane - - Dye_Gray_Stained_Glass_Pane - - Dye_Green_Stained_Glass_Pane - - Dye_White_Stained_Glass_Pane - - Dye_Light_Gray_Stained_Glass_Pane - - Dye_Light_Blue_Stained_Glass_Pane - - Dye_Red_Stained_Glass_Pane - - Dye_Lime_Stained_Glass_Pane - - Bastion_Objet_Dart - repair_multiple: 2 - repair_inputs: - Lapis Lazuli: - material: INK_SACK - durability: 4 - Gray Dye: - material: INK_SACK - durability: 8 - Cocoa: - material: INK_SACK - durability: 3 - Purple Dye: - material: INK_SACK - durability: 5 - Dandelion Yellow: - material: INK_SACK - durability: 11 - Ink Sack: - material: INK_SACK - Magenta Dye: - material: INK_SACK - durability: 13 - Pink Dye: - material: INK_SACK - durability: 9 - Cyan Dye: - material: INK_SACK - durability: 6 - Orange Dye: - material: INK_SACK - durability: 14 - Cactus Green: - material: INK_SACK - durability: 2 - Bone Meal: - material: INK_SACK - durability: 15 - Light Gray Dye: - material: INK_SACK - durability: 7 - Light Blue Dye: - material: INK_SACK - durability: 12 - Rose Red: - material: INK_SACK - durability: 1 - Lime Dye: - material: INK_SACK - durability: 10 - Gray Stained Glass: - material: STAINED_GLASS - durability: 7 - Gray Stained Glass Pane: - material: STAINED_GLASS_PANE - durability: 7 - Crystallisation_Factory: - name: Crystallisation Factory - fuel: - Charcoal: - material: COAL - durability: 1 - inputs: - Ice: - material: ICE - amount: 2048 - Charcoal: - material: COAL - amount: 256 - durability: 1 - recipes: - - Compact_Ice - - Bastion_Pure_Ice - repair_multiple: 10 - repair_inputs: - Ice: - material: ICE - amount: 20 - Charcoal: - material: COAL - durability: 1 - White_Wool_Processing: - name: White Wool Processing - fuel: - Charcoal: - material: COAL - durability: 1 - inputs: - Lapis Lazuli: - material: INK_SACK - amount: 20 - durability: 4 - Gray Dye: - material: INK_SACK - amount: 20 - durability: 8 - Cocoa: - material: INK_SACK - amount: 20 - durability: 3 - Purple Dye: - material: INK_SACK - amount: 20 - durability: 5 - Dandelion Yellow: - material: INK_SACK - amount: 20 - durability: 11 - Ink Sack: - material: INK_SACK - amount: 20 - Magenta Dye: - material: INK_SACK - amount: 20 - durability: 13 - Pink Dye: - material: INK_SACK - amount: 20 - durability: 9 - Cyan Dye: - material: INK_SACK - amount: 20 - durability: 6 - Orange Dye: - material: INK_SACK - amount: 20 - durability: 14 - Cactus Green: - material: INK_SACK - amount: 20 - durability: 2 - Bone Meal: - material: INK_SACK - amount: 20 - durability: 15 - Light Gray Dye: - material: INK_SACK - amount: 20 - durability: 7 - Light Blue Dye: - material: INK_SACK - amount: 20 - durability: 12 - Rose Red: - material: INK_SACK - amount: 20 - durability: 1 - Lime Dye: - material: INK_SACK - amount: 20 - durability: 10 - White Wool: - material: WOOL - amount: 20 - recipes: - - Dye_White_Wool_Blue - - Dye_White_Wool_Gray - - Dye_White_Wool_Brown - - Dye_White_Wool_Purple - - Dye_White_Wool_Yellow - - Dye_White_Wool_Black - - Dye_White_Wool_Magenta - - Dye_White_Wool_Pink - - Dye_White_Wool_Cyan - - Dye_White_Wool_Orange - - Dye_White_Wool_Green - - Dye_White_Wool_Light_Gray - - Dye_White_Wool_Light_Blue - - Dye_White_Wool_Red - - Dye_White_Wool_Lime - repair_multiple: 2 - repair_inputs: - Lapis Lazuli: - material: INK_SACK - durability: 4 - Gray Dye: - material: INK_SACK - durability: 8 - Cocoa: - material: INK_SACK - durability: 3 - Purple Dye: - material: INK_SACK - durability: 5 - Dandelion Yellow: - material: INK_SACK - durability: 11 - Ink Sack: - material: INK_SACK - Magenta Dye: - material: INK_SACK - durability: 13 - Pink Dye: - material: INK_SACK - durability: 9 - Cyan Dye: - material: INK_SACK - durability: 6 - Orange Dye: - material: INK_SACK - durability: 14 - Cactus Green: - material: INK_SACK - durability: 2 - Bone Meal: - material: INK_SACK - durability: 15 - Light Gray Dye: - material: INK_SACK - durability: 7 - Light Blue Dye: - material: INK_SACK - durability: 12 - Rose Red: - material: INK_SACK - durability: 1 - Lime Dye: - material: INK_SACK - durability: 10 - White Wool: - material: WOOL - Wood_Cauldron: - name: Wood Cauldron - fuel: - Charcoal: - material: COAL - durability: 1 - inputs: - Stick: - material: STICK - amount: 1024 - recipes: - - Wood_XP_Bottle_0 - - Wood_XP_Bottle_1 - - Wood_XP_Bottle_2 - - Wood_XP_Bottle_3 - - Wood_XP_Bottle_4 - - Wood_XP_Bottle_5 - repair_multiple: 103 - repair_inputs: - Stick: - material: STICK - Bastion_Factory: - name: Bastion Factory - fuel: - Charcoal: - material: COAL - durability: 1 - inputs: - Silicon Tetranitratobihydrotrioxycarbon: - material: FIREWORK_CHARGE - amount: 64 - display_name: Silicon Tetranitratobihydrotrioxycarbon - lore: An item used to create a Bastion Block - Smaragdus: - material: EMERALD - amount: 64 - display_name: Smaragdus - lore: An item used to create a Bastion Block - Flooring: - material: CLAY_BRICK - amount: 8 - display_name: Flooring - lore: An item used to create a Bastion Block - Framing: - material: STICK - amount: 8 - display_name: Framing - lore: An item used to create a Bastion Block - Gearbox: - material: WATCH - amount: 8 - display_name: Gearbox - lore: An item used to create a Bastion Block - Base: - material: IRON_INGOT - amount: 8 - display_name: Base - lore: An item used to create a Bastion Block - Walls: - material: INK_SACK - amount: 32 - durablity: 4 - display_name: Walls - lore: An item used to create a Bastion Block - recipes: - - Bastion_Block - repair_multiple: 16 - repair_inputs: - Pure Ice: - material: QUARTZ - amount: 1 - display_name: Pure Ice - lore: An item used to repair the Bastion Factory - Silicon Tetranitratobihydrotrioxycarbon: - material: FIREWORK_CHARGE - amount: 1 - display_name: Silicon Tetranitratobihydrotrioxycarbon - lore: An item used to create a Bastion Block - Smaragdus: - material: EMERALD - amount: 1 - display_name: Smaragdus - lore: An item used to create a Bastion Block - Aspect_Factory: - name: Arcane Elementizer - fuel: - Charcoal: - material: COAL - durability: 1 - inputs: - Netherbrick: - material: NETHER_BRICK - amount: 1536 - Redstone: - material: REDSTONE - amount: 1152 - Netherquartz: - material: QUARTZ - amount: 576 - recipes: - - Forge_Aspect_of_Terra - - Forge_Aspect_of_End - - Forge_Aspect_of_Nether - - Craft_Eye_of_Ender - repair_multiple: 26 - repair_inputs: - Nether Brick: - material: NETHER_BRICK - amount: 6 - Redstone: - material: REDSTONE - amount: 5 - Netherquartz: - material: QUARTZ - amount: 2 -nether_factory: - name: Nether Factory - fuel: - Charcoal: - material: COAL - durability: 1 - costs: - construction: - Aspect of Nether: - material: MAGMA_CREAM - amount: 8 - display_name: Aspect of Nether - lore: A concentrated essence of the Nether - Aspect of Terra: - material: DIAMOND - amount: 8 - display_name: Aspect of Terra - lore: A concentrated essence of Terra - Aspect of END: - material: FLINT - amount: 8 - display_name: Aspect of End - lore: A concentrated essence of the End - repair: - Diamond block: - material: DIAMOND_BLOCK - amount: 1 - repair_multiple: 1 - fuel_time: 10 - repair_time: 12 - scaling_radius: 5000 - cost_scaling_radius: 5000 - use_fuel_on_teleport: false -production_recipes: - Wood_XP_Bottle_0: - name: Brew XP Bottles - 1 - inputs: - Glass Bottle: - material: GLASS_BOTTLE - amount: 8 - Wheat: - material: WHEAT - amount: 1280 - outputs: - Exp Bottle: - material: EXP_BOTTLE - amount: 8 - Baked_Potato: - name: Bake Potato - production_time: 24 - inputs: - Potato: - material: POTATO_ITEM - amount: 192 - outputs: - Baked Potato: - material: BAKED_POTATO - amount: 384 - Wood_XP_Bottle_2: - name: Brew XP Bottles - 3 - inputs: - Glass Bottle: - material: GLASS_BOTTLE - amount: 5 - Baked Potato: - material: BAKED_POTATO - amount: 1280 - outputs: - Exp Bottle: - material: EXP_BOTTLE - amount: 5 - Dye_Black_Wool_Cyan: - name: Dye Black Wool Cyan - inputs: - Black Wool: - material: WOOL - amount: 64 - durability: 15 - Cyan Dye: - material: INK_SACK - amount: 4 - durability: 6 - outputs: - Cyan Wool: - material: WOOL - amount: 64 - durability: 9 - Dye_Light_Gray_Wool_Purple: - name: Dye Light Gray Wool Purple - inputs: - Light Gray Wool: - material: WOOL - amount: 64 - durability: 8 - Purple Dye: - material: INK_SACK - amount: 4 - durability: 5 - outputs: - Purple Wool: - material: WOOL - amount: 64 - durability: 10 - Dye_Black_Wool_Orange: - name: Dye Black Wool Orange - inputs: - Black Wool: - material: WOOL - amount: 64 - durability: 15 - Orange Dye: - material: INK_SACK - amount: 4 - durability: 14 - outputs: - Orange Wool: - material: WOOL - amount: 64 - durability: 1 - Dye_Light_Gray_Wool_Green: - name: Dye Light Gray Wool Green - inputs: - Light Gray Wool: - material: WOOL - amount: 64 - durability: 8 - Cactus Green: - material: INK_SACK - amount: 4 - durability: 2 - outputs: - Green Wool: - material: WOOL - amount: 64 - durability: 13 - Dye_Light_Gray_Wool_Gray: - name: Dye Light Gray Wool Gray - inputs: - Light Gray Wool: - material: WOOL - amount: 64 - durability: 8 - Gray Dye: - material: INK_SACK - amount: 4 - durability: 8 - outputs: - Gray Wool: - material: WOOL - amount: 64 - durability: 7 - Smelt_Diamond_Ore: - name: Smelt Diamond Ore - production_time: 1 - inputs: - Diamond Ore: - material: DIAMOND_ORE - amount: 16 - outputs: - Diamond: - material: DIAMOND - amount: 48 - Diamond_XP_Bottle_0: - name: Brew XP Bottles - 1 - inputs: - Glass Bottle: - material: GLASS_BOTTLE - amount: 128 - Carrot: - material: CARROT_ITEM - amount: 96 - Melon Block: - material: MELON_BLOCK - amount: 32 - Cactus: - material: CACTUS - amount: 256 - Red Rose: - material: RED_ROSE - amount: 8 - Rotten Flesh: - material: ROTTEN_FLESH - amount: 128 - Red Mushroom: - material: RED_MUSHROOM - amount: 32 - Vine: - material: VINE - amount: 32 - Bread: - material: BREAD - amount: 128 - Grilled Pork: - material: GRILLED_PORK - amount: 32 - outputs: - Exp Bottle: - material: EXP_BOTTLE - amount: 128 - Dye_Brown_Wool_Orange: - name: Dye Brown Wool Orange - inputs: - Brown Wool: - material: WOOL - amount: 64 - durability: 12 - Orange Dye: - material: INK_SACK - amount: 4 - durability: 14 - outputs: - Orange Wool: - material: WOOL - amount: 64 - durability: 1 - Smelt_Jungle_Wood: - name: Burn Jungle Wood - production_time: 24 - inputs: - Jungle Wood: - material: LOG - amount: 256 - durability: 3 - outputs: - Charcoal: - material: COAL - amount: 512 - durability: 1 - Burn_Acacia_Wood: - name: Burn Acacia Wood - production_time: 24 - inputs: - Acacia Wood: - material: LOG_2 - amount: 256 - outputs: - Charcoal: - material: COAL - amount: 512 - durability: 1 - Burn_Dark_Oak_Wood: - name: Burn Dark Oak Wood - production_time: 24 - inputs: - Dark Oak Wood: - material: LOG_2 - amount: 256 - durability: 1 - outputs: - Charcoal: - material: COAL - amount: 512 - durability: 1 - Diamond_Boots: - name: Forge Diamond Boots. - production_time: 20 - inputs: - Diamond: - material: DIAMOND - amount: 20 - outputs: - Diamond Boots: - material: DIAMOND_BOOTS - amount: 15 - Dye_Gray_Wool_Black: - name: Dye Gray Wool Black - inputs: - Gray Wool: - material: WOOL - amount: 64 - durability: 7 - Ink Sack: - material: INK_SACK - amount: 4 - outputs: - Black Wool: - material: WOOL - amount: 64 - durability: 15 - Dye_Black_Wool_Brown: - name: Dye Black Wool Brown - inputs: - Black Wool: - material: WOOL - amount: 64 - durability: 15 - Cocoa: - material: INK_SACK - amount: 4 - durability: 3 - outputs: - Brown Wool: - material: WOOL - amount: 64 - durability: 12 - Iron_Boots: - name: Forge Iron Boots. - production_time: 20 - inputs: - Iron Ingot: - material: IRON_INGOT - amount: 20 - outputs: - Iron Boots: - material: IRON_BOOTS - amount: 15 - Dye_Pink_Wool_Brown: - name: Dye Pink Wool Brown - inputs: - Pink Wool: - material: WOOL - amount: 64 - durability: 6 - Cocoa: - material: INK_SACK - amount: 4 - durability: 3 - outputs: - Brown Wool: - material: WOOL - amount: 64 - durability: 12 - Gold_Spade: - name: Forge Gold Spade. - production_time: 5 - inputs: - Gold Ingot: - material: GOLD_INGOT - amount: 5 - outputs: - Gold Spade: - material: GOLD_SPADE - amount: 15 - enchantments: - Unbreaking 3: - type: DURABILITY - level: 3 - Silk Touch 1: - type: SILK_TOUCH - level: 1 - probability: 0.1 - Efficiency 1: - type: DIG_SPEED - level: 1 - probability: 0.3 - Efficiency 2: - type: DIG_SPEED - level: 2 - probability: 0.2 - Efficiency 3: - type: DIG_SPEED - level: 3 - probability: 0.1 - Efficiency 4: - type: DIG_SPEED - level: 4 - probability: 0.05 - Efficiency 5: - type: DIG_SPEED - level: 5 - probability: 0.01 - Dye_Black_Wool_Gray: - name: Dye Black Wool Gray - inputs: - Black Wool: - material: WOOL - amount: 64 - durability: 15 - Gray Dye: - material: INK_SACK - amount: 4 - durability: 8 - outputs: - Gray Wool: - material: WOOL - amount: 64 - durability: 7 - Dye_Gray_Wool_Light_Gray: - name: Dye Gray Wool Light Gray - inputs: - Gray Wool: - material: WOOL - amount: 64 - durability: 7 - Light Gray Dye: - material: INK_SACK - amount: 4 - durability: 7 - outputs: - Light Gray Wool: - material: WOOL - amount: 64 - durability: 8 - Dye_White_Wool_Cyan: - name: Dye White Wool Cyan - inputs: - White Wool: - material: WOOL - amount: 64 - Cyan Dye: - material: INK_SACK - amount: 4 - durability: 6 - outputs: - Cyan Wool: - material: WOOL - amount: 64 - durability: 9 - Diamond_Hoe: - name: Forge Diamond Hoe. - production_time: 10 - inputs: - Diamond: - material: DIAMOND - amount: 10 - outputs: - Diamond Hoe: - material: DIAMOND_HOE - amount: 30 - Gold_Chestplate: - name: Forge Gold Chestplate. - production_time: 40 - inputs: - Gold Ingot: - material: GOLD_INGOT - amount: 40 - outputs: - Gold Chestplate: - material: GOLD_CHESTPLATE - amount: 15 - durability: -218 - enchantments: - Unbreaking 3: - type: DURABILITY - level: 3 - Blast Protection 1: - type: PROTECTION_EXPLOSIONS - level: 1 - probability: 0.5 - Blast Protection 2: - type: PROTECTION_EXPLOSIONS - level: 2 - probability: 0.4 - Blast Protection 3: - type: PROTECTION_EXPLOSIONS - level: 3 - probability: 0.3 - Blast Protection 4: - type: PROTECTION_EXPLOSIONS - level: 4 - probability: 0.4 - Fire Protection 1: - type: PROTECTION_FIRE - level: 1 - probability: 0.5 - Fire Protection 2: - type: PROTECTION_FIRE - level: 2 - probability: 0.4 - Fire Protection 3: - type: PROTECTION_FIRE - level: 3 - probability: 0.3 - Fire Protection 4: - type: PROTECTION_FIRE - level: 4 - probability: 0.4 - Projectile Protection 1: - type: PROTECTION_PROJECTILE - level: 1 - probability: 0.5 - Projectile Protection 2: - type: PROTECTION_PROJECTILE - level: 2 - probability: 0.4 - Projectile Protection 3: - type: PROTECTION_PROJECTILE - level: 3 - probability: 0.3 - Projectile Protection 4: - type: PROTECTION_PROJECTILE - level: 4 - probability: 0.4 - Dye_Light_Gray_Wool_Light_Blue: - name: Dye Light Gray Wool Light Blue - inputs: - Light Gray Wool: - material: WOOL - amount: 64 - durability: 8 - Light Blue Dye: - material: INK_SACK - amount: 4 - durability: 12 - outputs: - Light Blue Wool: - material: WOOL - amount: 64 - durability: 3 - Dye_Brown_Wool_Cyan: - name: Dye Brown Wool Cyan - inputs: - Brown Wool: - material: WOOL - amount: 64 - durability: 12 - Cyan Dye: - material: INK_SACK - amount: 4 - durability: 6 - outputs: - Cyan Wool: - material: WOOL - amount: 64 - durability: 9 - Iron_XP_Bottle_1: - name: Brew XP Bottles - 2 - inputs: - Glass Bottle: - material: GLASS_BOTTLE - amount: 14 - Carrot: - material: CARROT_ITEM - amount: 256 - Nether Wart: - material: NETHER_STALK - amount: 256 - Baked Potato: - material: BAKED_POTATO - amount: 256 - outputs: - Exp Bottle: - material: EXP_BOTTLE - amount: 14 - Dye_White_Wool_Red: - name: Dye White Wool Red - inputs: - White Wool: - material: WOOL - amount: 64 - Rose Red: - material: INK_SACK - amount: 4 - durability: 1 - outputs: - Red Wool: - material: WOOL - amount: 64 - durability: 14 - Dye_Brown_Wool_Purple: - name: Dye Brown Wool Purple - inputs: - Brown Wool: - material: WOOL - amount: 64 - durability: 12 - Purple Dye: - material: INK_SACK - amount: 4 - durability: 5 - outputs: - Purple Wool: - material: WOOL - amount: 64 - durability: 10 - Dye_White_Wool_Purple: - name: Dye White Wool Purple - inputs: - White Wool: - material: WOOL - amount: 64 - Purple Dye: - material: INK_SACK - amount: 4 - durability: 5 - outputs: - Purple Wool: - material: WOOL - amount: 64 - durability: 10 - Wood_XP_Bottle_4: - name: Brew XP Bottles - 5 - inputs: - Glass Bottle: - material: GLASS_BOTTLE - amount: 6 - Carrot: - material: CARROT_ITEM - amount: 1280 - outputs: - Exp Bottle: - material: EXP_BOTTLE - amount: 6 - Wood_XP_Bottle_5: - name: Brew XP Bottles - 6 - inputs: - Glass Bottle: - material: GLASS_BOTTLE - amount: 8 - Hay Bale: - material: HAY_BLOCK - amount: 143 - outputs: - Exp Bottle: - material: EXP_BOTTLE - amount: 8 - Dye_Light_Gray_Wool_Orange: - name: Dye Light Gray Wool Orange - inputs: - Light Gray Wool: - material: WOOL - amount: 64 - durability: 8 - Orange Dye: - material: INK_SACK - amount: 4 - durability: 14 - outputs: - Orange Wool: - material: WOOL - amount: 64 - durability: 1 - Dye_Black_Wool_Yellow: - name: Dye Black Wool Yellow - inputs: - Black Wool: - material: WOOL - amount: 64 - durability: 15 - Dandelion Yellow: - material: INK_SACK - amount: 4 - durability: 11 - outputs: - Yellow Wool: - material: WOOL - amount: 64 - durability: 4 - Dye_Light_Gray_Wool_Pink: - name: Dye Light Gray Wool Pink - inputs: - Light Gray Wool: - material: WOOL - amount: 64 - durability: 8 - Pink Dye: - material: INK_SACK - amount: 4 - durability: 9 - outputs: - Pink Wool: - material: WOOL - amount: 64 - durability: 6 - Dye_Light_Gray_Wool_Brown: - name: Dye Light Gray Wool Brown - inputs: - Light Gray Wool: - material: WOOL - amount: 64 - durability: 8 - Cocoa: - material: INK_SACK - amount: 4 - durability: 3 - outputs: - Brown Wool: - material: WOOL - amount: 64 - durability: 12 - Smelt_Spruce_Wood: - name: Burn Spruce Wood - production_time: 24 - inputs: - Spruce Wood: - material: LOG - amount: 256 - durability: 1 - outputs: - Charcoal: - material: COAL - amount: 512 - durability: 1 - Dye_Brown_Wool_Magenta: - name: Dye Brown Wool Magenta - inputs: - Brown Wool: - material: WOOL - amount: 64 - durability: 12 - Magenta Dye: - material: INK_SACK - amount: 4 - durability: 13 - outputs: - Magenta Wool: - material: WOOL - amount: 64 - durability: 2 - Dye_White_Wool_Brown: - name: Dye White Wool Brown - inputs: - White Wool: - material: WOOL - amount: 64 - Cocoa: - material: INK_SACK - amount: 4 - durability: 3 - outputs: - Brown Wool: - material: WOOL - amount: 64 - durability: 12 - Dye_Gray_Wool_Lime: - name: Dye Gray Wool Lime - inputs: - Gray Wool: - material: WOOL - amount: 64 - durability: 7 - Lime Dye: - material: INK_SACK - amount: 4 - durability: 10 - outputs: - Lime Wool: - material: WOOL - amount: 64 - durability: 5 - Dye_Light_Gray_Wool_Black: - name: Dye Light Gray Wool Black - inputs: - Light Gray Wool: - material: WOOL - amount: 64 - durability: 8 - Ink Sack: - material: INK_SACK - amount: 4 - outputs: - Black Wool: - material: WOOL - amount: 64 - durability: 15 - Dye_Brown_Wool_Yellow: - name: Dye Brown Wool Yellow - inputs: - Brown Wool: - material: WOOL - amount: 64 - durability: 12 - Dandelion Yellow: - material: INK_SACK - amount: 4 - durability: 11 - outputs: - Yellow Wool: - material: WOOL - amount: 64 - durability: 4 - Dye_Pink_Wool_White: - name: Dye Pink Wool White - inputs: - Pink Wool: - material: WOOL - amount: 64 - durability: 6 - Bone Meal: - material: INK_SACK - amount: 4 - durability: 15 - outputs: - White Wool: - material: WOOL - amount: 64 - Smelt_Coal_Ore: - name: Smelt Coal Ore - production_time: 12 - inputs: - Coal Ore: - material: COAL_ORE - amount: 128 - outputs: - Coal: - material: COAL - amount: 384 - Dye_Brown_Wool_Green: - name: Dye Brown Wool Green - inputs: - Brown Wool: - material: WOOL - amount: 64 - durability: 12 - Cactus Green: - material: INK_SACK - amount: 4 - durability: 2 - outputs: - Green Wool: - material: WOOL - amount: 64 - durability: 13 - Dye_Light_Gray_Wool_Lime: - name: Dye Light Gray Wool Lime - inputs: - Light Gray Wool: - material: WOOL - amount: 64 - durability: 8 - Lime Dye: - material: INK_SACK - amount: 4 - durability: 10 - outputs: - Lime Wool: - material: WOOL - amount: 64 - durability: 5 - Smelt_Birch_Wood: - name: Burn Birch Wood - production_time: 24 - inputs: - Birch Wood: - material: LOG - amount: 256 - durability: 2 - outputs: - Charcoal: - material: COAL - amount: 512 - durability: 1 - Diamond_Sword: - name: Forge Diamond Sword. - production_time: 10 - inputs: - Diamond: - material: DIAMOND - amount: 10 - outputs: - Diamond Sword: - material: DIAMOND_SWORD - amount: 15 - Dye_Pink_Wool_Orange: - name: Dye Pink Wool Orange - inputs: - Pink Wool: - material: WOOL - amount: 64 - durability: 6 - Orange Dye: - material: INK_SACK - amount: 4 - durability: 14 - outputs: - Orange Wool: - material: WOOL - amount: 64 - durability: 1 - Dye_Black_Wool_Blue: - name: Dye Black Wool Blue - inputs: - Black Wool: - material: WOOL - amount: 64 - durability: 15 - Lapis Lazuli: - material: INK_SACK - amount: 4 - durability: 4 - outputs: - Blue Wool: - material: WOOL - amount: 64 - durability: 11 - Dye_Black_Wool_Magenta: - name: Dye Black Wool Magenta - inputs: - Black Wool: - material: WOOL - amount: 64 - durability: 15 - Magenta Dye: - material: INK_SACK - amount: 4 - durability: 13 - outputs: - Magenta Wool: - material: WOOL - amount: 64 - durability: 2 - Iron_Helmet: - name: Forge Iron Helmet. - production_time: 25 - inputs: - Iron Ingot: - material: IRON_INGOT - amount: 25 - outputs: - Iron Helmet: - material: IRON_HELMET - amount: 15 - Dye_Gray_Wool_Cyan: - name: Dye Gray Wool Cyan - inputs: - Gray Wool: - material: WOOL - amount: 64 - durability: 7 - Cyan Dye: - material: INK_SACK - amount: 4 - durability: 6 - outputs: - Cyan Wool: - material: WOOL - amount: 64 - durability: 9 - Cooked_Chicken: - name: Grill Raw Chicken - production_time: 6 - inputs: - Raw Chicken: - material: RAW_CHICKEN - amount: 64 - outputs: - Cooked Chicken: - material: COOKED_CHICKEN - amount: 128 - Dye_Brown_Wool_Pink: - name: Dye Brown Wool Pink - inputs: - Brown Wool: - material: WOOL - amount: 64 - durability: 12 - Pink Dye: - material: INK_SACK - amount: 4 - durability: 9 - outputs: - Pink Wool: - material: WOOL - amount: 64 - durability: 6 - Dye_Black_Wool_White: - name: Dye Black Wool White - inputs: - Black Wool: - material: WOOL - amount: 64 - durability: 15 - Bone Meal: - material: INK_SACK - amount: 4 - durability: 15 - outputs: - White Wool: - material: WOOL - amount: 64 - Dye_Gray_Wool_Pink: - name: Dye Gray Wool Pink - inputs: - Gray Wool: - material: WOOL - amount: 64 - durability: 7 - Pink Dye: - material: INK_SACK - amount: 4 - durability: 9 - outputs: - Pink Wool: - material: WOOL - amount: 64 - durability: 6 - Dye_White_Wool_Pink: - name: Dye White Wool Pink - inputs: - White Wool: - material: WOOL - amount: 64 - Pink Dye: - material: INK_SACK - amount: 4 - durability: 9 - outputs: - Pink Wool: - material: WOOL - amount: 64 - durability: 6 - Dye_Light_Gray_Wool_Yellow: - name: Dye Light Gray Wool Yellow - inputs: - Light Gray Wool: - material: WOOL - amount: 64 - durability: 8 - Dandelion Yellow: - material: INK_SACK - amount: 4 - durability: 11 - outputs: - Yellow Wool: - material: WOOL - amount: 64 - durability: 4 - Dye_Pink_Wool_Green: - name: Dye Pink Wool Green - inputs: - Pink Wool: - material: WOOL - amount: 64 - durability: 6 - Cactus Green: - material: INK_SACK - amount: 4 - durability: 2 - outputs: - Green Wool: - material: WOOL - amount: 64 - durability: 13 - Dye_White_Wool_Black: - name: Dye White Wool Black - inputs: - White Wool: - material: WOOL - amount: 64 - Ink Sack: - material: INK_SACK - amount: 4 - outputs: - Black Wool: - material: WOOL - amount: 64 - durability: 15 - Dye_Gray_Wool_Blue: - name: Dye Gray Wool Blue - inputs: - Gray Wool: - material: WOOL - amount: 64 - durability: 7 - Lapis Lazuli: - material: INK_SACK - amount: 4 - durability: 4 - outputs: - Blue Wool: - material: WOOL - amount: 64 - durability: 11 - Gold_Pickaxe: - name: Forge Gold Pickaxe. - production_time: 15 - inputs: - Gold Ingot: - material: GOLD_INGOT - amount: 15 - outputs: - Gold Pickaxe: - material: GOLD_PICKAXE - amount: 15 - enchantments: - Unbreaking 3: - type: DURABILITY - level: 3 - Silk Touch 1: - type: SILK_TOUCH - level: 1 - probability: 0.1 - Efficiency 1: - type: DIG_SPEED - level: 1 - probability: 0.3 - Efficiency 2: - type: DIG_SPEED - level: 2 - probability: 0.2 - Efficiency 3: - type: DIG_SPEED - level: 3 - probability: 0.1 - Efficiency 4: - type: DIG_SPEED - level: 4 - probability: 0.05 - Efficiency 5: - type: DIG_SPEED - level: 5 - probability: 0.01 - Dye_Pink_Wool_Blue: - name: Dye Pink Wool Blue - inputs: - Pink Wool: - material: WOOL - amount: 64 - durability: 6 - Lapis Lazuli: - material: INK_SACK - amount: 4 - durability: 4 - outputs: - Blue Wool: - material: WOOL - amount: 64 - durability: 11 - Dye_Light_Gray_Wool_Cyan: - name: Dye Light Gray Wool Cyan - inputs: - Light Gray Wool: - material: WOOL - amount: 64 - durability: 8 - Cyan Dye: - material: INK_SACK - amount: 4 - durability: 6 - outputs: - Cyan Wool: - material: WOOL - amount: 64 - durability: 9 - Dye_Pink_Wool_Magenta: - name: Dye Pink Wool Magenta - inputs: - Pink Wool: - material: WOOL - amount: 64 - durability: 6 - Magenta Dye: - material: INK_SACK - amount: 4 - durability: 13 - outputs: - Magenta Wool: - material: WOOL - amount: 64 - durability: 2 - Dye_Light_Gray_Wool_Blue: - name: Dye Light Gray Wool Blue - inputs: - Light Gray Wool: - material: WOOL - amount: 64 - durability: 8 - Lapis Lazuli: - material: INK_SACK - amount: 4 - durability: 4 - outputs: - Blue Wool: - material: WOOL - amount: 64 - durability: 11 - Dye_White_Wool_Orange: - name: Dye White Wool Orange - inputs: - White Wool: - material: WOOL - amount: 64 - Orange Dye: - material: INK_SACK - amount: 4 - durability: 14 - outputs: - Orange Wool: - material: WOOL - amount: 64 - durability: 1 - Cooked_Beef: - name: Cook Beef - production_time: 6 - inputs: - Raw Beef: - material: RAW_BEEF - amount: 64 - outputs: - Cooked Beef: - material: COOKED_BEEF - amount: 128 - Cook_Salmon: - name: Cook Salmon - production_time: 6 - inputs: - Raw Salmon: - material: RAW_FISH - amount: 64 - durability: 1 - outputs: - Cooked Salmon: - material: COOKED_FISH - amount: 128 - durability: 1 - Produce_TNT: - name: Produce TNT - production_time: 128 - inputs: - Sulphur: - material: SULPHUR - amount: 128 - Sand: - material: SAND - amount: 128 - outputs: - TNT: - material: TNT - amount: 64 - Produce_Fire_Charges: - name: Produce Fire Charges - production_time: 128 - inputs: - Sulphur: - material: SULPHUR - amount: 16 - Blaze Powder: - material: BLAZE_POWDER - amount: 16 - outputs: - Fire Charge: - material: FIREBALL - amount: 128 - Produce_Eyes_of_Ender: - name: Produce Eyes of Ender - production_time: 8 - inputs: - Ender pearls: - material: ENDER_PEARL - amount: 32 - Blaze Powder: - material: BLAZE_POWDER - amount: 16 - outputs: - Eyes of Ender: - material: EYE_OF_ENDER - amount: 32 - Dye_White_Wool_Green: - name: Dye White Wool Green - inputs: - White Wool: - material: WOOL - amount: 64 - Cactus Green: - material: INK_SACK - amount: 4 - durability: 2 - outputs: - Green Wool: - material: WOOL - amount: 64 - durability: 13 - Wood_XP_Bottle_3: - name: Brew XP Bottles - 4 - inputs: - Glass Bottle: - material: GLASS_BOTTLE - amount: 4 - Cookie: - material: COOKIE - amount: 1280 - outputs: - Exp Bottle: - material: EXP_BOTTLE - amount: 4 - Iron_Chestplate: - name: Forge Iron Chestplate. - production_time: 40 - inputs: - Iron Ingot: - material: IRON_INGOT - amount: 40 - outputs: - Iron Chestplate: - material: IRON_CHESTPLATE - amount: 15 - Dye_Black_Wool_Red: - name: Dye Black Wool Red - inputs: - Black Wool: - material: WOOL - amount: 64 - durability: 15 - Rose Red: - material: INK_SACK - amount: 4 - durability: 1 - outputs: - Red Wool: - material: WOOL - amount: 64 - durability: 14 - Gold_Leggings: - name: Forge Gold Leggings. - production_time: 35 - inputs: - Gold Ingot: - material: GOLD_INGOT - amount: 35 - outputs: - Gold Leggings: - material: GOLD_LEGGINGS - amount: 15 - durability: -218 - enchantments: - Unbreaking 3: - type: DURABILITY - level: 3 - Blast Protection 1: - type: PROTECTION_EXPLOSIONS - level: 1 - probability: 0.5 - Blast Protection 2: - type: PROTECTION_EXPLOSIONS - level: 2 - probability: 0.4 - Blast Protection 3: - type: PROTECTION_EXPLOSIONS - level: 3 - probability: 0.3 - Blast Protection 4: - type: PROTECTION_EXPLOSIONS - level: 4 - probability: 0.4 - Fire Protection 1: - type: PROTECTION_FIRE - level: 1 - probability: 0.5 - Fire Protection 2: - type: PROTECTION_FIRE - level: 2 - probability: 0.4 - Fire Protection 3: - type: PROTECTION_FIRE - level: 3 - probability: 0.3 - Fire Protection 4: - type: PROTECTION_FIRE - level: 4 - probability: 0.4 - Projectile Protection 1: - type: PROTECTION_PROJECTILE - level: 1 - probability: 0.5 - Projectile Protection 2: - type: PROTECTION_PROJECTILE - level: 2 - probability: 0.4 - Projectile Protection 3: - type: PROTECTION_PROJECTILE - level: 3 - probability: 0.3 - Projectile Protection 4: - type: PROTECTION_PROJECTILE - level: 4 - probability: 0.4 - Dye_White_Wool_Light_Gray: - name: Dye White Wool Light Gray - inputs: - White Wool: - material: WOOL - amount: 64 - Light Gray Dye: - material: INK_SACK - amount: 4 - durability: 7 - outputs: - Light Gray Wool: - material: WOOL - amount: 64 - durability: 8 - Dye_Gray_Wool_Green: - name: Dye Gray Wool Green - inputs: - Gray Wool: - material: WOOL - amount: 64 - durability: 7 - Cactus Green: - material: INK_SACK - amount: 4 - durability: 2 - outputs: - Green Wool: - material: WOOL - amount: 64 - durability: 13 - Diamond_Chestplate: - name: Forge Diamond Chestplate. - production_time: 40 - inputs: - Diamond: - material: DIAMOND - amount: 40 - outputs: - Diamond Chestplate: - material: DIAMOND_CHESTPLATE - amount: 15 - Dye_Light_Gray_Wool_Magenta: - name: Dye Light Gray Wool Magenta - inputs: - Light Gray Wool: - material: WOOL - amount: 64 - durability: 8 - Magenta Dye: - material: INK_SACK - amount: 4 - durability: 13 - outputs: - Magenta Wool: - material: WOOL - amount: 64 - durability: 2 - Dye_Brown_Wool_Light_Gray: - name: Dye Brown Wool Light Gray - inputs: - Brown Wool: - material: WOOL - amount: 64 - durability: 12 - Light Gray Dye: - material: INK_SACK - amount: 4 - durability: 7 - outputs: - Light Gray Wool: - material: WOOL - amount: 64 - durability: 8 - Iron_Leggings: - name: Forge Iron Leggings. - production_time: 35 - inputs: - Iron Ingot: - material: IRON_INGOT - amount: 35 - outputs: - Iron Leggings: - material: IRON_LEGGINGS - amount: 15 - Diamond_XP_Bottle_1: - name: Brew XP Bottles - 2 - inputs: - Glass Bottle: - material: GLASS_BOTTLE - amount: 128 - Nether Wart: - material: NETHER_STALK - amount: 64 - Melon Block: - material: MELON_BLOCK - amount: 32 - Sugar Cane: - material: SUGAR_CANE - amount: 128 - Yellow Flower: - material: YELLOW_FLOWER - amount: 16 - Rotten Flesh: - material: ROTTEN_FLESH - amount: 128 - Brown Mushroom: - material: BROWN_MUSHROOM - amount: 64 - Vine: - material: VINE - amount: 32 - Baked Potato: - material: BAKED_POTATO - amount: 256 - Cooked Chicken: - material: COOKED_CHICKEN - amount: 16 - outputs: - Exp Bottle: - material: EXP_BOTTLE - amount: 128 - Diamond_XP_Bottle_2: - name: Brew XP Bottles - 3 - inputs: - Glass Bottle: - material: GLASS_BOTTLE - amount: 128 - Wheat: - material: WHEAT - amount: 128 - Cocoa: - material: INK_SACK - amount: 16 - durability: 3 - Pumpkin: - material: PUMPKIN - amount: 128 - Cactus: - material: CACTUS - amount: 256 - Red Rose: - material: RED_ROSE - amount: 8 - Spider Eye: - material: SPIDER_EYE - amount: 32 - Red Mushroom: - material: RED_MUSHROOM - amount: 16 - Grass: - material: LONG_GRASS - amount: 32 - durability: 1 - Cooked Fish: - material: COOKED_FISH - amount: 16 - outputs: - Exp Bottle: - material: EXP_BOTTLE - amount: 128 - Diamond_XP_Bottle_3: - name: Brew XP Bottles - 4 - inputs: - Glass Bottle: - material: GLASS_BOTTLE - amount: 128 - Nether Wart: - material: NETHER_STALK - amount: 64 - Pumpkin: - material: PUMPKIN - amount: 128 - Sugar Cane: - material: SUGAR_CANE - amount: 128 - Yellow Flower: - material: YELLOW_FLOWER - amount: 16 - Spider Eye: - material: SPIDER_EYE - amount: 32 - Brown Mushroom: - material: BROWN_MUSHROOM - amount: 64 - Grass: - material: LONG_GRASS - amount: 64 - durability: 1 - Cookie: - material: COOKIE - amount: 256 - Cooked Beef: - material: COOKED_BEEF - amount: 32 - outputs: - Exp Bottle: - material: EXP_BOTTLE - amount: 128 - Dye_White_Wool_Gray: - name: Dye White Wool Gray - inputs: - White Wool: - material: WOOL - amount: 64 - Gray Dye: - material: INK_SACK - amount: 4 - durability: 8 - outputs: - Gray Wool: - material: WOOL - amount: 64 - durability: 7 - Iron_Spade: - name: Forge Iron Spade. - production_time: 5 - inputs: - Iron Ingot: - material: IRON_INGOT - amount: 5 - outputs: - Iron Spade: - material: IRON_SPADE - amount: 15 - Dye_Brown_Wool_Light_Blue: - name: Dye Brown Wool Light Blue - inputs: - Brown Wool: - material: WOOL - amount: 64 - durability: 12 - Light Blue Dye: - material: INK_SACK - amount: 4 - durability: 12 - outputs: - Light Blue Wool: - material: WOOL - amount: 64 - durability: 3 - Dye_White_Wool_Lime: - name: Dye White Wool Lime - inputs: - White Wool: - material: WOOL - amount: 64 - Lime Dye: - material: INK_SACK - amount: 4 - durability: 10 - outputs: - Lime Wool: - material: WOOL - amount: 64 - durability: 5 - Dye_Black_Wool_Light_Gray: - name: Dye Black Wool Light Gray - inputs: - Black Wool: - material: WOOL - amount: 64 - durability: 15 - Light Gray Dye: - material: INK_SACK - amount: 4 - durability: 7 - outputs: - Light Gray Wool: - material: WOOL - amount: 64 - durability: 8 - Dye_White_Wool_Blue: - name: Dye White Wool Blue - inputs: - White Wool: - material: WOOL - amount: 64 - Lapis Lazuli: - material: INK_SACK - amount: 4 - durability: 4 - outputs: - Blue Wool: - material: WOOL - amount: 64 - durability: 11 - Dye_Brown_Wool_White: - name: Dye Brown Wool White - inputs: - Brown Wool: - material: WOOL - amount: 64 - durability: 12 - Bone Meal: - material: INK_SACK - amount: 4 - durability: 15 - outputs: - White Wool: - material: WOOL - amount: 64 - Dye_Pink_Wool_Purple: - name: Dye Pink Wool Purple - inputs: - Pink Wool: - material: WOOL - amount: 64 - durability: 6 - Purple Dye: - material: INK_SACK - amount: 4 - durability: 5 - outputs: - Purple Wool: - material: WOOL - amount: 64 - durability: 10 - Dye_Pink_Wool_Cyan: - name: Dye Pink Wool Cyan - inputs: - Pink Wool: - material: WOOL - amount: 64 - durability: 6 - Cyan Dye: - material: INK_SACK - amount: 4 - durability: 6 - outputs: - - Cyan Wool: - material: WOOL - amount: 64 - durability: 9 - Dye_Light_Gray_Wool_Red: - name: Dye Light Gray Wool Red - inputs: - Light Gray Wool: - material: WOOL - amount: 64 - durability: 8 - Rose Red: - material: INK_SACK - amount: 4 - durability: 1 - outputs: - Red Wool: - material: WOOL - amount: 64 - durability: 14 - Iron_Axe: - name: Forge Iron Axe. - production_time: 15 - inputs: - Iron Ingot: - material: IRON_INGOT - amount: 15 - outputs: - Iron Axe: - material: IRON_AXE - amount: 30 - Bake_Cookie: - name: Bake Cocoa - production_time: 24 - inputs: - Wheat: - material: WHEAT - amount: 256 - Cocoa: - material: INK_SACK - amount: 128 - durability: 3 - outputs: - Cookie: - material: COOKIE - amount: 2048 - Dye_White_Wool_Light_Blue: - name: Dye White Wool Light Blue - inputs: - White Wool: - material: WOOL - amount: 64 - Light Blue Dye: - material: INK_SACK - amount: 4 - durability: 12 - outputs: - Light Blue Wool: - material: WOOL - amount: 64 - durability: 3 - Dye_White_Wool_Yellow: - name: Dye White Wool Yellow - inputs: - White Wool: - material: WOOL - amount: 64 - Dandelion Yellow: - material: INK_SACK - amount: 4 - durability: 11 - outputs: - Yellow Wool: - material: WOOL - amount: 64 - durability: 4 - Dye_Light_Gray_Wool_White: - name: Dye Light Gray Wool White - inputs: - Light Gray Wool: - material: WOOL - amount: 64 - durability: 8 - Bone Meal: - material: INK_SACK - amount: 4 - durability: 15 - outputs: - White Wool: - material: WOOL - amount: 64 - Bake_Bread: - name: Bake Wheat - production_time: 24 - inputs: - Wheat: - material: WHEAT - amount: 384 - outputs: - Bread: - material: BREAD - amount: 256 - Bake_Cake: - name: Bake Cake - production_time: 24 - inputs: - Sugar: - material: SUGAR - amount: 36 - Egg: - material: EGG - amount: 13 - Wheat: - material: WHEAT - amount: 54 - Milk Bucket: - material: MILK_BUCKET - amount: 18 - outputs: - Cake: - material: CAKE - amount: 24 - Bucket: - material: BUCKET - amount: 18 - Bake_Pumpkin_Pie: - name: Bake Pumpkin Pie - production_time: 24 - inputs: - Sugar: - material: SUGAR - amount: 192 - Egg: - material: EGG - amount: 192 - Pumpkin: - material: PUMPKIN - amount: 192 - outputs: - Pumpkin_Pie: - material: PUMPKIN_PIE - amount: 256 - Smelt_Glass: - name: Smelt Glass - production_time: 48 - inputs: - Sand: - material: SAND - amount: 256 - outputs: - Glass: - material: GLASS - amount: 768 - Smelt_Nether_bricks: - name: Smelt Nether bricks - production_time: 32 - inputs: - Netherrack: - material: NETHERRACK - amount: 512 - outputs: - Nether bricks: - material: NETHER_BRICK_ITEM - amount: 1024 - Bake_clay_blocks: - name: Bake Clay Blocks - production_time: 32 - inputs: - Clay: - material: CLAY - amount: 512 - outputs: - Hardened Clay: - material: HARD_CLAY - amount: 1024 - Bake_bricks: - name: Bake Bricks - production_time: 32 - inputs: - Clay: - material: CLAY_BALL - amount: 512 - outputs: - Bricks: - material: CLAY_BRICK - amount: 1024 - Bake_pots: - name: Bake Flowerpots - production_time: 5 - inputs: - Clay: - material: CLAY_BALL - amount: 64 - outputs: - Flower Pots: - material: FLOWER_POT_ITEM - amount: 64 - Smelt_Sandstone: - name: Smelt Sandstone - production_time: 32 - inputs: - Sand: - material: SAND - amount: 512 - outputs: - Sandstone: - material: SANDSTONE - amount: 384 - Smelt_Glass_Panes: - name: Smelt Glass Panes - production_time: 32 - inputs: - Glass: - material: GLASS - amount: 192 - outputs: - Glass Pane: - material: THIN_GLASS - amount: 768 - Smelt_Bottles: - name: Smelt Bottles - production_time: 64 - inputs: - Sand: - material: SAND - amount: 256 - outputs: - Bottle: - material: GLASS_BOTTLE - amount: 768 - Smelt_Red_Sand: - name: Smelt Red Sand - production_time: 16 - inputs: - Sand: - material: SAND - amount: 64 - outputs: - Red Sand: - material: SAND - amount: 64 - durability: 1 - Smelt_Glass_From_Sandstone: - name: Smelt Glass From Sandstone - production_time: 32 - inputs: - Sandstone: - material: SANDSTONE - amount: 512 - outputs: - Glass: - material: GLASS - amount: 768 - production_time: 6 - Smelt_Lapis_Lazuli_Ore: - name: Smelt Lapis Lazuli Ore - production_time: 6 - inputs: - Lapis Ore: - material: LAPIS_ORE - amount: 32 - outputs: - Lapis Lazuli: - material: INK_SACK - amount: 512 - durability: 4 - Smelt_Redstone_Ore: - name: Smelt Redstone Ore - production_time: 16 - inputs: - Redstone Ore: - material: REDSTONE_ORE - amount: 128 - outputs: - Redstone: - material: REDSTONE - amount: 1024 - Smelt_Netherquartz_Ore: - name: Smelt Netherquartz ore - production_time: 6 - inputs: - Netherquartz ore: - material: QUARTZ_ORE - amount: 64 - outputs: - Quartz: - material: QUARTZ - amount: 192 - Dye_Brown_Wool_Gray: - name: Dye Brown Wool Gray - inputs: - Brown Wool: - material: WOOL - amount: 64 - durability: 12 - Gray Dye: - material: INK_SACK - amount: 4 - durability: 8 - outputs: - Gray Wool: - material: WOOL - amount: 64 - durability: 7 - Diamond_Helmet: - name: Forge Diamond Helmet. - production_time: 25 - inputs: - Diamond: - material: DIAMOND - amount: 25 - outputs: - Diamond Helmet: - material: DIAMOND_HELMET - amount: 15 - Produce_Rail: - name: Produce Rails - inputs: - Iron Ingot: - material: IRON_INGOT - amount: 128 - Stick: - material: STICK - amount: 16 - outputs: - Rail: - material: RAILS - amount: 576 - Produce_Redstone_Torches: - name: Produce Redstone Torches - inputs: - Redstone: - material: REDSTONE - amount: 128 - Stick: - material: STICK - amount: 128 - outputs: - Redstone Torches: - material: REDSTONE_TORCH_ON - amount: 256 - Produce_Repeaters: - name: Produce Repeaters - inputs: - Redstone: - material: REDSTONE - amount: 128 - Stone: - material: STONE - amount: 128 - outputs: - Redstone Torches: - material: DIODE - amount: 96 - Produce_Comparators: - name: Produce Comparators - inputs: - Redstone: - material: REDSTONE - amount: 32 - Stone: - material: STONE - amount: 128 - Netherquartz: - material: QUARTZ - amount: 24 - outputs: - Comparators: - material: REDSTONE_COMPARATOR - amount: 32 - Produce_Daylight_Sensors: - name: Produce Daylight Sensors - inputs: - Chest: - material: CHEST - amount: 4 - Glass: - material: GLASS - amount: 64 - Netherquartz: - material: QUARTZ - amount: 64 - outputs: - Daylight sensors: - material: DAYLIGHT_DETECTOR - amount: 32 - Produce_Noteblocks: - name: Produce Noteblocks - inputs: - Chest: - material: CHEST - amount: 48 - Redstone: - material: REDSTONE - amount: 32 - outputs: - Noteblocks: - material: NOTE_BLOCK - amount: 64 - Produce_Dispensers: - name: Produce Dispensers - inputs: - Cobblestone: - material: COBBLESTONE - amount: 320 - Redstone: - material: REDSTONE - amount: 32 - String: - material: STRING - amount: 128 - Chest: - material: CHEST - amount: 4 - outputs: - Dispensers: - material: DISPENSER - amount: 64 - Produce_Redstone_lamps: - name: Produce Redstone lamps - inputs: - Glowstone: - material: GLOWSTONE - amount: 128 - Redstone: - material: REDSTONE - amount: 256 - outputs: - Redstone lamps: - material: REDSTONE_LAMP_OFF - amount: 128 - Produce_Pistons: - name: Produce Pistons - inputs: - Iron Ingot: - material: IRON_INGOT - amount: 128 - Chest: - material: CHEST - amount: 32 - Cobblestone: - material: COBBLESTONE - amount: 320 - Redstone: - material: REDSTONE - amount: 48 - outputs: - Pistons: - material: PISTON_BASE - amount: 128 - Produce_Sticky_Pistons: - name: Produce Sticky Pistons - inputs: - Iron Ingot: - material: IRON_INGOT - amount: 32 - Chest: - material: CHEST - amount: 8 - Redstone: - material: REDSTONE - amount: 12 - Slime Ball: - material: SLIME_BALL - amount: 16 - outputs: - Pistons: - material: PISTON_STICKY_BASE - amount: 32 - Produce_Jukeboxes: - name: Produce Jukeboxes - production_time: 16 - inputs: - Chest: - material: CHEST - amount: 32 - Diamond: - material: DIAMOND - amount: 48 - outputs: - Jukebox: - material: JUKEBOX - amount: 64 - Produce_Hoppers: - name: Produce_Hoppers - production_time: 16 - inputs: - Chest: - material: CHEST - amount: 32 - Iron Ingot: - material: IRON_INGOT - amount: 192 - outputs: - Hopper: - material: HOPPER - amount: 64 - Smelt_Gold_Ore: - name: Smelt Gold Ore - production_time: 3 - inputs: - Gold Ore: - material: GOLD_ORE - amount: 32 - outputs: - Gold Ingot: - material: GOLD_INGOT - amount: 224 - Dye_Gray_Wool_Brown: - name: Dye Gray Wool Brown - inputs: - Gray Wool: - material: WOOL - amount: 64 - durability: 7 - Cocoa: - material: INK_SACK - amount: 4 - durability: 3 - outputs: - Brown Wool: - material: WOOL - amount: 64 - durability: 12 - Iron_Pickaxe: - name: Forge Iron Pickaxe. - production_time: 15 - inputs: - Iron Ingot: - material: IRON_INGOT - amount: 15 - outputs: - Iron Pickaxe: - material: IRON_PICKAXE - amount: 15 - Dye_Black_Wool_Pink: - name: Dye Black Wool Pink - inputs: - Black Wool: - material: WOOL - amount: 64 - durability: 15 - Pink Dye: - material: INK_SACK - amount: 4 - durability: 9 - outputs: - Pink Wool: - material: WOOL - amount: 64 - durability: 6 - Dye_Gray_Wool_Orange: - name: Dye Gray Wool Orange - inputs: - Gray Wool: - material: WOOL - amount: 64 - durability: 7 - Orange Dye: - material: INK_SACK - amount: 4 - durability: 14 - outputs: - Orange Wool: - material: WOOL - amount: 64 - durability: 1 - Smelt_Cracked_Stone_Brick: - name: Smelt Cracked Stone Brick - production_time: 64 - inputs: - Stone Brick: - material: SMOOTH_BRICK - amount: 64 - Lapis Lazuli: - material: INK_SACK - amount: 32 - durability: 4 - Flint: - material: FLINT - amount: 64 - outputs: - Cracked Stone Brick: - material: SMOOTH_BRICK - amount: 64 - durability: 2 - Iron_XP_Bottle_0: - name: Brew XP Bottles - 1 - inputs: - Glass Bottle: - material: GLASS_BOTTLE - amount: 24 - Carrot: - material: CARROT_ITEM - amount: 256 - Cactus: - material: CACTUS - amount: 256 - Bread: - material: BREAD - amount: 256 - outputs: - Exp Bottle: - material: EXP_BOTTLE - amount: 24 - Iron_XP_Bottle_3: - name: Brew XP Bottles - 4 - inputs: - Glass Bottle: - material: GLASS_BOTTLE - amount: 42 - Nether Wart: - material: NETHER_STALK - amount: 256 - Melon Block: - material: MELON_BLOCK - amount: 64 - Sugar Cane: - material: SUGAR_CANE - amount: 64 - Cookie: - material: COOKIE - amount: 512 - Baked Potato: - material: BAKED_POTATO - amount: 64 - Grilled Pork: - material: GRILLED_PORK - amount: 64 - outputs: - Exp Bottle: - material: EXP_BOTTLE - amount: 42 - Iron_XP_Bottle_2: - name: Brew XP Bottles - 3 - inputs: - Glass Bottle: - material: GLASS_BOTTLE - amount: 42 - Carrot: - material: CARROT_ITEM - amount: 128 - Cocoa: - material: INK_SACK - amount: 64 - durability: 3 - Pumpkin: - material: PUMPKIN - amount: 64 - Cactus: - material: CACTUS - amount: 64 - Bread: - material: BREAD - amount: 64 - Cooked Beef: - material: COOKED_BEEF - amount: 32 - outputs: - Exp Bottle: - material: EXP_BOTTLE - amount: 42 - Diamond_Leggings: - name: Forge Diamond Leggings. - production_time: 35 - inputs: - Diamond: - material: DIAMOND - amount: 35 - outputs: - Diamond Leggings: - material: DIAMOND_LEGGINGS - amount: 15 - Dye_Gray_Wool_Red: - name: Dye Gray Wool Red - inputs: - Gray Wool: - material: WOOL - amount: 64 - durability: 7 - Rose Red: - material: INK_SACK - amount: 4 - durability: 1 - outputs: - Red Wool: - material: WOOL - amount: 64 - durability: 14 - Dye_Pink_Wool_Light_Gray: - name: Dye Pink Wool Light Gray - inputs: - Pink Wool: - material: WOOL - amount: 64 - durability: 6 - Light Gray Dye: - material: INK_SACK - amount: 4 - durability: 7 - outputs: - Light Gray Wool: - material: WOOL - amount: 64 - durability: 8 - Iron_Sword: - name: Forge Iron Sword. - production_time: 10 - inputs: - Iron Ingot: - material: IRON_INGOT - amount: 10 - outputs: - Iron Sword: - material: IRON_SWORD - amount: 15 - Dye_Gray_Wool_Purple: - name: Dye Gray Wool Purple - inputs: - Gray Wool: - material: WOOL - amount: 64 - durability: 7 - Purple Dye: - material: INK_SACK - amount: 4 - durability: 5 - outputs: - Purple Wool: - material: WOOL - amount: 64 - durability: 10 - Dye_Black_Wool_Green: - name: Dye Black Wool Green - inputs: - Black Wool: - material: WOOL - amount: 64 - durability: 15 - Cactus Green: - material: INK_SACK - amount: 4 - durability: 2 - outputs: - Green Wool: - material: WOOL - amount: 64 - durability: 13 - Dye_Brown_Wool_Red: - name: Dye Brown Wool Red - inputs: - Brown Wool: - material: WOOL - amount: 64 - durability: 12 - Rose Red: - material: INK_SACK - amount: 4 - durability: 1 - outputs: - Red Wool: - material: WOOL - amount: 64 - durability: 14 - Dye_Pink_Wool_Light_Blue: - name: Dye Pink Wool Light Blue - inputs: - Pink Wool: - material: WOOL - amount: 64 - durability: 6 - Light Blue Dye: - material: INK_SACK - amount: 4 - durability: 12 - outputs: - Light Blue Wool: - material: WOOL - amount: 64 - durability: 3 - Gold_Hoe: - name: Forge Gold Hoe. - production_time: 10 - inputs: - Gold Ingot: - material: GOLD_INGOT - amount: 10 - outputs: - Gold Hoe: - material: GOLD_HOE - amount: 30 - enchantments: - Unbreaking 3: - type: DURABILITY - level: 3 - Gold_Sword: - name: Forge Gold Sword. - production_time: 10 - inputs: - Gold Ingot: - material: GOLD_INGOT - amount: 10 - outputs: - Gold Sword: - material: GOLD_SWORD - amount: 15 - enchantments: - Unbreaking 3: - type: DURABILITY - level: 3 - Bane of the Anthropods 1: - type: DAMAGE_ARTHROPODS - level: 1 - probability: 0.4 - Bane of the Anthropods 2: - type: DAMAGE_ARTHROPODS - level: 2 - probability: 0.3 - Bane of the Anthropods 3: - type: DAMAGE_ARTHROPODS - level: 3 - probability: 0.2 - Bane of the Anthropods 4: - type: DAMAGE_ARTHROPODS - level: 4 - probability: 0.1 - Bane of the Anthropods 5: - type: DAMAGE_ARTHROPODS - level: 5 - probability: 0.3 - Smite 1: - type: DAMAGE_UNDEAD - level: 1 - probability: 0.4 - Smite 2: - type: DAMAGE_UNDEAD - level: 2 - probability: 0.3 - Smite 3: - type: DAMAGE_UNDEAD - level: 3 - probability: 0.2 - Smite 4: - type: DAMAGE_UNDEAD - level: 4 - probability: 0.1 - Smite 5: - type: DAMAGE_UNDEAD - level: 5 - probability: 0.05 - Looting 1: - type: LOOT_BONUS_MOBS - level: 1 - probability: 0.5 - Looting 2: - type: LOOT_BONUS_MOBS - level: 2 - probability: 0.4 - Looting 3: - type: LOOT_BONUS_MOBS - level: 3 - probability: 0.3 - Smelt_Chiseled_Stone_Brick: - name: Smelt Chiseled Stone Brick - production_time: 64 - inputs: - Stone Brick: - material: SMOOTH_BRICK - amount: 64 - Lapis Lazuli: - material: INK_SACK - amount: 32 - durability: 4 - Gravel: - material: GRAVEL - amount: 64 - outputs: - Chiseled Stone Brick: - material: SMOOTH_BRICK - amount: 64 - durability: 3 - Diamond_Pickaxe: - name: Forge Diamond Pickaxe. - production_time: 15 - inputs: - Diamond: - material: DIAMOND - amount: 15 - outputs: - Diamond Pickaxe: - material: DIAMOND_PICKAXE - amount: 15 - Smelt_Mossy_Stone_Brick: - name: Smelt Mossy Stone Brick - production_time: 64 - inputs: - Stone Brick: - material: SMOOTH_BRICK - amount: 64 - Lapis Lazuli: - material: INK_SACK - amount: 32 - durability: 4 - Vine: - material: VINE - amount: 64 - outputs: - Mossy Stone Brick: - material: SMOOTH_BRICK - amount: 64 - durability: 1 - Dye_White_Wool_Magenta: - name: Dye White Wool Magenta - inputs: - White Wool: - material: WOOL - amount: 64 - Magenta Dye: - material: INK_SACK - amount: 4 - durability: 13 - outputs: - Magenta Wool: - material: WOOL - amount: 64 - durability: 2 - Iron_Hoe: - name: Forge Iron Hoe. - production_time: 10 - inputs: - Iron Ingot: - material: IRON_INGOT - amount: 10 - outputs: - Iron Hoe: - material: IRON_HOE - amount: 30 - Wood_XP_Bottle_1: - name: Brew XP Bottles - 2 - inputs: - Glass Bottle: - material: GLASS_BOTTLE - amount: 4 - Nether Wart: - material: NETHER_STALK - amount: 1280 - outputs: - Exp Bottle: - material: EXP_BOTTLE - amount: 4 - Dye_Pink_Wool_Gray: - name: Dye Pink Wool Gray - inputs: - Pink Wool: - material: WOOL - amount: 64 - durability: 6 - Gray Dye: - material: INK_SACK - amount: 4 - durability: 8 - outputs: - Gray Wool: - material: WOOL - amount: 64 - durability: 7 - Dye_Pink_Wool_Red: - name: Dye Pink Wool Red - inputs: - Pink Wool: - material: WOOL - amount: 64 - durability: 6 - Rose Red: - material: INK_SACK - amount: 4 - durability: 1 - outputs: - Red Wool: - material: WOOL - amount: 64 - durability: 14 - Dye_Black_Wool_Purple: - name: Dye Black Wool Purple - inputs: - Black Wool: - material: WOOL - amount: 64 - durability: 15 - Purple Dye: - material: INK_SACK - amount: 4 - durability: 5 - outputs: - Purple Wool: - material: WOOL - amount: 64 - durability: 10 - Dye_Gray_Wool_Light_Blue: - name: Dye Gray Wool Light Blue - inputs: - Gray Wool: - material: WOOL - amount: 64 - durability: 7 - Light Blue Dye: - material: INK_SACK - amount: 4 - durability: 12 - outputs: - Light Blue Wool: - material: WOOL - amount: 64 - durability: 3 - Smelt_Coal: - name: Burn Coal - production_time: 24 - inputs: - Coal: - material: COAL - amount: 256 - outputs: - Charcoal: - material: COAL - amount: 512 - durability: 1 - Gold_Axe: - name: Forge Gold Axe. - production_time: 15 - inputs: - Gold Ingot: - material: GOLD_INGOT - amount: 15 - outputs: - Gold Axe: - material: GOLD_AXE - amount: 30 - enchantments: - Unbreaking 3: - type: DURABILITY - level: 3 - Silk Touch 1: - type: SILK_TOUCH - level: 1 - probability: 0.1 - Efficiency 1: - type: DIG_SPEED - level: 1 - probability: 0.3 - Efficiency 2: - type: DIG_SPEED - level: 2 - probability: 0.2 - Efficiency 3: - type: DIG_SPEED - level: 3 - probability: 0.1 - Efficiency 4: - type: DIG_SPEED - level: 4 - probability: 0.05 - Efficiency 5: - type: DIG_SPEED - level: 5 - probability: 0.01 - Bane of the Anthropods 1: - type: DAMAGE_ARTHROPODS - level: 1 - probability: 0.4 - Bane of the Anthropods 2: - type: DAMAGE_ARTHROPODS - level: 2 - probability: 0.3 - Bane of the Anthropods 3: - type: DAMAGE_ARTHROPODS - level: 3 - probability: 0.2 - Bane of the Anthropods 4: - type: DAMAGE_ARTHROPODS - level: 4 - probability: 0.1 - Bane of the Anthropods 5: - type: DAMAGE_ARTHROPODS - level: 5 - probability: 0.3 - Smite 1: - type: DAMAGE_UNDEAD - level: 1 - probability: 0.4 - Smite 2: - type: DAMAGE_UNDEAD - level: 2 - probability: 0.3 - Smite 3: - type: DAMAGE_UNDEAD - level: 3 - probability: 0.2 - Smite 4: - type: DAMAGE_UNDEAD - level: 4 - probability: 0.1 - Smite 5: - type: DAMAGE_UNDEAD - level: 5 - probability: 0.05 - Looting 1: - type: LOOT_BONUS_MOBS - level: 1 - probability: 0.5 - Looting 2: - type: LOOT_BONUS_MOBS - level: 2 - probability: 0.4 - Looting 3: - type: LOOT_BONUS_MOBS - level: 3 - probability: 0.3 - Cooked_Fish: - name: Grill Raw Fish - production_time: 6 - inputs: - Raw Fish: - material: RAW_FISH - amount: 64 - outputs: - Cooked Fish: - material: COOKED_FISH - amount: 256 - Dye_Pink_Wool_Black: - name: Dye Pink Wool Black - inputs: - Pink Wool: - material: WOOL - amount: 64 - durability: 6 - Ink Sack: - material: INK_SACK - amount: 4 - outputs: - Black Wool: - material: WOOL - amount: 64 - durability: 15 - Diamond_Spade: - name: Forge Diamond Spade. - production_time: 5 - inputs: - Diamond: - material: DIAMOND - amount: 5 - outputs: - Diamond Spade: - material: DIAMOND_SPADE - amount: 15 - Dye_Pink_Wool_Yellow: - name: Dye Pink Wool Yellow - inputs: - Pink Wool: - material: WOOL - amount: 64 - durability: 6 - Dandelion Yellow: - material: INK_SACK - amount: 4 - durability: 11 - outputs: - Yellow Wool: - material: WOOL - amount: 64 - durability: 4 - Smelt_Iron_Ore: - name: Smelt Iron Ore - production_time: 12 - inputs: - Iron Ore: - material: IRON_ORE - amount: 128 - outputs: - Iron Ingot: - material: IRON_INGOT - amount: 224 - Produce_Powered_Rail: - name: Produce Powered Rails - inputs: - Gold Ingot: - material: GOLD_INGOT - amount: 72 - Redstone: - material: REDSTONE - amount: 8 - Stick: - material: STICK - amount: 8 - outputs: - Powered Rail: - material: POWERED_RAIL - amount: 128 - Produce_Detector_Rail: - name: Produce Detector Rails - inputs: - Iron Ingot: - material: IRON_INGOT - amount: 18 - Redstone: - material: REDSTONE - amount: 2 - outputs: - Detector Rail: - material: DETECTOR_RAIL - amount: 32 - Produce_Activator_Rail: - name: Produce Activator Rails - inputs: - Iron Ingot: - material: IRON_INGOT - amount: 18 - Redstone: - material: REDSTONE - amount: 2 - Stick: - material: STICK - amount: 8 - outputs: - Activator Rail: - material: ACTIVATOR_RAIL - amount: 32 - Produce_Minecarts: - name: Produce Minecarts - production_time: 16 - inputs: - Iron Ingot: - material: IRON_INGOT - amount: 64 - outputs: - Minecart: - material: MINECART - amount: 27 - Gold_Helmet: - name: Forge Gold Helmet. - production_time: 25 - inputs: - Gold Ingot: - material: GOLD_INGOT - amount: 25 - outputs: - Gold Helmet: - material: GOLD_HELMET - amount: 15 - durability: -218 - enchantments: - Unbreaking 3: - type: DURABILITY - level: 3 - Respiration 1: - type: OXYGEN - level: 1 - probability: 0.5 - Respiration 2: - type: OXYGEN - level: 2 - probability: 0.4 - Respiration 3: - type: OXYGEN - level: 3 - probability: 0.3 - Blast Protection 1: - type: PROTECTION_EXPLOSIONS - level: 1 - probability: 0.5 - Blast Protection 2: - type: PROTECTION_EXPLOSIONS - level: 2 - probability: 0.4 - Blast Protection 3: - type: PROTECTION_EXPLOSIONS - level: 3 - probability: 0.3 - Blast Protection 4: - type: PROTECTION_EXPLOSIONS - level: 4 - probability: 0.4 - Fire Protection 1: - type: PROTECTION_FIRE - level: 1 - probability: 0.5 - Fire Protection 2: - type: PROTECTION_FIRE - level: 2 - probability: 0.4 - Fire Protection 3: - type: PROTECTION_FIRE - level: 3 - probability: 0.3 - Fire Protection 4: - type: PROTECTION_FIRE - level: 4 - probability: 0.4 - Projectile Protection 1: - type: PROTECTION_PROJECTILE - level: 1 - probability: 0.5 - Projectile Protection 2: - type: PROTECTION_PROJECTILE - level: 2 - probability: 0.4 - Projectile Protection 3: - type: PROTECTION_PROJECTILE - level: 3 - probability: 0.3 - Projectile Protection 4: - type: PROTECTION_PROJECTILE - level: 4 - probability: 0.4 - Dye_Brown_Wool_Black: - name: Dye Brown Wool Black - inputs: - Brown Wool: - material: WOOL - amount: 64 - durability: 12 - Ink Sack: - material: INK_SACK - amount: 4 - outputs: - Black Wool: - material: WOOL - amount: 64 - durability: 15 - Dye_Brown_Wool_Lime: - name: Dye Brown Wool Lime - inputs: - Brown Wool: - material: WOOL - amount: 64 - durability: 12 - Lime Dye: - material: INK_SACK - amount: 4 - durability: 10 - outputs: - Lime Wool: - material: WOOL - amount: 64 - durability: 5 - Gold_Boots: - name: Forge Gold Boots. - production_time: 20 - inputs: - Gold Ingot: - material: GOLD_INGOT - amount: 20 - outputs: - Gold Boots: - material: GOLD_BOOTS - amount: 15 - durability: -218 - enchantments: - Unbreaking 3: - type: DURABILITY - level: 3 - Blast Protection 1: - type: PROTECTION_EXPLOSIONS - level: 1 - probability: 0.5 - Blast Protection 2: - type: PROTECTION_EXPLOSIONS - level: 2 - probability: 0.4 - Blast Protection 3: - type: PROTECTION_EXPLOSIONS - level: 3 - probability: 0.3 - Blast Protection 4: - type: PROTECTION_EXPLOSIONS - level: 4 - probability: 0.4 - Feather Falling 1: - type: PROTECTION_FALL - level: 1 - probability: 0.5 - Feather Falling 2: - type: PROTECTION_FALL - level: 2 - probability: 0.4 - Feather Falling 3: - type: PROTECTION_FALL - level: 3 - probability: 0.3 - Feather Falling 4: - type: PROTECTION_FALL - level: 4 - probability: 0.4 - Fire Protection 1: - type: PROTECTION_FIRE - level: 1 - probability: 0.5 - Fire Protection 2: - type: PROTECTION_FIRE - level: 2 - probability: 0.4 - Fire Protection 3: - type: PROTECTION_FIRE - level: 3 - probability: 0.3 - Fire Protection 4: - type: PROTECTION_FIRE - level: 4 - probability: 0.4 - Projectile Protection 1: - type: PROTECTION_PROJECTILE - level: 1 - probability: 0.5 - Projectile Protection 2: - type: PROTECTION_PROJECTILE - level: 2 - probability: 0.4 - Projectile Protection 3: - type: PROTECTION_PROJECTILE - level: 3 - probability: 0.3 - Projectile Protection 4: - type: PROTECTION_PROJECTILE - level: 4 - probability: 0.4 - Dye_Gray_Wool_Yellow: - name: Dye Gray Wool Yellow - inputs: - Gray Wool: - material: WOOL - amount: 64 - durability: 7 - Dandelion Yellow: - material: INK_SACK - amount: 4 - durability: 11 - outputs: - Yellow Wool: - material: WOOL - amount: 64 - durability: 4 - Dye_Pink_Wool_Lime: - name: Dye Pink Wool Lime - inputs: - Pink Wool: - material: WOOL - amount: 64 - durability: 6 - Lime Dye: - material: INK_SACK - amount: 4 - durability: 10 - outputs: - Lime Wool: - material: WOOL - amount: 64 - durability: 5 - Dye_Gray_Wool_Magenta: - name: Dye Gray Wool Magenta - inputs: - Gray Wool: - material: WOOL - amount: 64 - durability: 7 - Magenta Dye: - material: INK_SACK - amount: 4 - durability: 13 - outputs: - Magenta Wool: - material: WOOL - amount: 64 - durability: 2 - Dye_Brown_Wool_Blue: - name: Dye Brown Wool Blue - inputs: - Brown Wool: - material: WOOL - amount: 64 - durability: 12 - Lapis Lazuli: - material: INK_SACK - amount: 4 - durability: 4 - outputs: - Blue Wool: - material: WOOL - amount: 64 - durability: 11 - Dye_Black_Wool_Lime: - name: Dye Black Wool Lime - inputs: - Black Wool: - material: WOOL - amount: 64 - durability: 15 - Lime Dye: - material: INK_SACK - amount: 4 - durability: 10 - outputs: - Lime Wool: - material: WOOL - amount: 64 - durability: 5 - Smelt_Stone: - name: Smelt Stone - production_time: 80 - inputs: - Cobblestone: - material: COBBLESTONE - amount: 640 - outputs: - Stone: - material: STONE - amount: 854 - Grilled_Pork: - name: Grill Pork - production_time: 6 - inputs: - Pork: - material: PORK - amount: 64 - outputs: - Grilled Pork: - material: GRILLED_PORK - amount: 128 - Dye_Black_Wool_Light_Blue: - name: Dye Black Wool Light Blue - inputs: - Black Wool: - material: WOOL - amount: 64 - durability: 15 - Light Blue Dye: - material: INK_SACK - amount: 4 - durability: 12 - outputs: - Light Blue Wool: - material: WOOL - amount: 64 - durability: 3 - Dye_Gray_Wool_White: - name: Dye Gray Wool White - inputs: - Gray Wool: - material: WOOL - amount: 64 - durability: 7 - Bone Meal: - material: INK_SACK - amount: 4 - durability: 15 - outputs: - White Wool: - material: WOOL - amount: 64 - Diamond_Axe: - name: Forge Diamond Axe. - production_time: 15 - inputs: - Diamond: - material: DIAMOND - amount: 15 - outputs: - Diamond Axe: - material: DIAMOND_AXE - amount: 30 - Smelt_Oak_Wood: - name: Burn Oak Wood - production_time: 24 - inputs: - Oak Wood: - material: LOG - amount: 256 - outputs: - Charcoal: - material: COAL - amount: 512 - durability: 1 - Produce_Saddle: - name: Produce Saddles - production_time: 20 - inputs: - Diamond: - material: DIAMOND - amount: 16 - Leather: - material: LEATHER - amount: 64 - White Wool: - material: WOOL - amount: 64 - outputs: - Saddle: - material: SADDLE - amount: 8 - Produce_Diamond_Horse_Armor: - name: Produce Diamond Horse Armor - production_time: 20 - inputs: - Diamond: - material: DIAMOND - amount: 64 - outputs: - Diamond Horse Armor: - material: DIAMOND_BARDING - amount: 1 - Produce_Gold_Horse_Armor: - name: Produce Gold Horse Armor - production_time: 20 - inputs: - Gold Ingot: - material: GOLD_INGOT - amount: 64 - outputs: - Gold Horse Armor: - material: GOLD_BARDING - amount: 1 - Produce_Iron_Horse_Armor: - name: Produce Iron Horse Armor - production_time: 20 - inputs: - Iron Ingot: - material: IRON_INGOT - amount: 64 - outputs: - Iron Horse Armor: - material: IRON_BARDING - amount: 1 - Produce_Leads: - name: Produce Leads - inputs: - Slime Ball: - material: SLIME_BALL - amount: 4 - String: - material: STRING - amount: 16 - outputs: - Lead: - material: LEASH - amount: 8 - Craft_Fences: - name: Craft Fences - production_time: 16 - inputs: - Chest: - material: CHEST - amount: 12 - outputs: - Fence: - material: FENCE - amount: 256 - Craft_Signs: - name: Craft Signs - production_time: 16 - inputs: - Chest: - material: CHEST - amount: 8 - outputs: - Sign: - material: SIGN - amount: 64 - Craft_Boats: - name: Craft Boats - production_time: 16 - inputs: - Chest: - material: CHEST - amount: 8 - outputs: - Boat: - material: BOAT - amount: 27 - Craft_Ladders: - name: Craft Ladders - production_time: 16 - inputs: - Chest: - material: CHEST - amount: 8 - outputs: - Ladder: - material: LADDER - amount: 256 - Craft_Trap_Doors: - name: Craft Trap Doors - production_time: 16 - inputs: - Chest: - material: CHEST - amount: 48 - outputs: - Trap Door: - material: TRAP_DOOR - amount: 256 - Craft_Item_Frames: - name: Craft Item Frames - production_time: 32 - inputs: - Chest: - material: CHEST - amount: 8 - Leather: - material: LEATHER - amount: 48 - outputs: - Item Frames: - material: ITEM_FRAME - amount: 64 - Craft_Bookshelfs: - name: Craft Bookshelfs - production_time: 32 - inputs: - Chest: - material: CHEST - amount: 8 - Leather: - material: LEATHER - amount: 48 - Paper: - material: PAPER - amount: 192 - outputs: - Bookshelf: - material: BOOKSHELF - amount: 64 - Forge_Shears: - name: Forge Shears - production_time: 8 - inputs: - Iron Ingot: - material: IRON_INGOT - amount: 18 - outputs: - Shears: - material: SHEARS - amount: 18 - Forge_Anvils: - name: Forge Anvils - production_time: 64 - inputs: - Iron Ingot: - material: IRON_INGOT - amount: 256 - outputs: - Anvil: - material: ANVIL - amount: 16 - Forge_Tripwire_Hooks: - name: Forge Tripwire Hooks - production_time: 16 - inputs: - Iron Ingot: - material: IRON_INGOT - amount: 16 - outputs: - Tripwire Hook: - material: TRIPWIRE_HOOK - amount: 64 - Forge_Iron_Bars: - name: Forge Iron Bars - production_time: 32 - inputs: - Iron Ingot: - material: IRON_INGOT - amount: 24 - outputs: - Iron Bars: - material: IRON_FENCE - amount: 256 - Forge_Buckets: - name: Forge Buckets - production_time: 32 - inputs: - Iron Ingot: - material: IRON_INGOT - amount: 96 - outputs: - Bucket: - material: BUCKET - amount: 64 - Forge_Iron_Doors: - name: Forge Iron Doors - production_time: 16 - inputs: - Iron Ingot: - material: IRON_INGOT - amount: 54 - outputs: - Iron Door: - material: IRON_DOOR - amount: 18 - Forge_Flint_And_Steel: - name: Forge Flint and Steel - production_time: 8 - inputs: - Iron Ingot: - material: IRON_INGOT - amount: 9 - outputs: - Flint and Steel: - material: FLINT_AND_STEEL - amount: 18 - Dye_White_Stained_Glass: - name: Dye White Stained Glass - inputs: - Glass: - material: GLASS - amount: 64 - Bone Meal: - material: INK_SACK - amount: 4 - durability: 15 - outputs: - White Stained Glass: - material: STAINED_GLASS - amount: 64 - durability: 0 - Dye_Orange_Stained_Glass: - name: Dye Orange Stained Glass - inputs: - Glass: - material: GLASS - amount: 64 - Orange Dye: - material: INK_SACK - amount: 4 - durability: 14 - outputs: - Orange Stained Glass: - material: STAINED_GLASS - amount: 64 - durability: 1 - Dye_Magenta_Stained_Glass: - name: Dye Magenta Stained Glass - inputs: - Glass: - material: GLASS - amount: 64 - Magenta Dye: - material: INK_SACK - amount: 4 - durability: 13 - outputs: - Magenta Stained Glass: - material: STAINED_GLASS - amount: 64 - durability: 2 - Dye_Light_Blue_Stained_Glass: - name: Dye Light Blue Stained Glass - inputs: - Glass: - material: GLASS - amount: 64 - Light Blue Dye: - material: INK_SACK - amount: 4 - durability: 12 - outputs: - Light Blue Stained Glass: - material: STAINED_GLASS - amount: 64 - durability: 3 - Dye_Yellow_Stained_Glass: - name: Dye Yellow Stained Glass - inputs: - Glass: - material: GLASS - amount: 64 - Dandelion Yellow: - material: INK_SACK - amount: 4 - durability: 11 - outputs: - Yellow Stained Glass: - material: STAINED_GLASS - amount: 64 - durability: 4 - Dye_Lime_Stained_Glass: - name: Dye Lime Stained Glass - inputs: - Glass: - material: GLASS - amount: 64 - Lime Dye: - material: INK_SACK - amount: 4 - durability: 10 - outputs: - Lime Stained Glass: - material: STAINED_GLASS - amount: 64 - durability: 5 - Dye_Pink_Stained_Glass: - name: Dye Pink Stained Glass - inputs: - Glass: - material: GLASS - amount: 64 - Pink Dye: - material: INK_SACK - amount: 4 - durability: 9 - outputs: - Pink Stained Glass: - material: STAINED_GLASS - amount: 64 - durability: 6 - Dye_Gray_Stained_Glass: - name: Dye Gray Stained Glass - inputs: - Glass: - material: GLASS - amount: 64 - Gray Dye: - material: INK_SACK - amount: 4 - durability: 8 - outputs: - Gray Stained Glass: - material: STAINED_GLASS - amount: 64 - durability: 7 - Dye_Light_Gray_Stained_Glass: - name: Dye Light Gray Stained Glass - inputs: - Glass: - material: GLASS - amount: 64 - Light Gray Dye: - material: INK_SACK - amount: 4 - durability: 7 - outputs: - Light Gray Stained Glass: - material: STAINED_GLASS - amount: 64 - durability: 8 - Dye_Cyan_Stained_Glass: - name: Dye Cyan Stained Glass - inputs: - Glass: - material: GLASS - amount: 64 - Cyan Dye: - material: INK_SACK - amount: 4 - durability: 6 - outputs: - Cyan Stained Glass: - material: STAINED_GLASS - amount: 64 - durability: 9 - Dye_Purple_Stained_Glass: - name: Dye Purple Stained Glass - inputs: - Glass: - material: GLASS - amount: 64 - Purple Dye: - material: INK_SACK - amount: 4 - durability: 5 - outputs: - Purple Stained Glass: - material: STAINED_GLASS - amount: 64 - durability: 10 - Dye_Blue_Stained_Glass: - name: Dye Blue Stained Glass - inputs: - Glass: - material: GLASS - amount: 64 - Lapis Lazuli: - material: INK_SACK - amount: 4 - durability: 4 - outputs: - Blue Stained Glass: - material: STAINED_GLASS - amount: 64 - durability: 11 - Dye_Brown_Stained_Glass: - name: Dye Brown Stained Glass - inputs: - Glass: - material: GLASS - amount: 64 - Coco Beans: - material: INK_SACK - amount: 4 - durability: 3 - outputs: - Brown Stained Glass: - material: STAINED_GLASS - amount: 64 - durability: 12 - Dye_Green_Stained_Glass: - name: Dye Green Stained Glass - inputs: - Glass: - material: GLASS - amount: 64 - Cactus Green: - material: INK_SACK - amount: 4 - durability: 2 - outputs: - Green Stained Glass: - material: STAINED_GLASS - amount: 64 - durability: 13 - Dye_Red_Stained_Glass: - name: Dye Red Stained Glass - inputs: - Glass: - material: GLASS - amount: 64 - Rose Red: - material: INK_SACK - amount: 4 - durability: 1 - outputs: - Red Stained Glass: - material: STAINED_GLASS - amount: 64 - durability: 14 - Dye_Black_Stained_Glass: - name: Dye Black Stained Glass - inputs: - Glass: - material: GLASS - amount: 64 - Ink Sack: - material: INK_SACK - amount: 4 - durability: 0 - outputs: - Black Stained Glass: - material: STAINED_GLASS - amount: 64 - durability: 15 - Dye_White_Stained_Glass_Pane: - name: Dye White Stained Glass Pane - inputs: - Glass Pane: - material: THIN_GLASS - amount: 64 - Bone Meal: - material: INK_SACK - amount: 4 - durability: 15 - outputs: - White Stained Glass Pane: - material: STAINED_GLASS_PANE - amount: 64 - durability: 0 - Dye_Orange_Stained_Glass_Pane: - name: Dye Orange Stained Glass Pane - inputs: - Glass Pane: - material: THIN_GLASS - amount: 64 - Orange Dye: - material: INK_SACK - amount: 4 - durability: 14 - outputs: - Orange Stained Glass Pane: - material: STAINED_GLASS_PANE - amount: 64 - durability: 1 - Dye_Magenta_Stained_Glass_Pane: - name: Dye Magenta Stained Glass Pane - inputs: - Glass Pane: - material: THIN_GLASS - amount: 64 - Magenta Dye: - material: INK_SACK - amount: 4 - durability: 13 - outputs: - Magenta Stained Glass Pane: - material: STAINED_GLASS_PANE - amount: 64 - durability: 2 - Dye_Light_Blue_Stained_Glass_Pane: - name: Dye Light Blue Stained Glass Pane - inputs: - Glass Pane: - material: THIN_GLASS - amount: 64 - Light Blue Dye: - material: INK_SACK - amount: 4 - durability: 12 - outputs: - Light Blue Stained Glass Pane: - material: STAINED_GLASS_PANE - amount: 64 - durability: 3 - Dye_Yellow_Stained_Glass_Pane: - name: Dye Yellow Stained Glass Pane - inputs: - Glass Pane: - material: THIN_GLASS - amount: 64 - Dandelion Yellow: - material: INK_SACK - amount: 4 - durability: 11 - outputs: - Yellow Stained Glass Pane: - material: STAINED_GLASS_PANE - amount: 64 - durability: 4 - Dye_Lime_Stained_Glass_Pane: - name: Dye Lime Stained Glass Pane - inputs: - Glass Pane: - material: THIN_GLASS - amount: 64 - Lime Dye: - material: INK_SACK - amount: 4 - durability: 10 - outputs: - Lime Stained Glass Pane: - material: STAINED_GLASS_PANE - amount: 64 - durability: 5 - Dye_Pink_Stained_Glass_Pane: - name: Dye Pink Stained Glass Pane - inputs: - Glass Pane: - material: THIN_GLASS - amount: 64 - Pink Dye: - material: INK_SACK - amount: 4 - durability: 9 - outputs: - Pink Stained Glass Pane: - material: STAINED_GLASS_PANE - amount: 64 - durability: 6 - Dye_Gray_Stained_Glass_Pane: - name: Dye Gray Stained Glass Pane - inputs: - Glass Pane: - material: THIN_GLASS - amount: 64 - Gray Dye: - material: INK_SACK - amount: 4 - durability: 8 - outputs: - Gray Stained Glass Pane: - material: STAINED_GLASS_PANE - amount: 64 - durability: 7 - Dye_Light_Gray_Stained_Glass_Pane: - name: Dye Light Gray Stained Glass Pane - inputs: - Glass Pane: - material: THIN_GLASS - amount: 64 - Light Gray Dye: - material: INK_SACK - amount: 4 - durability: 7 - outputs: - Light Gray Stained Glass Pane: - material: STAINED_GLASS_PANE - amount: 64 - durability: 8 - Dye_Cyan_Stained_Glass_Pane: - name: Dye Cyan Stained Glass Pane - inputs: - Glass Pane: - material: THIN_GLASS - amount: 64 - Cyan Dye: - material: INK_SACK - amount: 4 - durability: 6 - outputs: - Cyan Stained Glass Pane: - material: STAINED_GLASS_PANE - amount: 64 - durability: 9 - Dye_Purple_Stained_Glass_Pane: - name: Dye Purple Stained Glass Pane - inputs: - Glass Pane: - material: THIN_GLASS - amount: 64 - Purple Dye: - material: INK_SACK - amount: 4 - durability: 5 - outputs: - Purple Stained Glass Pane: - material: STAINED_GLASS_PANE - amount: 64 - durability: 10 - Dye_Blue_Stained_Glass_Pane: - name: Dye Blue Stained Glass Pane - inputs: - Glass Pane: - material: THIN_GLASS - amount: 64 - Lapis Lazuli: - material: INK_SACK - amount: 4 - durability: 4 - outputs: - Blue Stained Glass Pane: - material: STAINED_GLASS_PANE - amount: 64 - durability: 11 - Dye_Brown_Stained_Glass_Pane: - name: Dye Brown Stained Glass Pane - inputs: - Glass Pane: - material: THIN_GLASS - amount: 64 - Coco Beans: - material: INK_SACK - amount: 4 - durability: 3 - outputs: - Brown Stained Glass Pane: - material: STAINED_GLASS_PANE - amount: 64 - durability: 12 - Dye_Green_Stained_Glass_Pane: - name: Dye Green Stained Glass Pane - inputs: - Glass Pane: - material: THIN_GLASS - amount: 64 - Cactus Green: - material: INK_SACK - amount: 4 - durability: 2 - outputs: - Green Stained Glass Pane: - material: STAINED_GLASS_PANE - amount: 64 - durability: 13 - Dye_Red_Stained_Glass_Pane: - name: Dye Red Stained Glass Pane - inputs: - Glass Pane: - material: THIN_GLASS - amount: 64 - Rose Red: - material: INK_SACK - amount: 4 - durability: 1 - outputs: - Red Stained Glass Pane: - material: STAINED_GLASS_PANE - amount: 64 - durability: 14 - Dye_Black_Stained_Glass_Pane: - name: Dye Black Stained Glass Pane - inputs: - Glass Pane: - material: THIN_GLASS - amount: 64 - Ink Sack: - material: INK_SACK - amount: 4 - durability: 0 - outputs: - Black Stained Glass Pane: - material: STAINED_GLASS_PANE - amount: 64 - durability: 15 - Dye_White_Stained_Clay: - name: Dye White Stained Clay - inputs: - Hardened Clay: - material: HARD_CLAY - amount: 64 - Bone Meal: - material: INK_SACK - amount: 4 - durability: 15 - outputs: - White Stained Clay: - material: STAINED_CLAY - amount: 64 - durability: 0 - Dye_Orange_Stained_Clay: - name: Dye Orange Stained Clay - inputs: - Hardened Clay: - material: HARD_CLAY - amount: 64 - Orange Dye: - material: INK_SACK - amount: 4 - durability: 14 - outputs: - Orange Stained Clay: - material: STAINED_CLAY - amount: 64 - durability: 1 - Dye_Magenta_Stained_Clay: - name: Dye Magenta Stained Clay - inputs: - Hardened Clay: - material: HARD_CLAY - amount: 64 - Magenta Dye: - material: INK_SACK - amount: 4 - durability: 13 - outputs: - Hardened Clay: - material: STAINED_CLAY - amount: 64 - durability: 2 - Dye_Light_Blue_Stained_Clay: - name: Dye Light Blue Stained Clay - inputs: - Hardened Clay: - material: HARD_CLAY - amount: 64 - Light Blue Dye: - material: INK_SACK - amount: 4 - durability: 12 - outputs: - Light Blue Stained Clay: - material: STAINED_CLAY - amount: 64 - durability: 3 - Dye_Yellow_Stained_Clay: - name: Dye Yellow Stained Clay - inputs: - Hardened Clay: - material: HARD_CLAY - amount: 64 - Dandelion Yellow: - material: INK_SACK - amount: 4 - durability: 11 - outputs: - Hardened Clay: - material: STAINED_CLAY - amount: 64 - durability: 4 - Dye_Lime_Stained_Clay: - name: Dye Lime Stained Clay - inputs: - Hardened Clay: - material: HARD_CLAY - amount: 64 - Lime Dye: - material: INK_SACK - amount: 4 - durability: 10 - outputs: - Hardened Clay: - material: STAINED_CLAY - amount: 64 - durability: 5 - Dye_Pink_Stained_Clay: - name: Dye Pink Stained Clay - inputs: - Hardened Clay: - material: HARD_CLAY - amount: 64 - Pink Dye: - material: INK_SACK - amount: 4 - durability: 9 - outputs: - Pink Stained Clay: - material: STAINED_CLAY - amount: 64 - durability: 6 - Dye_Gray_Stained_Clay: - name: Dye Gray Stained Clay - inputs: - Hardened Clay: - material: HARD_CLAY - amount: 64 - Gray Dye: - material: INK_SACK - amount: 4 - durability: 8 - outputs: - Gray Stained Clay: - material: STAINED_CLAY - amount: 64 - durability: 7 - Dye_Light_Gray_Stained_Clay: - name: Dye Light Gray Stained Clay - inputs: - Hardened Clay: - material: HARD_CLAY - amount: 64 - Light Gray Dye: - material: INK_SACK - amount: 4 - durability: 7 - outputs: - Light Gray Stained Clay: - material: STAINED_CLAY - amount: 64 - durability: 8 - Dye_Cyan_Stained_Clay: - name: Dye Cyan Stained Clay - inputs: - Hardened Clay: - material: HARD_CLAY - amount: 64 - Cyan Dye: - material: INK_SACK - amount: 4 - durability: 6 - outputs: - Cyan Stained Clay: - material: STAINED_CLAY - amount: 64 - durability: 9 - Dye_Purple_Stained_Clay: - name: Dye Purple Stained Clay - inputs: - Hardened Clay: - material: HARD_CLAY - amount: 64 - Purple Dye: - material: INK_SACK - amount: 4 - durability: 5 - outputs: - Purple Stained Clay: - material: STAINED_CLAY - amount: 64 - durability: 10 - Dye_Blue_Stained_Clay: - name: Dye Blue Stained Clay - inputs: - Hardened Clay: - material: HARD_CLAY - amount: 64 - Lapis Lazuli: - material: INK_SACK - amount: 4 - durability: 4 - outputs: - Blue Stained Clay: - material: STAINED_CLAY - amount: 64 - durability: 11 - Dye_Brown_Stained_Clay: - name: Dye Brown Stained Clay - inputs: - Hardened Clay: - material: HARD_CLAY - amount: 64 - Coco Beans: - material: INK_SACK - amount: 4 - durability: 3 - outputs: - Brown Stained Clay: - material: STAINED_CLAY - amount: 64 - durability: 12 - Dye_Green_Stained_Clay: - name: Dye Green Stained Clay - inputs: - Hardened Clay: - material: HARD_CLAY - amount: 64 - Cactus Green: - material: INK_SACK - amount: 4 - durability: 2 - outputs: - Green Stained Clay: - material: STAINED_CLAY - amount: 64 - durability: 13 - Dye_Red_Stained_Clay: - name: Dye Red Stained Clay - inputs: - Hardened Clay: - material: HARD_CLAY - amount: 64 - Rose Red: - material: INK_SACK - amount: 4 - durability: 1 - outputs: - Red Stained Clay: - material: STAINED_CLAY - amount: 64 - durability: 14 - Dye_Black_Stained_Clay: - name: Dye Black Stained Clay - inputs: - Hardened Clay: - material: HARD_CLAY - amount: 64 - Ink Sack: - material: INK_SACK - amount: 4 - durability: 0 - outputs: - Black Stained Clay: - material: STAINED_CLAY - amount: 64 - durability: 15 - Mutate_Spruce_Saplings: - name: Mutate Spruce Saplings - production_time: 64 - inputs: - Oak Sapling: - material: SAPLING - amount: 64 - outputs: - Spruce Sapling: - material: SAPLING - amount: 64 - durability: 1 - Mutate_Birch_Saplings: - name: Mutate Birch Saplings - production_time: 64 - inputs: - Oak Sapling: - material: SAPLING - amount: 64 - outputs: - Birch Sapling: - material: SAPLING - amount: 64 - durability: 2 - Mutate_Jungle_Saplings: - name: Mutate Jungle Saplings - production_time: 64 - inputs: - Oak Sapling: - material: SAPLING - amount: 64 - outputs: - Jungle Sapling: - material: SAPLING - amount: 64 - durability: 3 - Mutate_Acacia_Saplings: - name: Mutate Acacia Saplings - production_time: 64 - inputs: - Oak Sapling: - material: SAPLING - amount: 64 - outputs: - Acacia Sapling: - material: SAPLING - amount: 64 - durability: 4 - Mutate_Dark_Oak_Saplings: - name: Mutate Dark Oak Saplings - production_time: 64 - inputs: - Oak Sapling: - material: SAPLING - amount: 64 - outputs: - Dark Oak Sapling: - material: SAPLING - amount: 64 - durability: 5 - Mutate_Grassless_Dirt: - name: Mutate Grassless Dirt - production_time: 16 - inputs: - Grass: - material: GRASS - amount: 64 - outputs: - Grassless Dirt: - material: DIRT - amount: 64 - durability: 1 - Mutate_Podzol: - name: Mutate Podzol - production_time: 16 - inputs: - Grass: - material: GRASS - amount: 64 - outputs: - Podzol: - material: DIRT - amount: 64 - durability: 2 - Mutate_Pigmen: - name: Mutate Pigmen - production_time: 4 - inputs: - Pig eggs: - material: MONSTER_EGG - durability: 90 - amount: 16 - Villager eggs: - material: MONSTER_EGG - durability: 120 - amount: 16 - outputs: - Pigman eggs: - material: MONSTER_EGG - durability: 57 - amount: 16 - Infect_Zombies: - name: Infect Zombies - production_time: 4 - inputs: - Villager eggs: - material: MONSTER_EGG - durability: 120 - amount: 16 - Rotten flesh: - material: ROTTEN_FLESH - amount: 512 - outputs: - Zombie eggs: - material: MONSTER_EGG - durability: 54 - amount: 8 - Mutate_Skeletons: - name: Mutate Skeletons - production_time: 4 - inputs: - Zombie eggs: - material: MONSTER_EGG - durability: 54 - amount: 16 - Bones: - material: BONE - amount: 256 - Blaze powder: - material: BLAZE_POWDER - amount: 64 - outputs: - Skeleton eggs: - material: MONSTER_EGG - durability: 51 - amount: 8 - Mutate_Creepers: - name: Mutate Creepers - production_time: 4 - inputs: - Skeleton eggs: - material: MONSTER_EGG - durability: 51 - amount: 16 - Blaze powder: - material: BLAZE_POWDER - amount: 32 - TNT: - material: TNT - amount: 16 - Lime wool: - material: WOOL - durability: 5 - amount: 32 - outputs: - Creeper eggs: - material: MONSTER_EGG - durability: 50 - amount: 8 - Mutate_Witches: - name: Mutate Witches - production_time: 32 - inputs: - Villager eggs: - material: MONSTER_EGG - durability: 120 - amount: 16 - Ghast tears: - material: GHAST_TEAR - amount: 16 - outputs: - Witch eggs: - material: MONSTER_EGG - durability: 66 - amount: 4 - Mutate_Spiders: - name: Mutate Spiders - production_time: 16 - inputs: - Squid eggs: # For the legs - material: MONSTER_EGG - durability: 94 - amount: 16 - Cow eggs: # For food - material: MONSTER_EGG - durability: 92 - amount: 16 - Spider eyes: - material: SPIDER_EYE - amount: 256 - outputs: - Spider eggs: - material: MONSTER_EGG - durability: 52 - amount: 4 - Mutate_Cave_Spiders: - name: Mutate Cave Spiders - production_time: 16 - inputs: - Spider eggs: - material: MONSTER_EGG - durability: 52 - amount: 16 - Poison potatoes: - material: POISONOUS_POTATO - amount: 128 - Spider eyes: - material: SPIDER_EYE - amount: 256 - outputs: - Cave spider eggs: - material: MONSTER_EGG - durability: 59 - amount: 8 - Mutate_Ghasts: - name: Mutate Ghasts - production_time: 32 - inputs: - Ghast tears: - material: GHAST_TEAR - amount: 8 - Fire charges: # Ammunition - material: FIREBALL - amount: 64 - Dispensers: # Fire! - material: DISPENSER - amount: 4 - White carpets: # To make a balloon - material: CARPET - amount: 256 - Furnaces: # To heat air - material: FURNACE - amount: 4 - Charcoal: # To fuel the furnace + Aspect_Factory: + name: Arcane Elementizer + fuel: + Charcoal: material: COAL durability: 1 - amount: 256 - Villager eggs: # Operator - material: MONSTER_EGG - durability: 120 - amount: 4 - outputs: - Ghast eggs: - material: MONSTER_EGG - durability: 56 - amount: 4 - Compact_Ice: - name: Compact Ice - production_time: 32 inputs: - Ice: - material: ICE - amount: 576 - outputs: - Packed_Ice: - material: PACKED_ICE + Netherbrick: + material: NETHER_BRICK + amount: 1536 + Redstone: + material: REDSTONE + amount: 1152 + Netherquartz: + material: QUARTZ amount: 576 - Bastion_Walls: - name: Walls - production_time: 2 - inputs: - Lapis Ore: - material: LAPIS_ORE - amount: 8 - Cracked Stone Brick: - material: SMOOTH_BRICK - amount: 32 - durability: 2 - outputs: - Walls: - material: INK_SACK - amount: 4 - durablity: 4 - display_name: Walls - lore: An item used to create a Bastion Block - Bastion_Base: - name: Base - production_time: 2 - inputs: - Diamond Ore: - material: DIAMOND_ORE - amount: 16 - Redstone Ore: - material: REDSTONE_ORE - amount: 32 - outputs: - Base: - material: IRON_INGOT - amount: 1 - display_name: Base - lore: An item used to create a Bastion Block - Bastion_Gearbox: - name: Gearbox - production_time: 2 - inputs: - Iron Block: - material: IRON_BLOCK - amount: 4 - Gold Ore: - material: GOLD_ORE - amount: 8 - outputs: - Gearbox: - material: WATCH - amount: 1 - display_name: Gearbox - lore: An item used to create a Bastion Block - Bastion_Objet_Dart: - name: Objet d'art - production_time: 2 - inputs: - Lapis Lazuli: - material: INK_SACK - amount: 16 - durability: 4 - Gray Dye: - material: INK_SACK - amount: 16 - durability: 8 - Cocoa: - material: INK_SACK - amount: 16 - durability: 3 - Purple Dye: - material: INK_SACK - amount: 16 - durability: 5 - Dandelion Yellow: - material: INK_SACK - amount: 16 - durability: 11 - Ink Sack: - material: INK_SACK - amount: 16 - durability: 0 - Magenta Dye: - material: INK_SACK - amount: 16 - durability: 13 - Pink Dye: - material: INK_SACK - amount: 16 - durability: 9 - Cyan Dye: - material: INK_SACK - amount: 16 - durability: 6 - Orange Dye: - material: INK_SACK - amount: 16 - durability: 14 - Cactus Green: - material: INK_SACK - amount: 16 - durability: 2 - Bone Meal: - material: INK_SACK - amount: 16 - durability: 15 - Light Gray Dye: - material: INK_SACK - amount: 16 - durability: 7 - Light Blue Dye: - material: INK_SACK - amount: 16 - durability: 12 - Rose Red: - material: INK_SACK - amount: 16 - durability: 1 - Lime Dye: - material: INK_SACK - amount: 16 - durability: 10 - Red Sand: - material: SAND - amount: 256 - durability: 1 - outputs: - Objet d'art: - material: FLINT - amount: 1 - display_name: Objet d'art - lore: An item used to create a Bastion Block - Bastion_Framing: - name: Framing - inputs: - Chest: - material: CHEST - amount: 64 - Iron Block: - material: IRON_BLOCK - amount: 4 - outputs: - Framing: - material: STICK - amount: 1 - display_name: Framing - lore: An item used to create a Bastion Block - Bastion_Flooring: - name: Flooring - inputs: - Clay Ball: - material: CLAY_BALL - amount: 32 + recipes: + - Forge_Aspect_of_Terra + - Forge_Aspect_of_End + - Forge_Aspect_of_Nether + - Craft_Eye_of_Ender + repair_multiple: 26 + repair_inputs: Nether Brick: material: NETHER_BRICK - amount: 64 - outputs: - Flooring: - material: CLAY_BRICK - amount: 1 - display_name: Flooring - lore: An item used to create a Bastion Block - Bastion_Rations: - name: Rations - inputs: - Wheat: - material: WHEAT - amount: 256 - Bowl: - material: BOWL - amount: 32 - outputs: - Rations: - material: MUSHROOM_SOUP - amount: 32 - display_name: Rations - lore: An item used to create a Bastion Block - Bastion_Smaragdus_Polisher: - name: Smaragdus - production_time: 32 - inputs: - Emerald Block: - material: EMERALD_BLOCK - amount: 16 - outputs: - Smaragdus: - material: EMERALD - amount: 16 - display_name: Smaragdus - lore: An item used to create a Bastion Block - Bastion_Silicon_Tetranitratobihydrotrioxycarbon: - name: Silicon_Tetranitratobihydrotrioxycarbon - inputs: - Sulphur: - material: SULPHUR - amount: 8 - Quartz: + amount: 6 + Redstone: + material: REDSTONE + amount: 5 + Netherquartz: material: QUARTZ - amount: 32 - Podzol: - material: DIRT - amount: 32 - durability: 2 - Coal Block: - material: COAL_BLOCK - amount: 8 - Water Bucket: - material: WATER_BUCKET amount: 2 - outputs: - Silicon Tetranitratobihydrotrioxycarbon: - material: FIREWORK_CHARGE +nether_factory: + name: Nether Factory + fuel: + Charcoal: + material: COAL + durability: 1 + costs: + construction: + Aspect of Nether: + material: MAGMA_CREAM amount: 8 - display_name: Silicon Tetranitratobihydrotrioxycarbon - lore: An item used to create a Bastion Block - Bastion_Pure_Ice: - name: Pure Ice - inputs: - Compact Ice: - material: PACKED_ICE - amount: 512 - Leather: - material: LEATHER - amount: 32 - outputs: - Pure Ice: - material: QUARTZ + display_name: Aspect of Nether + lore: A concentrated essence of the Nether + Aspect of Terra: + material: DIAMOND amount: 8 - display_name: Pure Ice - lore: An item used to repair the Bastion Factory - Bastion_Block: - name: Craft Bastions - inputs: - Silicon Tetranitratobihydrotrioxycarbon: - material: FIREWORK_CHARGE - amount: 16 - display_name: Silicon Tetranitratobihydrotrioxycarbon - lore: An item used to create a Bastion Block - Smaragdus: - material: EMERALD - amount: 2 - display_name: Smaragdus - lore: An item used to create a Bastion Block - Rations: - material: MUSHROOM_SOUP - amount: 16 - display_name: Rations - lore: An item used to create a Bastion Block - Flooring: - material: CLAY_BRICK - amount: 1 - display_name: Flooring - lore: An item used to create a Bastion Block - Framing: - material: STICK - amount: 1 - display_name: Framing - lore: An item used to create a Bastion Block - Objet d'art: + display_name: Aspect of Terra + lore: A concentrated essence of Terra + Aspect of END: material: FLINT - amount: 1 - display_name: Objet d'art - lore: An item used to create a Bastion Block - Gearbox: - material: WATCH - amount: 1 - display_name: Gearbox - lore: An item used to create a Bastion Block - Base: - material: IRON_INGOT - amount: 1 - display_name: Base - lore: An item used to create a Bastion Block - Walls: - material: INK_SACK - amount: 4 - durability: 0 - display_name: Walls - lore: An item used to create a Bastion Block - outputs: - Bastion: - material: SPONGE - amount: 32 - display_name: Bastion - Sequencing_Sunflower: - name: Sequencing Sunflower - inputs: - Dandelion: - material: YELLOW_FLOWER - amount: 8 - Sugar Cane: - material: SUGAR_CANE - amount: 8 - outputs: - Sunflower: - material: DOUBLE_PLANT - amount: 4 - durability: 0 - Sequencing_Lilac: - name: Sequencing Lilac - inputs: - Poppy: - material: RED_ROSE amount: 8 - Oak Sapling: - material: SAPLING - amount: 8 - outputs: - Lilac: - material: DOUBLE_PLANT - amount: 4 - durability: 1 - Sequencing_Double_Tallgrass: - name: Sequencing Double Tallgrass - inputs: - Grass: - material: LONG_GRASS - amount: 16 - durability: 1 - outputs: - Double Tallgrass: - material: DOUBLE_PLANT - amount: 4 - durability: 2 - Sequencing_Large_Fern: - name: Sequencing Large Fern - inputs: - Grass: - material: LONG_GRASS - amount: 16 - durability: 1 - outputs: - Large Fern: - material: DOUBLE_PLANT - amount: 4 - durability: 3 - Sequencing_Rose_Bush: - name: Sequencing Rose Bush - inputs: - Poppy: - material: RED_ROSE - amount: 8 - Cactus: - material: CACTUS - amount: 8 - outputs: - Rose Bush: - material: DOUBLE_PLANT - amount: 4 - durability: 4 - Sequencing_Peony: - name: Sequencing Peony - inputs: - Poppy: - material: RED_ROSE - amount: 8 - Oak Leaves: - material: LEAVES - amount: 8 - outputs: - Peony: - material: DOUBLE_PLANT - amount: 4 - durability: 5 + display_name: Aspect of End + lore: A concentrated essence of the End + repair: + Diamond block: + material: DIAMOND_BLOCK + amount: 1 + repair_multiple: 1 + fuel_time: 10 + repair_time: 12 + scaling_radius: 5000 + cost_scaling_radius: 5000 + use_fuel_on_teleport: false +production_recipes: Forge_Aspect_of_Terra: name: Forge Aspect of Terra production_time: 64 From e42afa2b89bf57df27230ad1be0de6dd7dbcde1e Mon Sep 17 00:00:00 2001 From: ribagi Date: Fri, 31 Oct 2014 23:22:09 -0700 Subject: [PATCH 38/52] Armor Trees --- config.yml | 1412 +++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 1411 insertions(+), 1 deletion(-) diff --git a/config.yml b/config.yml index b96eaf4e..4fd66af2 100644 --- a/config.yml +++ b/config.yml @@ -151,7 +151,6 @@ printing_presses: durability: 2 amount: 6 security_notes_per_lot: 128 - crafting: disable: enable: @@ -194,6 +193,117 @@ crafting: Double Stone Slab: material: DOUBLE_STEP production_factories: + Leather_Tanner: + fuel: + Charcoal: + material: COAL + durability: 1 + inputs: + Stone knife: + material: FLINT + amount: 12 + lore: Stone knife + recipes: + - LEATHER_BOOTS_RANK_0 + - LEATHER_BOOTS_RANK_1 + - LEATHER_BOOTS_RANK_2 + - LEATHER_BOOTS_RANK_3 + - LEATHER_BOOTS_RANK_4 + - LEATHER_CHESTPLATE_RANK_0 + - LEATHER_CHESTPLATE_RANK_1 + - LEATHER_CHESTPLATE_RANK_2 + - LEATHER_CHESTPLATE_RANK_3 + - LEATHER_CHESTPLATE_RANK_4 + - LEATHER_HELMET_RANK_0 + - LEATHER_HELMET_RANK_1 + - LEATHER_HELMET_RANK_2 + - LEATHER_HELMET_RANK_3 + - LEATHER_HELMET_RANK_4 + - LEATHER_LEGGINGS_RANK_0 + - LEATHER_LEGGINGS_RANK_1 + - LEATHER_LEGGINGS_RANK_2 + - LEATHER_LEGGINGS_RANK_3 + - LEATHER_LEGGINGS_RANK_4 + repair_multiple: 26 + repair_inputs: + Stone knife: + material: FLINT + amount: 2 + lore: Stone knife + Iron_Refiner: + fuel: + Charcoal: + material: COAL + durability: 1 + inputs: + Blast furnace: + material: CLAY_BRICK + amount: 16 + lore: Blast furnace + recipes: + - IRON_BOOTS_RANK_0 + - IRON_BOOTS_RANK_1 + - IRON_BOOTS_RANK_2 + - IRON_BOOTS_RANK_3 + - IRON_BOOTS_RANK_4 + - IRON_CHESTPLATE_RANK_0 + - IRON_CHESTPLATE_RANK_1 + - IRON_CHESTPLATE_RANK_2 + - IRON_CHESTPLATE_RANK_3 + - IRON_CHESTPLATE_RANK_4 + - IRON_HELMET_RANK_0 + - IRON_HELMET_RANK_1 + - IRON_HELMET_RANK_2 + - IRON_HELMET_RANK_3 + - IRON_HELMET_RANK_4 + - IRON_LEGGINGS_RANK_0 + - IRON_LEGGINGS_RANK_1 + - IRON_LEGGINGS_RANK_2 + - IRON_LEGGINGS_RANK_3 + - IRON_LEGGINGS_RANK_4 + repair_multiple: 26 + repair_inputs: + Blast furnace: + material: CLAY_BRICK + amount: 4 + lore: Blast furnace + Diamond_Cutter: + fuel: + Charcoal: + material: COAL + durability: 1 + inputs: + Faceting machine: + material: WATCH + amount: 32 + lore: Faceting machine + recipes: + - DIAMOND_BOOTS_RANK_0 + - DIAMOND_BOOTS_RANK_1 + - DIAMOND_BOOTS_RANK_2 + - DIAMOND_BOOTS_RANK_3 + - DIAMOND_BOOTS_RANK_4 + - DIAMOND_CHESTPLATE_RANK_0 + - DIAMOND_CHESTPLATE_RANK_1 + - DIAMOND_CHESTPLATE_RANK_2 + - DIAMOND_CHESTPLATE_RANK_3 + - DIAMOND_CHESTPLATE_RANK_4 + - DIAMOND_HELMET_RANK_0 + - DIAMOND_HELMET_RANK_1 + - DIAMOND_HELMET_RANK_2 + - DIAMOND_HELMET_RANK_3 + - DIAMOND_HELMET_RANK_4 + - DIAMOND_LEGGINGS_RANK_0 + - DIAMOND_LEGGINGS_RANK_1 + - DIAMOND_LEGGINGS_RANK_2 + - DIAMOND_LEGGINGS_RANK_3 + - DIAMOND_LEGGINGS_RANK_4 + repair_multiple: 26 + repair_inputs: + Faceting machine: + material: WATCH + amount: 8 + lore: Faceting machine Aspect_Factory: name: Arcane Elementizer fuel: @@ -227,6 +337,1306 @@ production_factories: material: QUARTZ amount: 2 nether_factory: + LEATHER_BOOTS_RANK_0 + name: Leather Boots Forger Rank 0 + production_time: 360 + inputs: + Leather: + material: LEATHER + amount: 32 + outputs: + material: LEATHER_BOOTS + amount: 1 + display_name: Leather Boots Rank 0 + lore: Leather Boots Rank 0 + LEATHER_BOOTS_RANK_1 + name: Leather Boots Forger Rank 1 + production_time: 360 + inputs: + Leather: + material: LEATHER + amount: 32 + Leather Boots: + material: LEATHER_BOOTS + amount: 1 + display_name: Leather Boots Rank 0 + lore: Leather Boots Rank 0 + outputs: + material: LEATHER_BOOTS + amount: 1 + display_name: Leather Boots Rank 1 + lore: Leather Boots Rank 1 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 1 + LEATHER_BOOTS_RANK_2 + name: Leather Boots Forger Rank 2 + production_time: 360 + inputs: + Leather: + material: LEATHER + amount: 32 + Leather Boots: + material: LEATHER_BOOTS + amount: 1 + display_name: Leather Boots Rank 1 + lore: Leather Boots Rank 1 + outputs: + material: LEATHER_BOOTS + amount: 1 + display_name: Leather Boots Rank 2 + lore: Leather Boots Rank 2 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 2 + Unbreaking: + type: DURABILITY + level: 1 + LEATHER_BOOTS_RANK_3 + name: Leather Boots Forger Rank 3 + production_time: 360 + inputs: + Leather: + material: LEATHER + amount: 32 + Leather Boots: + material: LEATHER_BOOTS + amount: 1 + display_name: Leather Boots Rank 2 + lore: Leather Boots Rank 2 + outputs: + material: LEATHER_BOOTS + amount: 1 + display_name: Leather Boots Rank 3 + lore: Leather Boots Rank 3 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 3 + Unbreaking: + type: DURABILITY + level: 2 + LEATHER_BOOTS_RANK_4 + name: Leather Boots Forger Rank 4 + production_time: 360 + inputs: + Leather: + material: LEATHER + amount: 32 + Leather Boots: + material: LEATHER_BOOTS + amount: 1 + display_name: Leather Boots Rank 3 + lore: Leather Boots Rank 3 + outputs: + material: LEATHER_BOOTS + amount: 1 + display_name: Leather Boots Rank 4 + lore: Leather Boots Rank 4 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 4 + Unbreaking: + type: DURABILITY + level: 3 + LEATHER_CHESTPLATE_RANK_0 + name: Leather Chestplate Forger Rank 0 + production_time: 360 + inputs: + Leather: + material: LEATHER + amount: 32 + outputs: + material: LEATHER_CHESTPLATE + amount: 1 + display_name: Leather Chestplate Rank 0 + lore: Leather Chestplate Rank 0 + LEATHER_CHESTPLATE_RANK_1 + name: Leather Chestplate Forger Rank 1 + production_time: 360 + inputs: + Leather: + material: LEATHER + amount: 32 + Leather Chestplate: + material: LEATHER_CHESTPLATE + amount: 1 + display_name: Leather Chestplate Rank 0 + lore: Leather Chestplate Rank 0 + outputs: + material: LEATHER_CHESTPLATE + amount: 1 + display_name: Leather Chestplate Rank 1 + lore: Leather Chestplate Rank 1 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 1 + LEATHER_CHESTPLATE_RANK_2 + name: Leather Chestplate Forger Rank 2 + production_time: 360 + inputs: + Leather: + material: LEATHER + amount: 32 + Leather Chestplate: + material: LEATHER_CHESTPLATE + amount: 1 + display_name: Leather Chestplate Rank 1 + lore: Leather Chestplate Rank 1 + outputs: + material: LEATHER_CHESTPLATE + amount: 1 + display_name: Leather Chestplate Rank 2 + lore: Leather Chestplate Rank 2 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 2 + Unbreaking: + type: DURABILITY + level: 1 + LEATHER_CHESTPLATE_RANK_3 + name: Leather Chestplate Forger Rank 3 + production_time: 360 + inputs: + Leather: + material: LEATHER + amount: 32 + Leather Chestplate: + material: LEATHER_CHESTPLATE + amount: 1 + display_name: Leather Chestplate Rank 2 + lore: Leather Chestplate Rank 2 + outputs: + material: LEATHER_CHESTPLATE + amount: 1 + display_name: Leather Chestplate Rank 3 + lore: Leather Chestplate Rank 3 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 3 + Unbreaking: + type: DURABILITY + level: 2 + LEATHER_CHESTPLATE_RANK_4 + name: Leather Chestplate Forger Rank 4 + production_time: 360 + inputs: + Leather: + material: LEATHER + amount: 32 + Leather Chestplate: + material: LEATHER_CHESTPLATE + amount: 1 + display_name: Leather Chestplate Rank 3 + lore: Leather Chestplate Rank 3 + outputs: + material: LEATHER_CHESTPLATE + amount: 1 + display_name: Leather Chestplate Rank 4 + lore: Leather Chestplate Rank 4 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 4 + Unbreaking: + type: DURABILITY + level: 3 + LEATHER_HELMET_RANK_0 + name: Leather Helmet Forger Rank 0 + production_time: 360 + inputs: + Leather: + material: LEATHER + amount: 32 + outputs: + material: LEATHER_HELMET + amount: 1 + display_name: Leather Helmet Rank 0 + lore: Leather Helmet Rank 0 + LEATHER_HELMET_RANK_1 + name: Leather Helmet Forger Rank 1 + production_time: 360 + inputs: + Leather: + material: LEATHER + amount: 32 + Leather Helmet: + material: LEATHER_HELMET + amount: 1 + display_name: Leather Helmet Rank 0 + lore: Leather Helmet Rank 0 + outputs: + material: LEATHER_HELMET + amount: 1 + display_name: Leather Helmet Rank 1 + lore: Leather Helmet Rank 1 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 1 + LEATHER_HELMET_RANK_2 + name: Leather Helmet Forger Rank 2 + production_time: 360 + inputs: + Leather: + material: LEATHER + amount: 32 + Leather Helmet: + material: LEATHER_HELMET + amount: 1 + display_name: Leather Helmet Rank 1 + lore: Leather Helmet Rank 1 + outputs: + material: LEATHER_HELMET + amount: 1 + display_name: Leather Helmet Rank 2 + lore: Leather Helmet Rank 2 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 2 + Unbreaking: + type: DURABILITY + level: 1 + LEATHER_HELMET_RANK_3 + name: Leather Helmet Forger Rank 3 + production_time: 360 + inputs: + Leather: + material: LEATHER + amount: 32 + Leather Helmet: + material: LEATHER_HELMET + amount: 1 + display_name: Leather Helmet Rank 2 + lore: Leather Helmet Rank 2 + outputs: + material: LEATHER_HELMET + amount: 1 + display_name: Leather Helmet Rank 3 + lore: Leather Helmet Rank 3 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 3 + Unbreaking: + type: DURABILITY + level: 2 + LEATHER_HELMET_RANK_4 + name: Leather Helmet Forger Rank 4 + production_time: 360 + inputs: + Leather: + material: LEATHER + amount: 32 + Leather Helmet: + material: LEATHER_HELMET + amount: 1 + display_name: Leather Helmet Rank 3 + lore: Leather Helmet Rank 3 + outputs: + material: LEATHER_HELMET + amount: 1 + display_name: Leather Helmet Rank 4 + lore: Leather Helmet Rank 4 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 4 + Unbreaking: + type: DURABILITY + level: 3 + LEATHER_LEGGINGS_RANK_0 + name: Leather Leggings Forger Rank 0 + production_time: 360 + inputs: + Leather: + material: LEATHER + amount: 32 + outputs: + material: LEATHER_LEGGINGS + amount: 1 + display_name: Leather Leggings Rank 0 + lore: Leather Leggings Rank 0 + LEATHER_LEGGINGS_RANK_1 + name: Leather Leggings Forger Rank 1 + production_time: 360 + inputs: + Leather: + material: LEATHER + amount: 32 + Leather Leggings: + material: LEATHER_LEGGINGS + amount: 1 + display_name: Leather Leggings Rank 0 + lore: Leather Leggings Rank 0 + outputs: + material: LEATHER_LEGGINGS + amount: 1 + display_name: Leather Leggings Rank 1 + lore: Leather Leggings Rank 1 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 1 + LEATHER_LEGGINGS_RANK_2 + name: Leather Leggings Forger Rank 2 + production_time: 360 + inputs: + Leather: + material: LEATHER + amount: 32 + Leather Leggings: + material: LEATHER_LEGGINGS + amount: 1 + display_name: Leather Leggings Rank 1 + lore: Leather Leggings Rank 1 + outputs: + material: LEATHER_LEGGINGS + amount: 1 + display_name: Leather Leggings Rank 2 + lore: Leather Leggings Rank 2 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 2 + Unbreaking: + type: DURABILITY + level: 1 + LEATHER_LEGGINGS_RANK_3 + name: Leather Leggings Forger Rank 3 + production_time: 360 + inputs: + Leather: + material: LEATHER + amount: 32 + Leather Leggings: + material: LEATHER_LEGGINGS + amount: 1 + display_name: Leather Leggings Rank 2 + lore: Leather Leggings Rank 2 + outputs: + material: LEATHER_LEGGINGS + amount: 1 + display_name: Leather Leggings Rank 3 + lore: Leather Leggings Rank 3 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 3 + Unbreaking: + type: DURABILITY + level: 2 + LEATHER_LEGGINGS_RANK_4 + name: Leather Leggings Forger Rank 4 + production_time: 360 + inputs: + Leather: + material: LEATHER + amount: 32 + Leather Leggings: + material: LEATHER_LEGGINGS + amount: 1 + display_name: Leather Leggings Rank 3 + lore: Leather Leggings Rank 3 + outputs: + material: LEATHER_LEGGINGS + amount: 1 + display_name: Leather Leggings Rank 4 + lore: Leather Leggings Rank 4 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 4 + Unbreaking: + type: DURABILITY + level: 3 + IRON_BOOTS_RANK_0 + name: Iron Boots Forger Rank 0 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Leather Boots: + material: LEATHER_BOOTS + amount: 2 + display_name: Leather Boots Rank 4 + lore: Leather Boots Rank 4 + outputs: + material: IRON_BOOTS + amount: 1 + display_name: Iron Boots Rank 0 + lore: Iron Boots Rank 0 + IRON_BOOTS_RANK_1 + name: Iron Boots Forger Rank 1 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Iron Boots: + material: IRON_BOOTS + amount: 1 + display_name: Iron Boots Rank 0 + lore: Iron Boots Rank 0 + outputs: + material: IRON_BOOTS + amount: 1 + display_name: Iron Boots Rank 1 + lore: Iron Boots Rank 1 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 1 + IRON_BOOTS_RANK_2 + name: Iron Boots Forger Rank 2 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Iron Boots: + material: IRON_BOOTS + amount: 1 + display_name: Iron Boots Rank 1 + lore: Iron Boots Rank 1 + outputs: + material: IRON_BOOTS + amount: 1 + display_name: Iron Boots Rank 2 + lore: Iron Boots Rank 2 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 2 + Unbreaking: + type: DURABILITY + level: 1 + IRON_BOOTS_RANK_3 + name: Iron Boots Forger Rank 3 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Iron Boots: + material: IRON_BOOTS + amount: 1 + display_name: Iron Boots Rank 2 + lore: Iron Boots Rank 2 + outputs: + material: IRON_BOOTS + amount: 1 + display_name: Iron Boots Rank 3 + lore: Iron Boots Rank 3 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 3 + Unbreaking: + type: DURABILITY + level: 2 + IRON_BOOTS_RANK_4 + name: Iron Boots Forger Rank 4 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Iron Boots: + material: IRON_BOOTS + amount: 1 + display_name: Iron Boots Rank 3 + lore: Iron Boots Rank 3 + outputs: + material: IRON_BOOTS + amount: 1 + display_name: Iron Boots Rank 4 + lore: Iron Boots Rank 4 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 4 + Unbreaking: + type: DURABILITY + level: 3 + IRON_CHESTPLATE_RANK_0 + name: Iron Chestplate Forger Rank 0 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Leather Chestplate: + material: LEATHER_CHESTPLATE + amount: 2 + display_name: Leather Chestplate Rank 4 + lore: Leather Chestplate Rank 4 + outputs: + material: IRON_CHESTPLATE + amount: 1 + display_name: Iron Chestplate Rank 0 + lore: Iron Chestplate Rank 0 + IRON_CHESTPLATE_RANK_1 + name: Iron Chestplate Forger Rank 1 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Iron Chestplate: + material: IRON_CHESTPLATE + amount: 1 + display_name: Iron Chestplate Rank 0 + lore: Iron Chestplate Rank 0 + outputs: + material: IRON_CHESTPLATE + amount: 1 + display_name: Iron Chestplate Rank 1 + lore: Iron Chestplate Rank 1 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 1 + IRON_CHESTPLATE_RANK_2 + name: Iron Chestplate Forger Rank 2 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Iron Chestplate: + material: IRON_CHESTPLATE + amount: 1 + display_name: Iron Chestplate Rank 1 + lore: Iron Chestplate Rank 1 + outputs: + material: IRON_CHESTPLATE + amount: 1 + display_name: Iron Chestplate Rank 2 + lore: Iron Chestplate Rank 2 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 2 + Unbreaking: + type: DURABILITY + level: 1 + IRON_CHESTPLATE_RANK_3 + name: Iron Chestplate Forger Rank 3 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Iron Chestplate: + material: IRON_CHESTPLATE + amount: 1 + display_name: Iron Chestplate Rank 2 + lore: Iron Chestplate Rank 2 + outputs: + material: IRON_CHESTPLATE + amount: 1 + display_name: Iron Chestplate Rank 3 + lore: Iron Chestplate Rank 3 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 3 + Unbreaking: + type: DURABILITY + level: 2 + IRON_CHESTPLATE_RANK_4 + name: Iron Chestplate Forger Rank 4 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Iron Chestplate: + material: IRON_CHESTPLATE + amount: 1 + display_name: Iron Chestplate Rank 3 + lore: Iron Chestplate Rank 3 + outputs: + material: IRON_CHESTPLATE + amount: 1 + display_name: Iron Chestplate Rank 4 + lore: Iron Chestplate Rank 4 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 4 + Unbreaking: + type: DURABILITY + level: 3 + IRON_HELMET_RANK_0 + name: Iron Helmet Forger Rank 0 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Leather Helmet: + material: LEATHER_HELMET + amount: 2 + display_name: Leather Helmet Rank 4 + lore: Leather Helmet Rank 4 + outputs: + material: IRON_HELMET + amount: 1 + display_name: Iron Helmet Rank 0 + lore: Iron Helmet Rank 0 + IRON_HELMET_RANK_1 + name: Iron Helmet Forger Rank 1 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Iron Helmet: + material: IRON_HELMET + amount: 1 + display_name: Iron Helmet Rank 0 + lore: Iron Helmet Rank 0 + outputs: + material: IRON_HELMET + amount: 1 + display_name: Iron Helmet Rank 1 + lore: Iron Helmet Rank 1 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 1 + IRON_HELMET_RANK_2 + name: Iron Helmet Forger Rank 2 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Iron Helmet: + material: IRON_HELMET + amount: 1 + display_name: Iron Helmet Rank 1 + lore: Iron Helmet Rank 1 + outputs: + material: IRON_HELMET + amount: 1 + display_name: Iron Helmet Rank 2 + lore: Iron Helmet Rank 2 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 2 + Unbreaking: + type: DURABILITY + level: 1 + IRON_HELMET_RANK_3 + name: Iron Helmet Forger Rank 3 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Iron Helmet: + material: IRON_HELMET + amount: 1 + display_name: Iron Helmet Rank 2 + lore: Iron Helmet Rank 2 + outputs: + material: IRON_HELMET + amount: 1 + display_name: Iron Helmet Rank 3 + lore: Iron Helmet Rank 3 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 3 + Unbreaking: + type: DURABILITY + level: 2 + IRON_HELMET_RANK_4 + name: Iron Helmet Forger Rank 4 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Iron Helmet: + material: IRON_HELMET + amount: 1 + display_name: Iron Helmet Rank 3 + lore: Iron Helmet Rank 3 + outputs: + material: IRON_HELMET + amount: 1 + display_name: Iron Helmet Rank 4 + lore: Iron Helmet Rank 4 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 4 + Unbreaking: + type: DURABILITY + level: 3 + IRON_LEGGINGS_RANK_0 + name: Iron Leggings Forger Rank 0 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Leather Leggings: + material: LEATHER_LEGGINGS + amount: 2 + display_name: Leather Leggings Rank 4 + lore: Leather Leggings Rank 4 + outputs: + material: IRON_LEGGINGS + amount: 1 + display_name: Iron Leggings Rank 0 + lore: Iron Leggings Rank 0 + IRON_LEGGINGS_RANK_1 + name: Iron Leggings Forger Rank 1 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Iron Leggings: + material: IRON_LEGGINGS + amount: 1 + display_name: Iron Leggings Rank 0 + lore: Iron Leggings Rank 0 + outputs: + material: IRON_LEGGINGS + amount: 1 + display_name: Iron Leggings Rank 1 + lore: Iron Leggings Rank 1 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 1 + IRON_LEGGINGS_RANK_2 + name: Iron Leggings Forger Rank 2 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Iron Leggings: + material: IRON_LEGGINGS + amount: 1 + display_name: Iron Leggings Rank 1 + lore: Iron Leggings Rank 1 + outputs: + material: IRON_LEGGINGS + amount: 1 + display_name: Iron Leggings Rank 2 + lore: Iron Leggings Rank 2 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 2 + Unbreaking: + type: DURABILITY + level: 1 + IRON_LEGGINGS_RANK_3 + name: Iron Leggings Forger Rank 3 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Iron Leggings: + material: IRON_LEGGINGS + amount: 1 + display_name: Iron Leggings Rank 2 + lore: Iron Leggings Rank 2 + outputs: + material: IRON_LEGGINGS + amount: 1 + display_name: Iron Leggings Rank 3 + lore: Iron Leggings Rank 3 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 3 + Unbreaking: + type: DURABILITY + level: 2 + IRON_LEGGINGS_RANK_4 + name: Iron Leggings Forger Rank 4 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Iron Leggings: + material: IRON_LEGGINGS + amount: 1 + display_name: Iron Leggings Rank 3 + lore: Iron Leggings Rank 3 + outputs: + material: IRON_LEGGINGS + amount: 1 + display_name: Iron Leggings Rank 4 + lore: Iron Leggings Rank 4 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 4 + Unbreaking: + type: DURABILITY + level: 3 + DIAMOND_BOOTS_RANK_0 + name: Diamond Boots Forger Rank 0 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Iron Boots: + material: IRON_BOOTS + amount: 2 + display_name: Iron Boots Rank 4 + lore: Iron Boots Rank 4 + outputs: + material: DIAMOND_BOOTS + amount: 1 + display_name: Diamond Boots Rank 0 + lore: Diamond Boots Rank 0 + DIAMOND_BOOTS_RANK_1 + name: Diamond Boots Forger Rank 1 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Diamond Boots: + material: DIAMOND_BOOTS + amount: 1 + display_name: Diamond Boots Rank 0 + lore: Diamond Boots Rank 0 + outputs: + material: DIAMOND_BOOTS + amount: 1 + display_name: Diamond Boots Rank 1 + lore: Diamond Boots Rank 1 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 1 + DIAMOND_BOOTS_RANK_2 + name: Diamond Boots Forger Rank 2 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Diamond Boots: + material: DIAMOND_BOOTS + amount: 1 + display_name: Diamond Boots Rank 1 + lore: Diamond Boots Rank 1 + outputs: + material: DIAMOND_BOOTS + amount: 1 + display_name: Diamond Boots Rank 2 + lore: Diamond Boots Rank 2 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 2 + Unbreaking: + type: DURABILITY + level: 1 + DIAMOND_BOOTS_RANK_3 + name: Diamond Boots Forger Rank 3 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Diamond Boots: + material: DIAMOND_BOOTS + amount: 1 + display_name: Diamond Boots Rank 2 + lore: Diamond Boots Rank 2 + outputs: + material: DIAMOND_BOOTS + amount: 1 + display_name: Diamond Boots Rank 3 + lore: Diamond Boots Rank 3 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 3 + Unbreaking: + type: DURABILITY + level: 2 + DIAMOND_BOOTS_RANK_4 + name: Diamond Boots Forger Rank 4 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Diamond Boots: + material: DIAMOND_BOOTS + amount: 1 + display_name: Diamond Boots Rank 3 + lore: Diamond Boots Rank 3 + outputs: + material: DIAMOND_BOOTS + amount: 1 + display_name: Diamond Boots Rank 4 + lore: Diamond Boots Rank 4 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 4 + Unbreaking: + type: DURABILITY + level: 3 + DIAMOND_CHESTPLATE_RANK_0 + name: Diamond Chestplate Forger Rank 0 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Iron Chestplate: + material: IRON_CHESTPLATE + amount: 2 + display_name: Iron Chestplate Rank 4 + lore: Iron Chestplate Rank 4 + outputs: + material: DIAMOND_CHESTPLATE + amount: 1 + display_name: Diamond Chestplate Rank 0 + lore: Diamond Chestplate Rank 0 + DIAMOND_CHESTPLATE_RANK_1 + name: Diamond Chestplate Forger Rank 1 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Diamond Chestplate: + material: DIAMOND_CHESTPLATE + amount: 1 + display_name: Diamond Chestplate Rank 0 + lore: Diamond Chestplate Rank 0 + outputs: + material: DIAMOND_CHESTPLATE + amount: 1 + display_name: Diamond Chestplate Rank 1 + lore: Diamond Chestplate Rank 1 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 1 + DIAMOND_CHESTPLATE_RANK_2 + name: Diamond Chestplate Forger Rank 2 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Diamond Chestplate: + material: DIAMOND_CHESTPLATE + amount: 1 + display_name: Diamond Chestplate Rank 1 + lore: Diamond Chestplate Rank 1 + outputs: + material: DIAMOND_CHESTPLATE + amount: 1 + display_name: Diamond Chestplate Rank 2 + lore: Diamond Chestplate Rank 2 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 2 + Unbreaking: + type: DURABILITY + level: 1 + DIAMOND_CHESTPLATE_RANK_3 + name: Diamond Chestplate Forger Rank 3 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Diamond Chestplate: + material: DIAMOND_CHESTPLATE + amount: 1 + display_name: Diamond Chestplate Rank 2 + lore: Diamond Chestplate Rank 2 + outputs: + material: DIAMOND_CHESTPLATE + amount: 1 + display_name: Diamond Chestplate Rank 3 + lore: Diamond Chestplate Rank 3 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 3 + Unbreaking: + type: DURABILITY + level: 2 + DIAMOND_CHESTPLATE_RANK_4 + name: Diamond Chestplate Forger Rank 4 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Diamond Chestplate: + material: DIAMOND_CHESTPLATE + amount: 1 + display_name: Diamond Chestplate Rank 3 + lore: Diamond Chestplate Rank 3 + outputs: + material: DIAMOND_CHESTPLATE + amount: 1 + display_name: Diamond Chestplate Rank 4 + lore: Diamond Chestplate Rank 4 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 4 + Unbreaking: + type: DURABILITY + level: 3 + DIAMOND_HELMET_RANK_0 + name: Diamond Helmet Forger Rank 0 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Iron Helmet: + material: IRON_HELMET + amount: 2 + display_name: Iron Helmet Rank 4 + lore: Iron Helmet Rank 4 + outputs: + material: DIAMOND_HELMET + amount: 1 + display_name: Diamond Helmet Rank 0 + lore: Diamond Helmet Rank 0 + DIAMOND_HELMET_RANK_1 + name: Diamond Helmet Forger Rank 1 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Diamond Helmet: + material: DIAMOND_HELMET + amount: 1 + display_name: Diamond Helmet Rank 0 + lore: Diamond Helmet Rank 0 + outputs: + material: DIAMOND_HELMET + amount: 1 + display_name: Diamond Helmet Rank 1 + lore: Diamond Helmet Rank 1 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 1 + DIAMOND_HELMET_RANK_2 + name: Diamond Helmet Forger Rank 2 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Diamond Helmet: + material: DIAMOND_HELMET + amount: 1 + display_name: Diamond Helmet Rank 1 + lore: Diamond Helmet Rank 1 + outputs: + material: DIAMOND_HELMET + amount: 1 + display_name: Diamond Helmet Rank 2 + lore: Diamond Helmet Rank 2 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 2 + Unbreaking: + type: DURABILITY + level: 1 + DIAMOND_HELMET_RANK_3 + name: Diamond Helmet Forger Rank 3 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Diamond Helmet: + material: DIAMOND_HELMET + amount: 1 + display_name: Diamond Helmet Rank 2 + lore: Diamond Helmet Rank 2 + outputs: + material: DIAMOND_HELMET + amount: 1 + display_name: Diamond Helmet Rank 3 + lore: Diamond Helmet Rank 3 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 3 + Unbreaking: + type: DURABILITY + level: 2 + DIAMOND_HELMET_RANK_4 + name: Diamond Helmet Forger Rank 4 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Diamond Helmet: + material: DIAMOND_HELMET + amount: 1 + display_name: Diamond Helmet Rank 3 + lore: Diamond Helmet Rank 3 + outputs: + material: DIAMOND_HELMET + amount: 1 + display_name: Diamond Helmet Rank 4 + lore: Diamond Helmet Rank 4 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 4 + Unbreaking: + type: DURABILITY + level: 3 + DIAMOND_LEGGINGS_RANK_0 + name: Diamond Leggings Forger Rank 0 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Iron Leggings: + material: IRON_LEGGINGS + amount: 2 + display_name: Iron Leggings Rank 4 + lore: Iron Leggings Rank 4 + outputs: + material: DIAMOND_LEGGINGS + amount: 1 + display_name: Diamond Leggings Rank 0 + lore: Diamond Leggings Rank 0 + DIAMOND_LEGGINGS_RANK_1 + name: Diamond Leggings Forger Rank 1 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Diamond Leggings: + material: DIAMOND_LEGGINGS + amount: 1 + display_name: Diamond Leggings Rank 0 + lore: Diamond Leggings Rank 0 + outputs: + material: DIAMOND_LEGGINGS + amount: 1 + display_name: Diamond Leggings Rank 1 + lore: Diamond Leggings Rank 1 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 1 + DIAMOND_LEGGINGS_RANK_2 + name: Diamond Leggings Forger Rank 2 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Diamond Leggings: + material: DIAMOND_LEGGINGS + amount: 1 + display_name: Diamond Leggings Rank 1 + lore: Diamond Leggings Rank 1 + outputs: + material: DIAMOND_LEGGINGS + amount: 1 + display_name: Diamond Leggings Rank 2 + lore: Diamond Leggings Rank 2 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 2 + Unbreaking: + type: DURABILITY + level: 1 + DIAMOND_LEGGINGS_RANK_3 + name: Diamond Leggings Forger Rank 3 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Diamond Leggings: + material: DIAMOND_LEGGINGS + amount: 1 + display_name: Diamond Leggings Rank 2 + lore: Diamond Leggings Rank 2 + outputs: + material: DIAMOND_LEGGINGS + amount: 1 + display_name: Diamond Leggings Rank 3 + lore: Diamond Leggings Rank 3 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 3 + Unbreaking: + type: DURABILITY + level: 2 + DIAMOND_LEGGINGS_RANK_4 + name: Diamond Leggings Forger Rank 4 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Diamond Leggings: + material: DIAMOND_LEGGINGS + amount: 1 + display_name: Diamond Leggings Rank 3 + lore: Diamond Leggings Rank 3 + outputs: + material: DIAMOND_LEGGINGS + amount: 1 + display_name: Diamond Leggings Rank 4 + lore: Diamond Leggings Rank 4 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 4 + Unbreaking: + type: DURABILITY + level: 3 name: Nether Factory fuel: Charcoal: From 2038023d3ee206a2a812747c718f38d1f8dd82b5 Mon Sep 17 00:00:00 2001 From: ribagi Date: Fri, 31 Oct 2014 23:26:41 -0700 Subject: [PATCH 39/52] Armor Trees --- config.yml | 341 ++++++++++++++++++++++++++--------------------------- 1 file changed, 170 insertions(+), 171 deletions(-) diff --git a/config.yml b/config.yml index 4fd66af2..004d097c 100644 --- a/config.yml +++ b/config.yml @@ -305,6 +305,116 @@ production_factories: amount: 8 lore: Faceting machine Aspect_Factory: + name: Nether Factory + fuel: + Charcoal: + material: COAL + durability: 1 + costs: + construction: + Aspect of Nether: + material: MAGMA_CREAM + amount: 8 + display_name: Aspect of Nether + lore: A concentrated essence of the Nether + Aspect of Terra: + material: DIAMOND + amount: 8 + display_name: Aspect of Terra + lore: A concentrated essence of Terra + Aspect of END: + material: FLINT + amount: 8 + display_name: Aspect of End + lore: A concentrated essence of the End + repair: + Diamond block: + material: DIAMOND_BLOCK + amount: 1 + repair_multiple: 1 + fuel_time: 10 + repair_time: 12 + scaling_radius: 5000 + cost_scaling_radius: 5000 + use_fuel_on_teleport: false +production_recipes: + Forge_Aspect_of_Terra: + name: Forge Aspect of Terra + production_time: 64 + inputs: + Emerald Block: + material: EMERALD_BLOCK + amount: 24 + Diamond Block: + material: DIAMOND_BLOCK + amount: 24 + Gold Ore: + material: GOLD_ORE + amount: 8 + Slime Ball: + material: SLIME_BALL + amount: 8 + Anvil: + material: ANVIL + amount: 8 + outputs: + Aspect of Terra: + material: DIAMOND + amount: 1 + display_name: Aspect of Terra + lore: A concentrated essence of Terra + Forge_Aspect_of_End: + name: Forge Aspect of End + production_time: 64 + inputs: + Ender Pearl: + material: ENDER_PEARL + amount: 256 + Ender Chest: + material: ENDER_CHEST + amount: 256 + Endstone: + material: ENDER_STONE + amount: 1024 + outputs: + Aspect of End: + material: FLINT + amount: 1 + display_name: Aspect of End + lore: A concentrated essence of the End + Forge_Aspect_of_Nether: + name: Forge Aspect of Nether + production_time: 64 + inputs: + Ghast Tears: + material: GHAST_TEAR + amount: 16 + Quartz Ore: + material: QUARTZ_ORE + amount: 512 + Glowstone: + material: GLOWSTONE + amount: 512 + outputs: + Aspect of Nether: + material: MAGMA_CREAM + amount: 1 + display_name: Aspect of Nether + lore: A concentrated essence of the Nether + Craft_Eye_of_Ender: + name: Craft Eye of Ender + production_time: 1 + inputs: + Blaze Powder: + material: BLAZE_POWDER + amount: 265 + Ender Pearl: + material: ENDER_PEARL + amount: 265 + outputs: + Eye of Ender: + material: EYE_OF_ENDER + amount: 256 name: Arcane Elementizer fuel: Charcoal: @@ -336,8 +446,7 @@ production_factories: Netherquartz: material: QUARTZ amount: 2 -nether_factory: - LEATHER_BOOTS_RANK_0 +nether_factory: LEATHER_BOOTS_RANK_0: name: Leather Boots Forger Rank 0 production_time: 360 inputs: @@ -349,7 +458,7 @@ nether_factory: amount: 1 display_name: Leather Boots Rank 0 lore: Leather Boots Rank 0 - LEATHER_BOOTS_RANK_1 + LEATHER_BOOTS_RANK_1: name: Leather Boots Forger Rank 1 production_time: 360 inputs: @@ -370,7 +479,7 @@ nether_factory: Protection: type: PROTECTION_ENVIRONMENTAL level: 1 - LEATHER_BOOTS_RANK_2 + LEATHER_BOOTS_RANK_2: name: Leather Boots Forger Rank 2 production_time: 360 inputs: @@ -394,7 +503,7 @@ nether_factory: Unbreaking: type: DURABILITY level: 1 - LEATHER_BOOTS_RANK_3 + LEATHER_BOOTS_RANK_3: name: Leather Boots Forger Rank 3 production_time: 360 inputs: @@ -418,7 +527,7 @@ nether_factory: Unbreaking: type: DURABILITY level: 2 - LEATHER_BOOTS_RANK_4 + LEATHER_BOOTS_RANK_4: name: Leather Boots Forger Rank 4 production_time: 360 inputs: @@ -442,7 +551,7 @@ nether_factory: Unbreaking: type: DURABILITY level: 3 - LEATHER_CHESTPLATE_RANK_0 + LEATHER_CHESTPLATE_RANK_0: name: Leather Chestplate Forger Rank 0 production_time: 360 inputs: @@ -454,7 +563,7 @@ nether_factory: amount: 1 display_name: Leather Chestplate Rank 0 lore: Leather Chestplate Rank 0 - LEATHER_CHESTPLATE_RANK_1 + LEATHER_CHESTPLATE_RANK_1: name: Leather Chestplate Forger Rank 1 production_time: 360 inputs: @@ -475,7 +584,7 @@ nether_factory: Protection: type: PROTECTION_ENVIRONMENTAL level: 1 - LEATHER_CHESTPLATE_RANK_2 + LEATHER_CHESTPLATE_RANK_2: name: Leather Chestplate Forger Rank 2 production_time: 360 inputs: @@ -499,7 +608,7 @@ nether_factory: Unbreaking: type: DURABILITY level: 1 - LEATHER_CHESTPLATE_RANK_3 + LEATHER_CHESTPLATE_RANK_3: name: Leather Chestplate Forger Rank 3 production_time: 360 inputs: @@ -523,7 +632,7 @@ nether_factory: Unbreaking: type: DURABILITY level: 2 - LEATHER_CHESTPLATE_RANK_4 + LEATHER_CHESTPLATE_RANK_4: name: Leather Chestplate Forger Rank 4 production_time: 360 inputs: @@ -547,7 +656,7 @@ nether_factory: Unbreaking: type: DURABILITY level: 3 - LEATHER_HELMET_RANK_0 + LEATHER_HELMET_RANK_0: name: Leather Helmet Forger Rank 0 production_time: 360 inputs: @@ -559,7 +668,7 @@ nether_factory: amount: 1 display_name: Leather Helmet Rank 0 lore: Leather Helmet Rank 0 - LEATHER_HELMET_RANK_1 + LEATHER_HELMET_RANK_1: name: Leather Helmet Forger Rank 1 production_time: 360 inputs: @@ -580,7 +689,7 @@ nether_factory: Protection: type: PROTECTION_ENVIRONMENTAL level: 1 - LEATHER_HELMET_RANK_2 + LEATHER_HELMET_RANK_2: name: Leather Helmet Forger Rank 2 production_time: 360 inputs: @@ -604,7 +713,7 @@ nether_factory: Unbreaking: type: DURABILITY level: 1 - LEATHER_HELMET_RANK_3 + LEATHER_HELMET_RANK_3: name: Leather Helmet Forger Rank 3 production_time: 360 inputs: @@ -628,7 +737,7 @@ nether_factory: Unbreaking: type: DURABILITY level: 2 - LEATHER_HELMET_RANK_4 + LEATHER_HELMET_RANK_4: name: Leather Helmet Forger Rank 4 production_time: 360 inputs: @@ -652,7 +761,7 @@ nether_factory: Unbreaking: type: DURABILITY level: 3 - LEATHER_LEGGINGS_RANK_0 + LEATHER_LEGGINGS_RANK_0: name: Leather Leggings Forger Rank 0 production_time: 360 inputs: @@ -664,7 +773,7 @@ nether_factory: amount: 1 display_name: Leather Leggings Rank 0 lore: Leather Leggings Rank 0 - LEATHER_LEGGINGS_RANK_1 + LEATHER_LEGGINGS_RANK_1: name: Leather Leggings Forger Rank 1 production_time: 360 inputs: @@ -685,7 +794,7 @@ nether_factory: Protection: type: PROTECTION_ENVIRONMENTAL level: 1 - LEATHER_LEGGINGS_RANK_2 + LEATHER_LEGGINGS_RANK_2: name: Leather Leggings Forger Rank 2 production_time: 360 inputs: @@ -709,7 +818,7 @@ nether_factory: Unbreaking: type: DURABILITY level: 1 - LEATHER_LEGGINGS_RANK_3 + LEATHER_LEGGINGS_RANK_3: name: Leather Leggings Forger Rank 3 production_time: 360 inputs: @@ -733,7 +842,7 @@ nether_factory: Unbreaking: type: DURABILITY level: 2 - LEATHER_LEGGINGS_RANK_4 + LEATHER_LEGGINGS_RANK_4: name: Leather Leggings Forger Rank 4 production_time: 360 inputs: @@ -757,7 +866,7 @@ nether_factory: Unbreaking: type: DURABILITY level: 3 - IRON_BOOTS_RANK_0 + IRON_BOOTS_RANK_0: name: Iron Boots Forger Rank 0 production_time: 360 inputs: @@ -774,7 +883,7 @@ nether_factory: amount: 1 display_name: Iron Boots Rank 0 lore: Iron Boots Rank 0 - IRON_BOOTS_RANK_1 + IRON_BOOTS_RANK_1: name: Iron Boots Forger Rank 1 production_time: 360 inputs: @@ -795,7 +904,7 @@ nether_factory: Protection: type: PROTECTION_ENVIRONMENTAL level: 1 - IRON_BOOTS_RANK_2 + IRON_BOOTS_RANK_2: name: Iron Boots Forger Rank 2 production_time: 360 inputs: @@ -819,7 +928,7 @@ nether_factory: Unbreaking: type: DURABILITY level: 1 - IRON_BOOTS_RANK_3 + IRON_BOOTS_RANK_3: name: Iron Boots Forger Rank 3 production_time: 360 inputs: @@ -843,7 +952,7 @@ nether_factory: Unbreaking: type: DURABILITY level: 2 - IRON_BOOTS_RANK_4 + IRON_BOOTS_RANK_4: name: Iron Boots Forger Rank 4 production_time: 360 inputs: @@ -867,7 +976,7 @@ nether_factory: Unbreaking: type: DURABILITY level: 3 - IRON_CHESTPLATE_RANK_0 + IRON_CHESTPLATE_RANK_0: name: Iron Chestplate Forger Rank 0 production_time: 360 inputs: @@ -884,7 +993,7 @@ nether_factory: amount: 1 display_name: Iron Chestplate Rank 0 lore: Iron Chestplate Rank 0 - IRON_CHESTPLATE_RANK_1 + IRON_CHESTPLATE_RANK_1: name: Iron Chestplate Forger Rank 1 production_time: 360 inputs: @@ -905,7 +1014,7 @@ nether_factory: Protection: type: PROTECTION_ENVIRONMENTAL level: 1 - IRON_CHESTPLATE_RANK_2 + IRON_CHESTPLATE_RANK_2: name: Iron Chestplate Forger Rank 2 production_time: 360 inputs: @@ -929,7 +1038,7 @@ nether_factory: Unbreaking: type: DURABILITY level: 1 - IRON_CHESTPLATE_RANK_3 + IRON_CHESTPLATE_RANK_3: name: Iron Chestplate Forger Rank 3 production_time: 360 inputs: @@ -953,7 +1062,7 @@ nether_factory: Unbreaking: type: DURABILITY level: 2 - IRON_CHESTPLATE_RANK_4 + IRON_CHESTPLATE_RANK_4: name: Iron Chestplate Forger Rank 4 production_time: 360 inputs: @@ -977,7 +1086,7 @@ nether_factory: Unbreaking: type: DURABILITY level: 3 - IRON_HELMET_RANK_0 + IRON_HELMET_RANK_0: name: Iron Helmet Forger Rank 0 production_time: 360 inputs: @@ -994,7 +1103,7 @@ nether_factory: amount: 1 display_name: Iron Helmet Rank 0 lore: Iron Helmet Rank 0 - IRON_HELMET_RANK_1 + IRON_HELMET_RANK_1: name: Iron Helmet Forger Rank 1 production_time: 360 inputs: @@ -1015,7 +1124,7 @@ nether_factory: Protection: type: PROTECTION_ENVIRONMENTAL level: 1 - IRON_HELMET_RANK_2 + IRON_HELMET_RANK_2: name: Iron Helmet Forger Rank 2 production_time: 360 inputs: @@ -1039,7 +1148,7 @@ nether_factory: Unbreaking: type: DURABILITY level: 1 - IRON_HELMET_RANK_3 + IRON_HELMET_RANK_3: name: Iron Helmet Forger Rank 3 production_time: 360 inputs: @@ -1063,7 +1172,7 @@ nether_factory: Unbreaking: type: DURABILITY level: 2 - IRON_HELMET_RANK_4 + IRON_HELMET_RANK_4: name: Iron Helmet Forger Rank 4 production_time: 360 inputs: @@ -1087,7 +1196,7 @@ nether_factory: Unbreaking: type: DURABILITY level: 3 - IRON_LEGGINGS_RANK_0 + IRON_LEGGINGS_RANK_0: name: Iron Leggings Forger Rank 0 production_time: 360 inputs: @@ -1104,7 +1213,7 @@ nether_factory: amount: 1 display_name: Iron Leggings Rank 0 lore: Iron Leggings Rank 0 - IRON_LEGGINGS_RANK_1 + IRON_LEGGINGS_RANK_1: name: Iron Leggings Forger Rank 1 production_time: 360 inputs: @@ -1125,7 +1234,7 @@ nether_factory: Protection: type: PROTECTION_ENVIRONMENTAL level: 1 - IRON_LEGGINGS_RANK_2 + IRON_LEGGINGS_RANK_2: name: Iron Leggings Forger Rank 2 production_time: 360 inputs: @@ -1149,7 +1258,7 @@ nether_factory: Unbreaking: type: DURABILITY level: 1 - IRON_LEGGINGS_RANK_3 + IRON_LEGGINGS_RANK_3: name: Iron Leggings Forger Rank 3 production_time: 360 inputs: @@ -1173,7 +1282,7 @@ nether_factory: Unbreaking: type: DURABILITY level: 2 - IRON_LEGGINGS_RANK_4 + IRON_LEGGINGS_RANK_4: name: Iron Leggings Forger Rank 4 production_time: 360 inputs: @@ -1197,7 +1306,7 @@ nether_factory: Unbreaking: type: DURABILITY level: 3 - DIAMOND_BOOTS_RANK_0 + DIAMOND_BOOTS_RANK_0: name: Diamond Boots Forger Rank 0 production_time: 360 inputs: @@ -1214,7 +1323,7 @@ nether_factory: amount: 1 display_name: Diamond Boots Rank 0 lore: Diamond Boots Rank 0 - DIAMOND_BOOTS_RANK_1 + DIAMOND_BOOTS_RANK_1: name: Diamond Boots Forger Rank 1 production_time: 360 inputs: @@ -1235,7 +1344,7 @@ nether_factory: Protection: type: PROTECTION_ENVIRONMENTAL level: 1 - DIAMOND_BOOTS_RANK_2 + DIAMOND_BOOTS_RANK_2: name: Diamond Boots Forger Rank 2 production_time: 360 inputs: @@ -1259,7 +1368,7 @@ nether_factory: Unbreaking: type: DURABILITY level: 1 - DIAMOND_BOOTS_RANK_3 + DIAMOND_BOOTS_RANK_3: name: Diamond Boots Forger Rank 3 production_time: 360 inputs: @@ -1283,7 +1392,7 @@ nether_factory: Unbreaking: type: DURABILITY level: 2 - DIAMOND_BOOTS_RANK_4 + DIAMOND_BOOTS_RANK_4: name: Diamond Boots Forger Rank 4 production_time: 360 inputs: @@ -1307,7 +1416,7 @@ nether_factory: Unbreaking: type: DURABILITY level: 3 - DIAMOND_CHESTPLATE_RANK_0 + DIAMOND_CHESTPLATE_RANK_0: name: Diamond Chestplate Forger Rank 0 production_time: 360 inputs: @@ -1324,7 +1433,7 @@ nether_factory: amount: 1 display_name: Diamond Chestplate Rank 0 lore: Diamond Chestplate Rank 0 - DIAMOND_CHESTPLATE_RANK_1 + DIAMOND_CHESTPLATE_RANK_1: name: Diamond Chestplate Forger Rank 1 production_time: 360 inputs: @@ -1345,7 +1454,7 @@ nether_factory: Protection: type: PROTECTION_ENVIRONMENTAL level: 1 - DIAMOND_CHESTPLATE_RANK_2 + DIAMOND_CHESTPLATE_RANK_2: name: Diamond Chestplate Forger Rank 2 production_time: 360 inputs: @@ -1369,7 +1478,7 @@ nether_factory: Unbreaking: type: DURABILITY level: 1 - DIAMOND_CHESTPLATE_RANK_3 + DIAMOND_CHESTPLATE_RANK_3: name: Diamond Chestplate Forger Rank 3 production_time: 360 inputs: @@ -1393,7 +1502,7 @@ nether_factory: Unbreaking: type: DURABILITY level: 2 - DIAMOND_CHESTPLATE_RANK_4 + DIAMOND_CHESTPLATE_RANK_4: name: Diamond Chestplate Forger Rank 4 production_time: 360 inputs: @@ -1417,7 +1526,7 @@ nether_factory: Unbreaking: type: DURABILITY level: 3 - DIAMOND_HELMET_RANK_0 + DIAMOND_HELMET_RANK_0: name: Diamond Helmet Forger Rank 0 production_time: 360 inputs: @@ -1434,7 +1543,7 @@ nether_factory: amount: 1 display_name: Diamond Helmet Rank 0 lore: Diamond Helmet Rank 0 - DIAMOND_HELMET_RANK_1 + DIAMOND_HELMET_RANK_1: name: Diamond Helmet Forger Rank 1 production_time: 360 inputs: @@ -1455,7 +1564,7 @@ nether_factory: Protection: type: PROTECTION_ENVIRONMENTAL level: 1 - DIAMOND_HELMET_RANK_2 + DIAMOND_HELMET_RANK_2: name: Diamond Helmet Forger Rank 2 production_time: 360 inputs: @@ -1479,7 +1588,7 @@ nether_factory: Unbreaking: type: DURABILITY level: 1 - DIAMOND_HELMET_RANK_3 + DIAMOND_HELMET_RANK_3: name: Diamond Helmet Forger Rank 3 production_time: 360 inputs: @@ -1503,7 +1612,7 @@ nether_factory: Unbreaking: type: DURABILITY level: 2 - DIAMOND_HELMET_RANK_4 + DIAMOND_HELMET_RANK_4: name: Diamond Helmet Forger Rank 4 production_time: 360 inputs: @@ -1527,7 +1636,7 @@ nether_factory: Unbreaking: type: DURABILITY level: 3 - DIAMOND_LEGGINGS_RANK_0 + DIAMOND_LEGGINGS_RANK_0: name: Diamond Leggings Forger Rank 0 production_time: 360 inputs: @@ -1544,7 +1653,7 @@ nether_factory: amount: 1 display_name: Diamond Leggings Rank 0 lore: Diamond Leggings Rank 0 - DIAMOND_LEGGINGS_RANK_1 + DIAMOND_LEGGINGS_RANK_1: name: Diamond Leggings Forger Rank 1 production_time: 360 inputs: @@ -1565,7 +1674,7 @@ nether_factory: Protection: type: PROTECTION_ENVIRONMENTAL level: 1 - DIAMOND_LEGGINGS_RANK_2 + DIAMOND_LEGGINGS_RANK_2: name: Diamond Leggings Forger Rank 2 production_time: 360 inputs: @@ -1589,7 +1698,7 @@ nether_factory: Unbreaking: type: DURABILITY level: 1 - DIAMOND_LEGGINGS_RANK_3 + DIAMOND_LEGGINGS_RANK_3: name: Diamond Leggings Forger Rank 3 production_time: 360 inputs: @@ -1613,7 +1722,7 @@ nether_factory: Unbreaking: type: DURABILITY level: 2 - DIAMOND_LEGGINGS_RANK_4 + DIAMOND_LEGGINGS_RANK_4: name: Diamond Leggings Forger Rank 4 production_time: 360 inputs: @@ -1637,113 +1746,3 @@ nether_factory: Unbreaking: type: DURABILITY level: 3 - name: Nether Factory - fuel: - Charcoal: - material: COAL - durability: 1 - costs: - construction: - Aspect of Nether: - material: MAGMA_CREAM - amount: 8 - display_name: Aspect of Nether - lore: A concentrated essence of the Nether - Aspect of Terra: - material: DIAMOND - amount: 8 - display_name: Aspect of Terra - lore: A concentrated essence of Terra - Aspect of END: - material: FLINT - amount: 8 - display_name: Aspect of End - lore: A concentrated essence of the End - repair: - Diamond block: - material: DIAMOND_BLOCK - amount: 1 - repair_multiple: 1 - fuel_time: 10 - repair_time: 12 - scaling_radius: 5000 - cost_scaling_radius: 5000 - use_fuel_on_teleport: false -production_recipes: - Forge_Aspect_of_Terra: - name: Forge Aspect of Terra - production_time: 64 - inputs: - Emerald Block: - material: EMERALD_BLOCK - amount: 24 - Diamond Block: - material: DIAMOND_BLOCK - amount: 24 - Gold Ore: - material: GOLD_ORE - amount: 8 - Slime Ball: - material: SLIME_BALL - amount: 8 - Anvil: - material: ANVIL - amount: 8 - outputs: - Aspect of Terra: - material: DIAMOND - amount: 1 - display_name: Aspect of Terra - lore: A concentrated essence of Terra - Forge_Aspect_of_End: - name: Forge Aspect of End - production_time: 64 - inputs: - Ender Pearl: - material: ENDER_PEARL - amount: 256 - Ender Chest: - material: ENDER_CHEST - amount: 256 - Endstone: - material: ENDER_STONE - amount: 1024 - outputs: - Aspect of End: - material: FLINT - amount: 1 - display_name: Aspect of End - lore: A concentrated essence of the End - Forge_Aspect_of_Nether: - name: Forge Aspect of Nether - production_time: 64 - inputs: - Ghast Tears: - material: GHAST_TEAR - amount: 16 - Quartz Ore: - material: QUARTZ_ORE - amount: 512 - Glowstone: - material: GLOWSTONE - amount: 512 - outputs: - Aspect of Nether: - material: MAGMA_CREAM - amount: 1 - display_name: Aspect of Nether - lore: A concentrated essence of the Nether - Craft_Eye_of_Ender: - name: Craft Eye of Ender - production_time: 1 - inputs: - Blaze Powder: - material: BLAZE_POWDER - amount: 265 - Ender Pearl: - material: ENDER_PEARL - amount: 265 - outputs: - Eye of Ender: - material: EYE_OF_ENDER - amount: 256 From 925712a11adc99f37589c3586bd488d6ff2aa7f3 Mon Sep 17 00:00:00 2001 From: ribagi Date: Fri, 31 Oct 2014 23:40:12 -0700 Subject: [PATCH 40/52] Update config.yml --- config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config.yml b/config.yml index 004d097c..43c7782a 100644 --- a/config.yml +++ b/config.yml @@ -446,7 +446,7 @@ production_recipes: Netherquartz: material: QUARTZ amount: 2 -nether_factory: LEATHER_BOOTS_RANK_0: +LEATHER_BOOTS_RANK_0: name: Leather Boots Forger Rank 0 production_time: 360 inputs: From 80762cfbaa9096d5c62625e7ce22671b22068191 Mon Sep 17 00:00:00 2001 From: ribagi Date: Sat, 1 Nov 2014 13:48:40 -0700 Subject: [PATCH 41/52] Weapon Merge --- config.yml | 434 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 434 insertions(+) diff --git a/config.yml b/config.yml index 43c7782a..b3a0c416 100644 --- a/config.yml +++ b/config.yml @@ -304,6 +304,78 @@ production_factories: material: WATCH amount: 8 lore: Faceting machine + Stone_Grinder: + fuel: + Charcoal: + material: COAL + durability: 1 + inputs: + Stone knife: + material: FLINT + lore: Stone knife + amount: 12 + recipes: + - STONE_SWORD_RANK_0 + - STONE_SWORD_RANK_1 + - STONE_SWORD_RANK_2 + - STONE_SWORD_RANK_3 + - STONE_SWORD_RANK_4 + - STONE_HAMMER + repair_multiple: 26 + repair_inputs: + Stone knife: + material: FLINT + amount: 2 + lore: Stone knife + Iron_Forger: + fuel: + Charcoal: + material: COAL + durability: 1 + inputs: + Blast furnace: + material: CLAY_BRICK + lore: Blast furnace + amount: 16 + recipes: + - IRON_SWORD_RANK_0 + - IRON_SWORD_RANK_1 + - IRON_SWORD_RANK_2 + - IRON_SWORD_RANK_3 + - IRON_SWORD_RANK_4 + - IRON_HAMMER + repair_multiple: 26 + repair_inputs: + Blast furnace: + material: CLAY_BRICK + amount: 4 + lore: Blast furnace + Diamond_Polisher: + fuel: + Charcoal: + material: COAL + durability: 1 + inputs: + Faceting machine: + material: WATCH + lore: Faceting machine + amount: 32 + Iron hammer: + material: IRONE_HOE + lore: Iron hammer + amount: 6 + recipes: + - DIAMOND_SWORD_RANK_0 + - DIAMOND_SWORD_RANK_1 + - DIAMOND_SWORD_RANK_2 + - DIAMOND_SWORD_RANK_3 + - DIAMOND_SWORD_RANK_4 + repair_multiple: 26 + repair_inputs: + Faceting machine: + material: WATCH + amount: 8 + lore: Faceting machine Aspect_Factory: name: Nether Factory fuel: @@ -1746,3 +1818,365 @@ LEATHER_BOOTS_RANK_0: Unbreaking: type: DURABILITY level: 3 + STONE_SWORD_RANK_0: + name: Stone Sword Forger Rank 0 + production_time: 360 + inputs: + Stone: + material: STONE + amount: 32 + outputs: + material: STONE_SWORD + amount: 1 + display_name: Stone Sword Rank 0 + lore: Stone Sword Rank 0 + STONE_SWORD_RANK_1: + name: Stone Sword Forger Rank 1 + production_time: 360 + inputs: + Stone: + material: STONE + amount: 32 + Stone Sword: + material: STONE_SWORD + amount: 1 + display_name: Stone Sword Rank 0 + lore: Stone Sword Rank 0 + outputs: + material: STONE_SWORD + amount: 1 + display_name: Stone Sword Rank 1 + lore: Stone Sword Rank 1 + enchantments: + Sharpness: + type: DAMAGE_ALL + level: 1 + STONE_SWORD_RANK_2: + name: Stone Sword Forger Rank 2 + production_time: 360 + inputs: + Stone: + material: STONE + amount: 32 + Stone Sword: + material: STONE_SWORD + amount: 1 + display_name: Stone Sword Rank 1 + lore: Stone Sword Rank 1 + outputs: + material: STONE_SWORD + amount: 1 + display_name: Stone Sword Rank 2 + lore: Stone Sword Rank 2 + enchantments: + Sharpness: + type: DAMAGE_ALL + level: 2 + STONE_SWORD_RANK_3: + name: Stone Sword Forger Rank 3 + production_time: 360 + inputs: + Stone: + material: STONE + amount: 32 + Stone Sword: + material: STONE_SWORD + amount: 1 + display_name: Stone Sword Rank 2 + lore: Stone Sword Rank 2 + outputs: + material: STONE_SWORD + amount: 1 + display_name: Stone Sword Rank 3 + lore: Stone Sword Rank 3 + enchantments: + Sharpness: + type: DAMAGE_ALL + level: 3 + STONE_SWORD_RANK_4: + name: Stone Sword Forger Rank 4 + production_time: 360 + inputs: + Stone: + material: STONE + amount: 32 + Stone Sword: + material: STONE_SWORD + amount: 1 + display_name: Stone Sword Rank 3 + lore: Stone Sword Rank 3 + outputs: + material: STONE_SWORD + amount: 1 + display_name: Stone Sword Rank 4 + lore: Stone Sword Rank 4 + enchantments: + Sharpness: + type: DAMAGE_ALL + level: 4 + STONE_SWORD_RANK_5: + name: Stone Sword Forger Rank 5 + production_time: 360 + inputs: + Stone: + material: STONE + amount: 32 + Stone Sword: + material: STONE_SWORD + amount: 1 + display_name: Stone Sword Rank 4 + lore: Stone Sword Rank 4 + outputs: + material: STONE_SWORD + amount: 1 + display_name: Stone Sword Rank 5 + lore: Stone Sword Rank 5 + enchantments: + Sharpness: + type: DAMAGE_ALL + level: 5 + IRON_SWORD_RANK_0: + name: Iron Sword Forger Rank 0 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Stone Sword: + material: STONE_SWORD + amount: 2 + display_name: Stone Sword Rank 4 + lore: Stone Sword Rank 4 + outputs: + material: IRON_SWORD + amount: 1 + display_name: Iron Sword Rank 0 + lore: Iron Sword Rank 0 + IRON_SWORD_RANK_1: + name: Iron Sword Forger Rank 1 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Iron Sword: + material: IRON_SWORD + amount: 1 + display_name: Iron Sword Rank 0 + lore: Iron Sword Rank 0 + outputs: + material: IRON_SWORD + amount: 1 + display_name: Iron Sword Rank 1 + lore: Iron Sword Rank 1 + enchantments: + Sharpness: + type: DAMAGE_ALL + level: 1 + IRON_SWORD_RANK_2: + name: Iron Sword Forger Rank 2 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Iron Sword: + material: IRON_SWORD + amount: 1 + display_name: Iron Sword Rank 1 + lore: Iron Sword Rank 1 + outputs: + material: IRON_SWORD + amount: 1 + display_name: Iron Sword Rank 2 + lore: Iron Sword Rank 2 + enchantments: + Sharpness: + type: DAMAGE_ALL + level: 2 + IRON_SWORD_RANK_3: + name: Iron Sword Forger Rank 3 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Iron Sword: + material: IRON_SWORD + amount: 1 + display_name: Iron Sword Rank 2 + lore: Iron Sword Rank 2 + outputs: + material: IRON_SWORD + amount: 1 + display_name: Iron Sword Rank 3 + lore: Iron Sword Rank 3 + enchantments: + Sharpness: + type: DAMAGE_ALL + level: 3 + IRON_SWORD_RANK_4: + name: Iron Sword Forger Rank 4 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Iron Sword: + material: IRON_SWORD + amount: 1 + display_name: Iron Sword Rank 3 + lore: Iron Sword Rank 3 + outputs: + material: IRON_SWORD + amount: 1 + display_name: Iron Sword Rank 4 + lore: Iron Sword Rank 4 + enchantments: + Sharpness: + type: DAMAGE_ALL + level: 4 + IRON_SWORD_RANK_5: + name: Iron Sword Forger Rank 5 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Iron Sword: + material: IRON_SWORD + amount: 1 + display_name: Iron Sword Rank 4 + lore: Iron Sword Rank 4 + outputs: + material: IRON_SWORD + amount: 1 + display_name: Iron Sword Rank 5 + lore: Iron Sword Rank 5 + enchantments: + Sharpness: + type: DAMAGE_ALL + level: 5 + DIAMOND_SWORD_RANK_0: + name: Diamond Sword Forger Rank 0 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Iron Sword: + material: IRON_SWORD + amount: 2 + display_name: Iron Sword Rank 4 + lore: Iron Sword Rank 4 + outputs: + material: DIAMOND_SWORD + amount: 1 + display_name: Diamond Sword Rank 0 + lore: Diamond Sword Rank 0 + DIAMOND_SWORD_RANK_1: + name: Diamond Sword Forger Rank 1 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Diamond Sword: + material: DIAMOND_SWORD + amount: 1 + display_name: Diamond Sword Rank 0 + lore: Diamond Sword Rank 0 + outputs: + material: DIAMOND_SWORD + amount: 1 + display_name: Diamond Sword Rank 1 + lore: Diamond Sword Rank 1 + enchantments: + Sharpness: + type: DAMAGE_ALL + level: 1 + DIAMOND_SWORD_RANK_2: + name: Diamond Sword Forger Rank 2 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Diamond Sword: + material: DIAMOND_SWORD + amount: 1 + display_name: Diamond Sword Rank 1 + lore: Diamond Sword Rank 1 + outputs: + material: DIAMOND_SWORD + amount: 1 + display_name: Diamond Sword Rank 2 + lore: Diamond Sword Rank 2 + enchantments: + Sharpness: + type: DAMAGE_ALL + level: 2 + DIAMOND_SWORD_RANK_3: + name: Diamond Sword Forger Rank 3 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Diamond Sword: + material: DIAMOND_SWORD + amount: 1 + display_name: Diamond Sword Rank 2 + lore: Diamond Sword Rank 2 + outputs: + material: DIAMOND_SWORD + amount: 1 + display_name: Diamond Sword Rank 3 + lore: Diamond Sword Rank 3 + enchantments: + Sharpness: + type: DAMAGE_ALL + level: 3 + DIAMOND_SWORD_RANK_4: + name: Diamond Sword Forger Rank 4 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Diamond Sword: + material: DIAMOND_SWORD + amount: 1 + display_name: Diamond Sword Rank 3 + lore: Diamond Sword Rank 3 + outputs: + material: DIAMOND_SWORD + amount: 1 + display_name: Diamond Sword Rank 4 + lore: Diamond Sword Rank 4 + enchantments: + Sharpness: + type: DAMAGE_ALL + level: 4 + DIAMOND_SWORD_RANK_5: + name: Diamond Sword Forger Rank 5 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Diamond Sword: + material: DIAMOND_SWORD + amount: 1 + display_name: Diamond Sword Rank 4 + lore: Diamond Sword Rank 4 + outputs: + material: DIAMOND_SWORD + amount: 1 + display_name: Diamond Sword Rank 5 + lore: Diamond Sword Rank 5 + enchantments: + Sharpness: + type: DAMAGE_ALL + level: 5 + From 3d854a9ed0498377606d85e5287b16f2abc39b60 Mon Sep 17 00:00:00 2001 From: ribagi Date: Sun, 2 Nov 2014 02:03:00 -0700 Subject: [PATCH 42/52] Update config.yml --- config.yml | 98 ++++++++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 85 insertions(+), 13 deletions(-) diff --git a/config.yml b/config.yml index b3a0c416..d20bf569 100644 --- a/config.yml +++ b/config.yml @@ -193,11 +193,69 @@ crafting: Double Stone Slab: material: DOUBLE_STEP production_factories: - Leather_Tanner: + Stone_Imbuer: fuel: Charcoal: material: COAL durability: 1 + inputs: + Cobblestone: + material: COBBLESTONE + amount: 512 + recipes: + - Smelt_Stone + - Burn_Lump_Charcoal + - Stone_Knife + - Blast_Furnace + repair_multiple: 205 + repair_inputs: + Cobblestone: + material: Cobblestone + amount: 6 + Iron_Imbuer: + fuel: + Charcoal: + material: COAL + durability: 1 + inputs: + Iron: + material: IRON + amount: 512 + recipes: + - Smelt_Iron + - Burn_Briquette + - Iron_hammer + - Faceting machine + repair_multiple: 205 + repair_inputs: + Iron: + material: IRON + amount: 6 + Diamond_Imbuer: + fuel: + Charcoal: + material: COAL + durability: 1 + inputs: + Diamond: + material: DIAMOND + amount: 512 + recipes: + - Smelt_Diamond_Ore + - Burn_White_Charcoal + - Diamond_Drill_Heads + - Faceting_Machine + repair_multiple: 205 + repair_inputs: + Diamond: + material: DIAMOND + amount: 6 + Leather_Tanner: + fuel: + Lump Charcoal: + material: COAL + durability: 1 + lore: Lump Charcoal inputs: Stone knife: material: FLINT @@ -232,14 +290,19 @@ production_factories: lore: Stone knife Iron_Refiner: fuel: - Charcoal: + Briquette: material: COAL durability: 1 + lore: Briquette inputs: Blast furnace: material: CLAY_BRICK amount: 16 lore: Blast furnace + Iron hammer: + material: BONE + amount: 16 + lore: Iron hammer recipes: - IRON_BOOTS_RANK_0 - IRON_BOOTS_RANK_1 @@ -269,14 +332,19 @@ production_factories: lore: Blast furnace Diamond_Cutter: fuel: - Charcoal: + White Charcoal: material: COAL durability: 1 + lore: White Charcoal inputs: Faceting machine: material: WATCH amount: 32 lore: Faceting machine + Diamond drill heads: + material: DIAMOND + amount: 16 + lore: Diamond drill heads recipes: - DIAMOND_BOOTS_RANK_0 - DIAMOND_BOOTS_RANK_1 @@ -306,9 +374,10 @@ production_factories: lore: Faceting machine Stone_Grinder: fuel: - Charcoal: + Lump Charcoal: material: COAL durability: 1 + lore: Limp Charcoal inputs: Stone knife: material: FLINT @@ -320,7 +389,6 @@ production_factories: - STONE_SWORD_RANK_2 - STONE_SWORD_RANK_3 - STONE_SWORD_RANK_4 - - STONE_HAMMER repair_multiple: 26 repair_inputs: Stone knife: @@ -329,21 +397,25 @@ production_factories: lore: Stone knife Iron_Forger: fuel: - Charcoal: + Briquette: material: COAL durability: 1 + lore: Briquette inputs: Blast furnace: material: CLAY_BRICK lore: Blast furnace amount: 16 + Iron hammer: + material: BONE + amount: 16 + lore: Iron hammer recipes: - IRON_SWORD_RANK_0 - IRON_SWORD_RANK_1 - IRON_SWORD_RANK_2 - IRON_SWORD_RANK_3 - IRON_SWORD_RANK_4 - - IRON_HAMMER repair_multiple: 26 repair_inputs: Blast furnace: @@ -352,18 +424,19 @@ production_factories: lore: Blast furnace Diamond_Polisher: fuel: - Charcoal: + White Charcoal: material: COAL durability: 1 + lore: White Charcoal inputs: Faceting machine: material: WATCH lore: Faceting machine amount: 32 - Iron hammer: - material: IRONE_HOE - lore: Iron hammer - amount: 6 + Diamond drill heads: + material: DIAMOND + amount: 16 + lore: Diamond drill heads recipes: - DIAMOND_SWORD_RANK_0 - DIAMOND_SWORD_RANK_1 @@ -2179,4 +2252,3 @@ LEATHER_BOOTS_RANK_0: Sharpness: type: DAMAGE_ALL level: 5 - From cec91c9d6aa11b72c2195676bc23eb0958d4eb72 Mon Sep 17 00:00:00 2001 From: ribagi Date: Sun, 2 Nov 2014 02:03:56 -0700 Subject: [PATCH 43/52] Update config.yml --- config.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/config.yml b/config.yml index d20bf569..7bfe31e3 100644 --- a/config.yml +++ b/config.yml @@ -214,9 +214,10 @@ production_factories: amount: 6 Iron_Imbuer: fuel: - Charcoal: + Lump Charcoal: material: COAL durability: 1 + lore: Lump Charcoal inputs: Iron: material: IRON @@ -233,9 +234,10 @@ production_factories: amount: 6 Diamond_Imbuer: fuel: - Charcoal: + Briquette: material: COAL durability: 1 + lore: Briquette inputs: Diamond: material: DIAMOND From 06deaf3be6fc69f0cb6ce53b022f79f47626a966 Mon Sep 17 00:00:00 2001 From: ribagi Date: Sun, 2 Nov 2014 02:15:28 -0700 Subject: [PATCH 44/52] Update config.yml --- config.yml | 83 ++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 81 insertions(+), 2 deletions(-) diff --git a/config.yml b/config.yml index 7bfe31e3..f287933a 100644 --- a/config.yml +++ b/config.yml @@ -210,7 +210,7 @@ production_factories: repair_multiple: 205 repair_inputs: Cobblestone: - material: Cobblestone + material: COBBLESTONE amount: 6 Iron_Imbuer: fuel: @@ -593,7 +593,7 @@ production_recipes: Netherquartz: material: QUARTZ amount: 2 -LEATHER_BOOTS_RANK_0: + LEATHER_BOOTS_RANK_0: name: Leather Boots Forger Rank 0 production_time: 360 inputs: @@ -601,6 +601,7 @@ LEATHER_BOOTS_RANK_0: material: LEATHER amount: 32 outputs: + Leather Boots: material: LEATHER_BOOTS amount: 1 display_name: Leather Boots Rank 0 @@ -618,6 +619,7 @@ LEATHER_BOOTS_RANK_0: display_name: Leather Boots Rank 0 lore: Leather Boots Rank 0 outputs: + Leather Boots: material: LEATHER_BOOTS amount: 1 display_name: Leather Boots Rank 1 @@ -639,6 +641,7 @@ LEATHER_BOOTS_RANK_0: display_name: Leather Boots Rank 1 lore: Leather Boots Rank 1 outputs: + Leather Boots: material: LEATHER_BOOTS amount: 1 display_name: Leather Boots Rank 2 @@ -663,6 +666,7 @@ LEATHER_BOOTS_RANK_0: display_name: Leather Boots Rank 2 lore: Leather Boots Rank 2 outputs: + Leather Boots: material: LEATHER_BOOTS amount: 1 display_name: Leather Boots Rank 3 @@ -687,6 +691,7 @@ LEATHER_BOOTS_RANK_0: display_name: Leather Boots Rank 3 lore: Leather Boots Rank 3 outputs: + Leather Boots: material: LEATHER_BOOTS amount: 1 display_name: Leather Boots Rank 4 @@ -706,6 +711,7 @@ LEATHER_BOOTS_RANK_0: material: LEATHER amount: 32 outputs: + Leather Chestplate: material: LEATHER_CHESTPLATE amount: 1 display_name: Leather Chestplate Rank 0 @@ -723,6 +729,7 @@ LEATHER_BOOTS_RANK_0: display_name: Leather Chestplate Rank 0 lore: Leather Chestplate Rank 0 outputs: + Leather Chestplate: material: LEATHER_CHESTPLATE amount: 1 display_name: Leather Chestplate Rank 1 @@ -744,6 +751,7 @@ LEATHER_BOOTS_RANK_0: display_name: Leather Chestplate Rank 1 lore: Leather Chestplate Rank 1 outputs: + Leather Chestplate: material: LEATHER_CHESTPLATE amount: 1 display_name: Leather Chestplate Rank 2 @@ -768,6 +776,7 @@ LEATHER_BOOTS_RANK_0: display_name: Leather Chestplate Rank 2 lore: Leather Chestplate Rank 2 outputs: + Leather Chestplate: material: LEATHER_CHESTPLATE amount: 1 display_name: Leather Chestplate Rank 3 @@ -792,6 +801,7 @@ LEATHER_BOOTS_RANK_0: display_name: Leather Chestplate Rank 3 lore: Leather Chestplate Rank 3 outputs: + Leather Chestplate: material: LEATHER_CHESTPLATE amount: 1 display_name: Leather Chestplate Rank 4 @@ -811,6 +821,7 @@ LEATHER_BOOTS_RANK_0: material: LEATHER amount: 32 outputs: + Leather Helmet: material: LEATHER_HELMET amount: 1 display_name: Leather Helmet Rank 0 @@ -828,6 +839,7 @@ LEATHER_BOOTS_RANK_0: display_name: Leather Helmet Rank 0 lore: Leather Helmet Rank 0 outputs: + Leather Helmet: material: LEATHER_HELMET amount: 1 display_name: Leather Helmet Rank 1 @@ -849,6 +861,7 @@ LEATHER_BOOTS_RANK_0: display_name: Leather Helmet Rank 1 lore: Leather Helmet Rank 1 outputs: + Leather Helmet: material: LEATHER_HELMET amount: 1 display_name: Leather Helmet Rank 2 @@ -873,6 +886,7 @@ LEATHER_BOOTS_RANK_0: display_name: Leather Helmet Rank 2 lore: Leather Helmet Rank 2 outputs: + Leather Helmet: material: LEATHER_HELMET amount: 1 display_name: Leather Helmet Rank 3 @@ -897,6 +911,7 @@ LEATHER_BOOTS_RANK_0: display_name: Leather Helmet Rank 3 lore: Leather Helmet Rank 3 outputs: + Leather Helmet: material: LEATHER_HELMET amount: 1 display_name: Leather Helmet Rank 4 @@ -916,6 +931,7 @@ LEATHER_BOOTS_RANK_0: material: LEATHER amount: 32 outputs: + Leather Leggings: material: LEATHER_LEGGINGS amount: 1 display_name: Leather Leggings Rank 0 @@ -933,6 +949,7 @@ LEATHER_BOOTS_RANK_0: display_name: Leather Leggings Rank 0 lore: Leather Leggings Rank 0 outputs: + Leather Leggings: material: LEATHER_LEGGINGS amount: 1 display_name: Leather Leggings Rank 1 @@ -954,6 +971,7 @@ LEATHER_BOOTS_RANK_0: display_name: Leather Leggings Rank 1 lore: Leather Leggings Rank 1 outputs: + Leather Leggings: material: LEATHER_LEGGINGS amount: 1 display_name: Leather Leggings Rank 2 @@ -978,6 +996,7 @@ LEATHER_BOOTS_RANK_0: display_name: Leather Leggings Rank 2 lore: Leather Leggings Rank 2 outputs: + Leather Leggings: material: LEATHER_LEGGINGS amount: 1 display_name: Leather Leggings Rank 3 @@ -1002,6 +1021,7 @@ LEATHER_BOOTS_RANK_0: display_name: Leather Leggings Rank 3 lore: Leather Leggings Rank 3 outputs: + Leather Leggings: material: LEATHER_LEGGINGS amount: 1 display_name: Leather Leggings Rank 4 @@ -1026,6 +1046,7 @@ LEATHER_BOOTS_RANK_0: display_name: Leather Boots Rank 4 lore: Leather Boots Rank 4 outputs: + Iron Boots: material: IRON_BOOTS amount: 1 display_name: Iron Boots Rank 0 @@ -1043,6 +1064,7 @@ LEATHER_BOOTS_RANK_0: display_name: Iron Boots Rank 0 lore: Iron Boots Rank 0 outputs: + Iron Boots: material: IRON_BOOTS amount: 1 display_name: Iron Boots Rank 1 @@ -1064,6 +1086,7 @@ LEATHER_BOOTS_RANK_0: display_name: Iron Boots Rank 1 lore: Iron Boots Rank 1 outputs: + Iron Boots: material: IRON_BOOTS amount: 1 display_name: Iron Boots Rank 2 @@ -1088,6 +1111,7 @@ LEATHER_BOOTS_RANK_0: display_name: Iron Boots Rank 2 lore: Iron Boots Rank 2 outputs: + Iron Boots: material: IRON_BOOTS amount: 1 display_name: Iron Boots Rank 3 @@ -1112,6 +1136,7 @@ LEATHER_BOOTS_RANK_0: display_name: Iron Boots Rank 3 lore: Iron Boots Rank 3 outputs: + Iron Boots: material: IRON_BOOTS amount: 1 display_name: Iron Boots Rank 4 @@ -1136,6 +1161,7 @@ LEATHER_BOOTS_RANK_0: display_name: Leather Chestplate Rank 4 lore: Leather Chestplate Rank 4 outputs: + Iron Chestplate: material: IRON_CHESTPLATE amount: 1 display_name: Iron Chestplate Rank 0 @@ -1153,6 +1179,7 @@ LEATHER_BOOTS_RANK_0: display_name: Iron Chestplate Rank 0 lore: Iron Chestplate Rank 0 outputs: + Iron Chestplate: material: IRON_CHESTPLATE amount: 1 display_name: Iron Chestplate Rank 1 @@ -1174,6 +1201,7 @@ LEATHER_BOOTS_RANK_0: display_name: Iron Chestplate Rank 1 lore: Iron Chestplate Rank 1 outputs: + Iron Chestplate: material: IRON_CHESTPLATE amount: 1 display_name: Iron Chestplate Rank 2 @@ -1198,6 +1226,7 @@ LEATHER_BOOTS_RANK_0: display_name: Iron Chestplate Rank 2 lore: Iron Chestplate Rank 2 outputs: + Iron Chestplate: material: IRON_CHESTPLATE amount: 1 display_name: Iron Chestplate Rank 3 @@ -1222,6 +1251,7 @@ LEATHER_BOOTS_RANK_0: display_name: Iron Chestplate Rank 3 lore: Iron Chestplate Rank 3 outputs: + Iron Chestplate: material: IRON_CHESTPLATE amount: 1 display_name: Iron Chestplate Rank 4 @@ -1246,6 +1276,7 @@ LEATHER_BOOTS_RANK_0: display_name: Leather Helmet Rank 4 lore: Leather Helmet Rank 4 outputs: + Iron Helmet: material: IRON_HELMET amount: 1 display_name: Iron Helmet Rank 0 @@ -1263,6 +1294,7 @@ LEATHER_BOOTS_RANK_0: display_name: Iron Helmet Rank 0 lore: Iron Helmet Rank 0 outputs: + Iron Helmet: material: IRON_HELMET amount: 1 display_name: Iron Helmet Rank 1 @@ -1284,6 +1316,7 @@ LEATHER_BOOTS_RANK_0: display_name: Iron Helmet Rank 1 lore: Iron Helmet Rank 1 outputs: + Iron Helmet: material: IRON_HELMET amount: 1 display_name: Iron Helmet Rank 2 @@ -1308,6 +1341,7 @@ LEATHER_BOOTS_RANK_0: display_name: Iron Helmet Rank 2 lore: Iron Helmet Rank 2 outputs: + Iron Helmet: material: IRON_HELMET amount: 1 display_name: Iron Helmet Rank 3 @@ -1332,6 +1366,7 @@ LEATHER_BOOTS_RANK_0: display_name: Iron Helmet Rank 3 lore: Iron Helmet Rank 3 outputs: + Iron Helmet: material: IRON_HELMET amount: 1 display_name: Iron Helmet Rank 4 @@ -1356,6 +1391,7 @@ LEATHER_BOOTS_RANK_0: display_name: Leather Leggings Rank 4 lore: Leather Leggings Rank 4 outputs: + Iron Leggings: material: IRON_LEGGINGS amount: 1 display_name: Iron Leggings Rank 0 @@ -1373,6 +1409,7 @@ LEATHER_BOOTS_RANK_0: display_name: Iron Leggings Rank 0 lore: Iron Leggings Rank 0 outputs: + Iron Leggings: material: IRON_LEGGINGS amount: 1 display_name: Iron Leggings Rank 1 @@ -1394,6 +1431,7 @@ LEATHER_BOOTS_RANK_0: display_name: Iron Leggings Rank 1 lore: Iron Leggings Rank 1 outputs: + Iron Leggings: material: IRON_LEGGINGS amount: 1 display_name: Iron Leggings Rank 2 @@ -1418,6 +1456,7 @@ LEATHER_BOOTS_RANK_0: display_name: Iron Leggings Rank 2 lore: Iron Leggings Rank 2 outputs: + Iron Leggings: material: IRON_LEGGINGS amount: 1 display_name: Iron Leggings Rank 3 @@ -1442,6 +1481,7 @@ LEATHER_BOOTS_RANK_0: display_name: Iron Leggings Rank 3 lore: Iron Leggings Rank 3 outputs: + Iron Leggings: material: IRON_LEGGINGS amount: 1 display_name: Iron Leggings Rank 4 @@ -1466,6 +1506,7 @@ LEATHER_BOOTS_RANK_0: display_name: Iron Boots Rank 4 lore: Iron Boots Rank 4 outputs: + Diamond Boots: material: DIAMOND_BOOTS amount: 1 display_name: Diamond Boots Rank 0 @@ -1483,6 +1524,7 @@ LEATHER_BOOTS_RANK_0: display_name: Diamond Boots Rank 0 lore: Diamond Boots Rank 0 outputs: + Diamond Boots: material: DIAMOND_BOOTS amount: 1 display_name: Diamond Boots Rank 1 @@ -1504,6 +1546,7 @@ LEATHER_BOOTS_RANK_0: display_name: Diamond Boots Rank 1 lore: Diamond Boots Rank 1 outputs: + Diamond Boots: material: DIAMOND_BOOTS amount: 1 display_name: Diamond Boots Rank 2 @@ -1528,6 +1571,7 @@ LEATHER_BOOTS_RANK_0: display_name: Diamond Boots Rank 2 lore: Diamond Boots Rank 2 outputs: + Diamond Boots: material: DIAMOND_BOOTS amount: 1 display_name: Diamond Boots Rank 3 @@ -1552,6 +1596,7 @@ LEATHER_BOOTS_RANK_0: display_name: Diamond Boots Rank 3 lore: Diamond Boots Rank 3 outputs: + Diamond Boots: material: DIAMOND_BOOTS amount: 1 display_name: Diamond Boots Rank 4 @@ -1576,6 +1621,7 @@ LEATHER_BOOTS_RANK_0: display_name: Iron Chestplate Rank 4 lore: Iron Chestplate Rank 4 outputs: + Diamond Chestplate: material: DIAMOND_CHESTPLATE amount: 1 display_name: Diamond Chestplate Rank 0 @@ -1593,6 +1639,7 @@ LEATHER_BOOTS_RANK_0: display_name: Diamond Chestplate Rank 0 lore: Diamond Chestplate Rank 0 outputs: + Diamond Chestplate: material: DIAMOND_CHESTPLATE amount: 1 display_name: Diamond Chestplate Rank 1 @@ -1614,6 +1661,7 @@ LEATHER_BOOTS_RANK_0: display_name: Diamond Chestplate Rank 1 lore: Diamond Chestplate Rank 1 outputs: + Diamond Chestplate: material: DIAMOND_CHESTPLATE amount: 1 display_name: Diamond Chestplate Rank 2 @@ -1638,6 +1686,7 @@ LEATHER_BOOTS_RANK_0: display_name: Diamond Chestplate Rank 2 lore: Diamond Chestplate Rank 2 outputs: + Diamond Chestplate: material: DIAMOND_CHESTPLATE amount: 1 display_name: Diamond Chestplate Rank 3 @@ -1662,6 +1711,7 @@ LEATHER_BOOTS_RANK_0: display_name: Diamond Chestplate Rank 3 lore: Diamond Chestplate Rank 3 outputs: + Diamond Chestplate: material: DIAMOND_CHESTPLATE amount: 1 display_name: Diamond Chestplate Rank 4 @@ -1686,6 +1736,7 @@ LEATHER_BOOTS_RANK_0: display_name: Iron Helmet Rank 4 lore: Iron Helmet Rank 4 outputs: + Diamond Helmet: material: DIAMOND_HELMET amount: 1 display_name: Diamond Helmet Rank 0 @@ -1703,6 +1754,7 @@ LEATHER_BOOTS_RANK_0: display_name: Diamond Helmet Rank 0 lore: Diamond Helmet Rank 0 outputs: + Diamond Helmet: material: DIAMOND_HELMET amount: 1 display_name: Diamond Helmet Rank 1 @@ -1724,6 +1776,7 @@ LEATHER_BOOTS_RANK_0: display_name: Diamond Helmet Rank 1 lore: Diamond Helmet Rank 1 outputs: + Diamond Helmet: material: DIAMOND_HELMET amount: 1 display_name: Diamond Helmet Rank 2 @@ -1748,6 +1801,7 @@ LEATHER_BOOTS_RANK_0: display_name: Diamond Helmet Rank 2 lore: Diamond Helmet Rank 2 outputs: + Diamond Helmet: material: DIAMOND_HELMET amount: 1 display_name: Diamond Helmet Rank 3 @@ -1772,6 +1826,7 @@ LEATHER_BOOTS_RANK_0: display_name: Diamond Helmet Rank 3 lore: Diamond Helmet Rank 3 outputs: + Diamond Helmet: material: DIAMOND_HELMET amount: 1 display_name: Diamond Helmet Rank 4 @@ -1796,6 +1851,7 @@ LEATHER_BOOTS_RANK_0: display_name: Iron Leggings Rank 4 lore: Iron Leggings Rank 4 outputs: + Diamond Leggings: material: DIAMOND_LEGGINGS amount: 1 display_name: Diamond Leggings Rank 0 @@ -1813,6 +1869,7 @@ LEATHER_BOOTS_RANK_0: display_name: Diamond Leggings Rank 0 lore: Diamond Leggings Rank 0 outputs: + Diamond Leggings: material: DIAMOND_LEGGINGS amount: 1 display_name: Diamond Leggings Rank 1 @@ -1834,6 +1891,7 @@ LEATHER_BOOTS_RANK_0: display_name: Diamond Leggings Rank 1 lore: Diamond Leggings Rank 1 outputs: + Diamond Leggings: material: DIAMOND_LEGGINGS amount: 1 display_name: Diamond Leggings Rank 2 @@ -1858,6 +1916,7 @@ LEATHER_BOOTS_RANK_0: display_name: Diamond Leggings Rank 2 lore: Diamond Leggings Rank 2 outputs: + Diamond Leggings: material: DIAMOND_LEGGINGS amount: 1 display_name: Diamond Leggings Rank 3 @@ -1882,6 +1941,7 @@ LEATHER_BOOTS_RANK_0: display_name: Diamond Leggings Rank 3 lore: Diamond Leggings Rank 3 outputs: + Diamond Leggings: material: DIAMOND_LEGGINGS amount: 1 display_name: Diamond Leggings Rank 4 @@ -1901,6 +1961,7 @@ LEATHER_BOOTS_RANK_0: material: STONE amount: 32 outputs: + Stone Sword: material: STONE_SWORD amount: 1 display_name: Stone Sword Rank 0 @@ -1918,6 +1979,7 @@ LEATHER_BOOTS_RANK_0: display_name: Stone Sword Rank 0 lore: Stone Sword Rank 0 outputs: + Stone Sword: material: STONE_SWORD amount: 1 display_name: Stone Sword Rank 1 @@ -1939,6 +2001,7 @@ LEATHER_BOOTS_RANK_0: display_name: Stone Sword Rank 1 lore: Stone Sword Rank 1 outputs: + Stone Sword: material: STONE_SWORD amount: 1 display_name: Stone Sword Rank 2 @@ -1960,6 +2023,7 @@ LEATHER_BOOTS_RANK_0: display_name: Stone Sword Rank 2 lore: Stone Sword Rank 2 outputs: + Stone Sword: material: STONE_SWORD amount: 1 display_name: Stone Sword Rank 3 @@ -1981,6 +2045,7 @@ LEATHER_BOOTS_RANK_0: display_name: Stone Sword Rank 3 lore: Stone Sword Rank 3 outputs: + Stone Sword: material: STONE_SWORD amount: 1 display_name: Stone Sword Rank 4 @@ -2002,6 +2067,7 @@ LEATHER_BOOTS_RANK_0: display_name: Stone Sword Rank 4 lore: Stone Sword Rank 4 outputs: + Stone Sword: material: STONE_SWORD amount: 1 display_name: Stone Sword Rank 5 @@ -2023,6 +2089,7 @@ LEATHER_BOOTS_RANK_0: display_name: Stone Sword Rank 4 lore: Stone Sword Rank 4 outputs: + Iron Sword: material: IRON_SWORD amount: 1 display_name: Iron Sword Rank 0 @@ -2040,6 +2107,7 @@ LEATHER_BOOTS_RANK_0: display_name: Iron Sword Rank 0 lore: Iron Sword Rank 0 outputs: + Iron Sword: material: IRON_SWORD amount: 1 display_name: Iron Sword Rank 1 @@ -2061,6 +2129,7 @@ LEATHER_BOOTS_RANK_0: display_name: Iron Sword Rank 1 lore: Iron Sword Rank 1 outputs: + Iron Sword: material: IRON_SWORD amount: 1 display_name: Iron Sword Rank 2 @@ -2082,6 +2151,7 @@ LEATHER_BOOTS_RANK_0: display_name: Iron Sword Rank 2 lore: Iron Sword Rank 2 outputs: + Iron Sword: material: IRON_SWORD amount: 1 display_name: Iron Sword Rank 3 @@ -2103,6 +2173,7 @@ LEATHER_BOOTS_RANK_0: display_name: Iron Sword Rank 3 lore: Iron Sword Rank 3 outputs: + Iron Sword: material: IRON_SWORD amount: 1 display_name: Iron Sword Rank 4 @@ -2124,6 +2195,7 @@ LEATHER_BOOTS_RANK_0: display_name: Iron Sword Rank 4 lore: Iron Sword Rank 4 outputs: + Iron Sword: material: IRON_SWORD amount: 1 display_name: Iron Sword Rank 5 @@ -2145,6 +2217,7 @@ LEATHER_BOOTS_RANK_0: display_name: Iron Sword Rank 4 lore: Iron Sword Rank 4 outputs: + Diamond Sword: material: DIAMOND_SWORD amount: 1 display_name: Diamond Sword Rank 0 @@ -2162,6 +2235,7 @@ LEATHER_BOOTS_RANK_0: display_name: Diamond Sword Rank 0 lore: Diamond Sword Rank 0 outputs: + Diamond Sword: material: DIAMOND_SWORD amount: 1 display_name: Diamond Sword Rank 1 @@ -2183,6 +2257,7 @@ LEATHER_BOOTS_RANK_0: display_name: Diamond Sword Rank 1 lore: Diamond Sword Rank 1 outputs: + Diamond Sword: material: DIAMOND_SWORD amount: 1 display_name: Diamond Sword Rank 2 @@ -2204,6 +2279,7 @@ LEATHER_BOOTS_RANK_0: display_name: Diamond Sword Rank 2 lore: Diamond Sword Rank 2 outputs: + Diamond Sword: material: DIAMOND_SWORD amount: 1 display_name: Diamond Sword Rank 3 @@ -2225,6 +2301,7 @@ LEATHER_BOOTS_RANK_0: display_name: Diamond Sword Rank 3 lore: Diamond Sword Rank 3 outputs: + Diamond Sword: material: DIAMOND_SWORD amount: 1 display_name: Diamond Sword Rank 4 @@ -2246,6 +2323,7 @@ LEATHER_BOOTS_RANK_0: display_name: Diamond Sword Rank 4 lore: Diamond Sword Rank 4 outputs: + Diamond Sword: material: DIAMOND_SWORD amount: 1 display_name: Diamond Sword Rank 5 @@ -2254,3 +2332,4 @@ LEATHER_BOOTS_RANK_0: Sharpness: type: DAMAGE_ALL level: 5 + From 1db84d1035a3ea25ab62f52dc47d888b9602a806 Mon Sep 17 00:00:00 2001 From: ribagi Date: Sun, 2 Nov 2014 02:18:27 -0700 Subject: [PATCH 45/52] Update config.yml Todo: - Burn_Lump_Charcoal - Stone_Knife - Blast_Furnace - Burn_Briquette - Iron_hammer - Faceting machine - Burn_White_Charcoal - Diamond_Drill_Heads - Faceting_Machine --- config.yml | 35 ++++++++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/config.yml b/config.yml index f287933a..bb349ca6 100644 --- a/config.yml +++ b/config.yml @@ -593,6 +593,39 @@ production_recipes: Netherquartz: material: QUARTZ amount: 2 + Smelt_Stone: + name: Smelt Stone + production_time: 16 + inputs: + Cobblestone: + material: COBBLESTONE + amount: 256 + outputs: + Stone: + material: Stone + amount: 512 + Smelt_Iron: + name: Smelt Iron + production_time: 16 + inputs: + Iron Ore: + material: IRON_ORE + amount: 64 + outputs: + Iron: + material: IRON + amount: 128 + Smelt_Diamond_Ore: + name: Smelt Diamond Ore + production_time: 16 + inputs: + Diamond Ore: + material: DIAMOND_ORE + amount: 16 + outputs: + Diamond: + material: DIAMOND + amount: 48 LEATHER_BOOTS_RANK_0: name: Leather Boots Forger Rank 0 production_time: 360 @@ -2332,4 +2365,4 @@ production_recipes: Sharpness: type: DAMAGE_ALL level: 5 - + From b1f327fbb3113a4b40f80e159dfa40c378d7523f Mon Sep 17 00:00:00 2001 From: ribagi Date: Sun, 2 Nov 2014 16:37:24 -0700 Subject: [PATCH 46/52] Update config.yml --- config.yml | 351 +++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 286 insertions(+), 65 deletions(-) diff --git a/config.yml b/config.yml index bb349ca6..e28f6305 100644 --- a/config.yml +++ b/config.yml @@ -207,6 +207,12 @@ production_factories: - Burn_Lump_Charcoal - Stone_Knife - Blast_Furnace + - Burn_Lump_Charcoal_Dark_Oak + - Burn_Lump_Charcoal_Acacia + - Burn_Lump_Charcoal_Jungle + - Burn_Lump_Charcoal_Birch + - Burn_Lump_Charcoal_Spruce + - Burn_Lump_Charcoal_Oak repair_multiple: 205 repair_inputs: Cobblestone: @@ -227,6 +233,12 @@ production_factories: - Burn_Briquette - Iron_hammer - Faceting machine + - Burn_Briquette_Dark_Oak + - Burn_Briquette_Acacia + - Burn_Briquette_Jungle + - Burn_Briquette_Birch + - Burn_Briquette_Spruce + - Burn_Briquette_Oak repair_multiple: 205 repair_inputs: Iron: @@ -452,6 +464,38 @@ production_factories: amount: 8 lore: Faceting machine Aspect_Factory: + name: Arcane Elementizer + fuel: + Charcoal: + material: COAL + durability: 1 + inputs: + Netherbrick: + material: NETHER_BRICK + amount: 1536 + Redstone: + material: REDSTONE + amount: 1152 + Netherquartz: + material: QUARTZ + amount: 576 + recipes: + - Forge_Aspect_of_Terra + - Forge_Aspect_of_End + - Forge_Aspect_of_Nether + - Craft_Eye_of_Ender + repair_multiple: 26 + repair_inputs: + Nether Brick: + material: NETHER_BRICK + amount: 6 + Redstone: + material: REDSTONE + amount: 5 + Netherquartz: + material: QUARTZ + amount: 2 +nether_factory: name: Nether Factory fuel: Charcoal: @@ -529,70 +573,6 @@ production_recipes: amount: 1 display_name: Aspect of End lore: A concentrated essence of the End - Forge_Aspect_of_Nether: - name: Forge Aspect of Nether - production_time: 64 - inputs: - Ghast Tears: - material: GHAST_TEAR - amount: 16 - Quartz Ore: - material: QUARTZ_ORE - amount: 512 - Glowstone: - material: GLOWSTONE - amount: 512 - outputs: - Aspect of Nether: - material: MAGMA_CREAM - amount: 1 - display_name: Aspect of Nether - lore: A concentrated essence of the Nether - Craft_Eye_of_Ender: - name: Craft Eye of Ender - production_time: 1 - inputs: - Blaze Powder: - material: BLAZE_POWDER - amount: 265 - Ender Pearl: - material: ENDER_PEARL - amount: 265 - outputs: - Eye of Ender: - material: EYE_OF_ENDER - amount: 256 - name: Arcane Elementizer - fuel: - Charcoal: - material: COAL - durability: 1 - inputs: - Netherbrick: - material: NETHER_BRICK - amount: 1536 - Redstone: - material: REDSTONE - amount: 1152 - Netherquartz: - material: QUARTZ - amount: 576 - recipes: - - Forge_Aspect_of_Terra - - Forge_Aspect_of_End - - Forge_Aspect_of_Nether - - Craft_Eye_of_Ender - repair_multiple: 26 - repair_inputs: - Nether Brick: - material: NETHER_BRICK - amount: 6 - Redstone: - material: REDSTONE - amount: 5 - Netherquartz: - material: QUARTZ - amount: 2 Smelt_Stone: name: Smelt Stone production_time: 16 @@ -626,6 +606,247 @@ production_recipes: Diamond: material: DIAMOND amount: 48 + + Burn_Lump_Charcoal_Oak: + name: Smelt Stone + production_time: 16 + inputs: + Oak Wood: + material: LOG + amount: 256 + outputs: + Lump Charcoal: + material: COAL + durability: 1 + lore: Lump Charcoal + amount: 512 + Burn_Lump_Charcoal_Spruce: + name: Smelt Stone + production_time: 16 + inputs: + Spruce Wood: + material: LOG + amount: 256 + durability: 1 + outputs: + Lump Charcoal: + material: COAL + durability: 1 + lore: Lump Charcoal + amount: 512 + Burn_Lump_Charcoal_Birch: + name: Smelt Stone + production_time: 16 + inputs: + Birch Wood: + material: LOG + amount: 256 + durability: 2 + outputs: + Charcoal: + material: COAL + amount: 512 + durability: 1 + Burn_Lump_Charcoal_Jungle: + name: Smelt Stone + production_time: 16 + inputs: + Jungle Wood: + material: LOG + amount: 256 + durability: 3 + outputs: + Lump Charcoal: + material: COAL + durability: 1 + lore: Lump Charcoal + amount: 512 + Burn_Lump_Charcoal_Acacia: + name: Smelt Stone + production_time: 16 + inputs: + Acacia Wood: + material: LOG_2 + amount: 256 + outputs: + Charcoal: + material: COAL + amount: 512 + durability: 1 + Burn_Lump_Charcoal_Dark_Oak: + name: Smelt Stone + production_time: 16 + inputs: + Dark Oak Wood: + material: LOG_2 + amount: 256 + durability: 1 + outputs: + Lump Charcoal: + material: COAL + durability: 1 + lore: Lump Charcoal + amount: 512 + Burn_Briquette_Oak: + name: Smelt Stone + production_time: 16 + inputs: + Oak Wood: + material: LOG + amount: 256 + outputs: + Briquette: + material: COAL + durability: 1 + lore: Briquette + amount: 512 + Burn_Briquette_Spruce: + name: Smelt Stone + production_time: 16 + inputs: + Spruce Wood: + material: LOG + amount: 256 + durability: 1 + outputs: + Briquette: + material: COAL + durability: 1 + lore: Briquette + amount: 512 + Burn_Briquette_Birch: + name: Smelt Stone + production_time: 16 + inputs: + Birch Wood: + material: LOG + amount: 256 + durability: 2 + outputs: + Charcoal: + material: COAL + amount: 512 + durability: 1 + Burn_Briquette_Jungle: + name: Smelt Stone + production_time: 16 + inputs: + Jungle Wood: + material: LOG + amount: 256 + durability: 3 + outputs: + Briquette: + material: COAL + durability: 1 + lore: Briquette + amount: 512 + Burn_Briquette_Acacia: + name: Smelt Stone + production_time: 16 + inputs: + Acacia Wood: + material: LOG_2 + amount: 256 + outputs: + Charcoal: + material: COAL + amount: 512 + durability: 1 + Burn_Briquette_Dark_Oak: + name: Smelt Stone + production_time: 16 + inputs: + Dark Oak Wood: + material: LOG_2 + amount: 256 + durability: 1 + outputs: + Briquette: + material: COAL + durability: 1 + lore: Briquette + amount: 512 + Burn_White_Charcoal_Oak: + name: Smelt Stone + production_time: 16 + inputs: + Oak Wood: + material: LOG + amount: 256 + outputs: + White Charcoal: + material: COAL + durability: 1 + lore: White Charcoal + amount: 512 + Burn_White_Charcoal_Spruce: + name: Smelt Stone + production_time: 16 + inputs: + Spruce Wood: + material: LOG + amount: 256 + durability: 1 + outputs: + White Charcoal: + material: COAL + durability: 1 + lore: White Charcoal + amount: 512 + Burn_White_Charcoal_Birch: + name: Smelt Stone + production_time: 16 + inputs: + Birch Wood: + material: LOG + amount: 256 + durability: 2 + outputs: + Charcoal: + material: COAL + amount: 512 + durability: 1 + Burn_White_Charcoal_Jungle: + name: Smelt Stone + production_time: 16 + inputs: + Jungle Wood: + material: LOG + amount: 256 + durability: 3 + outputs: + White Charcoal: + material: COAL + durability: 1 + lore: White Charcoal + amount: 512 + Burn_White_Charcoal_Acacia: + name: Smelt Stone + production_time: 16 + inputs: + Acacia Wood: + material: LOG_2 + amount: 256 + outputs: + Charcoal: + material: COAL + amount: 512 + durability: 1 + Burn_White_Charcoal_Dark_Oak: + name: Smelt Stone + production_time: 16 + inputs: + Dark Oak Wood: + material: LOG_2 + amount: 256 + durability: 1 + outputs: + White Charcoal: + material: COAL + durability: 1 + lore: White Charcoal + amount: 512 LEATHER_BOOTS_RANK_0: name: Leather Boots Forger Rank 0 production_time: 360 @@ -2365,4 +2586,4 @@ production_recipes: Sharpness: type: DAMAGE_ALL level: 5 - + From 2caa10a1fb11ec03c12028088737b3c1033197de Mon Sep 17 00:00:00 2001 From: ribagi Date: Sun, 2 Nov 2014 16:44:18 -0700 Subject: [PATCH 47/52] Update config.yml --- config.yml | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/config.yml b/config.yml index e28f6305..677e19da 100644 --- a/config.yml +++ b/config.yml @@ -204,7 +204,6 @@ production_factories: amount: 512 recipes: - Smelt_Stone - - Burn_Lump_Charcoal - Stone_Knife - Blast_Furnace - Burn_Lump_Charcoal_Dark_Oak @@ -230,7 +229,6 @@ production_factories: amount: 512 recipes: - Smelt_Iron - - Burn_Briquette - Iron_hammer - Faceting machine - Burn_Briquette_Dark_Oak @@ -256,9 +254,15 @@ production_factories: amount: 512 recipes: - Smelt_Diamond_Ore - - Burn_White_Charcoal - Diamond_Drill_Heads - Faceting_Machine + - Burn_White_Charcoal_Dark_Oak + - Burn_White_Charcoal_Acacia + - Burn_White_Charcoal_Jungle + - Burn_White_Charcoal_Birch + - Burn_White_Charcoal_Spruce + - Burn_White_Charcoal_Oak + - OBSIDIAN_GENERATOR repair_multiple: 205 repair_inputs: Diamond: @@ -2586,4 +2590,15 @@ production_recipes: Sharpness: type: DAMAGE_ALL level: 5 - + OBSIDIAN_GENERATOR: + name: Obsidian Generator + production_time: 300 + inputs: + Diamond Pickaxe: + material: DIAMOND_PICKAXE + amount: 1 + outputs: + Obsidian: + material: OBSIDIAN + amount: 3200 + From 4fc4486cbcf6a1cb523db1e46cdeebc0fe5ace55 Mon Sep 17 00:00:00 2001 From: ribagi Date: Sun, 2 Nov 2014 16:57:07 -0700 Subject: [PATCH 48/52] Update config.yml --- config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config.yml b/config.yml index 677e19da..b6f5a300 100644 --- a/config.yml +++ b/config.yml @@ -2600,5 +2600,5 @@ production_recipes: outputs: Obsidian: material: OBSIDIAN - amount: 3200 + amount: 12800 From 81f630897e71d6c2d1f64ebd734785e8aefd6510 Mon Sep 17 00:00:00 2001 From: ribagi Date: Sun, 2 Nov 2014 16:57:38 -0700 Subject: [PATCH 49/52] Update config.yml --- config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config.yml b/config.yml index b6f5a300..677e19da 100644 --- a/config.yml +++ b/config.yml @@ -2600,5 +2600,5 @@ production_recipes: outputs: Obsidian: material: OBSIDIAN - amount: 12800 + amount: 3200 From 05ae3122d3d0bd67fbb18d864ea3566b1216136a Mon Sep 17 00:00:00 2001 From: ribagi Date: Wed, 5 Nov 2014 19:04:18 -0700 Subject: [PATCH 50/52] Tools push --- config.yml | 1476 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1476 insertions(+) diff --git a/config.yml b/config.yml index 677e19da..f79f6382 100644 --- a/config.yml +++ b/config.yml @@ -467,6 +467,121 @@ production_factories: material: WATCH amount: 8 lore: Faceting machine + Stone_Anvil: + fuel: + Charcoal: + material: COAL + durability: 1 + inputs: + Stone knife: + material: FLINT + lore: Stone knife + amount: 12 + recipes: + - STONE_PICKAXE_RANK_0 + - STONE_PICKAXE_RANK_1 + - STONE_PICKAXE_RANK_2 + - STONE_PICKAXE_RANK_3 + - STONE_PICKAXE_RANK_4 + - STONE_AXE_RANK_0 + - STONE_AXE_RANK_1 + - STONE_AXE_RANK_2 + - STONE_AXE_RANK_3 + - STONE_AXE_RANK_4 + - STONE_SHOVEL_RANK_0 + - STONE_SHOVEL_RANK_1 + - STONE_SHOVEL_RANK_2 + - STONE_SHOVEL_RANK_3 + - STONE_SHOVEL_RANK_4 + - STONE_HOE_RANK_0 + - STONE_HOE_RANK_1 + - STONE_HOE_RANK_2 + - STONE_HOE_RANK_3 + - STONE_HOE_RANK_4 + repair_multiple: 26 + repair_inputs: + Stone knife: + material: FLINT + amount: 2 + lore: Stone knife + Iron_Anvil: + fuel: + Charcoal: + material: COAL + durability: 1 + inputs: + Blast furnace: + material: CLAY_BRICK + lore: Blast furnace + amount: 16 + recipes: + - IRON_PICKAXE_RANK_0 + - IRON_PICKAXE_RANK_1 + - IRON_PICKAXE_RANK_2 + - IRON_PICKAXE_RANK_3 + - IRON_PICKAXE_RANK_4 + - IRON_AXE_RANK_0 + - IRON_AXE_RANK_1 + - IRON_AXE_RANK_2 + - IRON_AXE_RANK_3 + - IRON_AXE_RANK_4 + - IRON_SHOVEL_RANK_0 + - IRON_SHOVEL_RANK_1 + - IRON_SHOVEL_RANK_2 + - IRON_SHOVEL_RANK_3 + - IRON_SHOVEL_RANK_4 + - IRON_HOE_RANK_0 + - IRON_HOE_RANK_1 + - IRON_HOE_RANK_2 + - IRON_HOE_RANK_3 + - IRON_HOE_RANK_4 + repair_multiple: 26 + repair_inputs: + Blast furnace: + material: CLAY_BRICK + amount: 4 + lore: Blast furnace + Diamond_Anvil: + fuel: + Charcoal: + material: COAL + durability: 1 + inputs: + Faceting machine: + material: WATCH + lore: Faceting machine + amount: 32 + Iron hammer: + material: IRONE_HOE + lore: Iron hammer + amount: 6 + recipes: + - DIAMOND_PICKAXE_RANK_0 + - DIAMOND_PICKAXE_RANK_1 + - DIAMOND_PICKAXE_RANK_2 + - DIAMOND_PICKAXE_RANK_3 + - DIAMOND_PICKAXE_RANK_4 + - DIAMOND_AXE_RANK_0 + - DIAMOND_AXE_RANK_1 + - DIAMOND_AXE_RANK_2 + - DIAMOND_AXE_RANK_3 + - DIAMOND_AXE_RANK_4 + - DIAMOND_SHOVEL_RANK_0 + - DIAMOND_SHOVEL_RANK_1 + - DIAMOND_SHOVEL_RANK_2 + - DIAMOND_SHOVEL_RANK_3 + - DIAMOND_SHOVEL_RANK_4 + - DIAMOND_HOE_RANK_0 + - DIAMOND_HOE_RANK_1 + - DIAMOND_HOE_RANK_2 + - DIAMOND_HOE_RANK_3 + - DIAMOND_HOE_RANK_4 + repair_multiple: 26 + repair_inputs: + Faceting machine: + material: WATCH + amount: 8 + lore: Faceting machine Aspect_Factory: name: Arcane Elementizer fuel: @@ -2601,4 +2716,1365 @@ production_recipes: Obsidian: material: OBSIDIAN amount: 3200 + STONE_PICKAXE_RANK_0: + name: Stone Pickaxe Forger Rank 0 + production_time: 360 + inputs: + Stone: + material: STONE + amount: 32 + outputs: + Stone Pickaxe: + material: STONE_PICKAXE + amount: 1 + display_name: Stone Pickaxe Rank 0 + lore: Stone Pickaxe Rank 0 + STONE_PICKAXE_RANK_1: + name: Stone Pickaxe Forger Rank 1 + production_time: 360 + inputs: + Stone: + material: STONE + amount: 32 + Stone Pickaxe: + material: STONE_PICKAXE + amount: 1 + display_name: Stone Pickaxe Rank 0 + lore: Stone Pickaxe Rank 0 + outputs: + Stone Pickaxe: + material: STONE_PICKAXE + amount: 1 + display_name: Stone Pickaxe Rank 1 + lore: Stone Pickaxe Rank 1 + enchantments: + Efficiency: + type: DIG_SPEED + level: 1 + STONE_PICKAXE_RANK_2: + name: Stone Pickaxe Forger Rank 2 + production_time: 360 + inputs: + Stone: + material: STONE + amount: 32 + Stone Pickaxe: + material: STONE_PICKAXE + amount: 1 + display_name: Stone Pickaxe Rank 1 + lore: Stone Pickaxe Rank 1 + outputs: + Stone Pickaxe: + material: STONE_PICKAXE + amount: 1 + display_name: Stone Pickaxe Rank 2 + lore: Stone Pickaxe Rank 2 + enchantments: + Efficiency: + type: DIG_SPEED + level: 2 + Unbreaking: + type: DURABILITY + level: 1 + STONE_PICKAXE_RANK_3: + name: Stone Pickaxe Forger Rank 3 + production_time: 360 + inputs: + Stone: + material: STONE + amount: 32 + Stone Pickaxe: + material: STONE_PICKAXE + amount: 1 + display_name: Stone Pickaxe Rank 2 + lore: Stone Pickaxe Rank 2 + outputs: + Stone Pickaxe: + material: STONE_PICKAXE + amount: 1 + display_name: Stone Pickaxe Rank 3 + lore: Stone Pickaxe Rank 3 + enchantments: + Efficiency: + type: DIG_SPEED + level: 3 + Unbreaking: + type: DURABILITY + level: 2 + STONE_PICKAXE_RANK_4: + name: Stone Pickaxe Forger Rank 4 + production_time: 360 + inputs: + Stone: + material: STONE + amount: 32 + Stone Pickaxe: + material: STONE_PICKAXE + amount: 1 + display_name: Stone Pickaxe Rank 3 + lore: Stone Pickaxe Rank 3 + outputs: + Stone Pickaxe: + material: STONE_PICKAXE + amount: 1 + display_name: Stone Pickaxe Rank 4 + lore: Stone Pickaxe Rank 4 + enchantments: + Efficiency: + type: DIG_SPEED + level: 4 + Unbreaking: + type: DURABILITY + level: 3 + STONE_AXE_RANK_0: + name: Stone Axe Forger Rank 0 + production_time: 360 + inputs: + Stone: + material: STONE + amount: 32 + outputs: + Stone Axe: + material: STONE_AXE + amount: 1 + display_name: Stone Axe Rank 0 + lore: Stone Axe Rank 0 + STONE_AXE_RANK_1: + name: Stone Axe Forger Rank 1 + production_time: 360 + inputs: + Stone: + material: STONE + amount: 32 + Stone Axe: + material: STONE_AXE + amount: 1 + display_name: Stone Axe Rank 0 + lore: Stone Axe Rank 0 + outputs: + Stone Axe: + material: STONE_AXE + amount: 1 + display_name: Stone Axe Rank 1 + lore: Stone Axe Rank 1 + enchantments: + Efficiency: + type: DIG_SPEED + level: 1 + STONE_AXE_RANK_2: + name: Stone Axe Forger Rank 2 + production_time: 360 + inputs: + Stone: + material: STONE + amount: 32 + Stone Axe: + material: STONE_AXE + amount: 1 + display_name: Stone Axe Rank 1 + lore: Stone Axe Rank 1 + outputs: + Stone Axe: + material: STONE_AXE + amount: 1 + display_name: Stone Axe Rank 2 + lore: Stone Axe Rank 2 + enchantments: + Efficiency: + type: DIG_SPEED + level: 2 + Unbreaking: + type: DURABILITY + level: 1 + STONE_AXE_RANK_3: + name: Stone Axe Forger Rank 3 + production_time: 360 + inputs: + Stone: + material: STONE + amount: 32 + Stone Axe: + material: STONE_AXE + amount: 1 + display_name: Stone Axe Rank 2 + lore: Stone Axe Rank 2 + outputs: + Stone Axe: + material: STONE_AXE + amount: 1 + display_name: Stone Axe Rank 3 + lore: Stone Axe Rank 3 + enchantments: + Efficiency: + type: DIG_SPEED + level: 3 + Unbreaking: + type: DURABILITY + level: 2 + STONE_AXE_RANK_4: + name: Stone Axe Forger Rank 4 + production_time: 360 + inputs: + Stone: + material: STONE + amount: 32 + Stone Axe: + material: STONE_AXE + amount: 1 + display_name: Stone Axe Rank 3 + lore: Stone Axe Rank 3 + outputs: + Stone Axe: + material: STONE_AXE + amount: 1 + display_name: Stone Axe Rank 4 + lore: Stone Axe Rank 4 + enchantments: + Efficiency: + type: DIG_SPEED + level: 4 + Unbreaking: + type: DURABILITY + level: 3 + STONE_SHOVEL_RANK_0: + name: Stone Shovel Forger Rank 0 + production_time: 360 + inputs: + Stone: + material: STONE + amount: 32 + outputs: + Stone Shovel: + material: STONE_SHOVEL + amount: 1 + display_name: Stone Shovel Rank 0 + lore: Stone Shovel Rank 0 + STONE_SHOVEL_RANK_1: + name: Stone Shovel Forger Rank 1 + production_time: 360 + inputs: + Stone: + material: STONE + amount: 32 + Stone Shovel: + material: STONE_SHOVEL + amount: 1 + display_name: Stone Shovel Rank 0 + lore: Stone Shovel Rank 0 + outputs: + Stone Shovel: + material: STONE_SHOVEL + amount: 1 + display_name: Stone Shovel Rank 1 + lore: Stone Shovel Rank 1 + enchantments: + Efficiency: + type: DIG_SPEED + level: 1 + STONE_SHOVEL_RANK_2: + name: Stone Shovel Forger Rank 2 + production_time: 360 + inputs: + Stone: + material: STONE + amount: 32 + Stone Shovel: + material: STONE_SHOVEL + amount: 1 + display_name: Stone Shovel Rank 1 + lore: Stone Shovel Rank 1 + outputs: + Stone Shovel: + material: STONE_SHOVEL + amount: 1 + display_name: Stone Shovel Rank 2 + lore: Stone Shovel Rank 2 + enchantments: + Efficiency: + type: DIG_SPEED + level: 2 + Unbreaking: + type: DURABILITY + level: 1 + STONE_SHOVEL_RANK_3: + name: Stone Shovel Forger Rank 3 + production_time: 360 + inputs: + Stone: + material: STONE + amount: 32 + Stone Shovel: + material: STONE_SHOVEL + amount: 1 + display_name: Stone Shovel Rank 2 + lore: Stone Shovel Rank 2 + outputs: + Stone Shovel: + material: STONE_SHOVEL + amount: 1 + display_name: Stone Shovel Rank 3 + lore: Stone Shovel Rank 3 + enchantments: + Efficiency: + type: DIG_SPEED + level: 3 + Unbreaking: + type: DURABILITY + level: 2 + STONE_SHOVEL_RANK_4: + name: Stone Shovel Forger Rank 4 + production_time: 360 + inputs: + Stone: + material: STONE + amount: 32 + Stone Shovel: + material: STONE_SHOVEL + amount: 1 + display_name: Stone Shovel Rank 3 + lore: Stone Shovel Rank 3 + outputs: + Stone Shovel: + material: STONE_SHOVEL + amount: 1 + display_name: Stone Shovel Rank 4 + lore: Stone Shovel Rank 4 + enchantments: + Efficiency: + type: DIG_SPEED + level: 4 + Unbreaking: + type: DURABILITY + level: 3 + STONE_HOE_RANK_0: + name: Stone Hoe Forger Rank 0 + production_time: 360 + inputs: + Stone: + material: STONE + amount: 32 + outputs: + Stone Hoe: + material: STONE_HOE + amount: 1 + display_name: Stone Hoe Rank 0 + lore: Stone Hoe Rank 0 + STONE_HOE_RANK_1: + name: Stone Hoe Forger Rank 1 + production_time: 360 + inputs: + Stone: + material: STONE + amount: 32 + Stone Hoe: + material: STONE_HOE + amount: 1 + display_name: Stone Hoe Rank 0 + lore: Stone Hoe Rank 0 + outputs: + Stone Hoe: + material: STONE_HOE + amount: 1 + display_name: Stone Hoe Rank 1 + lore: Stone Hoe Rank 1 + enchantments: + Efficiency: + type: DIG_SPEED + level: 1 + STONE_HOE_RANK_2: + name: Stone Hoe Forger Rank 2 + production_time: 360 + inputs: + Stone: + material: STONE + amount: 32 + Stone Hoe: + material: STONE_HOE + amount: 1 + display_name: Stone Hoe Rank 1 + lore: Stone Hoe Rank 1 + outputs: + Stone Hoe: + material: STONE_HOE + amount: 1 + display_name: Stone Hoe Rank 2 + lore: Stone Hoe Rank 2 + enchantments: + Efficiency: + type: DIG_SPEED + level: 2 + Unbreaking: + type: DURABILITY + level: 1 + STONE_HOE_RANK_3: + name: Stone Hoe Forger Rank 3 + production_time: 360 + inputs: + Stone: + material: STONE + amount: 32 + Stone Hoe: + material: STONE_HOE + amount: 1 + display_name: Stone Hoe Rank 2 + lore: Stone Hoe Rank 2 + outputs: + Stone Hoe: + material: STONE_HOE + amount: 1 + display_name: Stone Hoe Rank 3 + lore: Stone Hoe Rank 3 + enchantments: + Efficiency: + type: DIG_SPEED + level: 3 + Unbreaking: + type: DURABILITY + level: 2 + STONE_HOE_RANK_4: + name: Stone Hoe Forger Rank 4 + production_time: 360 + inputs: + Stone: + material: STONE + amount: 32 + Stone Hoe: + material: STONE_HOE + amount: 1 + display_name: Stone Hoe Rank 3 + lore: Stone Hoe Rank 3 + outputs: + Stone Hoe: + material: STONE_HOE + amount: 1 + display_name: Stone Hoe Rank 4 + lore: Stone Hoe Rank 4 + enchantments: + Efficiency: + type: DIG_SPEED + level: 4 + Unbreaking: + type: DURABILITY + level: 3 + IRON_PICKAXE_RANK_0: + name: Iron Pickaxe Forger Rank 0 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Stone Pickaxe: + material: STONE_PICKAXE + amount: 2 + display_name: Stone Pickaxe Rank 4 + lore: Stone Pickaxe Rank 4 + outputs: + Iron Pickaxe: + material: IRON_PICKAXE + amount: 1 + display_name: Iron Pickaxe Rank 0 + lore: Iron Pickaxe Rank 0 + IRON_PICKAXE_RANK_1: + name: Iron Pickaxe Forger Rank 1 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Iron Pickaxe: + material: IRON_PICKAXE + amount: 1 + display_name: Iron Pickaxe Rank 0 + lore: Iron Pickaxe Rank 0 + outputs: + Iron Pickaxe: + material: IRON_PICKAXE + amount: 1 + display_name: Iron Pickaxe Rank 1 + lore: Iron Pickaxe Rank 1 + enchantments: + Efficiency: + type: DIG_SPEED + level: 1 + IRON_PICKAXE_RANK_2: + name: Iron Pickaxe Forger Rank 2 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Iron Pickaxe: + material: IRON_PICKAXE + amount: 1 + display_name: Iron Pickaxe Rank 1 + lore: Iron Pickaxe Rank 1 + outputs: + Iron Pickaxe: + material: IRON_PICKAXE + amount: 1 + display_name: Iron Pickaxe Rank 2 + lore: Iron Pickaxe Rank 2 + enchantments: + Efficiency: + type: DIG_SPEED + level: 2 + Unbreaking: + type: DURABILITY + level: 1 + IRON_PICKAXE_RANK_3: + name: Iron Pickaxe Forger Rank 3 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Iron Pickaxe: + material: IRON_PICKAXE + amount: 1 + display_name: Iron Pickaxe Rank 2 + lore: Iron Pickaxe Rank 2 + outputs: + Iron Pickaxe: + material: IRON_PICKAXE + amount: 1 + display_name: Iron Pickaxe Rank 3 + lore: Iron Pickaxe Rank 3 + enchantments: + Efficiency: + type: DIG_SPEED + level: 3 + Unbreaking: + type: DURABILITY + level: 2 + IRON_PICKAXE_RANK_4: + name: Iron Pickaxe Forger Rank 4 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Iron Pickaxe: + material: IRON_PICKAXE + amount: 1 + display_name: Iron Pickaxe Rank 3 + lore: Iron Pickaxe Rank 3 + outputs: + Iron Pickaxe: + material: IRON_PICKAXE + amount: 1 + display_name: Iron Pickaxe Rank 4 + lore: Iron Pickaxe Rank 4 + enchantments: + Efficiency: + type: DIG_SPEED + level: 4 + Unbreaking: + type: DURABILITY + level: 3 + IRON_AXE_RANK_0: + name: Iron Axe Forger Rank 0 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Stone Axe: + material: STONE_AXE + amount: 2 + display_name: Stone Axe Rank 4 + lore: Stone Axe Rank 4 + outputs: + Iron Axe: + material: IRON_AXE + amount: 1 + display_name: Iron Axe Rank 0 + lore: Iron Axe Rank 0 + IRON_AXE_RANK_1: + name: Iron Axe Forger Rank 1 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Iron Axe: + material: IRON_AXE + amount: 1 + display_name: Iron Axe Rank 0 + lore: Iron Axe Rank 0 + outputs: + Iron Axe: + material: IRON_AXE + amount: 1 + display_name: Iron Axe Rank 1 + lore: Iron Axe Rank 1 + enchantments: + Efficiency: + type: DIG_SPEED + level: 1 + IRON_AXE_RANK_2: + name: Iron Axe Forger Rank 2 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Iron Axe: + material: IRON_AXE + amount: 1 + display_name: Iron Axe Rank 1 + lore: Iron Axe Rank 1 + outputs: + Iron Axe: + material: IRON_AXE + amount: 1 + display_name: Iron Axe Rank 2 + lore: Iron Axe Rank 2 + enchantments: + Efficiency: + type: DIG_SPEED + level: 2 + Unbreaking: + type: DURABILITY + level: 1 + IRON_AXE_RANK_3: + name: Iron Axe Forger Rank 3 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Iron Axe: + material: IRON_AXE + amount: 1 + display_name: Iron Axe Rank 2 + lore: Iron Axe Rank 2 + outputs: + Iron Axe: + material: IRON_AXE + amount: 1 + display_name: Iron Axe Rank 3 + lore: Iron Axe Rank 3 + enchantments: + Efficiency: + type: DIG_SPEED + level: 3 + Unbreaking: + type: DURABILITY + level: 2 + IRON_AXE_RANK_4: + name: Iron Axe Forger Rank 4 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Iron Axe: + material: IRON_AXE + amount: 1 + display_name: Iron Axe Rank 3 + lore: Iron Axe Rank 3 + outputs: + Iron Axe: + material: IRON_AXE + amount: 1 + display_name: Iron Axe Rank 4 + lore: Iron Axe Rank 4 + enchantments: + Efficiency: + type: DIG_SPEED + level: 4 + Unbreaking: + type: DURABILITY + level: 3 + IRON_SHOVEL_RANK_0: + name: Iron Shovel Forger Rank 0 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Stone Shovel: + material: STONE_SHOVEL + amount: 2 + display_name: Stone Shovel Rank 4 + lore: Stone Shovel Rank 4 + outputs: + Iron Shovel: + material: IRON_SHOVEL + amount: 1 + display_name: Iron Shovel Rank 0 + lore: Iron Shovel Rank 0 + IRON_SHOVEL_RANK_1: + name: Iron Shovel Forger Rank 1 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Iron Shovel: + material: IRON_SHOVEL + amount: 1 + display_name: Iron Shovel Rank 0 + lore: Iron Shovel Rank 0 + outputs: + Iron Shovel: + material: IRON_SHOVEL + amount: 1 + display_name: Iron Shovel Rank 1 + lore: Iron Shovel Rank 1 + enchantments: + Efficiency: + type: DIG_SPEED + level: 1 + IRON_SHOVEL_RANK_2: + name: Iron Shovel Forger Rank 2 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Iron Shovel: + material: IRON_SHOVEL + amount: 1 + display_name: Iron Shovel Rank 1 + lore: Iron Shovel Rank 1 + outputs: + Iron Shovel: + material: IRON_SHOVEL + amount: 1 + display_name: Iron Shovel Rank 2 + lore: Iron Shovel Rank 2 + enchantments: + Efficiency: + type: DIG_SPEED + level: 2 + Unbreaking: + type: DURABILITY + level: 1 + IRON_SHOVEL_RANK_3: + name: Iron Shovel Forger Rank 3 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Iron Shovel: + material: IRON_SHOVEL + amount: 1 + display_name: Iron Shovel Rank 2 + lore: Iron Shovel Rank 2 + outputs: + Iron Shovel: + material: IRON_SHOVEL + amount: 1 + display_name: Iron Shovel Rank 3 + lore: Iron Shovel Rank 3 + enchantments: + Efficiency: + type: DIG_SPEED + level: 3 + Unbreaking: + type: DURABILITY + level: 2 + IRON_SHOVEL_RANK_4: + name: Iron Shovel Forger Rank 4 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Iron Shovel: + material: IRON_SHOVEL + amount: 1 + display_name: Iron Shovel Rank 3 + lore: Iron Shovel Rank 3 + outputs: + Iron Shovel: + material: IRON_SHOVEL + amount: 1 + display_name: Iron Shovel Rank 4 + lore: Iron Shovel Rank 4 + enchantments: + Efficiency: + type: DIG_SPEED + level: 4 + Unbreaking: + type: DURABILITY + level: 3 + IRON_HOE_RANK_0: + name: Iron Hoe Forger Rank 0 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Stone Hoe: + material: STONE_HOE + amount: 2 + display_name: Stone Hoe Rank 4 + lore: Stone Hoe Rank 4 + outputs: + Iron Hoe: + material: IRON_HOE + amount: 1 + display_name: Iron Hoe Rank 0 + lore: Iron Hoe Rank 0 + IRON_HOE_RANK_1: + name: Iron Hoe Forger Rank 1 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Iron Hoe: + material: IRON_HOE + amount: 1 + display_name: Iron Hoe Rank 0 + lore: Iron Hoe Rank 0 + outputs: + Iron Hoe: + material: IRON_HOE + amount: 1 + display_name: Iron Hoe Rank 1 + lore: Iron Hoe Rank 1 + enchantments: + Efficiency: + type: DIG_SPEED + level: 1 + IRON_HOE_RANK_2: + name: Iron Hoe Forger Rank 2 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Iron Hoe: + material: IRON_HOE + amount: 1 + display_name: Iron Hoe Rank 1 + lore: Iron Hoe Rank 1 + outputs: + Iron Hoe: + material: IRON_HOE + amount: 1 + display_name: Iron Hoe Rank 2 + lore: Iron Hoe Rank 2 + enchantments: + Efficiency: + type: DIG_SPEED + level: 2 + Unbreaking: + type: DURABILITY + level: 1 + IRON_HOE_RANK_3: + name: Iron Hoe Forger Rank 3 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Iron Hoe: + material: IRON_HOE + amount: 1 + display_name: Iron Hoe Rank 2 + lore: Iron Hoe Rank 2 + outputs: + Iron Hoe: + material: IRON_HOE + amount: 1 + display_name: Iron Hoe Rank 3 + lore: Iron Hoe Rank 3 + enchantments: + Efficiency: + type: DIG_SPEED + level: 3 + Unbreaking: + type: DURABILITY + level: 2 + IRON_HOE_RANK_4: + name: Iron Hoe Forger Rank 4 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Iron Hoe: + material: IRON_HOE + amount: 1 + display_name: Iron Hoe Rank 3 + lore: Iron Hoe Rank 3 + outputs: + Iron Hoe: + material: IRON_HOE + amount: 1 + display_name: Iron Hoe Rank 4 + lore: Iron Hoe Rank 4 + enchantments: + Efficiency: + type: DIG_SPEED + level: 4 + Unbreaking: + type: DURABILITY + level: 3 + DIAMOND_PICKAXE_RANK_0: + name: Diamond Pickaxe Forger Rank 0 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Iron Pickaxe: + material: IRON_PICKAXE + amount: 2 + display_name: Iron Pickaxe Rank 4 + lore: Iron Pickaxe Rank 4 + outputs: + Diamond Pickaxe: + material: DIAMOND_PICKAXE + amount: 1 + display_name: Diamond Pickaxe Rank 0 + lore: Diamond Pickaxe Rank 0 + DIAMOND_PICKAXE_RANK_1: + name: Diamond Pickaxe Forger Rank 1 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Diamond Pickaxe: + material: DIAMOND_PICKAXE + amount: 1 + display_name: Diamond Pickaxe Rank 0 + lore: Diamond Pickaxe Rank 0 + outputs: + Diamond Pickaxe: + material: DIAMOND_PICKAXE + amount: 1 + display_name: Diamond Pickaxe Rank 1 + lore: Diamond Pickaxe Rank 1 + enchantments: + Efficiency: + type: DIG_SPEED + level: 1 + DIAMOND_PICKAXE_RANK_2: + name: Diamond Pickaxe Forger Rank 2 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Diamond Pickaxe: + material: DIAMOND_PICKAXE + amount: 1 + display_name: Diamond Pickaxe Rank 1 + lore: Diamond Pickaxe Rank 1 + outputs: + Diamond Pickaxe: + material: DIAMOND_PICKAXE + amount: 1 + display_name: Diamond Pickaxe Rank 2 + lore: Diamond Pickaxe Rank 2 + enchantments: + Efficiency: + type: DIG_SPEED + level: 2 + Unbreaking: + type: DURABILITY + level: 1 + DIAMOND_PICKAXE_RANK_3: + name: Diamond Pickaxe Forger Rank 3 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Diamond Pickaxe: + material: DIAMOND_PICKAXE + amount: 1 + display_name: Diamond Pickaxe Rank 2 + lore: Diamond Pickaxe Rank 2 + outputs: + Diamond Pickaxe: + material: DIAMOND_PICKAXE + amount: 1 + display_name: Diamond Pickaxe Rank 3 + lore: Diamond Pickaxe Rank 3 + enchantments: + Efficiency: + type: DIG_SPEED + level: 3 + Unbreaking: + type: DURABILITY + level: 2 + DIAMOND_PICKAXE_RANK_4: + name: Diamond Pickaxe Forger Rank 4 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Diamond Pickaxe: + material: DIAMOND_PICKAXE + amount: 1 + display_name: Diamond Pickaxe Rank 3 + lore: Diamond Pickaxe Rank 3 + outputs: + Diamond Pickaxe: + material: DIAMOND_PICKAXE + amount: 1 + display_name: Diamond Pickaxe Rank 4 + lore: Diamond Pickaxe Rank 4 + enchantments: + Efficiency: + type: DIG_SPEED + level: 4 + Unbreaking: + type: DURABILITY + level: 3 + DIAMOND_AXE_RANK_0: + name: Diamond Axe Forger Rank 0 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Iron Axe: + material: IRON_AXE + amount: 2 + display_name: Iron Axe Rank 4 + lore: Iron Axe Rank 4 + outputs: + Diamond Axe: + material: DIAMOND_AXE + amount: 1 + display_name: Diamond Axe Rank 0 + lore: Diamond Axe Rank 0 + DIAMOND_AXE_RANK_1: + name: Diamond Axe Forger Rank 1 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Diamond Axe: + material: DIAMOND_AXE + amount: 1 + display_name: Diamond Axe Rank 0 + lore: Diamond Axe Rank 0 + outputs: + Diamond Axe: + material: DIAMOND_AXE + amount: 1 + display_name: Diamond Axe Rank 1 + lore: Diamond Axe Rank 1 + enchantments: + Efficiency: + type: DIG_SPEED + level: 1 + DIAMOND_AXE_RANK_2: + name: Diamond Axe Forger Rank 2 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Diamond Axe: + material: DIAMOND_AXE + amount: 1 + display_name: Diamond Axe Rank 1 + lore: Diamond Axe Rank 1 + outputs: + Diamond Axe: + material: DIAMOND_AXE + amount: 1 + display_name: Diamond Axe Rank 2 + lore: Diamond Axe Rank 2 + enchantments: + Efficiency: + type: DIG_SPEED + level: 2 + Unbreaking: + type: DURABILITY + level: 1 + DIAMOND_AXE_RANK_3: + name: Diamond Axe Forger Rank 3 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Diamond Axe: + material: DIAMOND_AXE + amount: 1 + display_name: Diamond Axe Rank 2 + lore: Diamond Axe Rank 2 + outputs: + Diamond Axe: + material: DIAMOND_AXE + amount: 1 + display_name: Diamond Axe Rank 3 + lore: Diamond Axe Rank 3 + enchantments: + Efficiency: + type: DIG_SPEED + level: 3 + Unbreaking: + type: DURABILITY + level: 2 + DIAMOND_AXE_RANK_4: + name: Diamond Axe Forger Rank 4 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Diamond Axe: + material: DIAMOND_AXE + amount: 1 + display_name: Diamond Axe Rank 3 + lore: Diamond Axe Rank 3 + outputs: + Diamond Axe: + material: DIAMOND_AXE + amount: 1 + display_name: Diamond Axe Rank 4 + lore: Diamond Axe Rank 4 + enchantments: + Efficiency: + type: DIG_SPEED + level: 4 + Unbreaking: + type: DURABILITY + level: 3 + DIAMOND_SHOVEL_RANK_0: + name: Diamond Shovel Forger Rank 0 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Iron Shovel: + material: IRON_SHOVEL + amount: 2 + display_name: Iron Shovel Rank 4 + lore: Iron Shovel Rank 4 + outputs: + Diamond Shovel: + material: DIAMOND_SHOVEL + amount: 1 + display_name: Diamond Shovel Rank 0 + lore: Diamond Shovel Rank 0 + DIAMOND_SHOVEL_RANK_1: + name: Diamond Shovel Forger Rank 1 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Diamond Shovel: + material: DIAMOND_SHOVEL + amount: 1 + display_name: Diamond Shovel Rank 0 + lore: Diamond Shovel Rank 0 + outputs: + Diamond Shovel: + material: DIAMOND_SHOVEL + amount: 1 + display_name: Diamond Shovel Rank 1 + lore: Diamond Shovel Rank 1 + enchantments: + Efficiency: + type: DIG_SPEED + level: 1 + DIAMOND_SHOVEL_RANK_2: + name: Diamond Shovel Forger Rank 2 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Diamond Shovel: + material: DIAMOND_SHOVEL + amount: 1 + display_name: Diamond Shovel Rank 1 + lore: Diamond Shovel Rank 1 + outputs: + Diamond Shovel: + material: DIAMOND_SHOVEL + amount: 1 + display_name: Diamond Shovel Rank 2 + lore: Diamond Shovel Rank 2 + enchantments: + Efficiency: + type: DIG_SPEED + level: 2 + Unbreaking: + type: DURABILITY + level: 1 + DIAMOND_SHOVEL_RANK_3: + name: Diamond Shovel Forger Rank 3 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Diamond Shovel: + material: DIAMOND_SHOVEL + amount: 1 + display_name: Diamond Shovel Rank 2 + lore: Diamond Shovel Rank 2 + outputs: + Diamond Shovel: + material: DIAMOND_SHOVEL + amount: 1 + display_name: Diamond Shovel Rank 3 + lore: Diamond Shovel Rank 3 + enchantments: + Efficiency: + type: DIG_SPEED + level: 3 + Unbreaking: + type: DURABILITY + level: 2 + DIAMOND_SHOVEL_RANK_4: + name: Diamond Shovel Forger Rank 4 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Diamond Shovel: + material: DIAMOND_SHOVEL + amount: 1 + display_name: Diamond Shovel Rank 3 + lore: Diamond Shovel Rank 3 + outputs: + Diamond Shovel: + material: DIAMOND_SHOVEL + amount: 1 + display_name: Diamond Shovel Rank 4 + lore: Diamond Shovel Rank 4 + enchantments: + Efficiency: + type: DIG_SPEED + level: 4 + Unbreaking: + type: DURABILITY + level: 3 + DIAMOND_HOE_RANK_0: + name: Diamond Hoe Forger Rank 0 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Iron Hoe: + material: IRON_HOE + amount: 2 + display_name: Iron Hoe Rank 4 + lore: Iron Hoe Rank 4 + outputs: + Diamond Hoe: + material: DIAMOND_HOE + amount: 1 + display_name: Diamond Hoe Rank 0 + lore: Diamond Hoe Rank 0 + DIAMOND_HOE_RANK_1: + name: Diamond Hoe Forger Rank 1 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Diamond Hoe: + material: DIAMOND_HOE + amount: 1 + display_name: Diamond Hoe Rank 0 + lore: Diamond Hoe Rank 0 + outputs: + Diamond Hoe: + material: DIAMOND_HOE + amount: 1 + display_name: Diamond Hoe Rank 1 + lore: Diamond Hoe Rank 1 + enchantments: + Efficiency: + type: DIG_SPEED + level: 1 + DIAMOND_HOE_RANK_2: + name: Diamond Hoe Forger Rank 2 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Diamond Hoe: + material: DIAMOND_HOE + amount: 1 + display_name: Diamond Hoe Rank 1 + lore: Diamond Hoe Rank 1 + outputs: + Diamond Hoe: + material: DIAMOND_HOE + amount: 1 + display_name: Diamond Hoe Rank 2 + lore: Diamond Hoe Rank 2 + enchantments: + Efficiency: + type: DIG_SPEED + level: 2 + Unbreaking: + type: DURABILITY + level: 1 + DIAMOND_HOE_RANK_3: + name: Diamond Hoe Forger Rank 3 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Diamond Hoe: + material: DIAMOND_HOE + amount: 1 + display_name: Diamond Hoe Rank 2 + lore: Diamond Hoe Rank 2 + outputs: + Diamond Hoe: + material: DIAMOND_HOE + amount: 1 + display_name: Diamond Hoe Rank 3 + lore: Diamond Hoe Rank 3 + enchantments: + Efficiency: + type: DIG_SPEED + level: 3 + Unbreaking: + type: DURABILITY + level: 2 + DIAMOND_HOE_RANK_4: + name: Diamond Hoe Forger Rank 4 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Diamond Hoe: + material: DIAMOND_HOE + amount: 1 + display_name: Diamond Hoe Rank 3 + lore: Diamond Hoe Rank 3 + outputs: + Diamond Hoe: + material: DIAMOND_HOE + amount: 1 + display_name: Diamond Hoe Rank 4 + lore: Diamond Hoe Rank 4 + enchantments: + Efficiency: + type: DIG_SPEED + level: 4 + Unbreaking: + type: DURABILITY + level: 3 + From f795e5fdfca39d8738c9034e08a8ece0698c440c Mon Sep 17 00:00:00 2001 From: ribagi Date: Wed, 13 May 2015 17:22:44 -0700 Subject: [PATCH 51/52] Update config.yml --- config.yml | 4079 ---------------------------------------------------- 1 file changed, 4079 deletions(-) diff --git a/config.yml b/config.yml index f79f6382..d3f5a12f 100644 --- a/config.yml +++ b/config.yml @@ -1,4080 +1 @@ -#Example: production_general -# update_cycle: 20 the period of ticks between which factories are updated -# maintenance_cycle: 15 the period of ticks between which the maintenance of the factories are updated -# maintenance_rate: 1 %Modifies the rate at which factories degrade, higher numbers degrade the factories faster -#Example recipe entry with defaults included any section should be able to be excluded -# TITLE: (Don't use spaces, should be a unique identifier) -# name: Default Name (Displayed name to user) -# production_time: 1 (Time to produce the recipe) -# inputs: (only include if there are inputs) -# Common Name: -# material: MATERIAL_NAME (Official bukkit material name) -# amount: 1 (number of a particular item) -# durability: 0 (damage value, 0 represents max durability, negative represents greater than max) -# data: 0 (data value of the item stack -# display_name: (display name of the item, null by default) -# lore: (lore of the item, null by default) -# upgrades: (only include if there are inputs) -# Common Name: -# material: MATERIAL_NAME (Official bukkit material name) -# amount: 1 (number of a particular item) -# durability: 0 (damage value, 0 represents max durability, negative represents greater than max) -# data: 0 (data value of the item stack -# display_name: (display name of the item, null by default) -# lore: (lore of the item, null by default) -# outputs: (only include if there are outputs) -# Common Name: -# material: MATERIAL_NAME (Official bukkit material name) -# amount: 1 (number of a particular item) -# durability: 0 (damage value, 0 represents max durability, negative represents greater than max) -# data: 0 (data value of the item stack -# display_name: (display name of the item, null by default) -# lore: (lore of the item, null by default) -# enchantments: -# Common Name: -# type: (Offificial bukkit enchantment name, Require) -# level: 1 (level of the enchantment -# probability: 1 (0-1 probability of the enchantment being applied) -# output_recipes: -# - TITLE (TITLE of the output recipe) -# use_once: false (If this recipe is removed after its first use) -# maintenance: 0 (Maximum amount of maintence required for this recipe) -###################################################################### -#Example factory entry with defaults included any section should be able to be excluded -# TITLE: (Don't use spaces, should be a unique identifier) -# name: Default Name (Displayed name to user) -# fuel: (Defaults to charcoal if not present, only first entry used) -# Common Name: -# material: MATERIAL_NAME (Official bukkit material name) -# amount: 1 (number of a particular item) -# durability: 0 (damage value, 0 represents max durability, negative represents greater than max) -# data: 0 (data value of the item stack -# display_name: (display name of the item, null by default) -# lore: (lore of the item, null by default)# -# lore: (lore of the item, null by default)# fuel_time: 1 (Time that a piece of fuel lasts) -# fuel_time: 1 (Time which fuel lasts) -# inputs: (required) -# Common Name: -# material: MATERIAL_NAME (Official bukkit material name) -# amount: 1 (number of a particular item) -# durability: 0 (damage value, 0 represents max durability, negative represents greater than max) -# data: 0 (data value of the item stack -# display_name: (display name of the item, null by default) -# lore: (lore of the item, null by default) -# production_recipes: -# - TITLE (title of recipe) -# repair_material: (Defaults to coal if none are present) -# Common Name: -# material: MATERIAL_NAME (Official bukkit material name) -# amount: 1 (number of a particular item) -# durability: 0 (damage value, 0 represents max durability, negative represents greater than max) -# data: 0 (data value of the item stack -# display_name: (display name of the item, null by default) -# lore: (lore of the item, null by default) -copy_defaults: false -general: - central_block: WORKBENCH - save_cycle: 15 - return_build_materials: false - citadel_enabled: true - factory_interaction_material: STICK - disable_experience: true -production_general: - update_cycle: 20 - repair_period: 28 - disrepair_period: 14 -printing_presses: - fuel: - Charcoal: - material: 'COAL' - durability: 1 - fuel_time: 5 - costs: - construction: - "Iron block": - material: 'IRON_BLOCK' - amount: 60 - "Redstone": - material: REDSTONE - amount: 256 - "Quartz": - material: QUARTZ - amount: 64 - "Piston": - material: PISTON_BASE - amount: 20 - "Gold plate": - material: GOLD_PLATE - amount: 20 - plates: - "Iron ingot": - material: 'IRON_INGOT' - amount: 1 - "Gold nugget": - material: "GOLD_NUGGET" - amount: 1 - set_page_time: 5 - repair: - "Iron block": - material: 'IRON_BLOCK' - amount: 1 - repair_multiple: 5 - binding: # Each - Leather: - material: 'LEATHER' - amount: 1 - page_lot: - Paper: - material: 'PAPER' - amount: 4 - Ink: - material: 'INK_SACK' - durability: 0 - amount: 1 - pages_per_lot: 32 - page_lead: 6 - pamphlet_lot: - Paper: - material: 'PAPER' - amount: 4 - Ink: - material: 'INK_SACK' - durability: 0 - amount: 1 - pamphlets_per_lot: 32 - security_lot: - "Gold nuggets": - material: 'GOLD_NUGGET' - amount: 1 - "Cactus green": - material: 'INK_SACK' - durability: 2 - amount: 6 - security_notes_per_lot: 128 -crafting: - disable: - enable: - XP to Emerald: - inputs: - Exp Bottle: - material: EXP_BOTTLE - amount: 9 - output: - Emerald: - material: EMERALD - Emerald to XP: - inputs: - Emerald: - material: EMERALD - output: - Exp Bottle: - material: EXP_BOTTLE - amount: 9 - Stone to Double Slab: - inputs: - s: - Stone: - material: STONE - shape: - - sss - - sss - output: - Double Stone Slab: - material: DOUBLE_STEP - Slab to Double Slab: - inputs: - s: - Stone Slab: - material: STEP - shape: - - s - - s - output: - Double Stone Slab: - material: DOUBLE_STEP -production_factories: - Stone_Imbuer: - fuel: - Charcoal: - material: COAL - durability: 1 - inputs: - Cobblestone: - material: COBBLESTONE - amount: 512 - recipes: - - Smelt_Stone - - Stone_Knife - - Blast_Furnace - - Burn_Lump_Charcoal_Dark_Oak - - Burn_Lump_Charcoal_Acacia - - Burn_Lump_Charcoal_Jungle - - Burn_Lump_Charcoal_Birch - - Burn_Lump_Charcoal_Spruce - - Burn_Lump_Charcoal_Oak - repair_multiple: 205 - repair_inputs: - Cobblestone: - material: COBBLESTONE - amount: 6 - Iron_Imbuer: - fuel: - Lump Charcoal: - material: COAL - durability: 1 - lore: Lump Charcoal - inputs: - Iron: - material: IRON - amount: 512 - recipes: - - Smelt_Iron - - Iron_hammer - - Faceting machine - - Burn_Briquette_Dark_Oak - - Burn_Briquette_Acacia - - Burn_Briquette_Jungle - - Burn_Briquette_Birch - - Burn_Briquette_Spruce - - Burn_Briquette_Oak - repair_multiple: 205 - repair_inputs: - Iron: - material: IRON - amount: 6 - Diamond_Imbuer: - fuel: - Briquette: - material: COAL - durability: 1 - lore: Briquette - inputs: - Diamond: - material: DIAMOND - amount: 512 - recipes: - - Smelt_Diamond_Ore - - Diamond_Drill_Heads - - Faceting_Machine - - Burn_White_Charcoal_Dark_Oak - - Burn_White_Charcoal_Acacia - - Burn_White_Charcoal_Jungle - - Burn_White_Charcoal_Birch - - Burn_White_Charcoal_Spruce - - Burn_White_Charcoal_Oak - - OBSIDIAN_GENERATOR - repair_multiple: 205 - repair_inputs: - Diamond: - material: DIAMOND - amount: 6 - Leather_Tanner: - fuel: - Lump Charcoal: - material: COAL - durability: 1 - lore: Lump Charcoal - inputs: - Stone knife: - material: FLINT - amount: 12 - lore: Stone knife - recipes: - - LEATHER_BOOTS_RANK_0 - - LEATHER_BOOTS_RANK_1 - - LEATHER_BOOTS_RANK_2 - - LEATHER_BOOTS_RANK_3 - - LEATHER_BOOTS_RANK_4 - - LEATHER_CHESTPLATE_RANK_0 - - LEATHER_CHESTPLATE_RANK_1 - - LEATHER_CHESTPLATE_RANK_2 - - LEATHER_CHESTPLATE_RANK_3 - - LEATHER_CHESTPLATE_RANK_4 - - LEATHER_HELMET_RANK_0 - - LEATHER_HELMET_RANK_1 - - LEATHER_HELMET_RANK_2 - - LEATHER_HELMET_RANK_3 - - LEATHER_HELMET_RANK_4 - - LEATHER_LEGGINGS_RANK_0 - - LEATHER_LEGGINGS_RANK_1 - - LEATHER_LEGGINGS_RANK_2 - - LEATHER_LEGGINGS_RANK_3 - - LEATHER_LEGGINGS_RANK_4 - repair_multiple: 26 - repair_inputs: - Stone knife: - material: FLINT - amount: 2 - lore: Stone knife - Iron_Refiner: - fuel: - Briquette: - material: COAL - durability: 1 - lore: Briquette - inputs: - Blast furnace: - material: CLAY_BRICK - amount: 16 - lore: Blast furnace - Iron hammer: - material: BONE - amount: 16 - lore: Iron hammer - recipes: - - IRON_BOOTS_RANK_0 - - IRON_BOOTS_RANK_1 - - IRON_BOOTS_RANK_2 - - IRON_BOOTS_RANK_3 - - IRON_BOOTS_RANK_4 - - IRON_CHESTPLATE_RANK_0 - - IRON_CHESTPLATE_RANK_1 - - IRON_CHESTPLATE_RANK_2 - - IRON_CHESTPLATE_RANK_3 - - IRON_CHESTPLATE_RANK_4 - - IRON_HELMET_RANK_0 - - IRON_HELMET_RANK_1 - - IRON_HELMET_RANK_2 - - IRON_HELMET_RANK_3 - - IRON_HELMET_RANK_4 - - IRON_LEGGINGS_RANK_0 - - IRON_LEGGINGS_RANK_1 - - IRON_LEGGINGS_RANK_2 - - IRON_LEGGINGS_RANK_3 - - IRON_LEGGINGS_RANK_4 - repair_multiple: 26 - repair_inputs: - Blast furnace: - material: CLAY_BRICK - amount: 4 - lore: Blast furnace - Diamond_Cutter: - fuel: - White Charcoal: - material: COAL - durability: 1 - lore: White Charcoal - inputs: - Faceting machine: - material: WATCH - amount: 32 - lore: Faceting machine - Diamond drill heads: - material: DIAMOND - amount: 16 - lore: Diamond drill heads - recipes: - - DIAMOND_BOOTS_RANK_0 - - DIAMOND_BOOTS_RANK_1 - - DIAMOND_BOOTS_RANK_2 - - DIAMOND_BOOTS_RANK_3 - - DIAMOND_BOOTS_RANK_4 - - DIAMOND_CHESTPLATE_RANK_0 - - DIAMOND_CHESTPLATE_RANK_1 - - DIAMOND_CHESTPLATE_RANK_2 - - DIAMOND_CHESTPLATE_RANK_3 - - DIAMOND_CHESTPLATE_RANK_4 - - DIAMOND_HELMET_RANK_0 - - DIAMOND_HELMET_RANK_1 - - DIAMOND_HELMET_RANK_2 - - DIAMOND_HELMET_RANK_3 - - DIAMOND_HELMET_RANK_4 - - DIAMOND_LEGGINGS_RANK_0 - - DIAMOND_LEGGINGS_RANK_1 - - DIAMOND_LEGGINGS_RANK_2 - - DIAMOND_LEGGINGS_RANK_3 - - DIAMOND_LEGGINGS_RANK_4 - repair_multiple: 26 - repair_inputs: - Faceting machine: - material: WATCH - amount: 8 - lore: Faceting machine - Stone_Grinder: - fuel: - Lump Charcoal: - material: COAL - durability: 1 - lore: Limp Charcoal - inputs: - Stone knife: - material: FLINT - lore: Stone knife - amount: 12 - recipes: - - STONE_SWORD_RANK_0 - - STONE_SWORD_RANK_1 - - STONE_SWORD_RANK_2 - - STONE_SWORD_RANK_3 - - STONE_SWORD_RANK_4 - repair_multiple: 26 - repair_inputs: - Stone knife: - material: FLINT - amount: 2 - lore: Stone knife - Iron_Forger: - fuel: - Briquette: - material: COAL - durability: 1 - lore: Briquette - inputs: - Blast furnace: - material: CLAY_BRICK - lore: Blast furnace - amount: 16 - Iron hammer: - material: BONE - amount: 16 - lore: Iron hammer - recipes: - - IRON_SWORD_RANK_0 - - IRON_SWORD_RANK_1 - - IRON_SWORD_RANK_2 - - IRON_SWORD_RANK_3 - - IRON_SWORD_RANK_4 - repair_multiple: 26 - repair_inputs: - Blast furnace: - material: CLAY_BRICK - amount: 4 - lore: Blast furnace - Diamond_Polisher: - fuel: - White Charcoal: - material: COAL - durability: 1 - lore: White Charcoal - inputs: - Faceting machine: - material: WATCH - lore: Faceting machine - amount: 32 - Diamond drill heads: - material: DIAMOND - amount: 16 - lore: Diamond drill heads - recipes: - - DIAMOND_SWORD_RANK_0 - - DIAMOND_SWORD_RANK_1 - - DIAMOND_SWORD_RANK_2 - - DIAMOND_SWORD_RANK_3 - - DIAMOND_SWORD_RANK_4 - repair_multiple: 26 - repair_inputs: - Faceting machine: - material: WATCH - amount: 8 - lore: Faceting machine - Stone_Anvil: - fuel: - Charcoal: - material: COAL - durability: 1 - inputs: - Stone knife: - material: FLINT - lore: Stone knife - amount: 12 - recipes: - - STONE_PICKAXE_RANK_0 - - STONE_PICKAXE_RANK_1 - - STONE_PICKAXE_RANK_2 - - STONE_PICKAXE_RANK_3 - - STONE_PICKAXE_RANK_4 - - STONE_AXE_RANK_0 - - STONE_AXE_RANK_1 - - STONE_AXE_RANK_2 - - STONE_AXE_RANK_3 - - STONE_AXE_RANK_4 - - STONE_SHOVEL_RANK_0 - - STONE_SHOVEL_RANK_1 - - STONE_SHOVEL_RANK_2 - - STONE_SHOVEL_RANK_3 - - STONE_SHOVEL_RANK_4 - - STONE_HOE_RANK_0 - - STONE_HOE_RANK_1 - - STONE_HOE_RANK_2 - - STONE_HOE_RANK_3 - - STONE_HOE_RANK_4 - repair_multiple: 26 - repair_inputs: - Stone knife: - material: FLINT - amount: 2 - lore: Stone knife - Iron_Anvil: - fuel: - Charcoal: - material: COAL - durability: 1 - inputs: - Blast furnace: - material: CLAY_BRICK - lore: Blast furnace - amount: 16 - recipes: - - IRON_PICKAXE_RANK_0 - - IRON_PICKAXE_RANK_1 - - IRON_PICKAXE_RANK_2 - - IRON_PICKAXE_RANK_3 - - IRON_PICKAXE_RANK_4 - - IRON_AXE_RANK_0 - - IRON_AXE_RANK_1 - - IRON_AXE_RANK_2 - - IRON_AXE_RANK_3 - - IRON_AXE_RANK_4 - - IRON_SHOVEL_RANK_0 - - IRON_SHOVEL_RANK_1 - - IRON_SHOVEL_RANK_2 - - IRON_SHOVEL_RANK_3 - - IRON_SHOVEL_RANK_4 - - IRON_HOE_RANK_0 - - IRON_HOE_RANK_1 - - IRON_HOE_RANK_2 - - IRON_HOE_RANK_3 - - IRON_HOE_RANK_4 - repair_multiple: 26 - repair_inputs: - Blast furnace: - material: CLAY_BRICK - amount: 4 - lore: Blast furnace - Diamond_Anvil: - fuel: - Charcoal: - material: COAL - durability: 1 - inputs: - Faceting machine: - material: WATCH - lore: Faceting machine - amount: 32 - Iron hammer: - material: IRONE_HOE - lore: Iron hammer - amount: 6 - recipes: - - DIAMOND_PICKAXE_RANK_0 - - DIAMOND_PICKAXE_RANK_1 - - DIAMOND_PICKAXE_RANK_2 - - DIAMOND_PICKAXE_RANK_3 - - DIAMOND_PICKAXE_RANK_4 - - DIAMOND_AXE_RANK_0 - - DIAMOND_AXE_RANK_1 - - DIAMOND_AXE_RANK_2 - - DIAMOND_AXE_RANK_3 - - DIAMOND_AXE_RANK_4 - - DIAMOND_SHOVEL_RANK_0 - - DIAMOND_SHOVEL_RANK_1 - - DIAMOND_SHOVEL_RANK_2 - - DIAMOND_SHOVEL_RANK_3 - - DIAMOND_SHOVEL_RANK_4 - - DIAMOND_HOE_RANK_0 - - DIAMOND_HOE_RANK_1 - - DIAMOND_HOE_RANK_2 - - DIAMOND_HOE_RANK_3 - - DIAMOND_HOE_RANK_4 - repair_multiple: 26 - repair_inputs: - Faceting machine: - material: WATCH - amount: 8 - lore: Faceting machine - Aspect_Factory: - name: Arcane Elementizer - fuel: - Charcoal: - material: COAL - durability: 1 - inputs: - Netherbrick: - material: NETHER_BRICK - amount: 1536 - Redstone: - material: REDSTONE - amount: 1152 - Netherquartz: - material: QUARTZ - amount: 576 - recipes: - - Forge_Aspect_of_Terra - - Forge_Aspect_of_End - - Forge_Aspect_of_Nether - - Craft_Eye_of_Ender - repair_multiple: 26 - repair_inputs: - Nether Brick: - material: NETHER_BRICK - amount: 6 - Redstone: - material: REDSTONE - amount: 5 - Netherquartz: - material: QUARTZ - amount: 2 -nether_factory: - name: Nether Factory - fuel: - Charcoal: - material: COAL - durability: 1 - costs: - construction: - Aspect of Nether: - material: MAGMA_CREAM - amount: 8 - display_name: Aspect of Nether - lore: A concentrated essence of the Nether - Aspect of Terra: - material: DIAMOND - amount: 8 - display_name: Aspect of Terra - lore: A concentrated essence of Terra - Aspect of END: - material: FLINT - amount: 8 - display_name: Aspect of End - lore: A concentrated essence of the End - repair: - Diamond block: - material: DIAMOND_BLOCK - amount: 1 - repair_multiple: 1 - fuel_time: 10 - repair_time: 12 - scaling_radius: 5000 - cost_scaling_radius: 5000 - use_fuel_on_teleport: false -production_recipes: - Forge_Aspect_of_Terra: - name: Forge Aspect of Terra - production_time: 64 - inputs: - Emerald Block: - material: EMERALD_BLOCK - amount: 24 - Diamond Block: - material: DIAMOND_BLOCK - amount: 24 - Gold Ore: - material: GOLD_ORE - amount: 8 - Slime Ball: - material: SLIME_BALL - amount: 8 - Anvil: - material: ANVIL - amount: 8 - outputs: - Aspect of Terra: - material: DIAMOND - amount: 1 - display_name: Aspect of Terra - lore: A concentrated essence of Terra - Forge_Aspect_of_End: - name: Forge Aspect of End - production_time: 64 - inputs: - Ender Pearl: - material: ENDER_PEARL - amount: 256 - Ender Chest: - material: ENDER_CHEST - amount: 256 - Endstone: - material: ENDER_STONE - amount: 1024 - outputs: - Aspect of End: - material: FLINT - amount: 1 - display_name: Aspect of End - lore: A concentrated essence of the End - Smelt_Stone: - name: Smelt Stone - production_time: 16 - inputs: - Cobblestone: - material: COBBLESTONE - amount: 256 - outputs: - Stone: - material: Stone - amount: 512 - Smelt_Iron: - name: Smelt Iron - production_time: 16 - inputs: - Iron Ore: - material: IRON_ORE - amount: 64 - outputs: - Iron: - material: IRON - amount: 128 - Smelt_Diamond_Ore: - name: Smelt Diamond Ore - production_time: 16 - inputs: - Diamond Ore: - material: DIAMOND_ORE - amount: 16 - outputs: - Diamond: - material: DIAMOND - amount: 48 - - Burn_Lump_Charcoal_Oak: - name: Smelt Stone - production_time: 16 - inputs: - Oak Wood: - material: LOG - amount: 256 - outputs: - Lump Charcoal: - material: COAL - durability: 1 - lore: Lump Charcoal - amount: 512 - Burn_Lump_Charcoal_Spruce: - name: Smelt Stone - production_time: 16 - inputs: - Spruce Wood: - material: LOG - amount: 256 - durability: 1 - outputs: - Lump Charcoal: - material: COAL - durability: 1 - lore: Lump Charcoal - amount: 512 - Burn_Lump_Charcoal_Birch: - name: Smelt Stone - production_time: 16 - inputs: - Birch Wood: - material: LOG - amount: 256 - durability: 2 - outputs: - Charcoal: - material: COAL - amount: 512 - durability: 1 - Burn_Lump_Charcoal_Jungle: - name: Smelt Stone - production_time: 16 - inputs: - Jungle Wood: - material: LOG - amount: 256 - durability: 3 - outputs: - Lump Charcoal: - material: COAL - durability: 1 - lore: Lump Charcoal - amount: 512 - Burn_Lump_Charcoal_Acacia: - name: Smelt Stone - production_time: 16 - inputs: - Acacia Wood: - material: LOG_2 - amount: 256 - outputs: - Charcoal: - material: COAL - amount: 512 - durability: 1 - Burn_Lump_Charcoal_Dark_Oak: - name: Smelt Stone - production_time: 16 - inputs: - Dark Oak Wood: - material: LOG_2 - amount: 256 - durability: 1 - outputs: - Lump Charcoal: - material: COAL - durability: 1 - lore: Lump Charcoal - amount: 512 - Burn_Briquette_Oak: - name: Smelt Stone - production_time: 16 - inputs: - Oak Wood: - material: LOG - amount: 256 - outputs: - Briquette: - material: COAL - durability: 1 - lore: Briquette - amount: 512 - Burn_Briquette_Spruce: - name: Smelt Stone - production_time: 16 - inputs: - Spruce Wood: - material: LOG - amount: 256 - durability: 1 - outputs: - Briquette: - material: COAL - durability: 1 - lore: Briquette - amount: 512 - Burn_Briquette_Birch: - name: Smelt Stone - production_time: 16 - inputs: - Birch Wood: - material: LOG - amount: 256 - durability: 2 - outputs: - Charcoal: - material: COAL - amount: 512 - durability: 1 - Burn_Briquette_Jungle: - name: Smelt Stone - production_time: 16 - inputs: - Jungle Wood: - material: LOG - amount: 256 - durability: 3 - outputs: - Briquette: - material: COAL - durability: 1 - lore: Briquette - amount: 512 - Burn_Briquette_Acacia: - name: Smelt Stone - production_time: 16 - inputs: - Acacia Wood: - material: LOG_2 - amount: 256 - outputs: - Charcoal: - material: COAL - amount: 512 - durability: 1 - Burn_Briquette_Dark_Oak: - name: Smelt Stone - production_time: 16 - inputs: - Dark Oak Wood: - material: LOG_2 - amount: 256 - durability: 1 - outputs: - Briquette: - material: COAL - durability: 1 - lore: Briquette - amount: 512 - Burn_White_Charcoal_Oak: - name: Smelt Stone - production_time: 16 - inputs: - Oak Wood: - material: LOG - amount: 256 - outputs: - White Charcoal: - material: COAL - durability: 1 - lore: White Charcoal - amount: 512 - Burn_White_Charcoal_Spruce: - name: Smelt Stone - production_time: 16 - inputs: - Spruce Wood: - material: LOG - amount: 256 - durability: 1 - outputs: - White Charcoal: - material: COAL - durability: 1 - lore: White Charcoal - amount: 512 - Burn_White_Charcoal_Birch: - name: Smelt Stone - production_time: 16 - inputs: - Birch Wood: - material: LOG - amount: 256 - durability: 2 - outputs: - Charcoal: - material: COAL - amount: 512 - durability: 1 - Burn_White_Charcoal_Jungle: - name: Smelt Stone - production_time: 16 - inputs: - Jungle Wood: - material: LOG - amount: 256 - durability: 3 - outputs: - White Charcoal: - material: COAL - durability: 1 - lore: White Charcoal - amount: 512 - Burn_White_Charcoal_Acacia: - name: Smelt Stone - production_time: 16 - inputs: - Acacia Wood: - material: LOG_2 - amount: 256 - outputs: - Charcoal: - material: COAL - amount: 512 - durability: 1 - Burn_White_Charcoal_Dark_Oak: - name: Smelt Stone - production_time: 16 - inputs: - Dark Oak Wood: - material: LOG_2 - amount: 256 - durability: 1 - outputs: - White Charcoal: - material: COAL - durability: 1 - lore: White Charcoal - amount: 512 - LEATHER_BOOTS_RANK_0: - name: Leather Boots Forger Rank 0 - production_time: 360 - inputs: - Leather: - material: LEATHER - amount: 32 - outputs: - Leather Boots: - material: LEATHER_BOOTS - amount: 1 - display_name: Leather Boots Rank 0 - lore: Leather Boots Rank 0 - LEATHER_BOOTS_RANK_1: - name: Leather Boots Forger Rank 1 - production_time: 360 - inputs: - Leather: - material: LEATHER - amount: 32 - Leather Boots: - material: LEATHER_BOOTS - amount: 1 - display_name: Leather Boots Rank 0 - lore: Leather Boots Rank 0 - outputs: - Leather Boots: - material: LEATHER_BOOTS - amount: 1 - display_name: Leather Boots Rank 1 - lore: Leather Boots Rank 1 - enchantments: - Protection: - type: PROTECTION_ENVIRONMENTAL - level: 1 - LEATHER_BOOTS_RANK_2: - name: Leather Boots Forger Rank 2 - production_time: 360 - inputs: - Leather: - material: LEATHER - amount: 32 - Leather Boots: - material: LEATHER_BOOTS - amount: 1 - display_name: Leather Boots Rank 1 - lore: Leather Boots Rank 1 - outputs: - Leather Boots: - material: LEATHER_BOOTS - amount: 1 - display_name: Leather Boots Rank 2 - lore: Leather Boots Rank 2 - enchantments: - Protection: - type: PROTECTION_ENVIRONMENTAL - level: 2 - Unbreaking: - type: DURABILITY - level: 1 - LEATHER_BOOTS_RANK_3: - name: Leather Boots Forger Rank 3 - production_time: 360 - inputs: - Leather: - material: LEATHER - amount: 32 - Leather Boots: - material: LEATHER_BOOTS - amount: 1 - display_name: Leather Boots Rank 2 - lore: Leather Boots Rank 2 - outputs: - Leather Boots: - material: LEATHER_BOOTS - amount: 1 - display_name: Leather Boots Rank 3 - lore: Leather Boots Rank 3 - enchantments: - Protection: - type: PROTECTION_ENVIRONMENTAL - level: 3 - Unbreaking: - type: DURABILITY - level: 2 - LEATHER_BOOTS_RANK_4: - name: Leather Boots Forger Rank 4 - production_time: 360 - inputs: - Leather: - material: LEATHER - amount: 32 - Leather Boots: - material: LEATHER_BOOTS - amount: 1 - display_name: Leather Boots Rank 3 - lore: Leather Boots Rank 3 - outputs: - Leather Boots: - material: LEATHER_BOOTS - amount: 1 - display_name: Leather Boots Rank 4 - lore: Leather Boots Rank 4 - enchantments: - Protection: - type: PROTECTION_ENVIRONMENTAL - level: 4 - Unbreaking: - type: DURABILITY - level: 3 - LEATHER_CHESTPLATE_RANK_0: - name: Leather Chestplate Forger Rank 0 - production_time: 360 - inputs: - Leather: - material: LEATHER - amount: 32 - outputs: - Leather Chestplate: - material: LEATHER_CHESTPLATE - amount: 1 - display_name: Leather Chestplate Rank 0 - lore: Leather Chestplate Rank 0 - LEATHER_CHESTPLATE_RANK_1: - name: Leather Chestplate Forger Rank 1 - production_time: 360 - inputs: - Leather: - material: LEATHER - amount: 32 - Leather Chestplate: - material: LEATHER_CHESTPLATE - amount: 1 - display_name: Leather Chestplate Rank 0 - lore: Leather Chestplate Rank 0 - outputs: - Leather Chestplate: - material: LEATHER_CHESTPLATE - amount: 1 - display_name: Leather Chestplate Rank 1 - lore: Leather Chestplate Rank 1 - enchantments: - Protection: - type: PROTECTION_ENVIRONMENTAL - level: 1 - LEATHER_CHESTPLATE_RANK_2: - name: Leather Chestplate Forger Rank 2 - production_time: 360 - inputs: - Leather: - material: LEATHER - amount: 32 - Leather Chestplate: - material: LEATHER_CHESTPLATE - amount: 1 - display_name: Leather Chestplate Rank 1 - lore: Leather Chestplate Rank 1 - outputs: - Leather Chestplate: - material: LEATHER_CHESTPLATE - amount: 1 - display_name: Leather Chestplate Rank 2 - lore: Leather Chestplate Rank 2 - enchantments: - Protection: - type: PROTECTION_ENVIRONMENTAL - level: 2 - Unbreaking: - type: DURABILITY - level: 1 - LEATHER_CHESTPLATE_RANK_3: - name: Leather Chestplate Forger Rank 3 - production_time: 360 - inputs: - Leather: - material: LEATHER - amount: 32 - Leather Chestplate: - material: LEATHER_CHESTPLATE - amount: 1 - display_name: Leather Chestplate Rank 2 - lore: Leather Chestplate Rank 2 - outputs: - Leather Chestplate: - material: LEATHER_CHESTPLATE - amount: 1 - display_name: Leather Chestplate Rank 3 - lore: Leather Chestplate Rank 3 - enchantments: - Protection: - type: PROTECTION_ENVIRONMENTAL - level: 3 - Unbreaking: - type: DURABILITY - level: 2 - LEATHER_CHESTPLATE_RANK_4: - name: Leather Chestplate Forger Rank 4 - production_time: 360 - inputs: - Leather: - material: LEATHER - amount: 32 - Leather Chestplate: - material: LEATHER_CHESTPLATE - amount: 1 - display_name: Leather Chestplate Rank 3 - lore: Leather Chestplate Rank 3 - outputs: - Leather Chestplate: - material: LEATHER_CHESTPLATE - amount: 1 - display_name: Leather Chestplate Rank 4 - lore: Leather Chestplate Rank 4 - enchantments: - Protection: - type: PROTECTION_ENVIRONMENTAL - level: 4 - Unbreaking: - type: DURABILITY - level: 3 - LEATHER_HELMET_RANK_0: - name: Leather Helmet Forger Rank 0 - production_time: 360 - inputs: - Leather: - material: LEATHER - amount: 32 - outputs: - Leather Helmet: - material: LEATHER_HELMET - amount: 1 - display_name: Leather Helmet Rank 0 - lore: Leather Helmet Rank 0 - LEATHER_HELMET_RANK_1: - name: Leather Helmet Forger Rank 1 - production_time: 360 - inputs: - Leather: - material: LEATHER - amount: 32 - Leather Helmet: - material: LEATHER_HELMET - amount: 1 - display_name: Leather Helmet Rank 0 - lore: Leather Helmet Rank 0 - outputs: - Leather Helmet: - material: LEATHER_HELMET - amount: 1 - display_name: Leather Helmet Rank 1 - lore: Leather Helmet Rank 1 - enchantments: - Protection: - type: PROTECTION_ENVIRONMENTAL - level: 1 - LEATHER_HELMET_RANK_2: - name: Leather Helmet Forger Rank 2 - production_time: 360 - inputs: - Leather: - material: LEATHER - amount: 32 - Leather Helmet: - material: LEATHER_HELMET - amount: 1 - display_name: Leather Helmet Rank 1 - lore: Leather Helmet Rank 1 - outputs: - Leather Helmet: - material: LEATHER_HELMET - amount: 1 - display_name: Leather Helmet Rank 2 - lore: Leather Helmet Rank 2 - enchantments: - Protection: - type: PROTECTION_ENVIRONMENTAL - level: 2 - Unbreaking: - type: DURABILITY - level: 1 - LEATHER_HELMET_RANK_3: - name: Leather Helmet Forger Rank 3 - production_time: 360 - inputs: - Leather: - material: LEATHER - amount: 32 - Leather Helmet: - material: LEATHER_HELMET - amount: 1 - display_name: Leather Helmet Rank 2 - lore: Leather Helmet Rank 2 - outputs: - Leather Helmet: - material: LEATHER_HELMET - amount: 1 - display_name: Leather Helmet Rank 3 - lore: Leather Helmet Rank 3 - enchantments: - Protection: - type: PROTECTION_ENVIRONMENTAL - level: 3 - Unbreaking: - type: DURABILITY - level: 2 - LEATHER_HELMET_RANK_4: - name: Leather Helmet Forger Rank 4 - production_time: 360 - inputs: - Leather: - material: LEATHER - amount: 32 - Leather Helmet: - material: LEATHER_HELMET - amount: 1 - display_name: Leather Helmet Rank 3 - lore: Leather Helmet Rank 3 - outputs: - Leather Helmet: - material: LEATHER_HELMET - amount: 1 - display_name: Leather Helmet Rank 4 - lore: Leather Helmet Rank 4 - enchantments: - Protection: - type: PROTECTION_ENVIRONMENTAL - level: 4 - Unbreaking: - type: DURABILITY - level: 3 - LEATHER_LEGGINGS_RANK_0: - name: Leather Leggings Forger Rank 0 - production_time: 360 - inputs: - Leather: - material: LEATHER - amount: 32 - outputs: - Leather Leggings: - material: LEATHER_LEGGINGS - amount: 1 - display_name: Leather Leggings Rank 0 - lore: Leather Leggings Rank 0 - LEATHER_LEGGINGS_RANK_1: - name: Leather Leggings Forger Rank 1 - production_time: 360 - inputs: - Leather: - material: LEATHER - amount: 32 - Leather Leggings: - material: LEATHER_LEGGINGS - amount: 1 - display_name: Leather Leggings Rank 0 - lore: Leather Leggings Rank 0 - outputs: - Leather Leggings: - material: LEATHER_LEGGINGS - amount: 1 - display_name: Leather Leggings Rank 1 - lore: Leather Leggings Rank 1 - enchantments: - Protection: - type: PROTECTION_ENVIRONMENTAL - level: 1 - LEATHER_LEGGINGS_RANK_2: - name: Leather Leggings Forger Rank 2 - production_time: 360 - inputs: - Leather: - material: LEATHER - amount: 32 - Leather Leggings: - material: LEATHER_LEGGINGS - amount: 1 - display_name: Leather Leggings Rank 1 - lore: Leather Leggings Rank 1 - outputs: - Leather Leggings: - material: LEATHER_LEGGINGS - amount: 1 - display_name: Leather Leggings Rank 2 - lore: Leather Leggings Rank 2 - enchantments: - Protection: - type: PROTECTION_ENVIRONMENTAL - level: 2 - Unbreaking: - type: DURABILITY - level: 1 - LEATHER_LEGGINGS_RANK_3: - name: Leather Leggings Forger Rank 3 - production_time: 360 - inputs: - Leather: - material: LEATHER - amount: 32 - Leather Leggings: - material: LEATHER_LEGGINGS - amount: 1 - display_name: Leather Leggings Rank 2 - lore: Leather Leggings Rank 2 - outputs: - Leather Leggings: - material: LEATHER_LEGGINGS - amount: 1 - display_name: Leather Leggings Rank 3 - lore: Leather Leggings Rank 3 - enchantments: - Protection: - type: PROTECTION_ENVIRONMENTAL - level: 3 - Unbreaking: - type: DURABILITY - level: 2 - LEATHER_LEGGINGS_RANK_4: - name: Leather Leggings Forger Rank 4 - production_time: 360 - inputs: - Leather: - material: LEATHER - amount: 32 - Leather Leggings: - material: LEATHER_LEGGINGS - amount: 1 - display_name: Leather Leggings Rank 3 - lore: Leather Leggings Rank 3 - outputs: - Leather Leggings: - material: LEATHER_LEGGINGS - amount: 1 - display_name: Leather Leggings Rank 4 - lore: Leather Leggings Rank 4 - enchantments: - Protection: - type: PROTECTION_ENVIRONMENTAL - level: 4 - Unbreaking: - type: DURABILITY - level: 3 - IRON_BOOTS_RANK_0: - name: Iron Boots Forger Rank 0 - production_time: 360 - inputs: - Iron: - material: IRON - amount: 32 - Leather Boots: - material: LEATHER_BOOTS - amount: 2 - display_name: Leather Boots Rank 4 - lore: Leather Boots Rank 4 - outputs: - Iron Boots: - material: IRON_BOOTS - amount: 1 - display_name: Iron Boots Rank 0 - lore: Iron Boots Rank 0 - IRON_BOOTS_RANK_1: - name: Iron Boots Forger Rank 1 - production_time: 360 - inputs: - Iron: - material: IRON - amount: 32 - Iron Boots: - material: IRON_BOOTS - amount: 1 - display_name: Iron Boots Rank 0 - lore: Iron Boots Rank 0 - outputs: - Iron Boots: - material: IRON_BOOTS - amount: 1 - display_name: Iron Boots Rank 1 - lore: Iron Boots Rank 1 - enchantments: - Protection: - type: PROTECTION_ENVIRONMENTAL - level: 1 - IRON_BOOTS_RANK_2: - name: Iron Boots Forger Rank 2 - production_time: 360 - inputs: - Iron: - material: IRON - amount: 32 - Iron Boots: - material: IRON_BOOTS - amount: 1 - display_name: Iron Boots Rank 1 - lore: Iron Boots Rank 1 - outputs: - Iron Boots: - material: IRON_BOOTS - amount: 1 - display_name: Iron Boots Rank 2 - lore: Iron Boots Rank 2 - enchantments: - Protection: - type: PROTECTION_ENVIRONMENTAL - level: 2 - Unbreaking: - type: DURABILITY - level: 1 - IRON_BOOTS_RANK_3: - name: Iron Boots Forger Rank 3 - production_time: 360 - inputs: - Iron: - material: IRON - amount: 32 - Iron Boots: - material: IRON_BOOTS - amount: 1 - display_name: Iron Boots Rank 2 - lore: Iron Boots Rank 2 - outputs: - Iron Boots: - material: IRON_BOOTS - amount: 1 - display_name: Iron Boots Rank 3 - lore: Iron Boots Rank 3 - enchantments: - Protection: - type: PROTECTION_ENVIRONMENTAL - level: 3 - Unbreaking: - type: DURABILITY - level: 2 - IRON_BOOTS_RANK_4: - name: Iron Boots Forger Rank 4 - production_time: 360 - inputs: - Iron: - material: IRON - amount: 32 - Iron Boots: - material: IRON_BOOTS - amount: 1 - display_name: Iron Boots Rank 3 - lore: Iron Boots Rank 3 - outputs: - Iron Boots: - material: IRON_BOOTS - amount: 1 - display_name: Iron Boots Rank 4 - lore: Iron Boots Rank 4 - enchantments: - Protection: - type: PROTECTION_ENVIRONMENTAL - level: 4 - Unbreaking: - type: DURABILITY - level: 3 - IRON_CHESTPLATE_RANK_0: - name: Iron Chestplate Forger Rank 0 - production_time: 360 - inputs: - Iron: - material: IRON - amount: 32 - Leather Chestplate: - material: LEATHER_CHESTPLATE - amount: 2 - display_name: Leather Chestplate Rank 4 - lore: Leather Chestplate Rank 4 - outputs: - Iron Chestplate: - material: IRON_CHESTPLATE - amount: 1 - display_name: Iron Chestplate Rank 0 - lore: Iron Chestplate Rank 0 - IRON_CHESTPLATE_RANK_1: - name: Iron Chestplate Forger Rank 1 - production_time: 360 - inputs: - Iron: - material: IRON - amount: 32 - Iron Chestplate: - material: IRON_CHESTPLATE - amount: 1 - display_name: Iron Chestplate Rank 0 - lore: Iron Chestplate Rank 0 - outputs: - Iron Chestplate: - material: IRON_CHESTPLATE - amount: 1 - display_name: Iron Chestplate Rank 1 - lore: Iron Chestplate Rank 1 - enchantments: - Protection: - type: PROTECTION_ENVIRONMENTAL - level: 1 - IRON_CHESTPLATE_RANK_2: - name: Iron Chestplate Forger Rank 2 - production_time: 360 - inputs: - Iron: - material: IRON - amount: 32 - Iron Chestplate: - material: IRON_CHESTPLATE - amount: 1 - display_name: Iron Chestplate Rank 1 - lore: Iron Chestplate Rank 1 - outputs: - Iron Chestplate: - material: IRON_CHESTPLATE - amount: 1 - display_name: Iron Chestplate Rank 2 - lore: Iron Chestplate Rank 2 - enchantments: - Protection: - type: PROTECTION_ENVIRONMENTAL - level: 2 - Unbreaking: - type: DURABILITY - level: 1 - IRON_CHESTPLATE_RANK_3: - name: Iron Chestplate Forger Rank 3 - production_time: 360 - inputs: - Iron: - material: IRON - amount: 32 - Iron Chestplate: - material: IRON_CHESTPLATE - amount: 1 - display_name: Iron Chestplate Rank 2 - lore: Iron Chestplate Rank 2 - outputs: - Iron Chestplate: - material: IRON_CHESTPLATE - amount: 1 - display_name: Iron Chestplate Rank 3 - lore: Iron Chestplate Rank 3 - enchantments: - Protection: - type: PROTECTION_ENVIRONMENTAL - level: 3 - Unbreaking: - type: DURABILITY - level: 2 - IRON_CHESTPLATE_RANK_4: - name: Iron Chestplate Forger Rank 4 - production_time: 360 - inputs: - Iron: - material: IRON - amount: 32 - Iron Chestplate: - material: IRON_CHESTPLATE - amount: 1 - display_name: Iron Chestplate Rank 3 - lore: Iron Chestplate Rank 3 - outputs: - Iron Chestplate: - material: IRON_CHESTPLATE - amount: 1 - display_name: Iron Chestplate Rank 4 - lore: Iron Chestplate Rank 4 - enchantments: - Protection: - type: PROTECTION_ENVIRONMENTAL - level: 4 - Unbreaking: - type: DURABILITY - level: 3 - IRON_HELMET_RANK_0: - name: Iron Helmet Forger Rank 0 - production_time: 360 - inputs: - Iron: - material: IRON - amount: 32 - Leather Helmet: - material: LEATHER_HELMET - amount: 2 - display_name: Leather Helmet Rank 4 - lore: Leather Helmet Rank 4 - outputs: - Iron Helmet: - material: IRON_HELMET - amount: 1 - display_name: Iron Helmet Rank 0 - lore: Iron Helmet Rank 0 - IRON_HELMET_RANK_1: - name: Iron Helmet Forger Rank 1 - production_time: 360 - inputs: - Iron: - material: IRON - amount: 32 - Iron Helmet: - material: IRON_HELMET - amount: 1 - display_name: Iron Helmet Rank 0 - lore: Iron Helmet Rank 0 - outputs: - Iron Helmet: - material: IRON_HELMET - amount: 1 - display_name: Iron Helmet Rank 1 - lore: Iron Helmet Rank 1 - enchantments: - Protection: - type: PROTECTION_ENVIRONMENTAL - level: 1 - IRON_HELMET_RANK_2: - name: Iron Helmet Forger Rank 2 - production_time: 360 - inputs: - Iron: - material: IRON - amount: 32 - Iron Helmet: - material: IRON_HELMET - amount: 1 - display_name: Iron Helmet Rank 1 - lore: Iron Helmet Rank 1 - outputs: - Iron Helmet: - material: IRON_HELMET - amount: 1 - display_name: Iron Helmet Rank 2 - lore: Iron Helmet Rank 2 - enchantments: - Protection: - type: PROTECTION_ENVIRONMENTAL - level: 2 - Unbreaking: - type: DURABILITY - level: 1 - IRON_HELMET_RANK_3: - name: Iron Helmet Forger Rank 3 - production_time: 360 - inputs: - Iron: - material: IRON - amount: 32 - Iron Helmet: - material: IRON_HELMET - amount: 1 - display_name: Iron Helmet Rank 2 - lore: Iron Helmet Rank 2 - outputs: - Iron Helmet: - material: IRON_HELMET - amount: 1 - display_name: Iron Helmet Rank 3 - lore: Iron Helmet Rank 3 - enchantments: - Protection: - type: PROTECTION_ENVIRONMENTAL - level: 3 - Unbreaking: - type: DURABILITY - level: 2 - IRON_HELMET_RANK_4: - name: Iron Helmet Forger Rank 4 - production_time: 360 - inputs: - Iron: - material: IRON - amount: 32 - Iron Helmet: - material: IRON_HELMET - amount: 1 - display_name: Iron Helmet Rank 3 - lore: Iron Helmet Rank 3 - outputs: - Iron Helmet: - material: IRON_HELMET - amount: 1 - display_name: Iron Helmet Rank 4 - lore: Iron Helmet Rank 4 - enchantments: - Protection: - type: PROTECTION_ENVIRONMENTAL - level: 4 - Unbreaking: - type: DURABILITY - level: 3 - IRON_LEGGINGS_RANK_0: - name: Iron Leggings Forger Rank 0 - production_time: 360 - inputs: - Iron: - material: IRON - amount: 32 - Leather Leggings: - material: LEATHER_LEGGINGS - amount: 2 - display_name: Leather Leggings Rank 4 - lore: Leather Leggings Rank 4 - outputs: - Iron Leggings: - material: IRON_LEGGINGS - amount: 1 - display_name: Iron Leggings Rank 0 - lore: Iron Leggings Rank 0 - IRON_LEGGINGS_RANK_1: - name: Iron Leggings Forger Rank 1 - production_time: 360 - inputs: - Iron: - material: IRON - amount: 32 - Iron Leggings: - material: IRON_LEGGINGS - amount: 1 - display_name: Iron Leggings Rank 0 - lore: Iron Leggings Rank 0 - outputs: - Iron Leggings: - material: IRON_LEGGINGS - amount: 1 - display_name: Iron Leggings Rank 1 - lore: Iron Leggings Rank 1 - enchantments: - Protection: - type: PROTECTION_ENVIRONMENTAL - level: 1 - IRON_LEGGINGS_RANK_2: - name: Iron Leggings Forger Rank 2 - production_time: 360 - inputs: - Iron: - material: IRON - amount: 32 - Iron Leggings: - material: IRON_LEGGINGS - amount: 1 - display_name: Iron Leggings Rank 1 - lore: Iron Leggings Rank 1 - outputs: - Iron Leggings: - material: IRON_LEGGINGS - amount: 1 - display_name: Iron Leggings Rank 2 - lore: Iron Leggings Rank 2 - enchantments: - Protection: - type: PROTECTION_ENVIRONMENTAL - level: 2 - Unbreaking: - type: DURABILITY - level: 1 - IRON_LEGGINGS_RANK_3: - name: Iron Leggings Forger Rank 3 - production_time: 360 - inputs: - Iron: - material: IRON - amount: 32 - Iron Leggings: - material: IRON_LEGGINGS - amount: 1 - display_name: Iron Leggings Rank 2 - lore: Iron Leggings Rank 2 - outputs: - Iron Leggings: - material: IRON_LEGGINGS - amount: 1 - display_name: Iron Leggings Rank 3 - lore: Iron Leggings Rank 3 - enchantments: - Protection: - type: PROTECTION_ENVIRONMENTAL - level: 3 - Unbreaking: - type: DURABILITY - level: 2 - IRON_LEGGINGS_RANK_4: - name: Iron Leggings Forger Rank 4 - production_time: 360 - inputs: - Iron: - material: IRON - amount: 32 - Iron Leggings: - material: IRON_LEGGINGS - amount: 1 - display_name: Iron Leggings Rank 3 - lore: Iron Leggings Rank 3 - outputs: - Iron Leggings: - material: IRON_LEGGINGS - amount: 1 - display_name: Iron Leggings Rank 4 - lore: Iron Leggings Rank 4 - enchantments: - Protection: - type: PROTECTION_ENVIRONMENTAL - level: 4 - Unbreaking: - type: DURABILITY - level: 3 - DIAMOND_BOOTS_RANK_0: - name: Diamond Boots Forger Rank 0 - production_time: 360 - inputs: - Diamond: - material: DIAMOND - amount: 32 - Iron Boots: - material: IRON_BOOTS - amount: 2 - display_name: Iron Boots Rank 4 - lore: Iron Boots Rank 4 - outputs: - Diamond Boots: - material: DIAMOND_BOOTS - amount: 1 - display_name: Diamond Boots Rank 0 - lore: Diamond Boots Rank 0 - DIAMOND_BOOTS_RANK_1: - name: Diamond Boots Forger Rank 1 - production_time: 360 - inputs: - Diamond: - material: DIAMOND - amount: 32 - Diamond Boots: - material: DIAMOND_BOOTS - amount: 1 - display_name: Diamond Boots Rank 0 - lore: Diamond Boots Rank 0 - outputs: - Diamond Boots: - material: DIAMOND_BOOTS - amount: 1 - display_name: Diamond Boots Rank 1 - lore: Diamond Boots Rank 1 - enchantments: - Protection: - type: PROTECTION_ENVIRONMENTAL - level: 1 - DIAMOND_BOOTS_RANK_2: - name: Diamond Boots Forger Rank 2 - production_time: 360 - inputs: - Diamond: - material: DIAMOND - amount: 32 - Diamond Boots: - material: DIAMOND_BOOTS - amount: 1 - display_name: Diamond Boots Rank 1 - lore: Diamond Boots Rank 1 - outputs: - Diamond Boots: - material: DIAMOND_BOOTS - amount: 1 - display_name: Diamond Boots Rank 2 - lore: Diamond Boots Rank 2 - enchantments: - Protection: - type: PROTECTION_ENVIRONMENTAL - level: 2 - Unbreaking: - type: DURABILITY - level: 1 - DIAMOND_BOOTS_RANK_3: - name: Diamond Boots Forger Rank 3 - production_time: 360 - inputs: - Diamond: - material: DIAMOND - amount: 32 - Diamond Boots: - material: DIAMOND_BOOTS - amount: 1 - display_name: Diamond Boots Rank 2 - lore: Diamond Boots Rank 2 - outputs: - Diamond Boots: - material: DIAMOND_BOOTS - amount: 1 - display_name: Diamond Boots Rank 3 - lore: Diamond Boots Rank 3 - enchantments: - Protection: - type: PROTECTION_ENVIRONMENTAL - level: 3 - Unbreaking: - type: DURABILITY - level: 2 - DIAMOND_BOOTS_RANK_4: - name: Diamond Boots Forger Rank 4 - production_time: 360 - inputs: - Diamond: - material: DIAMOND - amount: 32 - Diamond Boots: - material: DIAMOND_BOOTS - amount: 1 - display_name: Diamond Boots Rank 3 - lore: Diamond Boots Rank 3 - outputs: - Diamond Boots: - material: DIAMOND_BOOTS - amount: 1 - display_name: Diamond Boots Rank 4 - lore: Diamond Boots Rank 4 - enchantments: - Protection: - type: PROTECTION_ENVIRONMENTAL - level: 4 - Unbreaking: - type: DURABILITY - level: 3 - DIAMOND_CHESTPLATE_RANK_0: - name: Diamond Chestplate Forger Rank 0 - production_time: 360 - inputs: - Diamond: - material: DIAMOND - amount: 32 - Iron Chestplate: - material: IRON_CHESTPLATE - amount: 2 - display_name: Iron Chestplate Rank 4 - lore: Iron Chestplate Rank 4 - outputs: - Diamond Chestplate: - material: DIAMOND_CHESTPLATE - amount: 1 - display_name: Diamond Chestplate Rank 0 - lore: Diamond Chestplate Rank 0 - DIAMOND_CHESTPLATE_RANK_1: - name: Diamond Chestplate Forger Rank 1 - production_time: 360 - inputs: - Diamond: - material: DIAMOND - amount: 32 - Diamond Chestplate: - material: DIAMOND_CHESTPLATE - amount: 1 - display_name: Diamond Chestplate Rank 0 - lore: Diamond Chestplate Rank 0 - outputs: - Diamond Chestplate: - material: DIAMOND_CHESTPLATE - amount: 1 - display_name: Diamond Chestplate Rank 1 - lore: Diamond Chestplate Rank 1 - enchantments: - Protection: - type: PROTECTION_ENVIRONMENTAL - level: 1 - DIAMOND_CHESTPLATE_RANK_2: - name: Diamond Chestplate Forger Rank 2 - production_time: 360 - inputs: - Diamond: - material: DIAMOND - amount: 32 - Diamond Chestplate: - material: DIAMOND_CHESTPLATE - amount: 1 - display_name: Diamond Chestplate Rank 1 - lore: Diamond Chestplate Rank 1 - outputs: - Diamond Chestplate: - material: DIAMOND_CHESTPLATE - amount: 1 - display_name: Diamond Chestplate Rank 2 - lore: Diamond Chestplate Rank 2 - enchantments: - Protection: - type: PROTECTION_ENVIRONMENTAL - level: 2 - Unbreaking: - type: DURABILITY - level: 1 - DIAMOND_CHESTPLATE_RANK_3: - name: Diamond Chestplate Forger Rank 3 - production_time: 360 - inputs: - Diamond: - material: DIAMOND - amount: 32 - Diamond Chestplate: - material: DIAMOND_CHESTPLATE - amount: 1 - display_name: Diamond Chestplate Rank 2 - lore: Diamond Chestplate Rank 2 - outputs: - Diamond Chestplate: - material: DIAMOND_CHESTPLATE - amount: 1 - display_name: Diamond Chestplate Rank 3 - lore: Diamond Chestplate Rank 3 - enchantments: - Protection: - type: PROTECTION_ENVIRONMENTAL - level: 3 - Unbreaking: - type: DURABILITY - level: 2 - DIAMOND_CHESTPLATE_RANK_4: - name: Diamond Chestplate Forger Rank 4 - production_time: 360 - inputs: - Diamond: - material: DIAMOND - amount: 32 - Diamond Chestplate: - material: DIAMOND_CHESTPLATE - amount: 1 - display_name: Diamond Chestplate Rank 3 - lore: Diamond Chestplate Rank 3 - outputs: - Diamond Chestplate: - material: DIAMOND_CHESTPLATE - amount: 1 - display_name: Diamond Chestplate Rank 4 - lore: Diamond Chestplate Rank 4 - enchantments: - Protection: - type: PROTECTION_ENVIRONMENTAL - level: 4 - Unbreaking: - type: DURABILITY - level: 3 - DIAMOND_HELMET_RANK_0: - name: Diamond Helmet Forger Rank 0 - production_time: 360 - inputs: - Diamond: - material: DIAMOND - amount: 32 - Iron Helmet: - material: IRON_HELMET - amount: 2 - display_name: Iron Helmet Rank 4 - lore: Iron Helmet Rank 4 - outputs: - Diamond Helmet: - material: DIAMOND_HELMET - amount: 1 - display_name: Diamond Helmet Rank 0 - lore: Diamond Helmet Rank 0 - DIAMOND_HELMET_RANK_1: - name: Diamond Helmet Forger Rank 1 - production_time: 360 - inputs: - Diamond: - material: DIAMOND - amount: 32 - Diamond Helmet: - material: DIAMOND_HELMET - amount: 1 - display_name: Diamond Helmet Rank 0 - lore: Diamond Helmet Rank 0 - outputs: - Diamond Helmet: - material: DIAMOND_HELMET - amount: 1 - display_name: Diamond Helmet Rank 1 - lore: Diamond Helmet Rank 1 - enchantments: - Protection: - type: PROTECTION_ENVIRONMENTAL - level: 1 - DIAMOND_HELMET_RANK_2: - name: Diamond Helmet Forger Rank 2 - production_time: 360 - inputs: - Diamond: - material: DIAMOND - amount: 32 - Diamond Helmet: - material: DIAMOND_HELMET - amount: 1 - display_name: Diamond Helmet Rank 1 - lore: Diamond Helmet Rank 1 - outputs: - Diamond Helmet: - material: DIAMOND_HELMET - amount: 1 - display_name: Diamond Helmet Rank 2 - lore: Diamond Helmet Rank 2 - enchantments: - Protection: - type: PROTECTION_ENVIRONMENTAL - level: 2 - Unbreaking: - type: DURABILITY - level: 1 - DIAMOND_HELMET_RANK_3: - name: Diamond Helmet Forger Rank 3 - production_time: 360 - inputs: - Diamond: - material: DIAMOND - amount: 32 - Diamond Helmet: - material: DIAMOND_HELMET - amount: 1 - display_name: Diamond Helmet Rank 2 - lore: Diamond Helmet Rank 2 - outputs: - Diamond Helmet: - material: DIAMOND_HELMET - amount: 1 - display_name: Diamond Helmet Rank 3 - lore: Diamond Helmet Rank 3 - enchantments: - Protection: - type: PROTECTION_ENVIRONMENTAL - level: 3 - Unbreaking: - type: DURABILITY - level: 2 - DIAMOND_HELMET_RANK_4: - name: Diamond Helmet Forger Rank 4 - production_time: 360 - inputs: - Diamond: - material: DIAMOND - amount: 32 - Diamond Helmet: - material: DIAMOND_HELMET - amount: 1 - display_name: Diamond Helmet Rank 3 - lore: Diamond Helmet Rank 3 - outputs: - Diamond Helmet: - material: DIAMOND_HELMET - amount: 1 - display_name: Diamond Helmet Rank 4 - lore: Diamond Helmet Rank 4 - enchantments: - Protection: - type: PROTECTION_ENVIRONMENTAL - level: 4 - Unbreaking: - type: DURABILITY - level: 3 - DIAMOND_LEGGINGS_RANK_0: - name: Diamond Leggings Forger Rank 0 - production_time: 360 - inputs: - Diamond: - material: DIAMOND - amount: 32 - Iron Leggings: - material: IRON_LEGGINGS - amount: 2 - display_name: Iron Leggings Rank 4 - lore: Iron Leggings Rank 4 - outputs: - Diamond Leggings: - material: DIAMOND_LEGGINGS - amount: 1 - display_name: Diamond Leggings Rank 0 - lore: Diamond Leggings Rank 0 - DIAMOND_LEGGINGS_RANK_1: - name: Diamond Leggings Forger Rank 1 - production_time: 360 - inputs: - Diamond: - material: DIAMOND - amount: 32 - Diamond Leggings: - material: DIAMOND_LEGGINGS - amount: 1 - display_name: Diamond Leggings Rank 0 - lore: Diamond Leggings Rank 0 - outputs: - Diamond Leggings: - material: DIAMOND_LEGGINGS - amount: 1 - display_name: Diamond Leggings Rank 1 - lore: Diamond Leggings Rank 1 - enchantments: - Protection: - type: PROTECTION_ENVIRONMENTAL - level: 1 - DIAMOND_LEGGINGS_RANK_2: - name: Diamond Leggings Forger Rank 2 - production_time: 360 - inputs: - Diamond: - material: DIAMOND - amount: 32 - Diamond Leggings: - material: DIAMOND_LEGGINGS - amount: 1 - display_name: Diamond Leggings Rank 1 - lore: Diamond Leggings Rank 1 - outputs: - Diamond Leggings: - material: DIAMOND_LEGGINGS - amount: 1 - display_name: Diamond Leggings Rank 2 - lore: Diamond Leggings Rank 2 - enchantments: - Protection: - type: PROTECTION_ENVIRONMENTAL - level: 2 - Unbreaking: - type: DURABILITY - level: 1 - DIAMOND_LEGGINGS_RANK_3: - name: Diamond Leggings Forger Rank 3 - production_time: 360 - inputs: - Diamond: - material: DIAMOND - amount: 32 - Diamond Leggings: - material: DIAMOND_LEGGINGS - amount: 1 - display_name: Diamond Leggings Rank 2 - lore: Diamond Leggings Rank 2 - outputs: - Diamond Leggings: - material: DIAMOND_LEGGINGS - amount: 1 - display_name: Diamond Leggings Rank 3 - lore: Diamond Leggings Rank 3 - enchantments: - Protection: - type: PROTECTION_ENVIRONMENTAL - level: 3 - Unbreaking: - type: DURABILITY - level: 2 - DIAMOND_LEGGINGS_RANK_4: - name: Diamond Leggings Forger Rank 4 - production_time: 360 - inputs: - Diamond: - material: DIAMOND - amount: 32 - Diamond Leggings: - material: DIAMOND_LEGGINGS - amount: 1 - display_name: Diamond Leggings Rank 3 - lore: Diamond Leggings Rank 3 - outputs: - Diamond Leggings: - material: DIAMOND_LEGGINGS - amount: 1 - display_name: Diamond Leggings Rank 4 - lore: Diamond Leggings Rank 4 - enchantments: - Protection: - type: PROTECTION_ENVIRONMENTAL - level: 4 - Unbreaking: - type: DURABILITY - level: 3 - STONE_SWORD_RANK_0: - name: Stone Sword Forger Rank 0 - production_time: 360 - inputs: - Stone: - material: STONE - amount: 32 - outputs: - Stone Sword: - material: STONE_SWORD - amount: 1 - display_name: Stone Sword Rank 0 - lore: Stone Sword Rank 0 - STONE_SWORD_RANK_1: - name: Stone Sword Forger Rank 1 - production_time: 360 - inputs: - Stone: - material: STONE - amount: 32 - Stone Sword: - material: STONE_SWORD - amount: 1 - display_name: Stone Sword Rank 0 - lore: Stone Sword Rank 0 - outputs: - Stone Sword: - material: STONE_SWORD - amount: 1 - display_name: Stone Sword Rank 1 - lore: Stone Sword Rank 1 - enchantments: - Sharpness: - type: DAMAGE_ALL - level: 1 - STONE_SWORD_RANK_2: - name: Stone Sword Forger Rank 2 - production_time: 360 - inputs: - Stone: - material: STONE - amount: 32 - Stone Sword: - material: STONE_SWORD - amount: 1 - display_name: Stone Sword Rank 1 - lore: Stone Sword Rank 1 - outputs: - Stone Sword: - material: STONE_SWORD - amount: 1 - display_name: Stone Sword Rank 2 - lore: Stone Sword Rank 2 - enchantments: - Sharpness: - type: DAMAGE_ALL - level: 2 - STONE_SWORD_RANK_3: - name: Stone Sword Forger Rank 3 - production_time: 360 - inputs: - Stone: - material: STONE - amount: 32 - Stone Sword: - material: STONE_SWORD - amount: 1 - display_name: Stone Sword Rank 2 - lore: Stone Sword Rank 2 - outputs: - Stone Sword: - material: STONE_SWORD - amount: 1 - display_name: Stone Sword Rank 3 - lore: Stone Sword Rank 3 - enchantments: - Sharpness: - type: DAMAGE_ALL - level: 3 - STONE_SWORD_RANK_4: - name: Stone Sword Forger Rank 4 - production_time: 360 - inputs: - Stone: - material: STONE - amount: 32 - Stone Sword: - material: STONE_SWORD - amount: 1 - display_name: Stone Sword Rank 3 - lore: Stone Sword Rank 3 - outputs: - Stone Sword: - material: STONE_SWORD - amount: 1 - display_name: Stone Sword Rank 4 - lore: Stone Sword Rank 4 - enchantments: - Sharpness: - type: DAMAGE_ALL - level: 4 - STONE_SWORD_RANK_5: - name: Stone Sword Forger Rank 5 - production_time: 360 - inputs: - Stone: - material: STONE - amount: 32 - Stone Sword: - material: STONE_SWORD - amount: 1 - display_name: Stone Sword Rank 4 - lore: Stone Sword Rank 4 - outputs: - Stone Sword: - material: STONE_SWORD - amount: 1 - display_name: Stone Sword Rank 5 - lore: Stone Sword Rank 5 - enchantments: - Sharpness: - type: DAMAGE_ALL - level: 5 - IRON_SWORD_RANK_0: - name: Iron Sword Forger Rank 0 - production_time: 360 - inputs: - Iron: - material: IRON - amount: 32 - Stone Sword: - material: STONE_SWORD - amount: 2 - display_name: Stone Sword Rank 4 - lore: Stone Sword Rank 4 - outputs: - Iron Sword: - material: IRON_SWORD - amount: 1 - display_name: Iron Sword Rank 0 - lore: Iron Sword Rank 0 - IRON_SWORD_RANK_1: - name: Iron Sword Forger Rank 1 - production_time: 360 - inputs: - Iron: - material: IRON - amount: 32 - Iron Sword: - material: IRON_SWORD - amount: 1 - display_name: Iron Sword Rank 0 - lore: Iron Sword Rank 0 - outputs: - Iron Sword: - material: IRON_SWORD - amount: 1 - display_name: Iron Sword Rank 1 - lore: Iron Sword Rank 1 - enchantments: - Sharpness: - type: DAMAGE_ALL - level: 1 - IRON_SWORD_RANK_2: - name: Iron Sword Forger Rank 2 - production_time: 360 - inputs: - Iron: - material: IRON - amount: 32 - Iron Sword: - material: IRON_SWORD - amount: 1 - display_name: Iron Sword Rank 1 - lore: Iron Sword Rank 1 - outputs: - Iron Sword: - material: IRON_SWORD - amount: 1 - display_name: Iron Sword Rank 2 - lore: Iron Sword Rank 2 - enchantments: - Sharpness: - type: DAMAGE_ALL - level: 2 - IRON_SWORD_RANK_3: - name: Iron Sword Forger Rank 3 - production_time: 360 - inputs: - Iron: - material: IRON - amount: 32 - Iron Sword: - material: IRON_SWORD - amount: 1 - display_name: Iron Sword Rank 2 - lore: Iron Sword Rank 2 - outputs: - Iron Sword: - material: IRON_SWORD - amount: 1 - display_name: Iron Sword Rank 3 - lore: Iron Sword Rank 3 - enchantments: - Sharpness: - type: DAMAGE_ALL - level: 3 - IRON_SWORD_RANK_4: - name: Iron Sword Forger Rank 4 - production_time: 360 - inputs: - Iron: - material: IRON - amount: 32 - Iron Sword: - material: IRON_SWORD - amount: 1 - display_name: Iron Sword Rank 3 - lore: Iron Sword Rank 3 - outputs: - Iron Sword: - material: IRON_SWORD - amount: 1 - display_name: Iron Sword Rank 4 - lore: Iron Sword Rank 4 - enchantments: - Sharpness: - type: DAMAGE_ALL - level: 4 - IRON_SWORD_RANK_5: - name: Iron Sword Forger Rank 5 - production_time: 360 - inputs: - Iron: - material: IRON - amount: 32 - Iron Sword: - material: IRON_SWORD - amount: 1 - display_name: Iron Sword Rank 4 - lore: Iron Sword Rank 4 - outputs: - Iron Sword: - material: IRON_SWORD - amount: 1 - display_name: Iron Sword Rank 5 - lore: Iron Sword Rank 5 - enchantments: - Sharpness: - type: DAMAGE_ALL - level: 5 - DIAMOND_SWORD_RANK_0: - name: Diamond Sword Forger Rank 0 - production_time: 360 - inputs: - Diamond: - material: DIAMOND - amount: 32 - Iron Sword: - material: IRON_SWORD - amount: 2 - display_name: Iron Sword Rank 4 - lore: Iron Sword Rank 4 - outputs: - Diamond Sword: - material: DIAMOND_SWORD - amount: 1 - display_name: Diamond Sword Rank 0 - lore: Diamond Sword Rank 0 - DIAMOND_SWORD_RANK_1: - name: Diamond Sword Forger Rank 1 - production_time: 360 - inputs: - Diamond: - material: DIAMOND - amount: 32 - Diamond Sword: - material: DIAMOND_SWORD - amount: 1 - display_name: Diamond Sword Rank 0 - lore: Diamond Sword Rank 0 - outputs: - Diamond Sword: - material: DIAMOND_SWORD - amount: 1 - display_name: Diamond Sword Rank 1 - lore: Diamond Sword Rank 1 - enchantments: - Sharpness: - type: DAMAGE_ALL - level: 1 - DIAMOND_SWORD_RANK_2: - name: Diamond Sword Forger Rank 2 - production_time: 360 - inputs: - Diamond: - material: DIAMOND - amount: 32 - Diamond Sword: - material: DIAMOND_SWORD - amount: 1 - display_name: Diamond Sword Rank 1 - lore: Diamond Sword Rank 1 - outputs: - Diamond Sword: - material: DIAMOND_SWORD - amount: 1 - display_name: Diamond Sword Rank 2 - lore: Diamond Sword Rank 2 - enchantments: - Sharpness: - type: DAMAGE_ALL - level: 2 - DIAMOND_SWORD_RANK_3: - name: Diamond Sword Forger Rank 3 - production_time: 360 - inputs: - Diamond: - material: DIAMOND - amount: 32 - Diamond Sword: - material: DIAMOND_SWORD - amount: 1 - display_name: Diamond Sword Rank 2 - lore: Diamond Sword Rank 2 - outputs: - Diamond Sword: - material: DIAMOND_SWORD - amount: 1 - display_name: Diamond Sword Rank 3 - lore: Diamond Sword Rank 3 - enchantments: - Sharpness: - type: DAMAGE_ALL - level: 3 - DIAMOND_SWORD_RANK_4: - name: Diamond Sword Forger Rank 4 - production_time: 360 - inputs: - Diamond: - material: DIAMOND - amount: 32 - Diamond Sword: - material: DIAMOND_SWORD - amount: 1 - display_name: Diamond Sword Rank 3 - lore: Diamond Sword Rank 3 - outputs: - Diamond Sword: - material: DIAMOND_SWORD - amount: 1 - display_name: Diamond Sword Rank 4 - lore: Diamond Sword Rank 4 - enchantments: - Sharpness: - type: DAMAGE_ALL - level: 4 - DIAMOND_SWORD_RANK_5: - name: Diamond Sword Forger Rank 5 - production_time: 360 - inputs: - Diamond: - material: DIAMOND - amount: 32 - Diamond Sword: - material: DIAMOND_SWORD - amount: 1 - display_name: Diamond Sword Rank 4 - lore: Diamond Sword Rank 4 - outputs: - Diamond Sword: - material: DIAMOND_SWORD - amount: 1 - display_name: Diamond Sword Rank 5 - lore: Diamond Sword Rank 5 - enchantments: - Sharpness: - type: DAMAGE_ALL - level: 5 - OBSIDIAN_GENERATOR: - name: Obsidian Generator - production_time: 300 - inputs: - Diamond Pickaxe: - material: DIAMOND_PICKAXE - amount: 1 - outputs: - Obsidian: - material: OBSIDIAN - amount: 3200 - STONE_PICKAXE_RANK_0: - name: Stone Pickaxe Forger Rank 0 - production_time: 360 - inputs: - Stone: - material: STONE - amount: 32 - outputs: - Stone Pickaxe: - material: STONE_PICKAXE - amount: 1 - display_name: Stone Pickaxe Rank 0 - lore: Stone Pickaxe Rank 0 - STONE_PICKAXE_RANK_1: - name: Stone Pickaxe Forger Rank 1 - production_time: 360 - inputs: - Stone: - material: STONE - amount: 32 - Stone Pickaxe: - material: STONE_PICKAXE - amount: 1 - display_name: Stone Pickaxe Rank 0 - lore: Stone Pickaxe Rank 0 - outputs: - Stone Pickaxe: - material: STONE_PICKAXE - amount: 1 - display_name: Stone Pickaxe Rank 1 - lore: Stone Pickaxe Rank 1 - enchantments: - Efficiency: - type: DIG_SPEED - level: 1 - STONE_PICKAXE_RANK_2: - name: Stone Pickaxe Forger Rank 2 - production_time: 360 - inputs: - Stone: - material: STONE - amount: 32 - Stone Pickaxe: - material: STONE_PICKAXE - amount: 1 - display_name: Stone Pickaxe Rank 1 - lore: Stone Pickaxe Rank 1 - outputs: - Stone Pickaxe: - material: STONE_PICKAXE - amount: 1 - display_name: Stone Pickaxe Rank 2 - lore: Stone Pickaxe Rank 2 - enchantments: - Efficiency: - type: DIG_SPEED - level: 2 - Unbreaking: - type: DURABILITY - level: 1 - STONE_PICKAXE_RANK_3: - name: Stone Pickaxe Forger Rank 3 - production_time: 360 - inputs: - Stone: - material: STONE - amount: 32 - Stone Pickaxe: - material: STONE_PICKAXE - amount: 1 - display_name: Stone Pickaxe Rank 2 - lore: Stone Pickaxe Rank 2 - outputs: - Stone Pickaxe: - material: STONE_PICKAXE - amount: 1 - display_name: Stone Pickaxe Rank 3 - lore: Stone Pickaxe Rank 3 - enchantments: - Efficiency: - type: DIG_SPEED - level: 3 - Unbreaking: - type: DURABILITY - level: 2 - STONE_PICKAXE_RANK_4: - name: Stone Pickaxe Forger Rank 4 - production_time: 360 - inputs: - Stone: - material: STONE - amount: 32 - Stone Pickaxe: - material: STONE_PICKAXE - amount: 1 - display_name: Stone Pickaxe Rank 3 - lore: Stone Pickaxe Rank 3 - outputs: - Stone Pickaxe: - material: STONE_PICKAXE - amount: 1 - display_name: Stone Pickaxe Rank 4 - lore: Stone Pickaxe Rank 4 - enchantments: - Efficiency: - type: DIG_SPEED - level: 4 - Unbreaking: - type: DURABILITY - level: 3 - STONE_AXE_RANK_0: - name: Stone Axe Forger Rank 0 - production_time: 360 - inputs: - Stone: - material: STONE - amount: 32 - outputs: - Stone Axe: - material: STONE_AXE - amount: 1 - display_name: Stone Axe Rank 0 - lore: Stone Axe Rank 0 - STONE_AXE_RANK_1: - name: Stone Axe Forger Rank 1 - production_time: 360 - inputs: - Stone: - material: STONE - amount: 32 - Stone Axe: - material: STONE_AXE - amount: 1 - display_name: Stone Axe Rank 0 - lore: Stone Axe Rank 0 - outputs: - Stone Axe: - material: STONE_AXE - amount: 1 - display_name: Stone Axe Rank 1 - lore: Stone Axe Rank 1 - enchantments: - Efficiency: - type: DIG_SPEED - level: 1 - STONE_AXE_RANK_2: - name: Stone Axe Forger Rank 2 - production_time: 360 - inputs: - Stone: - material: STONE - amount: 32 - Stone Axe: - material: STONE_AXE - amount: 1 - display_name: Stone Axe Rank 1 - lore: Stone Axe Rank 1 - outputs: - Stone Axe: - material: STONE_AXE - amount: 1 - display_name: Stone Axe Rank 2 - lore: Stone Axe Rank 2 - enchantments: - Efficiency: - type: DIG_SPEED - level: 2 - Unbreaking: - type: DURABILITY - level: 1 - STONE_AXE_RANK_3: - name: Stone Axe Forger Rank 3 - production_time: 360 - inputs: - Stone: - material: STONE - amount: 32 - Stone Axe: - material: STONE_AXE - amount: 1 - display_name: Stone Axe Rank 2 - lore: Stone Axe Rank 2 - outputs: - Stone Axe: - material: STONE_AXE - amount: 1 - display_name: Stone Axe Rank 3 - lore: Stone Axe Rank 3 - enchantments: - Efficiency: - type: DIG_SPEED - level: 3 - Unbreaking: - type: DURABILITY - level: 2 - STONE_AXE_RANK_4: - name: Stone Axe Forger Rank 4 - production_time: 360 - inputs: - Stone: - material: STONE - amount: 32 - Stone Axe: - material: STONE_AXE - amount: 1 - display_name: Stone Axe Rank 3 - lore: Stone Axe Rank 3 - outputs: - Stone Axe: - material: STONE_AXE - amount: 1 - display_name: Stone Axe Rank 4 - lore: Stone Axe Rank 4 - enchantments: - Efficiency: - type: DIG_SPEED - level: 4 - Unbreaking: - type: DURABILITY - level: 3 - STONE_SHOVEL_RANK_0: - name: Stone Shovel Forger Rank 0 - production_time: 360 - inputs: - Stone: - material: STONE - amount: 32 - outputs: - Stone Shovel: - material: STONE_SHOVEL - amount: 1 - display_name: Stone Shovel Rank 0 - lore: Stone Shovel Rank 0 - STONE_SHOVEL_RANK_1: - name: Stone Shovel Forger Rank 1 - production_time: 360 - inputs: - Stone: - material: STONE - amount: 32 - Stone Shovel: - material: STONE_SHOVEL - amount: 1 - display_name: Stone Shovel Rank 0 - lore: Stone Shovel Rank 0 - outputs: - Stone Shovel: - material: STONE_SHOVEL - amount: 1 - display_name: Stone Shovel Rank 1 - lore: Stone Shovel Rank 1 - enchantments: - Efficiency: - type: DIG_SPEED - level: 1 - STONE_SHOVEL_RANK_2: - name: Stone Shovel Forger Rank 2 - production_time: 360 - inputs: - Stone: - material: STONE - amount: 32 - Stone Shovel: - material: STONE_SHOVEL - amount: 1 - display_name: Stone Shovel Rank 1 - lore: Stone Shovel Rank 1 - outputs: - Stone Shovel: - material: STONE_SHOVEL - amount: 1 - display_name: Stone Shovel Rank 2 - lore: Stone Shovel Rank 2 - enchantments: - Efficiency: - type: DIG_SPEED - level: 2 - Unbreaking: - type: DURABILITY - level: 1 - STONE_SHOVEL_RANK_3: - name: Stone Shovel Forger Rank 3 - production_time: 360 - inputs: - Stone: - material: STONE - amount: 32 - Stone Shovel: - material: STONE_SHOVEL - amount: 1 - display_name: Stone Shovel Rank 2 - lore: Stone Shovel Rank 2 - outputs: - Stone Shovel: - material: STONE_SHOVEL - amount: 1 - display_name: Stone Shovel Rank 3 - lore: Stone Shovel Rank 3 - enchantments: - Efficiency: - type: DIG_SPEED - level: 3 - Unbreaking: - type: DURABILITY - level: 2 - STONE_SHOVEL_RANK_4: - name: Stone Shovel Forger Rank 4 - production_time: 360 - inputs: - Stone: - material: STONE - amount: 32 - Stone Shovel: - material: STONE_SHOVEL - amount: 1 - display_name: Stone Shovel Rank 3 - lore: Stone Shovel Rank 3 - outputs: - Stone Shovel: - material: STONE_SHOVEL - amount: 1 - display_name: Stone Shovel Rank 4 - lore: Stone Shovel Rank 4 - enchantments: - Efficiency: - type: DIG_SPEED - level: 4 - Unbreaking: - type: DURABILITY - level: 3 - STONE_HOE_RANK_0: - name: Stone Hoe Forger Rank 0 - production_time: 360 - inputs: - Stone: - material: STONE - amount: 32 - outputs: - Stone Hoe: - material: STONE_HOE - amount: 1 - display_name: Stone Hoe Rank 0 - lore: Stone Hoe Rank 0 - STONE_HOE_RANK_1: - name: Stone Hoe Forger Rank 1 - production_time: 360 - inputs: - Stone: - material: STONE - amount: 32 - Stone Hoe: - material: STONE_HOE - amount: 1 - display_name: Stone Hoe Rank 0 - lore: Stone Hoe Rank 0 - outputs: - Stone Hoe: - material: STONE_HOE - amount: 1 - display_name: Stone Hoe Rank 1 - lore: Stone Hoe Rank 1 - enchantments: - Efficiency: - type: DIG_SPEED - level: 1 - STONE_HOE_RANK_2: - name: Stone Hoe Forger Rank 2 - production_time: 360 - inputs: - Stone: - material: STONE - amount: 32 - Stone Hoe: - material: STONE_HOE - amount: 1 - display_name: Stone Hoe Rank 1 - lore: Stone Hoe Rank 1 - outputs: - Stone Hoe: - material: STONE_HOE - amount: 1 - display_name: Stone Hoe Rank 2 - lore: Stone Hoe Rank 2 - enchantments: - Efficiency: - type: DIG_SPEED - level: 2 - Unbreaking: - type: DURABILITY - level: 1 - STONE_HOE_RANK_3: - name: Stone Hoe Forger Rank 3 - production_time: 360 - inputs: - Stone: - material: STONE - amount: 32 - Stone Hoe: - material: STONE_HOE - amount: 1 - display_name: Stone Hoe Rank 2 - lore: Stone Hoe Rank 2 - outputs: - Stone Hoe: - material: STONE_HOE - amount: 1 - display_name: Stone Hoe Rank 3 - lore: Stone Hoe Rank 3 - enchantments: - Efficiency: - type: DIG_SPEED - level: 3 - Unbreaking: - type: DURABILITY - level: 2 - STONE_HOE_RANK_4: - name: Stone Hoe Forger Rank 4 - production_time: 360 - inputs: - Stone: - material: STONE - amount: 32 - Stone Hoe: - material: STONE_HOE - amount: 1 - display_name: Stone Hoe Rank 3 - lore: Stone Hoe Rank 3 - outputs: - Stone Hoe: - material: STONE_HOE - amount: 1 - display_name: Stone Hoe Rank 4 - lore: Stone Hoe Rank 4 - enchantments: - Efficiency: - type: DIG_SPEED - level: 4 - Unbreaking: - type: DURABILITY - level: 3 - IRON_PICKAXE_RANK_0: - name: Iron Pickaxe Forger Rank 0 - production_time: 360 - inputs: - Iron: - material: IRON - amount: 32 - Stone Pickaxe: - material: STONE_PICKAXE - amount: 2 - display_name: Stone Pickaxe Rank 4 - lore: Stone Pickaxe Rank 4 - outputs: - Iron Pickaxe: - material: IRON_PICKAXE - amount: 1 - display_name: Iron Pickaxe Rank 0 - lore: Iron Pickaxe Rank 0 - IRON_PICKAXE_RANK_1: - name: Iron Pickaxe Forger Rank 1 - production_time: 360 - inputs: - Iron: - material: IRON - amount: 32 - Iron Pickaxe: - material: IRON_PICKAXE - amount: 1 - display_name: Iron Pickaxe Rank 0 - lore: Iron Pickaxe Rank 0 - outputs: - Iron Pickaxe: - material: IRON_PICKAXE - amount: 1 - display_name: Iron Pickaxe Rank 1 - lore: Iron Pickaxe Rank 1 - enchantments: - Efficiency: - type: DIG_SPEED - level: 1 - IRON_PICKAXE_RANK_2: - name: Iron Pickaxe Forger Rank 2 - production_time: 360 - inputs: - Iron: - material: IRON - amount: 32 - Iron Pickaxe: - material: IRON_PICKAXE - amount: 1 - display_name: Iron Pickaxe Rank 1 - lore: Iron Pickaxe Rank 1 - outputs: - Iron Pickaxe: - material: IRON_PICKAXE - amount: 1 - display_name: Iron Pickaxe Rank 2 - lore: Iron Pickaxe Rank 2 - enchantments: - Efficiency: - type: DIG_SPEED - level: 2 - Unbreaking: - type: DURABILITY - level: 1 - IRON_PICKAXE_RANK_3: - name: Iron Pickaxe Forger Rank 3 - production_time: 360 - inputs: - Iron: - material: IRON - amount: 32 - Iron Pickaxe: - material: IRON_PICKAXE - amount: 1 - display_name: Iron Pickaxe Rank 2 - lore: Iron Pickaxe Rank 2 - outputs: - Iron Pickaxe: - material: IRON_PICKAXE - amount: 1 - display_name: Iron Pickaxe Rank 3 - lore: Iron Pickaxe Rank 3 - enchantments: - Efficiency: - type: DIG_SPEED - level: 3 - Unbreaking: - type: DURABILITY - level: 2 - IRON_PICKAXE_RANK_4: - name: Iron Pickaxe Forger Rank 4 - production_time: 360 - inputs: - Iron: - material: IRON - amount: 32 - Iron Pickaxe: - material: IRON_PICKAXE - amount: 1 - display_name: Iron Pickaxe Rank 3 - lore: Iron Pickaxe Rank 3 - outputs: - Iron Pickaxe: - material: IRON_PICKAXE - amount: 1 - display_name: Iron Pickaxe Rank 4 - lore: Iron Pickaxe Rank 4 - enchantments: - Efficiency: - type: DIG_SPEED - level: 4 - Unbreaking: - type: DURABILITY - level: 3 - IRON_AXE_RANK_0: - name: Iron Axe Forger Rank 0 - production_time: 360 - inputs: - Iron: - material: IRON - amount: 32 - Stone Axe: - material: STONE_AXE - amount: 2 - display_name: Stone Axe Rank 4 - lore: Stone Axe Rank 4 - outputs: - Iron Axe: - material: IRON_AXE - amount: 1 - display_name: Iron Axe Rank 0 - lore: Iron Axe Rank 0 - IRON_AXE_RANK_1: - name: Iron Axe Forger Rank 1 - production_time: 360 - inputs: - Iron: - material: IRON - amount: 32 - Iron Axe: - material: IRON_AXE - amount: 1 - display_name: Iron Axe Rank 0 - lore: Iron Axe Rank 0 - outputs: - Iron Axe: - material: IRON_AXE - amount: 1 - display_name: Iron Axe Rank 1 - lore: Iron Axe Rank 1 - enchantments: - Efficiency: - type: DIG_SPEED - level: 1 - IRON_AXE_RANK_2: - name: Iron Axe Forger Rank 2 - production_time: 360 - inputs: - Iron: - material: IRON - amount: 32 - Iron Axe: - material: IRON_AXE - amount: 1 - display_name: Iron Axe Rank 1 - lore: Iron Axe Rank 1 - outputs: - Iron Axe: - material: IRON_AXE - amount: 1 - display_name: Iron Axe Rank 2 - lore: Iron Axe Rank 2 - enchantments: - Efficiency: - type: DIG_SPEED - level: 2 - Unbreaking: - type: DURABILITY - level: 1 - IRON_AXE_RANK_3: - name: Iron Axe Forger Rank 3 - production_time: 360 - inputs: - Iron: - material: IRON - amount: 32 - Iron Axe: - material: IRON_AXE - amount: 1 - display_name: Iron Axe Rank 2 - lore: Iron Axe Rank 2 - outputs: - Iron Axe: - material: IRON_AXE - amount: 1 - display_name: Iron Axe Rank 3 - lore: Iron Axe Rank 3 - enchantments: - Efficiency: - type: DIG_SPEED - level: 3 - Unbreaking: - type: DURABILITY - level: 2 - IRON_AXE_RANK_4: - name: Iron Axe Forger Rank 4 - production_time: 360 - inputs: - Iron: - material: IRON - amount: 32 - Iron Axe: - material: IRON_AXE - amount: 1 - display_name: Iron Axe Rank 3 - lore: Iron Axe Rank 3 - outputs: - Iron Axe: - material: IRON_AXE - amount: 1 - display_name: Iron Axe Rank 4 - lore: Iron Axe Rank 4 - enchantments: - Efficiency: - type: DIG_SPEED - level: 4 - Unbreaking: - type: DURABILITY - level: 3 - IRON_SHOVEL_RANK_0: - name: Iron Shovel Forger Rank 0 - production_time: 360 - inputs: - Iron: - material: IRON - amount: 32 - Stone Shovel: - material: STONE_SHOVEL - amount: 2 - display_name: Stone Shovel Rank 4 - lore: Stone Shovel Rank 4 - outputs: - Iron Shovel: - material: IRON_SHOVEL - amount: 1 - display_name: Iron Shovel Rank 0 - lore: Iron Shovel Rank 0 - IRON_SHOVEL_RANK_1: - name: Iron Shovel Forger Rank 1 - production_time: 360 - inputs: - Iron: - material: IRON - amount: 32 - Iron Shovel: - material: IRON_SHOVEL - amount: 1 - display_name: Iron Shovel Rank 0 - lore: Iron Shovel Rank 0 - outputs: - Iron Shovel: - material: IRON_SHOVEL - amount: 1 - display_name: Iron Shovel Rank 1 - lore: Iron Shovel Rank 1 - enchantments: - Efficiency: - type: DIG_SPEED - level: 1 - IRON_SHOVEL_RANK_2: - name: Iron Shovel Forger Rank 2 - production_time: 360 - inputs: - Iron: - material: IRON - amount: 32 - Iron Shovel: - material: IRON_SHOVEL - amount: 1 - display_name: Iron Shovel Rank 1 - lore: Iron Shovel Rank 1 - outputs: - Iron Shovel: - material: IRON_SHOVEL - amount: 1 - display_name: Iron Shovel Rank 2 - lore: Iron Shovel Rank 2 - enchantments: - Efficiency: - type: DIG_SPEED - level: 2 - Unbreaking: - type: DURABILITY - level: 1 - IRON_SHOVEL_RANK_3: - name: Iron Shovel Forger Rank 3 - production_time: 360 - inputs: - Iron: - material: IRON - amount: 32 - Iron Shovel: - material: IRON_SHOVEL - amount: 1 - display_name: Iron Shovel Rank 2 - lore: Iron Shovel Rank 2 - outputs: - Iron Shovel: - material: IRON_SHOVEL - amount: 1 - display_name: Iron Shovel Rank 3 - lore: Iron Shovel Rank 3 - enchantments: - Efficiency: - type: DIG_SPEED - level: 3 - Unbreaking: - type: DURABILITY - level: 2 - IRON_SHOVEL_RANK_4: - name: Iron Shovel Forger Rank 4 - production_time: 360 - inputs: - Iron: - material: IRON - amount: 32 - Iron Shovel: - material: IRON_SHOVEL - amount: 1 - display_name: Iron Shovel Rank 3 - lore: Iron Shovel Rank 3 - outputs: - Iron Shovel: - material: IRON_SHOVEL - amount: 1 - display_name: Iron Shovel Rank 4 - lore: Iron Shovel Rank 4 - enchantments: - Efficiency: - type: DIG_SPEED - level: 4 - Unbreaking: - type: DURABILITY - level: 3 - IRON_HOE_RANK_0: - name: Iron Hoe Forger Rank 0 - production_time: 360 - inputs: - Iron: - material: IRON - amount: 32 - Stone Hoe: - material: STONE_HOE - amount: 2 - display_name: Stone Hoe Rank 4 - lore: Stone Hoe Rank 4 - outputs: - Iron Hoe: - material: IRON_HOE - amount: 1 - display_name: Iron Hoe Rank 0 - lore: Iron Hoe Rank 0 - IRON_HOE_RANK_1: - name: Iron Hoe Forger Rank 1 - production_time: 360 - inputs: - Iron: - material: IRON - amount: 32 - Iron Hoe: - material: IRON_HOE - amount: 1 - display_name: Iron Hoe Rank 0 - lore: Iron Hoe Rank 0 - outputs: - Iron Hoe: - material: IRON_HOE - amount: 1 - display_name: Iron Hoe Rank 1 - lore: Iron Hoe Rank 1 - enchantments: - Efficiency: - type: DIG_SPEED - level: 1 - IRON_HOE_RANK_2: - name: Iron Hoe Forger Rank 2 - production_time: 360 - inputs: - Iron: - material: IRON - amount: 32 - Iron Hoe: - material: IRON_HOE - amount: 1 - display_name: Iron Hoe Rank 1 - lore: Iron Hoe Rank 1 - outputs: - Iron Hoe: - material: IRON_HOE - amount: 1 - display_name: Iron Hoe Rank 2 - lore: Iron Hoe Rank 2 - enchantments: - Efficiency: - type: DIG_SPEED - level: 2 - Unbreaking: - type: DURABILITY - level: 1 - IRON_HOE_RANK_3: - name: Iron Hoe Forger Rank 3 - production_time: 360 - inputs: - Iron: - material: IRON - amount: 32 - Iron Hoe: - material: IRON_HOE - amount: 1 - display_name: Iron Hoe Rank 2 - lore: Iron Hoe Rank 2 - outputs: - Iron Hoe: - material: IRON_HOE - amount: 1 - display_name: Iron Hoe Rank 3 - lore: Iron Hoe Rank 3 - enchantments: - Efficiency: - type: DIG_SPEED - level: 3 - Unbreaking: - type: DURABILITY - level: 2 - IRON_HOE_RANK_4: - name: Iron Hoe Forger Rank 4 - production_time: 360 - inputs: - Iron: - material: IRON - amount: 32 - Iron Hoe: - material: IRON_HOE - amount: 1 - display_name: Iron Hoe Rank 3 - lore: Iron Hoe Rank 3 - outputs: - Iron Hoe: - material: IRON_HOE - amount: 1 - display_name: Iron Hoe Rank 4 - lore: Iron Hoe Rank 4 - enchantments: - Efficiency: - type: DIG_SPEED - level: 4 - Unbreaking: - type: DURABILITY - level: 3 - DIAMOND_PICKAXE_RANK_0: - name: Diamond Pickaxe Forger Rank 0 - production_time: 360 - inputs: - Diamond: - material: DIAMOND - amount: 32 - Iron Pickaxe: - material: IRON_PICKAXE - amount: 2 - display_name: Iron Pickaxe Rank 4 - lore: Iron Pickaxe Rank 4 - outputs: - Diamond Pickaxe: - material: DIAMOND_PICKAXE - amount: 1 - display_name: Diamond Pickaxe Rank 0 - lore: Diamond Pickaxe Rank 0 - DIAMOND_PICKAXE_RANK_1: - name: Diamond Pickaxe Forger Rank 1 - production_time: 360 - inputs: - Diamond: - material: DIAMOND - amount: 32 - Diamond Pickaxe: - material: DIAMOND_PICKAXE - amount: 1 - display_name: Diamond Pickaxe Rank 0 - lore: Diamond Pickaxe Rank 0 - outputs: - Diamond Pickaxe: - material: DIAMOND_PICKAXE - amount: 1 - display_name: Diamond Pickaxe Rank 1 - lore: Diamond Pickaxe Rank 1 - enchantments: - Efficiency: - type: DIG_SPEED - level: 1 - DIAMOND_PICKAXE_RANK_2: - name: Diamond Pickaxe Forger Rank 2 - production_time: 360 - inputs: - Diamond: - material: DIAMOND - amount: 32 - Diamond Pickaxe: - material: DIAMOND_PICKAXE - amount: 1 - display_name: Diamond Pickaxe Rank 1 - lore: Diamond Pickaxe Rank 1 - outputs: - Diamond Pickaxe: - material: DIAMOND_PICKAXE - amount: 1 - display_name: Diamond Pickaxe Rank 2 - lore: Diamond Pickaxe Rank 2 - enchantments: - Efficiency: - type: DIG_SPEED - level: 2 - Unbreaking: - type: DURABILITY - level: 1 - DIAMOND_PICKAXE_RANK_3: - name: Diamond Pickaxe Forger Rank 3 - production_time: 360 - inputs: - Diamond: - material: DIAMOND - amount: 32 - Diamond Pickaxe: - material: DIAMOND_PICKAXE - amount: 1 - display_name: Diamond Pickaxe Rank 2 - lore: Diamond Pickaxe Rank 2 - outputs: - Diamond Pickaxe: - material: DIAMOND_PICKAXE - amount: 1 - display_name: Diamond Pickaxe Rank 3 - lore: Diamond Pickaxe Rank 3 - enchantments: - Efficiency: - type: DIG_SPEED - level: 3 - Unbreaking: - type: DURABILITY - level: 2 - DIAMOND_PICKAXE_RANK_4: - name: Diamond Pickaxe Forger Rank 4 - production_time: 360 - inputs: - Diamond: - material: DIAMOND - amount: 32 - Diamond Pickaxe: - material: DIAMOND_PICKAXE - amount: 1 - display_name: Diamond Pickaxe Rank 3 - lore: Diamond Pickaxe Rank 3 - outputs: - Diamond Pickaxe: - material: DIAMOND_PICKAXE - amount: 1 - display_name: Diamond Pickaxe Rank 4 - lore: Diamond Pickaxe Rank 4 - enchantments: - Efficiency: - type: DIG_SPEED - level: 4 - Unbreaking: - type: DURABILITY - level: 3 - DIAMOND_AXE_RANK_0: - name: Diamond Axe Forger Rank 0 - production_time: 360 - inputs: - Diamond: - material: DIAMOND - amount: 32 - Iron Axe: - material: IRON_AXE - amount: 2 - display_name: Iron Axe Rank 4 - lore: Iron Axe Rank 4 - outputs: - Diamond Axe: - material: DIAMOND_AXE - amount: 1 - display_name: Diamond Axe Rank 0 - lore: Diamond Axe Rank 0 - DIAMOND_AXE_RANK_1: - name: Diamond Axe Forger Rank 1 - production_time: 360 - inputs: - Diamond: - material: DIAMOND - amount: 32 - Diamond Axe: - material: DIAMOND_AXE - amount: 1 - display_name: Diamond Axe Rank 0 - lore: Diamond Axe Rank 0 - outputs: - Diamond Axe: - material: DIAMOND_AXE - amount: 1 - display_name: Diamond Axe Rank 1 - lore: Diamond Axe Rank 1 - enchantments: - Efficiency: - type: DIG_SPEED - level: 1 - DIAMOND_AXE_RANK_2: - name: Diamond Axe Forger Rank 2 - production_time: 360 - inputs: - Diamond: - material: DIAMOND - amount: 32 - Diamond Axe: - material: DIAMOND_AXE - amount: 1 - display_name: Diamond Axe Rank 1 - lore: Diamond Axe Rank 1 - outputs: - Diamond Axe: - material: DIAMOND_AXE - amount: 1 - display_name: Diamond Axe Rank 2 - lore: Diamond Axe Rank 2 - enchantments: - Efficiency: - type: DIG_SPEED - level: 2 - Unbreaking: - type: DURABILITY - level: 1 - DIAMOND_AXE_RANK_3: - name: Diamond Axe Forger Rank 3 - production_time: 360 - inputs: - Diamond: - material: DIAMOND - amount: 32 - Diamond Axe: - material: DIAMOND_AXE - amount: 1 - display_name: Diamond Axe Rank 2 - lore: Diamond Axe Rank 2 - outputs: - Diamond Axe: - material: DIAMOND_AXE - amount: 1 - display_name: Diamond Axe Rank 3 - lore: Diamond Axe Rank 3 - enchantments: - Efficiency: - type: DIG_SPEED - level: 3 - Unbreaking: - type: DURABILITY - level: 2 - DIAMOND_AXE_RANK_4: - name: Diamond Axe Forger Rank 4 - production_time: 360 - inputs: - Diamond: - material: DIAMOND - amount: 32 - Diamond Axe: - material: DIAMOND_AXE - amount: 1 - display_name: Diamond Axe Rank 3 - lore: Diamond Axe Rank 3 - outputs: - Diamond Axe: - material: DIAMOND_AXE - amount: 1 - display_name: Diamond Axe Rank 4 - lore: Diamond Axe Rank 4 - enchantments: - Efficiency: - type: DIG_SPEED - level: 4 - Unbreaking: - type: DURABILITY - level: 3 - DIAMOND_SHOVEL_RANK_0: - name: Diamond Shovel Forger Rank 0 - production_time: 360 - inputs: - Diamond: - material: DIAMOND - amount: 32 - Iron Shovel: - material: IRON_SHOVEL - amount: 2 - display_name: Iron Shovel Rank 4 - lore: Iron Shovel Rank 4 - outputs: - Diamond Shovel: - material: DIAMOND_SHOVEL - amount: 1 - display_name: Diamond Shovel Rank 0 - lore: Diamond Shovel Rank 0 - DIAMOND_SHOVEL_RANK_1: - name: Diamond Shovel Forger Rank 1 - production_time: 360 - inputs: - Diamond: - material: DIAMOND - amount: 32 - Diamond Shovel: - material: DIAMOND_SHOVEL - amount: 1 - display_name: Diamond Shovel Rank 0 - lore: Diamond Shovel Rank 0 - outputs: - Diamond Shovel: - material: DIAMOND_SHOVEL - amount: 1 - display_name: Diamond Shovel Rank 1 - lore: Diamond Shovel Rank 1 - enchantments: - Efficiency: - type: DIG_SPEED - level: 1 - DIAMOND_SHOVEL_RANK_2: - name: Diamond Shovel Forger Rank 2 - production_time: 360 - inputs: - Diamond: - material: DIAMOND - amount: 32 - Diamond Shovel: - material: DIAMOND_SHOVEL - amount: 1 - display_name: Diamond Shovel Rank 1 - lore: Diamond Shovel Rank 1 - outputs: - Diamond Shovel: - material: DIAMOND_SHOVEL - amount: 1 - display_name: Diamond Shovel Rank 2 - lore: Diamond Shovel Rank 2 - enchantments: - Efficiency: - type: DIG_SPEED - level: 2 - Unbreaking: - type: DURABILITY - level: 1 - DIAMOND_SHOVEL_RANK_3: - name: Diamond Shovel Forger Rank 3 - production_time: 360 - inputs: - Diamond: - material: DIAMOND - amount: 32 - Diamond Shovel: - material: DIAMOND_SHOVEL - amount: 1 - display_name: Diamond Shovel Rank 2 - lore: Diamond Shovel Rank 2 - outputs: - Diamond Shovel: - material: DIAMOND_SHOVEL - amount: 1 - display_name: Diamond Shovel Rank 3 - lore: Diamond Shovel Rank 3 - enchantments: - Efficiency: - type: DIG_SPEED - level: 3 - Unbreaking: - type: DURABILITY - level: 2 - DIAMOND_SHOVEL_RANK_4: - name: Diamond Shovel Forger Rank 4 - production_time: 360 - inputs: - Diamond: - material: DIAMOND - amount: 32 - Diamond Shovel: - material: DIAMOND_SHOVEL - amount: 1 - display_name: Diamond Shovel Rank 3 - lore: Diamond Shovel Rank 3 - outputs: - Diamond Shovel: - material: DIAMOND_SHOVEL - amount: 1 - display_name: Diamond Shovel Rank 4 - lore: Diamond Shovel Rank 4 - enchantments: - Efficiency: - type: DIG_SPEED - level: 4 - Unbreaking: - type: DURABILITY - level: 3 - DIAMOND_HOE_RANK_0: - name: Diamond Hoe Forger Rank 0 - production_time: 360 - inputs: - Diamond: - material: DIAMOND - amount: 32 - Iron Hoe: - material: IRON_HOE - amount: 2 - display_name: Iron Hoe Rank 4 - lore: Iron Hoe Rank 4 - outputs: - Diamond Hoe: - material: DIAMOND_HOE - amount: 1 - display_name: Diamond Hoe Rank 0 - lore: Diamond Hoe Rank 0 - DIAMOND_HOE_RANK_1: - name: Diamond Hoe Forger Rank 1 - production_time: 360 - inputs: - Diamond: - material: DIAMOND - amount: 32 - Diamond Hoe: - material: DIAMOND_HOE - amount: 1 - display_name: Diamond Hoe Rank 0 - lore: Diamond Hoe Rank 0 - outputs: - Diamond Hoe: - material: DIAMOND_HOE - amount: 1 - display_name: Diamond Hoe Rank 1 - lore: Diamond Hoe Rank 1 - enchantments: - Efficiency: - type: DIG_SPEED - level: 1 - DIAMOND_HOE_RANK_2: - name: Diamond Hoe Forger Rank 2 - production_time: 360 - inputs: - Diamond: - material: DIAMOND - amount: 32 - Diamond Hoe: - material: DIAMOND_HOE - amount: 1 - display_name: Diamond Hoe Rank 1 - lore: Diamond Hoe Rank 1 - outputs: - Diamond Hoe: - material: DIAMOND_HOE - amount: 1 - display_name: Diamond Hoe Rank 2 - lore: Diamond Hoe Rank 2 - enchantments: - Efficiency: - type: DIG_SPEED - level: 2 - Unbreaking: - type: DURABILITY - level: 1 - DIAMOND_HOE_RANK_3: - name: Diamond Hoe Forger Rank 3 - production_time: 360 - inputs: - Diamond: - material: DIAMOND - amount: 32 - Diamond Hoe: - material: DIAMOND_HOE - amount: 1 - display_name: Diamond Hoe Rank 2 - lore: Diamond Hoe Rank 2 - outputs: - Diamond Hoe: - material: DIAMOND_HOE - amount: 1 - display_name: Diamond Hoe Rank 3 - lore: Diamond Hoe Rank 3 - enchantments: - Efficiency: - type: DIG_SPEED - level: 3 - Unbreaking: - type: DURABILITY - level: 2 - DIAMOND_HOE_RANK_4: - name: Diamond Hoe Forger Rank 4 - production_time: 360 - inputs: - Diamond: - material: DIAMOND - amount: 32 - Diamond Hoe: - material: DIAMOND_HOE - amount: 1 - display_name: Diamond Hoe Rank 3 - lore: Diamond Hoe Rank 3 - outputs: - Diamond Hoe: - material: DIAMOND_HOE - amount: 1 - display_name: Diamond Hoe Rank 4 - lore: Diamond Hoe Rank 4 - enchantments: - Efficiency: - type: DIG_SPEED - level: 4 - Unbreaking: - type: DURABILITY - level: 3 - From 6a4ee1169e776d018ddaeb988298c23e24171203 Mon Sep 17 00:00:00 2001 From: ribagi Date: Wed, 13 May 2015 17:22:54 -0700 Subject: [PATCH 52/52] Update config.yml --- config.yml | 4077 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 4077 insertions(+) diff --git a/config.yml b/config.yml index d3f5a12f..63411151 100644 --- a/config.yml +++ b/config.yml @@ -1 +1,4078 @@ +#Example: production_general +# update_cycle: 20 the period of ticks between which factories are updated +# maintenance_cycle: 15 the period of ticks between which the maintenance of the factories are updated +# maintenance_rate: 1 %Modifies the rate at which factories degrade, higher numbers degrade the factories faster +#Example recipe entry with defaults included any section should be able to be excluded +# TITLE: (Don't use spaces, should be a unique identifier) +# name: Default Name (Displayed name to user) +# production_time: 1 (Time to produce the recipe) +# inputs: (only include if there are inputs) +# Common Name: +# material: MATERIAL_NAME (Official bukkit material name) +# amount: 1 (number of a particular item) +# durability: 0 (damage value, 0 represents max durability, negative represents greater than max) +# data: 0 (data value of the item stack +# display_name: (display name of the item, null by default) +# lore: (lore of the item, null by default) +# upgrades: (only include if there are inputs) +# Common Name: +# material: MATERIAL_NAME (Official bukkit material name) +# amount: 1 (number of a particular item) +# durability: 0 (damage value, 0 represents max durability, negative represents greater than max) +# data: 0 (data value of the item stack +# display_name: (display name of the item, null by default) +# lore: (lore of the item, null by default) +# outputs: (only include if there are outputs) +# Common Name: +# material: MATERIAL_NAME (Official bukkit material name) +# amount: 1 (number of a particular item) +# durability: 0 (damage value, 0 represents max durability, negative represents greater than max) +# data: 0 (data value of the item stack +# display_name: (display name of the item, null by default) +# lore: (lore of the item, null by default) +# enchantments: +# Common Name: +# type: (Offificial bukkit enchantment name, Require) +# level: 1 (level of the enchantment +# probability: 1 (0-1 probability of the enchantment being applied) +# output_recipes: +# - TITLE (TITLE of the output recipe) +# use_once: false (If this recipe is removed after its first use) +# maintenance: 0 (Maximum amount of maintence required for this recipe) +###################################################################### +#Example factory entry with defaults included any section should be able to be excluded +# TITLE: (Don't use spaces, should be a unique identifier) +# name: Default Name (Displayed name to user) +# fuel: (Defaults to charcoal if not present, only first entry used) +# Common Name: +# material: MATERIAL_NAME (Official bukkit material name) +# amount: 1 (number of a particular item) +# durability: 0 (damage value, 0 represents max durability, negative represents greater than max) +# data: 0 (data value of the item stack +# display_name: (display name of the item, null by default) +# lore: (lore of the item, null by default)# +# lore: (lore of the item, null by default)# fuel_time: 1 (Time that a piece of fuel lasts) +# fuel_time: 1 (Time which fuel lasts) +# inputs: (required) +# Common Name: +# material: MATERIAL_NAME (Official bukkit material name) +# amount: 1 (number of a particular item) +# durability: 0 (damage value, 0 represents max durability, negative represents greater than max) +# data: 0 (data value of the item stack +# display_name: (display name of the item, null by default) +# lore: (lore of the item, null by default) +# production_recipes: +# - TITLE (title of recipe) +# repair_material: (Defaults to coal if none are present) +# Common Name: +# material: MATERIAL_NAME (Official bukkit material name) +# amount: 1 (number of a particular item) +# durability: 0 (damage value, 0 represents max durability, negative represents greater than max) +# data: 0 (data value of the item stack +# display_name: (display name of the item, null by default) +# lore: (lore of the item, null by default) +copy_defaults: false +general: + central_block: WORKBENCH + save_cycle: 15 + return_build_materials: false + citadel_enabled: true + factory_interaction_material: STICK + disable_experience: true +production_general: + update_cycle: 20 + repair_period: 28 + disrepair_period: 14 +printing_presses: + fuel: + Charcoal: + material: 'COAL' + durability: 1 + fuel_time: 5 + costs: + construction: + "Iron block": + material: 'IRON_BLOCK' + amount: 60 + "Redstone": + material: REDSTONE + amount: 256 + "Quartz": + material: QUARTZ + amount: 64 + "Piston": + material: PISTON_BASE + amount: 20 + "Gold plate": + material: GOLD_PLATE + amount: 20 + plates: + "Iron ingot": + material: 'IRON_INGOT' + amount: 1 + "Gold nugget": + material: "GOLD_NUGGET" + amount: 1 + set_page_time: 5 + repair: + "Iron block": + material: 'IRON_BLOCK' + amount: 1 + repair_multiple: 5 + binding: # Each + Leather: + material: 'LEATHER' + amount: 1 + page_lot: + Paper: + material: 'PAPER' + amount: 4 + Ink: + material: 'INK_SACK' + durability: 0 + amount: 1 + pages_per_lot: 32 + page_lead: 6 + pamphlet_lot: + Paper: + material: 'PAPER' + amount: 4 + Ink: + material: 'INK_SACK' + durability: 0 + amount: 1 + pamphlets_per_lot: 32 + security_lot: + "Gold nuggets": + material: 'GOLD_NUGGET' + amount: 1 + "Cactus green": + material: 'INK_SACK' + durability: 2 + amount: 6 + security_notes_per_lot: 128 +crafting: + disable: + enable: + XP to Emerald: + inputs: + Exp Bottle: + material: EXP_BOTTLE + amount: 9 + output: + Emerald: + material: EMERALD + Emerald to XP: + inputs: + Emerald: + material: EMERALD + output: + Exp Bottle: + material: EXP_BOTTLE + amount: 9 + Stone to Double Slab: + inputs: + s: + Stone: + material: STONE + shape: + - sss + - sss + output: + Double Stone Slab: + material: DOUBLE_STEP + Slab to Double Slab: + inputs: + s: + Stone Slab: + material: STEP + shape: + - s + - s + output: + Double Stone Slab: + material: DOUBLE_STEP +production_factories: + Stone_Imbuer: + fuel: + Charcoal: + material: COAL + durability: 1 + inputs: + Cobblestone: + material: COBBLESTONE + amount: 512 + recipes: + - Smelt_Stone + - Stone_Knife + - Blast_Furnace + - Burn_Lump_Charcoal_Dark_Oak + - Burn_Lump_Charcoal_Acacia + - Burn_Lump_Charcoal_Jungle + - Burn_Lump_Charcoal_Birch + - Burn_Lump_Charcoal_Spruce + - Burn_Lump_Charcoal_Oak + repair_multiple: 205 + repair_inputs: + Cobblestone: + material: COBBLESTONE + amount: 6 + Iron_Imbuer: + fuel: + Lump Charcoal: + material: COAL + durability: 1 + lore: Lump Charcoal + inputs: + Iron: + material: IRON + amount: 512 + recipes: + - Smelt_Iron + - Iron_hammer + - Faceting machine + - Burn_Briquette_Dark_Oak + - Burn_Briquette_Acacia + - Burn_Briquette_Jungle + - Burn_Briquette_Birch + - Burn_Briquette_Spruce + - Burn_Briquette_Oak + repair_multiple: 205 + repair_inputs: + Iron: + material: IRON + amount: 6 + Diamond_Imbuer: + fuel: + Briquette: + material: COAL + durability: 1 + lore: Briquette + inputs: + Diamond: + material: DIAMOND + amount: 512 + recipes: + - Smelt_Diamond_Ore + - Diamond_Drill_Heads + - Faceting_Machine + - Burn_White_Charcoal_Dark_Oak + - Burn_White_Charcoal_Acacia + - Burn_White_Charcoal_Jungle + - Burn_White_Charcoal_Birch + - Burn_White_Charcoal_Spruce + - Burn_White_Charcoal_Oak + - OBSIDIAN_GENERATOR + repair_multiple: 205 + repair_inputs: + Diamond: + material: DIAMOND + amount: 6 + Leather_Tanner: + fuel: + Lump Charcoal: + material: COAL + durability: 1 + lore: Lump Charcoal + inputs: + Stone knife: + material: FLINT + amount: 12 + lore: Stone knife + recipes: + - LEATHER_BOOTS_RANK_0 + - LEATHER_BOOTS_RANK_1 + - LEATHER_BOOTS_RANK_2 + - LEATHER_BOOTS_RANK_3 + - LEATHER_BOOTS_RANK_4 + - LEATHER_CHESTPLATE_RANK_0 + - LEATHER_CHESTPLATE_RANK_1 + - LEATHER_CHESTPLATE_RANK_2 + - LEATHER_CHESTPLATE_RANK_3 + - LEATHER_CHESTPLATE_RANK_4 + - LEATHER_HELMET_RANK_0 + - LEATHER_HELMET_RANK_1 + - LEATHER_HELMET_RANK_2 + - LEATHER_HELMET_RANK_3 + - LEATHER_HELMET_RANK_4 + - LEATHER_LEGGINGS_RANK_0 + - LEATHER_LEGGINGS_RANK_1 + - LEATHER_LEGGINGS_RANK_2 + - LEATHER_LEGGINGS_RANK_3 + - LEATHER_LEGGINGS_RANK_4 + repair_multiple: 26 + repair_inputs: + Stone knife: + material: FLINT + amount: 2 + lore: Stone knife + Iron_Refiner: + fuel: + Briquette: + material: COAL + durability: 1 + lore: Briquette + inputs: + Blast furnace: + material: CLAY_BRICK + amount: 16 + lore: Blast furnace + Iron hammer: + material: BONE + amount: 16 + lore: Iron hammer + recipes: + - IRON_BOOTS_RANK_0 + - IRON_BOOTS_RANK_1 + - IRON_BOOTS_RANK_2 + - IRON_BOOTS_RANK_3 + - IRON_BOOTS_RANK_4 + - IRON_CHESTPLATE_RANK_0 + - IRON_CHESTPLATE_RANK_1 + - IRON_CHESTPLATE_RANK_2 + - IRON_CHESTPLATE_RANK_3 + - IRON_CHESTPLATE_RANK_4 + - IRON_HELMET_RANK_0 + - IRON_HELMET_RANK_1 + - IRON_HELMET_RANK_2 + - IRON_HELMET_RANK_3 + - IRON_HELMET_RANK_4 + - IRON_LEGGINGS_RANK_0 + - IRON_LEGGINGS_RANK_1 + - IRON_LEGGINGS_RANK_2 + - IRON_LEGGINGS_RANK_3 + - IRON_LEGGINGS_RANK_4 + repair_multiple: 26 + repair_inputs: + Blast furnace: + material: CLAY_BRICK + amount: 4 + lore: Blast furnace + Diamond_Cutter: + fuel: + White Charcoal: + material: COAL + durability: 1 + lore: White Charcoal + inputs: + Faceting machine: + material: WATCH + amount: 32 + lore: Faceting machine + Diamond drill heads: + material: DIAMOND + amount: 16 + lore: Diamond drill heads + recipes: + - DIAMOND_BOOTS_RANK_0 + - DIAMOND_BOOTS_RANK_1 + - DIAMOND_BOOTS_RANK_2 + - DIAMOND_BOOTS_RANK_3 + - DIAMOND_BOOTS_RANK_4 + - DIAMOND_CHESTPLATE_RANK_0 + - DIAMOND_CHESTPLATE_RANK_1 + - DIAMOND_CHESTPLATE_RANK_2 + - DIAMOND_CHESTPLATE_RANK_3 + - DIAMOND_CHESTPLATE_RANK_4 + - DIAMOND_HELMET_RANK_0 + - DIAMOND_HELMET_RANK_1 + - DIAMOND_HELMET_RANK_2 + - DIAMOND_HELMET_RANK_3 + - DIAMOND_HELMET_RANK_4 + - DIAMOND_LEGGINGS_RANK_0 + - DIAMOND_LEGGINGS_RANK_1 + - DIAMOND_LEGGINGS_RANK_2 + - DIAMOND_LEGGINGS_RANK_3 + - DIAMOND_LEGGINGS_RANK_4 + repair_multiple: 26 + repair_inputs: + Faceting machine: + material: WATCH + amount: 8 + lore: Faceting machine + Stone_Grinder: + fuel: + Lump Charcoal: + material: COAL + durability: 1 + lore: Limp Charcoal + inputs: + Stone knife: + material: FLINT + lore: Stone knife + amount: 12 + recipes: + - STONE_SWORD_RANK_0 + - STONE_SWORD_RANK_1 + - STONE_SWORD_RANK_2 + - STONE_SWORD_RANK_3 + - STONE_SWORD_RANK_4 + repair_multiple: 26 + repair_inputs: + Stone knife: + material: FLINT + amount: 2 + lore: Stone knife + Iron_Forger: + fuel: + Briquette: + material: COAL + durability: 1 + lore: Briquette + inputs: + Blast furnace: + material: CLAY_BRICK + lore: Blast furnace + amount: 16 + Iron hammer: + material: BONE + amount: 16 + lore: Iron hammer + recipes: + - IRON_SWORD_RANK_0 + - IRON_SWORD_RANK_1 + - IRON_SWORD_RANK_2 + - IRON_SWORD_RANK_3 + - IRON_SWORD_RANK_4 + repair_multiple: 26 + repair_inputs: + Blast furnace: + material: CLAY_BRICK + amount: 4 + lore: Blast furnace + Diamond_Polisher: + fuel: + White Charcoal: + material: COAL + durability: 1 + lore: White Charcoal + inputs: + Faceting machine: + material: WATCH + lore: Faceting machine + amount: 32 + Diamond drill heads: + material: DIAMOND + amount: 16 + lore: Diamond drill heads + recipes: + - DIAMOND_SWORD_RANK_0 + - DIAMOND_SWORD_RANK_1 + - DIAMOND_SWORD_RANK_2 + - DIAMOND_SWORD_RANK_3 + - DIAMOND_SWORD_RANK_4 + repair_multiple: 26 + repair_inputs: + Faceting machine: + material: WATCH + amount: 8 + lore: Faceting machine + Stone_Anvil: + fuel: + Charcoal: + material: COAL + durability: 1 + inputs: + Stone knife: + material: FLINT + lore: Stone knife + amount: 12 + recipes: + - STONE_PICKAXE_RANK_0 + - STONE_PICKAXE_RANK_1 + - STONE_PICKAXE_RANK_2 + - STONE_PICKAXE_RANK_3 + - STONE_PICKAXE_RANK_4 + - STONE_AXE_RANK_0 + - STONE_AXE_RANK_1 + - STONE_AXE_RANK_2 + - STONE_AXE_RANK_3 + - STONE_AXE_RANK_4 + - STONE_SHOVEL_RANK_0 + - STONE_SHOVEL_RANK_1 + - STONE_SHOVEL_RANK_2 + - STONE_SHOVEL_RANK_3 + - STONE_SHOVEL_RANK_4 + - STONE_HOE_RANK_0 + - STONE_HOE_RANK_1 + - STONE_HOE_RANK_2 + - STONE_HOE_RANK_3 + - STONE_HOE_RANK_4 + repair_multiple: 26 + repair_inputs: + Stone knife: + material: FLINT + amount: 2 + lore: Stone knife + Iron_Anvil: + fuel: + Charcoal: + material: COAL + durability: 1 + inputs: + Blast furnace: + material: CLAY_BRICK + lore: Blast furnace + amount: 16 + recipes: + - IRON_PICKAXE_RANK_0 + - IRON_PICKAXE_RANK_1 + - IRON_PICKAXE_RANK_2 + - IRON_PICKAXE_RANK_3 + - IRON_PICKAXE_RANK_4 + - IRON_AXE_RANK_0 + - IRON_AXE_RANK_1 + - IRON_AXE_RANK_2 + - IRON_AXE_RANK_3 + - IRON_AXE_RANK_4 + - IRON_SHOVEL_RANK_0 + - IRON_SHOVEL_RANK_1 + - IRON_SHOVEL_RANK_2 + - IRON_SHOVEL_RANK_3 + - IRON_SHOVEL_RANK_4 + - IRON_HOE_RANK_0 + - IRON_HOE_RANK_1 + - IRON_HOE_RANK_2 + - IRON_HOE_RANK_3 + - IRON_HOE_RANK_4 + repair_multiple: 26 + repair_inputs: + Blast furnace: + material: CLAY_BRICK + amount: 4 + lore: Blast furnace + Diamond_Anvil: + fuel: + Charcoal: + material: COAL + durability: 1 + inputs: + Faceting machine: + material: WATCH + lore: Faceting machine + amount: 32 + Iron hammer: + material: IRONE_HOE + lore: Iron hammer + amount: 6 + recipes: + - DIAMOND_PICKAXE_RANK_0 + - DIAMOND_PICKAXE_RANK_1 + - DIAMOND_PICKAXE_RANK_2 + - DIAMOND_PICKAXE_RANK_3 + - DIAMOND_PICKAXE_RANK_4 + - DIAMOND_AXE_RANK_0 + - DIAMOND_AXE_RANK_1 + - DIAMOND_AXE_RANK_2 + - DIAMOND_AXE_RANK_3 + - DIAMOND_AXE_RANK_4 + - DIAMOND_SHOVEL_RANK_0 + - DIAMOND_SHOVEL_RANK_1 + - DIAMOND_SHOVEL_RANK_2 + - DIAMOND_SHOVEL_RANK_3 + - DIAMOND_SHOVEL_RANK_4 + - DIAMOND_HOE_RANK_0 + - DIAMOND_HOE_RANK_1 + - DIAMOND_HOE_RANK_2 + - DIAMOND_HOE_RANK_3 + - DIAMOND_HOE_RANK_4 + repair_multiple: 26 + repair_inputs: + Faceting machine: + material: WATCH + amount: 8 + lore: Faceting machine + Aspect_Factory: + name: Arcane Elementizer + fuel: + Charcoal: + material: COAL + durability: 1 + inputs: + Netherbrick: + material: NETHER_BRICK + amount: 1536 + Redstone: + material: REDSTONE + amount: 1152 + Netherquartz: + material: QUARTZ + amount: 576 + recipes: + - Forge_Aspect_of_Terra + - Forge_Aspect_of_End + - Forge_Aspect_of_Nether + - Craft_Eye_of_Ender + repair_multiple: 26 + repair_inputs: + Nether Brick: + material: NETHER_BRICK + amount: 6 + Redstone: + material: REDSTONE + amount: 5 + Netherquartz: + material: QUARTZ + amount: 2 +nether_factory: + name: Nether Factory + fuel: + Charcoal: + material: COAL + durability: 1 + costs: + construction: + Aspect of Nether: + material: MAGMA_CREAM + amount: 8 + display_name: Aspect of Nether + lore: A concentrated essence of the Nether + Aspect of Terra: + material: DIAMOND + amount: 8 + display_name: Aspect of Terra + lore: A concentrated essence of Terra + Aspect of END: + material: FLINT + amount: 8 + display_name: Aspect of End + lore: A concentrated essence of the End + repair: + Diamond block: + material: DIAMOND_BLOCK + amount: 1 + repair_multiple: 1 + fuel_time: 10 + repair_time: 12 + scaling_radius: 5000 + cost_scaling_radius: 5000 + use_fuel_on_teleport: false +production_recipes: + Forge_Aspect_of_Terra: + name: Forge Aspect of Terra + production_time: 64 + inputs: + Emerald Block: + material: EMERALD_BLOCK + amount: 24 + Diamond Block: + material: DIAMOND_BLOCK + amount: 24 + Gold Ore: + material: GOLD_ORE + amount: 8 + Slime Ball: + material: SLIME_BALL + amount: 8 + Anvil: + material: ANVIL + amount: 8 + outputs: + Aspect of Terra: + material: DIAMOND + amount: 1 + display_name: Aspect of Terra + lore: A concentrated essence of Terra + Forge_Aspect_of_End: + name: Forge Aspect of End + production_time: 64 + inputs: + Ender Pearl: + material: ENDER_PEARL + amount: 256 + Ender Chest: + material: ENDER_CHEST + amount: 256 + Endstone: + material: ENDER_STONE + amount: 1024 + outputs: + Aspect of End: + material: FLINT + amount: 1 + display_name: Aspect of End + lore: A concentrated essence of the End + Smelt_Stone: + name: Smelt Stone + production_time: 16 + inputs: + Cobblestone: + material: COBBLESTONE + amount: 256 + outputs: + Stone: + material: Stone + amount: 512 + Smelt_Iron: + name: Smelt Iron + production_time: 16 + inputs: + Iron Ore: + material: IRON_ORE + amount: 64 + outputs: + Iron: + material: IRON + amount: 128 + Smelt_Diamond_Ore: + name: Smelt Diamond Ore + production_time: 16 + inputs: + Diamond Ore: + material: DIAMOND_ORE + amount: 16 + outputs: + Diamond: + material: DIAMOND + amount: 48 + Burn_Lump_Charcoal_Oak: + name: Smelt Stone + production_time: 16 + inputs: + Oak Wood: + material: LOG + amount: 256 + outputs: + Lump Charcoal: + material: COAL + durability: 1 + lore: Lump Charcoal + amount: 512 + Burn_Lump_Charcoal_Spruce: + name: Smelt Stone + production_time: 16 + inputs: + Spruce Wood: + material: LOG + amount: 256 + durability: 1 + outputs: + Lump Charcoal: + material: COAL + durability: 1 + lore: Lump Charcoal + amount: 512 + Burn_Lump_Charcoal_Birch: + name: Smelt Stone + production_time: 16 + inputs: + Birch Wood: + material: LOG + amount: 256 + durability: 2 + outputs: + Charcoal: + material: COAL + amount: 512 + durability: 1 + Burn_Lump_Charcoal_Jungle: + name: Smelt Stone + production_time: 16 + inputs: + Jungle Wood: + material: LOG + amount: 256 + durability: 3 + outputs: + Lump Charcoal: + material: COAL + durability: 1 + lore: Lump Charcoal + amount: 512 + Burn_Lump_Charcoal_Acacia: + name: Smelt Stone + production_time: 16 + inputs: + Acacia Wood: + material: LOG_2 + amount: 256 + outputs: + Charcoal: + material: COAL + amount: 512 + durability: 1 + Burn_Lump_Charcoal_Dark_Oak: + name: Smelt Stone + production_time: 16 + inputs: + Dark Oak Wood: + material: LOG_2 + amount: 256 + durability: 1 + outputs: + Lump Charcoal: + material: COAL + durability: 1 + lore: Lump Charcoal + amount: 512 + Burn_Briquette_Oak: + name: Smelt Stone + production_time: 16 + inputs: + Oak Wood: + material: LOG + amount: 256 + outputs: + Briquette: + material: COAL + durability: 1 + lore: Briquette + amount: 512 + Burn_Briquette_Spruce: + name: Smelt Stone + production_time: 16 + inputs: + Spruce Wood: + material: LOG + amount: 256 + durability: 1 + outputs: + Briquette: + material: COAL + durability: 1 + lore: Briquette + amount: 512 + Burn_Briquette_Birch: + name: Smelt Stone + production_time: 16 + inputs: + Birch Wood: + material: LOG + amount: 256 + durability: 2 + outputs: + Charcoal: + material: COAL + amount: 512 + durability: 1 + Burn_Briquette_Jungle: + name: Smelt Stone + production_time: 16 + inputs: + Jungle Wood: + material: LOG + amount: 256 + durability: 3 + outputs: + Briquette: + material: COAL + durability: 1 + lore: Briquette + amount: 512 + Burn_Briquette_Acacia: + name: Smelt Stone + production_time: 16 + inputs: + Acacia Wood: + material: LOG_2 + amount: 256 + outputs: + Charcoal: + material: COAL + amount: 512 + durability: 1 + Burn_Briquette_Dark_Oak: + name: Smelt Stone + production_time: 16 + inputs: + Dark Oak Wood: + material: LOG_2 + amount: 256 + durability: 1 + outputs: + Briquette: + material: COAL + durability: 1 + lore: Briquette + amount: 512 + Burn_White_Charcoal_Oak: + name: Smelt Stone + production_time: 16 + inputs: + Oak Wood: + material: LOG + amount: 256 + outputs: + White Charcoal: + material: COAL + durability: 1 + lore: White Charcoal + amount: 512 + Burn_White_Charcoal_Spruce: + name: Smelt Stone + production_time: 16 + inputs: + Spruce Wood: + material: LOG + amount: 256 + durability: 1 + outputs: + White Charcoal: + material: COAL + durability: 1 + lore: White Charcoal + amount: 512 + Burn_White_Charcoal_Birch: + name: Smelt Stone + production_time: 16 + inputs: + Birch Wood: + material: LOG + amount: 256 + durability: 2 + outputs: + Charcoal: + material: COAL + amount: 512 + durability: 1 + Burn_White_Charcoal_Jungle: + name: Smelt Stone + production_time: 16 + inputs: + Jungle Wood: + material: LOG + amount: 256 + durability: 3 + outputs: + White Charcoal: + material: COAL + durability: 1 + lore: White Charcoal + amount: 512 + Burn_White_Charcoal_Acacia: + name: Smelt Stone + production_time: 16 + inputs: + Acacia Wood: + material: LOG_2 + amount: 256 + outputs: + Charcoal: + material: COAL + amount: 512 + durability: 1 + Burn_White_Charcoal_Dark_Oak: + name: Smelt Stone + production_time: 16 + inputs: + Dark Oak Wood: + material: LOG_2 + amount: 256 + durability: 1 + outputs: + White Charcoal: + material: COAL + durability: 1 + lore: White Charcoal + amount: 512 + LEATHER_BOOTS_RANK_0: + name: Leather Boots Forger Rank 0 + production_time: 360 + inputs: + Leather: + material: LEATHER + amount: 32 + outputs: + Leather Boots: + material: LEATHER_BOOTS + amount: 1 + display_name: Leather Boots Rank 0 + lore: Leather Boots Rank 0 + LEATHER_BOOTS_RANK_1: + name: Leather Boots Forger Rank 1 + production_time: 360 + inputs: + Leather: + material: LEATHER + amount: 32 + Leather Boots: + material: LEATHER_BOOTS + amount: 1 + display_name: Leather Boots Rank 0 + lore: Leather Boots Rank 0 + outputs: + Leather Boots: + material: LEATHER_BOOTS + amount: 1 + display_name: Leather Boots Rank 1 + lore: Leather Boots Rank 1 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 1 + LEATHER_BOOTS_RANK_2: + name: Leather Boots Forger Rank 2 + production_time: 360 + inputs: + Leather: + material: LEATHER + amount: 32 + Leather Boots: + material: LEATHER_BOOTS + amount: 1 + display_name: Leather Boots Rank 1 + lore: Leather Boots Rank 1 + outputs: + Leather Boots: + material: LEATHER_BOOTS + amount: 1 + display_name: Leather Boots Rank 2 + lore: Leather Boots Rank 2 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 2 + Unbreaking: + type: DURABILITY + level: 1 + LEATHER_BOOTS_RANK_3: + name: Leather Boots Forger Rank 3 + production_time: 360 + inputs: + Leather: + material: LEATHER + amount: 32 + Leather Boots: + material: LEATHER_BOOTS + amount: 1 + display_name: Leather Boots Rank 2 + lore: Leather Boots Rank 2 + outputs: + Leather Boots: + material: LEATHER_BOOTS + amount: 1 + display_name: Leather Boots Rank 3 + lore: Leather Boots Rank 3 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 3 + Unbreaking: + type: DURABILITY + level: 2 + LEATHER_BOOTS_RANK_4: + name: Leather Boots Forger Rank 4 + production_time: 360 + inputs: + Leather: + material: LEATHER + amount: 32 + Leather Boots: + material: LEATHER_BOOTS + amount: 1 + display_name: Leather Boots Rank 3 + lore: Leather Boots Rank 3 + outputs: + Leather Boots: + material: LEATHER_BOOTS + amount: 1 + display_name: Leather Boots Rank 4 + lore: Leather Boots Rank 4 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 4 + Unbreaking: + type: DURABILITY + level: 3 + LEATHER_CHESTPLATE_RANK_0: + name: Leather Chestplate Forger Rank 0 + production_time: 360 + inputs: + Leather: + material: LEATHER + amount: 32 + outputs: + Leather Chestplate: + material: LEATHER_CHESTPLATE + amount: 1 + display_name: Leather Chestplate Rank 0 + lore: Leather Chestplate Rank 0 + LEATHER_CHESTPLATE_RANK_1: + name: Leather Chestplate Forger Rank 1 + production_time: 360 + inputs: + Leather: + material: LEATHER + amount: 32 + Leather Chestplate: + material: LEATHER_CHESTPLATE + amount: 1 + display_name: Leather Chestplate Rank 0 + lore: Leather Chestplate Rank 0 + outputs: + Leather Chestplate: + material: LEATHER_CHESTPLATE + amount: 1 + display_name: Leather Chestplate Rank 1 + lore: Leather Chestplate Rank 1 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 1 + LEATHER_CHESTPLATE_RANK_2: + name: Leather Chestplate Forger Rank 2 + production_time: 360 + inputs: + Leather: + material: LEATHER + amount: 32 + Leather Chestplate: + material: LEATHER_CHESTPLATE + amount: 1 + display_name: Leather Chestplate Rank 1 + lore: Leather Chestplate Rank 1 + outputs: + Leather Chestplate: + material: LEATHER_CHESTPLATE + amount: 1 + display_name: Leather Chestplate Rank 2 + lore: Leather Chestplate Rank 2 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 2 + Unbreaking: + type: DURABILITY + level: 1 + LEATHER_CHESTPLATE_RANK_3: + name: Leather Chestplate Forger Rank 3 + production_time: 360 + inputs: + Leather: + material: LEATHER + amount: 32 + Leather Chestplate: + material: LEATHER_CHESTPLATE + amount: 1 + display_name: Leather Chestplate Rank 2 + lore: Leather Chestplate Rank 2 + outputs: + Leather Chestplate: + material: LEATHER_CHESTPLATE + amount: 1 + display_name: Leather Chestplate Rank 3 + lore: Leather Chestplate Rank 3 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 3 + Unbreaking: + type: DURABILITY + level: 2 + LEATHER_CHESTPLATE_RANK_4: + name: Leather Chestplate Forger Rank 4 + production_time: 360 + inputs: + Leather: + material: LEATHER + amount: 32 + Leather Chestplate: + material: LEATHER_CHESTPLATE + amount: 1 + display_name: Leather Chestplate Rank 3 + lore: Leather Chestplate Rank 3 + outputs: + Leather Chestplate: + material: LEATHER_CHESTPLATE + amount: 1 + display_name: Leather Chestplate Rank 4 + lore: Leather Chestplate Rank 4 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 4 + Unbreaking: + type: DURABILITY + level: 3 + LEATHER_HELMET_RANK_0: + name: Leather Helmet Forger Rank 0 + production_time: 360 + inputs: + Leather: + material: LEATHER + amount: 32 + outputs: + Leather Helmet: + material: LEATHER_HELMET + amount: 1 + display_name: Leather Helmet Rank 0 + lore: Leather Helmet Rank 0 + LEATHER_HELMET_RANK_1: + name: Leather Helmet Forger Rank 1 + production_time: 360 + inputs: + Leather: + material: LEATHER + amount: 32 + Leather Helmet: + material: LEATHER_HELMET + amount: 1 + display_name: Leather Helmet Rank 0 + lore: Leather Helmet Rank 0 + outputs: + Leather Helmet: + material: LEATHER_HELMET + amount: 1 + display_name: Leather Helmet Rank 1 + lore: Leather Helmet Rank 1 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 1 + LEATHER_HELMET_RANK_2: + name: Leather Helmet Forger Rank 2 + production_time: 360 + inputs: + Leather: + material: LEATHER + amount: 32 + Leather Helmet: + material: LEATHER_HELMET + amount: 1 + display_name: Leather Helmet Rank 1 + lore: Leather Helmet Rank 1 + outputs: + Leather Helmet: + material: LEATHER_HELMET + amount: 1 + display_name: Leather Helmet Rank 2 + lore: Leather Helmet Rank 2 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 2 + Unbreaking: + type: DURABILITY + level: 1 + LEATHER_HELMET_RANK_3: + name: Leather Helmet Forger Rank 3 + production_time: 360 + inputs: + Leather: + material: LEATHER + amount: 32 + Leather Helmet: + material: LEATHER_HELMET + amount: 1 + display_name: Leather Helmet Rank 2 + lore: Leather Helmet Rank 2 + outputs: + Leather Helmet: + material: LEATHER_HELMET + amount: 1 + display_name: Leather Helmet Rank 3 + lore: Leather Helmet Rank 3 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 3 + Unbreaking: + type: DURABILITY + level: 2 + LEATHER_HELMET_RANK_4: + name: Leather Helmet Forger Rank 4 + production_time: 360 + inputs: + Leather: + material: LEATHER + amount: 32 + Leather Helmet: + material: LEATHER_HELMET + amount: 1 + display_name: Leather Helmet Rank 3 + lore: Leather Helmet Rank 3 + outputs: + Leather Helmet: + material: LEATHER_HELMET + amount: 1 + display_name: Leather Helmet Rank 4 + lore: Leather Helmet Rank 4 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 4 + Unbreaking: + type: DURABILITY + level: 3 + LEATHER_LEGGINGS_RANK_0: + name: Leather Leggings Forger Rank 0 + production_time: 360 + inputs: + Leather: + material: LEATHER + amount: 32 + outputs: + Leather Leggings: + material: LEATHER_LEGGINGS + amount: 1 + display_name: Leather Leggings Rank 0 + lore: Leather Leggings Rank 0 + LEATHER_LEGGINGS_RANK_1: + name: Leather Leggings Forger Rank 1 + production_time: 360 + inputs: + Leather: + material: LEATHER + amount: 32 + Leather Leggings: + material: LEATHER_LEGGINGS + amount: 1 + display_name: Leather Leggings Rank 0 + lore: Leather Leggings Rank 0 + outputs: + Leather Leggings: + material: LEATHER_LEGGINGS + amount: 1 + display_name: Leather Leggings Rank 1 + lore: Leather Leggings Rank 1 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 1 + LEATHER_LEGGINGS_RANK_2: + name: Leather Leggings Forger Rank 2 + production_time: 360 + inputs: + Leather: + material: LEATHER + amount: 32 + Leather Leggings: + material: LEATHER_LEGGINGS + amount: 1 + display_name: Leather Leggings Rank 1 + lore: Leather Leggings Rank 1 + outputs: + Leather Leggings: + material: LEATHER_LEGGINGS + amount: 1 + display_name: Leather Leggings Rank 2 + lore: Leather Leggings Rank 2 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 2 + Unbreaking: + type: DURABILITY + level: 1 + LEATHER_LEGGINGS_RANK_3: + name: Leather Leggings Forger Rank 3 + production_time: 360 + inputs: + Leather: + material: LEATHER + amount: 32 + Leather Leggings: + material: LEATHER_LEGGINGS + amount: 1 + display_name: Leather Leggings Rank 2 + lore: Leather Leggings Rank 2 + outputs: + Leather Leggings: + material: LEATHER_LEGGINGS + amount: 1 + display_name: Leather Leggings Rank 3 + lore: Leather Leggings Rank 3 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 3 + Unbreaking: + type: DURABILITY + level: 2 + LEATHER_LEGGINGS_RANK_4: + name: Leather Leggings Forger Rank 4 + production_time: 360 + inputs: + Leather: + material: LEATHER + amount: 32 + Leather Leggings: + material: LEATHER_LEGGINGS + amount: 1 + display_name: Leather Leggings Rank 3 + lore: Leather Leggings Rank 3 + outputs: + Leather Leggings: + material: LEATHER_LEGGINGS + amount: 1 + display_name: Leather Leggings Rank 4 + lore: Leather Leggings Rank 4 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 4 + Unbreaking: + type: DURABILITY + level: 3 + IRON_BOOTS_RANK_0: + name: Iron Boots Forger Rank 0 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Leather Boots: + material: LEATHER_BOOTS + amount: 2 + display_name: Leather Boots Rank 4 + lore: Leather Boots Rank 4 + outputs: + Iron Boots: + material: IRON_BOOTS + amount: 1 + display_name: Iron Boots Rank 0 + lore: Iron Boots Rank 0 + IRON_BOOTS_RANK_1: + name: Iron Boots Forger Rank 1 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Iron Boots: + material: IRON_BOOTS + amount: 1 + display_name: Iron Boots Rank 0 + lore: Iron Boots Rank 0 + outputs: + Iron Boots: + material: IRON_BOOTS + amount: 1 + display_name: Iron Boots Rank 1 + lore: Iron Boots Rank 1 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 1 + IRON_BOOTS_RANK_2: + name: Iron Boots Forger Rank 2 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Iron Boots: + material: IRON_BOOTS + amount: 1 + display_name: Iron Boots Rank 1 + lore: Iron Boots Rank 1 + outputs: + Iron Boots: + material: IRON_BOOTS + amount: 1 + display_name: Iron Boots Rank 2 + lore: Iron Boots Rank 2 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 2 + Unbreaking: + type: DURABILITY + level: 1 + IRON_BOOTS_RANK_3: + name: Iron Boots Forger Rank 3 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Iron Boots: + material: IRON_BOOTS + amount: 1 + display_name: Iron Boots Rank 2 + lore: Iron Boots Rank 2 + outputs: + Iron Boots: + material: IRON_BOOTS + amount: 1 + display_name: Iron Boots Rank 3 + lore: Iron Boots Rank 3 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 3 + Unbreaking: + type: DURABILITY + level: 2 + IRON_BOOTS_RANK_4: + name: Iron Boots Forger Rank 4 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Iron Boots: + material: IRON_BOOTS + amount: 1 + display_name: Iron Boots Rank 3 + lore: Iron Boots Rank 3 + outputs: + Iron Boots: + material: IRON_BOOTS + amount: 1 + display_name: Iron Boots Rank 4 + lore: Iron Boots Rank 4 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 4 + Unbreaking: + type: DURABILITY + level: 3 + IRON_CHESTPLATE_RANK_0: + name: Iron Chestplate Forger Rank 0 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Leather Chestplate: + material: LEATHER_CHESTPLATE + amount: 2 + display_name: Leather Chestplate Rank 4 + lore: Leather Chestplate Rank 4 + outputs: + Iron Chestplate: + material: IRON_CHESTPLATE + amount: 1 + display_name: Iron Chestplate Rank 0 + lore: Iron Chestplate Rank 0 + IRON_CHESTPLATE_RANK_1: + name: Iron Chestplate Forger Rank 1 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Iron Chestplate: + material: IRON_CHESTPLATE + amount: 1 + display_name: Iron Chestplate Rank 0 + lore: Iron Chestplate Rank 0 + outputs: + Iron Chestplate: + material: IRON_CHESTPLATE + amount: 1 + display_name: Iron Chestplate Rank 1 + lore: Iron Chestplate Rank 1 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 1 + IRON_CHESTPLATE_RANK_2: + name: Iron Chestplate Forger Rank 2 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Iron Chestplate: + material: IRON_CHESTPLATE + amount: 1 + display_name: Iron Chestplate Rank 1 + lore: Iron Chestplate Rank 1 + outputs: + Iron Chestplate: + material: IRON_CHESTPLATE + amount: 1 + display_name: Iron Chestplate Rank 2 + lore: Iron Chestplate Rank 2 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 2 + Unbreaking: + type: DURABILITY + level: 1 + IRON_CHESTPLATE_RANK_3: + name: Iron Chestplate Forger Rank 3 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Iron Chestplate: + material: IRON_CHESTPLATE + amount: 1 + display_name: Iron Chestplate Rank 2 + lore: Iron Chestplate Rank 2 + outputs: + Iron Chestplate: + material: IRON_CHESTPLATE + amount: 1 + display_name: Iron Chestplate Rank 3 + lore: Iron Chestplate Rank 3 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 3 + Unbreaking: + type: DURABILITY + level: 2 + IRON_CHESTPLATE_RANK_4: + name: Iron Chestplate Forger Rank 4 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Iron Chestplate: + material: IRON_CHESTPLATE + amount: 1 + display_name: Iron Chestplate Rank 3 + lore: Iron Chestplate Rank 3 + outputs: + Iron Chestplate: + material: IRON_CHESTPLATE + amount: 1 + display_name: Iron Chestplate Rank 4 + lore: Iron Chestplate Rank 4 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 4 + Unbreaking: + type: DURABILITY + level: 3 + IRON_HELMET_RANK_0: + name: Iron Helmet Forger Rank 0 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Leather Helmet: + material: LEATHER_HELMET + amount: 2 + display_name: Leather Helmet Rank 4 + lore: Leather Helmet Rank 4 + outputs: + Iron Helmet: + material: IRON_HELMET + amount: 1 + display_name: Iron Helmet Rank 0 + lore: Iron Helmet Rank 0 + IRON_HELMET_RANK_1: + name: Iron Helmet Forger Rank 1 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Iron Helmet: + material: IRON_HELMET + amount: 1 + display_name: Iron Helmet Rank 0 + lore: Iron Helmet Rank 0 + outputs: + Iron Helmet: + material: IRON_HELMET + amount: 1 + display_name: Iron Helmet Rank 1 + lore: Iron Helmet Rank 1 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 1 + IRON_HELMET_RANK_2: + name: Iron Helmet Forger Rank 2 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Iron Helmet: + material: IRON_HELMET + amount: 1 + display_name: Iron Helmet Rank 1 + lore: Iron Helmet Rank 1 + outputs: + Iron Helmet: + material: IRON_HELMET + amount: 1 + display_name: Iron Helmet Rank 2 + lore: Iron Helmet Rank 2 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 2 + Unbreaking: + type: DURABILITY + level: 1 + IRON_HELMET_RANK_3: + name: Iron Helmet Forger Rank 3 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Iron Helmet: + material: IRON_HELMET + amount: 1 + display_name: Iron Helmet Rank 2 + lore: Iron Helmet Rank 2 + outputs: + Iron Helmet: + material: IRON_HELMET + amount: 1 + display_name: Iron Helmet Rank 3 + lore: Iron Helmet Rank 3 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 3 + Unbreaking: + type: DURABILITY + level: 2 + IRON_HELMET_RANK_4: + name: Iron Helmet Forger Rank 4 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Iron Helmet: + material: IRON_HELMET + amount: 1 + display_name: Iron Helmet Rank 3 + lore: Iron Helmet Rank 3 + outputs: + Iron Helmet: + material: IRON_HELMET + amount: 1 + display_name: Iron Helmet Rank 4 + lore: Iron Helmet Rank 4 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 4 + Unbreaking: + type: DURABILITY + level: 3 + IRON_LEGGINGS_RANK_0: + name: Iron Leggings Forger Rank 0 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Leather Leggings: + material: LEATHER_LEGGINGS + amount: 2 + display_name: Leather Leggings Rank 4 + lore: Leather Leggings Rank 4 + outputs: + Iron Leggings: + material: IRON_LEGGINGS + amount: 1 + display_name: Iron Leggings Rank 0 + lore: Iron Leggings Rank 0 + IRON_LEGGINGS_RANK_1: + name: Iron Leggings Forger Rank 1 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Iron Leggings: + material: IRON_LEGGINGS + amount: 1 + display_name: Iron Leggings Rank 0 + lore: Iron Leggings Rank 0 + outputs: + Iron Leggings: + material: IRON_LEGGINGS + amount: 1 + display_name: Iron Leggings Rank 1 + lore: Iron Leggings Rank 1 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 1 + IRON_LEGGINGS_RANK_2: + name: Iron Leggings Forger Rank 2 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Iron Leggings: + material: IRON_LEGGINGS + amount: 1 + display_name: Iron Leggings Rank 1 + lore: Iron Leggings Rank 1 + outputs: + Iron Leggings: + material: IRON_LEGGINGS + amount: 1 + display_name: Iron Leggings Rank 2 + lore: Iron Leggings Rank 2 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 2 + Unbreaking: + type: DURABILITY + level: 1 + IRON_LEGGINGS_RANK_3: + name: Iron Leggings Forger Rank 3 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Iron Leggings: + material: IRON_LEGGINGS + amount: 1 + display_name: Iron Leggings Rank 2 + lore: Iron Leggings Rank 2 + outputs: + Iron Leggings: + material: IRON_LEGGINGS + amount: 1 + display_name: Iron Leggings Rank 3 + lore: Iron Leggings Rank 3 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 3 + Unbreaking: + type: DURABILITY + level: 2 + IRON_LEGGINGS_RANK_4: + name: Iron Leggings Forger Rank 4 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Iron Leggings: + material: IRON_LEGGINGS + amount: 1 + display_name: Iron Leggings Rank 3 + lore: Iron Leggings Rank 3 + outputs: + Iron Leggings: + material: IRON_LEGGINGS + amount: 1 + display_name: Iron Leggings Rank 4 + lore: Iron Leggings Rank 4 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 4 + Unbreaking: + type: DURABILITY + level: 3 + DIAMOND_BOOTS_RANK_0: + name: Diamond Boots Forger Rank 0 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Iron Boots: + material: IRON_BOOTS + amount: 2 + display_name: Iron Boots Rank 4 + lore: Iron Boots Rank 4 + outputs: + Diamond Boots: + material: DIAMOND_BOOTS + amount: 1 + display_name: Diamond Boots Rank 0 + lore: Diamond Boots Rank 0 + DIAMOND_BOOTS_RANK_1: + name: Diamond Boots Forger Rank 1 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Diamond Boots: + material: DIAMOND_BOOTS + amount: 1 + display_name: Diamond Boots Rank 0 + lore: Diamond Boots Rank 0 + outputs: + Diamond Boots: + material: DIAMOND_BOOTS + amount: 1 + display_name: Diamond Boots Rank 1 + lore: Diamond Boots Rank 1 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 1 + DIAMOND_BOOTS_RANK_2: + name: Diamond Boots Forger Rank 2 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Diamond Boots: + material: DIAMOND_BOOTS + amount: 1 + display_name: Diamond Boots Rank 1 + lore: Diamond Boots Rank 1 + outputs: + Diamond Boots: + material: DIAMOND_BOOTS + amount: 1 + display_name: Diamond Boots Rank 2 + lore: Diamond Boots Rank 2 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 2 + Unbreaking: + type: DURABILITY + level: 1 + DIAMOND_BOOTS_RANK_3: + name: Diamond Boots Forger Rank 3 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Diamond Boots: + material: DIAMOND_BOOTS + amount: 1 + display_name: Diamond Boots Rank 2 + lore: Diamond Boots Rank 2 + outputs: + Diamond Boots: + material: DIAMOND_BOOTS + amount: 1 + display_name: Diamond Boots Rank 3 + lore: Diamond Boots Rank 3 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 3 + Unbreaking: + type: DURABILITY + level: 2 + DIAMOND_BOOTS_RANK_4: + name: Diamond Boots Forger Rank 4 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Diamond Boots: + material: DIAMOND_BOOTS + amount: 1 + display_name: Diamond Boots Rank 3 + lore: Diamond Boots Rank 3 + outputs: + Diamond Boots: + material: DIAMOND_BOOTS + amount: 1 + display_name: Diamond Boots Rank 4 + lore: Diamond Boots Rank 4 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 4 + Unbreaking: + type: DURABILITY + level: 3 + DIAMOND_CHESTPLATE_RANK_0: + name: Diamond Chestplate Forger Rank 0 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Iron Chestplate: + material: IRON_CHESTPLATE + amount: 2 + display_name: Iron Chestplate Rank 4 + lore: Iron Chestplate Rank 4 + outputs: + Diamond Chestplate: + material: DIAMOND_CHESTPLATE + amount: 1 + display_name: Diamond Chestplate Rank 0 + lore: Diamond Chestplate Rank 0 + DIAMOND_CHESTPLATE_RANK_1: + name: Diamond Chestplate Forger Rank 1 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Diamond Chestplate: + material: DIAMOND_CHESTPLATE + amount: 1 + display_name: Diamond Chestplate Rank 0 + lore: Diamond Chestplate Rank 0 + outputs: + Diamond Chestplate: + material: DIAMOND_CHESTPLATE + amount: 1 + display_name: Diamond Chestplate Rank 1 + lore: Diamond Chestplate Rank 1 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 1 + DIAMOND_CHESTPLATE_RANK_2: + name: Diamond Chestplate Forger Rank 2 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Diamond Chestplate: + material: DIAMOND_CHESTPLATE + amount: 1 + display_name: Diamond Chestplate Rank 1 + lore: Diamond Chestplate Rank 1 + outputs: + Diamond Chestplate: + material: DIAMOND_CHESTPLATE + amount: 1 + display_name: Diamond Chestplate Rank 2 + lore: Diamond Chestplate Rank 2 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 2 + Unbreaking: + type: DURABILITY + level: 1 + DIAMOND_CHESTPLATE_RANK_3: + name: Diamond Chestplate Forger Rank 3 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Diamond Chestplate: + material: DIAMOND_CHESTPLATE + amount: 1 + display_name: Diamond Chestplate Rank 2 + lore: Diamond Chestplate Rank 2 + outputs: + Diamond Chestplate: + material: DIAMOND_CHESTPLATE + amount: 1 + display_name: Diamond Chestplate Rank 3 + lore: Diamond Chestplate Rank 3 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 3 + Unbreaking: + type: DURABILITY + level: 2 + DIAMOND_CHESTPLATE_RANK_4: + name: Diamond Chestplate Forger Rank 4 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Diamond Chestplate: + material: DIAMOND_CHESTPLATE + amount: 1 + display_name: Diamond Chestplate Rank 3 + lore: Diamond Chestplate Rank 3 + outputs: + Diamond Chestplate: + material: DIAMOND_CHESTPLATE + amount: 1 + display_name: Diamond Chestplate Rank 4 + lore: Diamond Chestplate Rank 4 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 4 + Unbreaking: + type: DURABILITY + level: 3 + DIAMOND_HELMET_RANK_0: + name: Diamond Helmet Forger Rank 0 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Iron Helmet: + material: IRON_HELMET + amount: 2 + display_name: Iron Helmet Rank 4 + lore: Iron Helmet Rank 4 + outputs: + Diamond Helmet: + material: DIAMOND_HELMET + amount: 1 + display_name: Diamond Helmet Rank 0 + lore: Diamond Helmet Rank 0 + DIAMOND_HELMET_RANK_1: + name: Diamond Helmet Forger Rank 1 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Diamond Helmet: + material: DIAMOND_HELMET + amount: 1 + display_name: Diamond Helmet Rank 0 + lore: Diamond Helmet Rank 0 + outputs: + Diamond Helmet: + material: DIAMOND_HELMET + amount: 1 + display_name: Diamond Helmet Rank 1 + lore: Diamond Helmet Rank 1 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 1 + DIAMOND_HELMET_RANK_2: + name: Diamond Helmet Forger Rank 2 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Diamond Helmet: + material: DIAMOND_HELMET + amount: 1 + display_name: Diamond Helmet Rank 1 + lore: Diamond Helmet Rank 1 + outputs: + Diamond Helmet: + material: DIAMOND_HELMET + amount: 1 + display_name: Diamond Helmet Rank 2 + lore: Diamond Helmet Rank 2 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 2 + Unbreaking: + type: DURABILITY + level: 1 + DIAMOND_HELMET_RANK_3: + name: Diamond Helmet Forger Rank 3 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Diamond Helmet: + material: DIAMOND_HELMET + amount: 1 + display_name: Diamond Helmet Rank 2 + lore: Diamond Helmet Rank 2 + outputs: + Diamond Helmet: + material: DIAMOND_HELMET + amount: 1 + display_name: Diamond Helmet Rank 3 + lore: Diamond Helmet Rank 3 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 3 + Unbreaking: + type: DURABILITY + level: 2 + DIAMOND_HELMET_RANK_4: + name: Diamond Helmet Forger Rank 4 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Diamond Helmet: + material: DIAMOND_HELMET + amount: 1 + display_name: Diamond Helmet Rank 3 + lore: Diamond Helmet Rank 3 + outputs: + Diamond Helmet: + material: DIAMOND_HELMET + amount: 1 + display_name: Diamond Helmet Rank 4 + lore: Diamond Helmet Rank 4 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 4 + Unbreaking: + type: DURABILITY + level: 3 + DIAMOND_LEGGINGS_RANK_0: + name: Diamond Leggings Forger Rank 0 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Iron Leggings: + material: IRON_LEGGINGS + amount: 2 + display_name: Iron Leggings Rank 4 + lore: Iron Leggings Rank 4 + outputs: + Diamond Leggings: + material: DIAMOND_LEGGINGS + amount: 1 + display_name: Diamond Leggings Rank 0 + lore: Diamond Leggings Rank 0 + DIAMOND_LEGGINGS_RANK_1: + name: Diamond Leggings Forger Rank 1 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Diamond Leggings: + material: DIAMOND_LEGGINGS + amount: 1 + display_name: Diamond Leggings Rank 0 + lore: Diamond Leggings Rank 0 + outputs: + Diamond Leggings: + material: DIAMOND_LEGGINGS + amount: 1 + display_name: Diamond Leggings Rank 1 + lore: Diamond Leggings Rank 1 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 1 + DIAMOND_LEGGINGS_RANK_2: + name: Diamond Leggings Forger Rank 2 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Diamond Leggings: + material: DIAMOND_LEGGINGS + amount: 1 + display_name: Diamond Leggings Rank 1 + lore: Diamond Leggings Rank 1 + outputs: + Diamond Leggings: + material: DIAMOND_LEGGINGS + amount: 1 + display_name: Diamond Leggings Rank 2 + lore: Diamond Leggings Rank 2 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 2 + Unbreaking: + type: DURABILITY + level: 1 + DIAMOND_LEGGINGS_RANK_3: + name: Diamond Leggings Forger Rank 3 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Diamond Leggings: + material: DIAMOND_LEGGINGS + amount: 1 + display_name: Diamond Leggings Rank 2 + lore: Diamond Leggings Rank 2 + outputs: + Diamond Leggings: + material: DIAMOND_LEGGINGS + amount: 1 + display_name: Diamond Leggings Rank 3 + lore: Diamond Leggings Rank 3 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 3 + Unbreaking: + type: DURABILITY + level: 2 + DIAMOND_LEGGINGS_RANK_4: + name: Diamond Leggings Forger Rank 4 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Diamond Leggings: + material: DIAMOND_LEGGINGS + amount: 1 + display_name: Diamond Leggings Rank 3 + lore: Diamond Leggings Rank 3 + outputs: + Diamond Leggings: + material: DIAMOND_LEGGINGS + amount: 1 + display_name: Diamond Leggings Rank 4 + lore: Diamond Leggings Rank 4 + enchantments: + Protection: + type: PROTECTION_ENVIRONMENTAL + level: 4 + Unbreaking: + type: DURABILITY + level: 3 + STONE_SWORD_RANK_0: + name: Stone Sword Forger Rank 0 + production_time: 360 + inputs: + Stone: + material: STONE + amount: 32 + outputs: + Stone Sword: + material: STONE_SWORD + amount: 1 + display_name: Stone Sword Rank 0 + lore: Stone Sword Rank 0 + STONE_SWORD_RANK_1: + name: Stone Sword Forger Rank 1 + production_time: 360 + inputs: + Stone: + material: STONE + amount: 32 + Stone Sword: + material: STONE_SWORD + amount: 1 + display_name: Stone Sword Rank 0 + lore: Stone Sword Rank 0 + outputs: + Stone Sword: + material: STONE_SWORD + amount: 1 + display_name: Stone Sword Rank 1 + lore: Stone Sword Rank 1 + enchantments: + Sharpness: + type: DAMAGE_ALL + level: 1 + STONE_SWORD_RANK_2: + name: Stone Sword Forger Rank 2 + production_time: 360 + inputs: + Stone: + material: STONE + amount: 32 + Stone Sword: + material: STONE_SWORD + amount: 1 + display_name: Stone Sword Rank 1 + lore: Stone Sword Rank 1 + outputs: + Stone Sword: + material: STONE_SWORD + amount: 1 + display_name: Stone Sword Rank 2 + lore: Stone Sword Rank 2 + enchantments: + Sharpness: + type: DAMAGE_ALL + level: 2 + STONE_SWORD_RANK_3: + name: Stone Sword Forger Rank 3 + production_time: 360 + inputs: + Stone: + material: STONE + amount: 32 + Stone Sword: + material: STONE_SWORD + amount: 1 + display_name: Stone Sword Rank 2 + lore: Stone Sword Rank 2 + outputs: + Stone Sword: + material: STONE_SWORD + amount: 1 + display_name: Stone Sword Rank 3 + lore: Stone Sword Rank 3 + enchantments: + Sharpness: + type: DAMAGE_ALL + level: 3 + STONE_SWORD_RANK_4: + name: Stone Sword Forger Rank 4 + production_time: 360 + inputs: + Stone: + material: STONE + amount: 32 + Stone Sword: + material: STONE_SWORD + amount: 1 + display_name: Stone Sword Rank 3 + lore: Stone Sword Rank 3 + outputs: + Stone Sword: + material: STONE_SWORD + amount: 1 + display_name: Stone Sword Rank 4 + lore: Stone Sword Rank 4 + enchantments: + Sharpness: + type: DAMAGE_ALL + level: 4 + STONE_SWORD_RANK_5: + name: Stone Sword Forger Rank 5 + production_time: 360 + inputs: + Stone: + material: STONE + amount: 32 + Stone Sword: + material: STONE_SWORD + amount: 1 + display_name: Stone Sword Rank 4 + lore: Stone Sword Rank 4 + outputs: + Stone Sword: + material: STONE_SWORD + amount: 1 + display_name: Stone Sword Rank 5 + lore: Stone Sword Rank 5 + enchantments: + Sharpness: + type: DAMAGE_ALL + level: 5 + IRON_SWORD_RANK_0: + name: Iron Sword Forger Rank 0 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Stone Sword: + material: STONE_SWORD + amount: 2 + display_name: Stone Sword Rank 4 + lore: Stone Sword Rank 4 + outputs: + Iron Sword: + material: IRON_SWORD + amount: 1 + display_name: Iron Sword Rank 0 + lore: Iron Sword Rank 0 + IRON_SWORD_RANK_1: + name: Iron Sword Forger Rank 1 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Iron Sword: + material: IRON_SWORD + amount: 1 + display_name: Iron Sword Rank 0 + lore: Iron Sword Rank 0 + outputs: + Iron Sword: + material: IRON_SWORD + amount: 1 + display_name: Iron Sword Rank 1 + lore: Iron Sword Rank 1 + enchantments: + Sharpness: + type: DAMAGE_ALL + level: 1 + IRON_SWORD_RANK_2: + name: Iron Sword Forger Rank 2 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Iron Sword: + material: IRON_SWORD + amount: 1 + display_name: Iron Sword Rank 1 + lore: Iron Sword Rank 1 + outputs: + Iron Sword: + material: IRON_SWORD + amount: 1 + display_name: Iron Sword Rank 2 + lore: Iron Sword Rank 2 + enchantments: + Sharpness: + type: DAMAGE_ALL + level: 2 + IRON_SWORD_RANK_3: + name: Iron Sword Forger Rank 3 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Iron Sword: + material: IRON_SWORD + amount: 1 + display_name: Iron Sword Rank 2 + lore: Iron Sword Rank 2 + outputs: + Iron Sword: + material: IRON_SWORD + amount: 1 + display_name: Iron Sword Rank 3 + lore: Iron Sword Rank 3 + enchantments: + Sharpness: + type: DAMAGE_ALL + level: 3 + IRON_SWORD_RANK_4: + name: Iron Sword Forger Rank 4 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Iron Sword: + material: IRON_SWORD + amount: 1 + display_name: Iron Sword Rank 3 + lore: Iron Sword Rank 3 + outputs: + Iron Sword: + material: IRON_SWORD + amount: 1 + display_name: Iron Sword Rank 4 + lore: Iron Sword Rank 4 + enchantments: + Sharpness: + type: DAMAGE_ALL + level: 4 + IRON_SWORD_RANK_5: + name: Iron Sword Forger Rank 5 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Iron Sword: + material: IRON_SWORD + amount: 1 + display_name: Iron Sword Rank 4 + lore: Iron Sword Rank 4 + outputs: + Iron Sword: + material: IRON_SWORD + amount: 1 + display_name: Iron Sword Rank 5 + lore: Iron Sword Rank 5 + enchantments: + Sharpness: + type: DAMAGE_ALL + level: 5 + DIAMOND_SWORD_RANK_0: + name: Diamond Sword Forger Rank 0 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Iron Sword: + material: IRON_SWORD + amount: 2 + display_name: Iron Sword Rank 4 + lore: Iron Sword Rank 4 + outputs: + Diamond Sword: + material: DIAMOND_SWORD + amount: 1 + display_name: Diamond Sword Rank 0 + lore: Diamond Sword Rank 0 + DIAMOND_SWORD_RANK_1: + name: Diamond Sword Forger Rank 1 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Diamond Sword: + material: DIAMOND_SWORD + amount: 1 + display_name: Diamond Sword Rank 0 + lore: Diamond Sword Rank 0 + outputs: + Diamond Sword: + material: DIAMOND_SWORD + amount: 1 + display_name: Diamond Sword Rank 1 + lore: Diamond Sword Rank 1 + enchantments: + Sharpness: + type: DAMAGE_ALL + level: 1 + DIAMOND_SWORD_RANK_2: + name: Diamond Sword Forger Rank 2 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Diamond Sword: + material: DIAMOND_SWORD + amount: 1 + display_name: Diamond Sword Rank 1 + lore: Diamond Sword Rank 1 + outputs: + Diamond Sword: + material: DIAMOND_SWORD + amount: 1 + display_name: Diamond Sword Rank 2 + lore: Diamond Sword Rank 2 + enchantments: + Sharpness: + type: DAMAGE_ALL + level: 2 + DIAMOND_SWORD_RANK_3: + name: Diamond Sword Forger Rank 3 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Diamond Sword: + material: DIAMOND_SWORD + amount: 1 + display_name: Diamond Sword Rank 2 + lore: Diamond Sword Rank 2 + outputs: + Diamond Sword: + material: DIAMOND_SWORD + amount: 1 + display_name: Diamond Sword Rank 3 + lore: Diamond Sword Rank 3 + enchantments: + Sharpness: + type: DAMAGE_ALL + level: 3 + DIAMOND_SWORD_RANK_4: + name: Diamond Sword Forger Rank 4 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Diamond Sword: + material: DIAMOND_SWORD + amount: 1 + display_name: Diamond Sword Rank 3 + lore: Diamond Sword Rank 3 + outputs: + Diamond Sword: + material: DIAMOND_SWORD + amount: 1 + display_name: Diamond Sword Rank 4 + lore: Diamond Sword Rank 4 + enchantments: + Sharpness: + type: DAMAGE_ALL + level: 4 + DIAMOND_SWORD_RANK_5: + name: Diamond Sword Forger Rank 5 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Diamond Sword: + material: DIAMOND_SWORD + amount: 1 + display_name: Diamond Sword Rank 4 + lore: Diamond Sword Rank 4 + outputs: + Diamond Sword: + material: DIAMOND_SWORD + amount: 1 + display_name: Diamond Sword Rank 5 + lore: Diamond Sword Rank 5 + enchantments: + Sharpness: + type: DAMAGE_ALL + level: 5 + OBSIDIAN_GENERATOR: + name: Obsidian Generator + production_time: 300 + inputs: + Diamond Pickaxe: + material: DIAMOND_PICKAXE + amount: 1 + outputs: + Obsidian: + material: OBSIDIAN + amount: 3200 + STONE_PICKAXE_RANK_0: + name: Stone Pickaxe Forger Rank 0 + production_time: 360 + inputs: + Stone: + material: STONE + amount: 32 + outputs: + Stone Pickaxe: + material: STONE_PICKAXE + amount: 1 + display_name: Stone Pickaxe Rank 0 + lore: Stone Pickaxe Rank 0 + STONE_PICKAXE_RANK_1: + name: Stone Pickaxe Forger Rank 1 + production_time: 360 + inputs: + Stone: + material: STONE + amount: 32 + Stone Pickaxe: + material: STONE_PICKAXE + amount: 1 + display_name: Stone Pickaxe Rank 0 + lore: Stone Pickaxe Rank 0 + outputs: + Stone Pickaxe: + material: STONE_PICKAXE + amount: 1 + display_name: Stone Pickaxe Rank 1 + lore: Stone Pickaxe Rank 1 + enchantments: + Efficiency: + type: DIG_SPEED + level: 1 + STONE_PICKAXE_RANK_2: + name: Stone Pickaxe Forger Rank 2 + production_time: 360 + inputs: + Stone: + material: STONE + amount: 32 + Stone Pickaxe: + material: STONE_PICKAXE + amount: 1 + display_name: Stone Pickaxe Rank 1 + lore: Stone Pickaxe Rank 1 + outputs: + Stone Pickaxe: + material: STONE_PICKAXE + amount: 1 + display_name: Stone Pickaxe Rank 2 + lore: Stone Pickaxe Rank 2 + enchantments: + Efficiency: + type: DIG_SPEED + level: 2 + Unbreaking: + type: DURABILITY + level: 1 + STONE_PICKAXE_RANK_3: + name: Stone Pickaxe Forger Rank 3 + production_time: 360 + inputs: + Stone: + material: STONE + amount: 32 + Stone Pickaxe: + material: STONE_PICKAXE + amount: 1 + display_name: Stone Pickaxe Rank 2 + lore: Stone Pickaxe Rank 2 + outputs: + Stone Pickaxe: + material: STONE_PICKAXE + amount: 1 + display_name: Stone Pickaxe Rank 3 + lore: Stone Pickaxe Rank 3 + enchantments: + Efficiency: + type: DIG_SPEED + level: 3 + Unbreaking: + type: DURABILITY + level: 2 + STONE_PICKAXE_RANK_4: + name: Stone Pickaxe Forger Rank 4 + production_time: 360 + inputs: + Stone: + material: STONE + amount: 32 + Stone Pickaxe: + material: STONE_PICKAXE + amount: 1 + display_name: Stone Pickaxe Rank 3 + lore: Stone Pickaxe Rank 3 + outputs: + Stone Pickaxe: + material: STONE_PICKAXE + amount: 1 + display_name: Stone Pickaxe Rank 4 + lore: Stone Pickaxe Rank 4 + enchantments: + Efficiency: + type: DIG_SPEED + level: 4 + Unbreaking: + type: DURABILITY + level: 3 + STONE_AXE_RANK_0: + name: Stone Axe Forger Rank 0 + production_time: 360 + inputs: + Stone: + material: STONE + amount: 32 + outputs: + Stone Axe: + material: STONE_AXE + amount: 1 + display_name: Stone Axe Rank 0 + lore: Stone Axe Rank 0 + STONE_AXE_RANK_1: + name: Stone Axe Forger Rank 1 + production_time: 360 + inputs: + Stone: + material: STONE + amount: 32 + Stone Axe: + material: STONE_AXE + amount: 1 + display_name: Stone Axe Rank 0 + lore: Stone Axe Rank 0 + outputs: + Stone Axe: + material: STONE_AXE + amount: 1 + display_name: Stone Axe Rank 1 + lore: Stone Axe Rank 1 + enchantments: + Efficiency: + type: DIG_SPEED + level: 1 + STONE_AXE_RANK_2: + name: Stone Axe Forger Rank 2 + production_time: 360 + inputs: + Stone: + material: STONE + amount: 32 + Stone Axe: + material: STONE_AXE + amount: 1 + display_name: Stone Axe Rank 1 + lore: Stone Axe Rank 1 + outputs: + Stone Axe: + material: STONE_AXE + amount: 1 + display_name: Stone Axe Rank 2 + lore: Stone Axe Rank 2 + enchantments: + Efficiency: + type: DIG_SPEED + level: 2 + Unbreaking: + type: DURABILITY + level: 1 + STONE_AXE_RANK_3: + name: Stone Axe Forger Rank 3 + production_time: 360 + inputs: + Stone: + material: STONE + amount: 32 + Stone Axe: + material: STONE_AXE + amount: 1 + display_name: Stone Axe Rank 2 + lore: Stone Axe Rank 2 + outputs: + Stone Axe: + material: STONE_AXE + amount: 1 + display_name: Stone Axe Rank 3 + lore: Stone Axe Rank 3 + enchantments: + Efficiency: + type: DIG_SPEED + level: 3 + Unbreaking: + type: DURABILITY + level: 2 + STONE_AXE_RANK_4: + name: Stone Axe Forger Rank 4 + production_time: 360 + inputs: + Stone: + material: STONE + amount: 32 + Stone Axe: + material: STONE_AXE + amount: 1 + display_name: Stone Axe Rank 3 + lore: Stone Axe Rank 3 + outputs: + Stone Axe: + material: STONE_AXE + amount: 1 + display_name: Stone Axe Rank 4 + lore: Stone Axe Rank 4 + enchantments: + Efficiency: + type: DIG_SPEED + level: 4 + Unbreaking: + type: DURABILITY + level: 3 + STONE_SHOVEL_RANK_0: + name: Stone Shovel Forger Rank 0 + production_time: 360 + inputs: + Stone: + material: STONE + amount: 32 + outputs: + Stone Shovel: + material: STONE_SHOVEL + amount: 1 + display_name: Stone Shovel Rank 0 + lore: Stone Shovel Rank 0 + STONE_SHOVEL_RANK_1: + name: Stone Shovel Forger Rank 1 + production_time: 360 + inputs: + Stone: + material: STONE + amount: 32 + Stone Shovel: + material: STONE_SHOVEL + amount: 1 + display_name: Stone Shovel Rank 0 + lore: Stone Shovel Rank 0 + outputs: + Stone Shovel: + material: STONE_SHOVEL + amount: 1 + display_name: Stone Shovel Rank 1 + lore: Stone Shovel Rank 1 + enchantments: + Efficiency: + type: DIG_SPEED + level: 1 + STONE_SHOVEL_RANK_2: + name: Stone Shovel Forger Rank 2 + production_time: 360 + inputs: + Stone: + material: STONE + amount: 32 + Stone Shovel: + material: STONE_SHOVEL + amount: 1 + display_name: Stone Shovel Rank 1 + lore: Stone Shovel Rank 1 + outputs: + Stone Shovel: + material: STONE_SHOVEL + amount: 1 + display_name: Stone Shovel Rank 2 + lore: Stone Shovel Rank 2 + enchantments: + Efficiency: + type: DIG_SPEED + level: 2 + Unbreaking: + type: DURABILITY + level: 1 + STONE_SHOVEL_RANK_3: + name: Stone Shovel Forger Rank 3 + production_time: 360 + inputs: + Stone: + material: STONE + amount: 32 + Stone Shovel: + material: STONE_SHOVEL + amount: 1 + display_name: Stone Shovel Rank 2 + lore: Stone Shovel Rank 2 + outputs: + Stone Shovel: + material: STONE_SHOVEL + amount: 1 + display_name: Stone Shovel Rank 3 + lore: Stone Shovel Rank 3 + enchantments: + Efficiency: + type: DIG_SPEED + level: 3 + Unbreaking: + type: DURABILITY + level: 2 + STONE_SHOVEL_RANK_4: + name: Stone Shovel Forger Rank 4 + production_time: 360 + inputs: + Stone: + material: STONE + amount: 32 + Stone Shovel: + material: STONE_SHOVEL + amount: 1 + display_name: Stone Shovel Rank 3 + lore: Stone Shovel Rank 3 + outputs: + Stone Shovel: + material: STONE_SHOVEL + amount: 1 + display_name: Stone Shovel Rank 4 + lore: Stone Shovel Rank 4 + enchantments: + Efficiency: + type: DIG_SPEED + level: 4 + Unbreaking: + type: DURABILITY + level: 3 + STONE_HOE_RANK_0: + name: Stone Hoe Forger Rank 0 + production_time: 360 + inputs: + Stone: + material: STONE + amount: 32 + outputs: + Stone Hoe: + material: STONE_HOE + amount: 1 + display_name: Stone Hoe Rank 0 + lore: Stone Hoe Rank 0 + STONE_HOE_RANK_1: + name: Stone Hoe Forger Rank 1 + production_time: 360 + inputs: + Stone: + material: STONE + amount: 32 + Stone Hoe: + material: STONE_HOE + amount: 1 + display_name: Stone Hoe Rank 0 + lore: Stone Hoe Rank 0 + outputs: + Stone Hoe: + material: STONE_HOE + amount: 1 + display_name: Stone Hoe Rank 1 + lore: Stone Hoe Rank 1 + enchantments: + Efficiency: + type: DIG_SPEED + level: 1 + STONE_HOE_RANK_2: + name: Stone Hoe Forger Rank 2 + production_time: 360 + inputs: + Stone: + material: STONE + amount: 32 + Stone Hoe: + material: STONE_HOE + amount: 1 + display_name: Stone Hoe Rank 1 + lore: Stone Hoe Rank 1 + outputs: + Stone Hoe: + material: STONE_HOE + amount: 1 + display_name: Stone Hoe Rank 2 + lore: Stone Hoe Rank 2 + enchantments: + Efficiency: + type: DIG_SPEED + level: 2 + Unbreaking: + type: DURABILITY + level: 1 + STONE_HOE_RANK_3: + name: Stone Hoe Forger Rank 3 + production_time: 360 + inputs: + Stone: + material: STONE + amount: 32 + Stone Hoe: + material: STONE_HOE + amount: 1 + display_name: Stone Hoe Rank 2 + lore: Stone Hoe Rank 2 + outputs: + Stone Hoe: + material: STONE_HOE + amount: 1 + display_name: Stone Hoe Rank 3 + lore: Stone Hoe Rank 3 + enchantments: + Efficiency: + type: DIG_SPEED + level: 3 + Unbreaking: + type: DURABILITY + level: 2 + STONE_HOE_RANK_4: + name: Stone Hoe Forger Rank 4 + production_time: 360 + inputs: + Stone: + material: STONE + amount: 32 + Stone Hoe: + material: STONE_HOE + amount: 1 + display_name: Stone Hoe Rank 3 + lore: Stone Hoe Rank 3 + outputs: + Stone Hoe: + material: STONE_HOE + amount: 1 + display_name: Stone Hoe Rank 4 + lore: Stone Hoe Rank 4 + enchantments: + Efficiency: + type: DIG_SPEED + level: 4 + Unbreaking: + type: DURABILITY + level: 3 + IRON_PICKAXE_RANK_0: + name: Iron Pickaxe Forger Rank 0 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Stone Pickaxe: + material: STONE_PICKAXE + amount: 2 + display_name: Stone Pickaxe Rank 4 + lore: Stone Pickaxe Rank 4 + outputs: + Iron Pickaxe: + material: IRON_PICKAXE + amount: 1 + display_name: Iron Pickaxe Rank 0 + lore: Iron Pickaxe Rank 0 + IRON_PICKAXE_RANK_1: + name: Iron Pickaxe Forger Rank 1 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Iron Pickaxe: + material: IRON_PICKAXE + amount: 1 + display_name: Iron Pickaxe Rank 0 + lore: Iron Pickaxe Rank 0 + outputs: + Iron Pickaxe: + material: IRON_PICKAXE + amount: 1 + display_name: Iron Pickaxe Rank 1 + lore: Iron Pickaxe Rank 1 + enchantments: + Efficiency: + type: DIG_SPEED + level: 1 + IRON_PICKAXE_RANK_2: + name: Iron Pickaxe Forger Rank 2 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Iron Pickaxe: + material: IRON_PICKAXE + amount: 1 + display_name: Iron Pickaxe Rank 1 + lore: Iron Pickaxe Rank 1 + outputs: + Iron Pickaxe: + material: IRON_PICKAXE + amount: 1 + display_name: Iron Pickaxe Rank 2 + lore: Iron Pickaxe Rank 2 + enchantments: + Efficiency: + type: DIG_SPEED + level: 2 + Unbreaking: + type: DURABILITY + level: 1 + IRON_PICKAXE_RANK_3: + name: Iron Pickaxe Forger Rank 3 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Iron Pickaxe: + material: IRON_PICKAXE + amount: 1 + display_name: Iron Pickaxe Rank 2 + lore: Iron Pickaxe Rank 2 + outputs: + Iron Pickaxe: + material: IRON_PICKAXE + amount: 1 + display_name: Iron Pickaxe Rank 3 + lore: Iron Pickaxe Rank 3 + enchantments: + Efficiency: + type: DIG_SPEED + level: 3 + Unbreaking: + type: DURABILITY + level: 2 + IRON_PICKAXE_RANK_4: + name: Iron Pickaxe Forger Rank 4 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Iron Pickaxe: + material: IRON_PICKAXE + amount: 1 + display_name: Iron Pickaxe Rank 3 + lore: Iron Pickaxe Rank 3 + outputs: + Iron Pickaxe: + material: IRON_PICKAXE + amount: 1 + display_name: Iron Pickaxe Rank 4 + lore: Iron Pickaxe Rank 4 + enchantments: + Efficiency: + type: DIG_SPEED + level: 4 + Unbreaking: + type: DURABILITY + level: 3 + IRON_AXE_RANK_0: + name: Iron Axe Forger Rank 0 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Stone Axe: + material: STONE_AXE + amount: 2 + display_name: Stone Axe Rank 4 + lore: Stone Axe Rank 4 + outputs: + Iron Axe: + material: IRON_AXE + amount: 1 + display_name: Iron Axe Rank 0 + lore: Iron Axe Rank 0 + IRON_AXE_RANK_1: + name: Iron Axe Forger Rank 1 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Iron Axe: + material: IRON_AXE + amount: 1 + display_name: Iron Axe Rank 0 + lore: Iron Axe Rank 0 + outputs: + Iron Axe: + material: IRON_AXE + amount: 1 + display_name: Iron Axe Rank 1 + lore: Iron Axe Rank 1 + enchantments: + Efficiency: + type: DIG_SPEED + level: 1 + IRON_AXE_RANK_2: + name: Iron Axe Forger Rank 2 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Iron Axe: + material: IRON_AXE + amount: 1 + display_name: Iron Axe Rank 1 + lore: Iron Axe Rank 1 + outputs: + Iron Axe: + material: IRON_AXE + amount: 1 + display_name: Iron Axe Rank 2 + lore: Iron Axe Rank 2 + enchantments: + Efficiency: + type: DIG_SPEED + level: 2 + Unbreaking: + type: DURABILITY + level: 1 + IRON_AXE_RANK_3: + name: Iron Axe Forger Rank 3 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Iron Axe: + material: IRON_AXE + amount: 1 + display_name: Iron Axe Rank 2 + lore: Iron Axe Rank 2 + outputs: + Iron Axe: + material: IRON_AXE + amount: 1 + display_name: Iron Axe Rank 3 + lore: Iron Axe Rank 3 + enchantments: + Efficiency: + type: DIG_SPEED + level: 3 + Unbreaking: + type: DURABILITY + level: 2 + IRON_AXE_RANK_4: + name: Iron Axe Forger Rank 4 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Iron Axe: + material: IRON_AXE + amount: 1 + display_name: Iron Axe Rank 3 + lore: Iron Axe Rank 3 + outputs: + Iron Axe: + material: IRON_AXE + amount: 1 + display_name: Iron Axe Rank 4 + lore: Iron Axe Rank 4 + enchantments: + Efficiency: + type: DIG_SPEED + level: 4 + Unbreaking: + type: DURABILITY + level: 3 + IRON_SHOVEL_RANK_0: + name: Iron Shovel Forger Rank 0 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Stone Shovel: + material: STONE_SHOVEL + amount: 2 + display_name: Stone Shovel Rank 4 + lore: Stone Shovel Rank 4 + outputs: + Iron Shovel: + material: IRON_SHOVEL + amount: 1 + display_name: Iron Shovel Rank 0 + lore: Iron Shovel Rank 0 + IRON_SHOVEL_RANK_1: + name: Iron Shovel Forger Rank 1 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Iron Shovel: + material: IRON_SHOVEL + amount: 1 + display_name: Iron Shovel Rank 0 + lore: Iron Shovel Rank 0 + outputs: + Iron Shovel: + material: IRON_SHOVEL + amount: 1 + display_name: Iron Shovel Rank 1 + lore: Iron Shovel Rank 1 + enchantments: + Efficiency: + type: DIG_SPEED + level: 1 + IRON_SHOVEL_RANK_2: + name: Iron Shovel Forger Rank 2 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Iron Shovel: + material: IRON_SHOVEL + amount: 1 + display_name: Iron Shovel Rank 1 + lore: Iron Shovel Rank 1 + outputs: + Iron Shovel: + material: IRON_SHOVEL + amount: 1 + display_name: Iron Shovel Rank 2 + lore: Iron Shovel Rank 2 + enchantments: + Efficiency: + type: DIG_SPEED + level: 2 + Unbreaking: + type: DURABILITY + level: 1 + IRON_SHOVEL_RANK_3: + name: Iron Shovel Forger Rank 3 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Iron Shovel: + material: IRON_SHOVEL + amount: 1 + display_name: Iron Shovel Rank 2 + lore: Iron Shovel Rank 2 + outputs: + Iron Shovel: + material: IRON_SHOVEL + amount: 1 + display_name: Iron Shovel Rank 3 + lore: Iron Shovel Rank 3 + enchantments: + Efficiency: + type: DIG_SPEED + level: 3 + Unbreaking: + type: DURABILITY + level: 2 + IRON_SHOVEL_RANK_4: + name: Iron Shovel Forger Rank 4 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Iron Shovel: + material: IRON_SHOVEL + amount: 1 + display_name: Iron Shovel Rank 3 + lore: Iron Shovel Rank 3 + outputs: + Iron Shovel: + material: IRON_SHOVEL + amount: 1 + display_name: Iron Shovel Rank 4 + lore: Iron Shovel Rank 4 + enchantments: + Efficiency: + type: DIG_SPEED + level: 4 + Unbreaking: + type: DURABILITY + level: 3 + IRON_HOE_RANK_0: + name: Iron Hoe Forger Rank 0 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Stone Hoe: + material: STONE_HOE + amount: 2 + display_name: Stone Hoe Rank 4 + lore: Stone Hoe Rank 4 + outputs: + Iron Hoe: + material: IRON_HOE + amount: 1 + display_name: Iron Hoe Rank 0 + lore: Iron Hoe Rank 0 + IRON_HOE_RANK_1: + name: Iron Hoe Forger Rank 1 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Iron Hoe: + material: IRON_HOE + amount: 1 + display_name: Iron Hoe Rank 0 + lore: Iron Hoe Rank 0 + outputs: + Iron Hoe: + material: IRON_HOE + amount: 1 + display_name: Iron Hoe Rank 1 + lore: Iron Hoe Rank 1 + enchantments: + Efficiency: + type: DIG_SPEED + level: 1 + IRON_HOE_RANK_2: + name: Iron Hoe Forger Rank 2 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Iron Hoe: + material: IRON_HOE + amount: 1 + display_name: Iron Hoe Rank 1 + lore: Iron Hoe Rank 1 + outputs: + Iron Hoe: + material: IRON_HOE + amount: 1 + display_name: Iron Hoe Rank 2 + lore: Iron Hoe Rank 2 + enchantments: + Efficiency: + type: DIG_SPEED + level: 2 + Unbreaking: + type: DURABILITY + level: 1 + IRON_HOE_RANK_3: + name: Iron Hoe Forger Rank 3 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Iron Hoe: + material: IRON_HOE + amount: 1 + display_name: Iron Hoe Rank 2 + lore: Iron Hoe Rank 2 + outputs: + Iron Hoe: + material: IRON_HOE + amount: 1 + display_name: Iron Hoe Rank 3 + lore: Iron Hoe Rank 3 + enchantments: + Efficiency: + type: DIG_SPEED + level: 3 + Unbreaking: + type: DURABILITY + level: 2 + IRON_HOE_RANK_4: + name: Iron Hoe Forger Rank 4 + production_time: 360 + inputs: + Iron: + material: IRON + amount: 32 + Iron Hoe: + material: IRON_HOE + amount: 1 + display_name: Iron Hoe Rank 3 + lore: Iron Hoe Rank 3 + outputs: + Iron Hoe: + material: IRON_HOE + amount: 1 + display_name: Iron Hoe Rank 4 + lore: Iron Hoe Rank 4 + enchantments: + Efficiency: + type: DIG_SPEED + level: 4 + Unbreaking: + type: DURABILITY + level: 3 + DIAMOND_PICKAXE_RANK_0: + name: Diamond Pickaxe Forger Rank 0 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Iron Pickaxe: + material: IRON_PICKAXE + amount: 2 + display_name: Iron Pickaxe Rank 4 + lore: Iron Pickaxe Rank 4 + outputs: + Diamond Pickaxe: + material: DIAMOND_PICKAXE + amount: 1 + display_name: Diamond Pickaxe Rank 0 + lore: Diamond Pickaxe Rank 0 + DIAMOND_PICKAXE_RANK_1: + name: Diamond Pickaxe Forger Rank 1 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Diamond Pickaxe: + material: DIAMOND_PICKAXE + amount: 1 + display_name: Diamond Pickaxe Rank 0 + lore: Diamond Pickaxe Rank 0 + outputs: + Diamond Pickaxe: + material: DIAMOND_PICKAXE + amount: 1 + display_name: Diamond Pickaxe Rank 1 + lore: Diamond Pickaxe Rank 1 + enchantments: + Efficiency: + type: DIG_SPEED + level: 1 + DIAMOND_PICKAXE_RANK_2: + name: Diamond Pickaxe Forger Rank 2 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Diamond Pickaxe: + material: DIAMOND_PICKAXE + amount: 1 + display_name: Diamond Pickaxe Rank 1 + lore: Diamond Pickaxe Rank 1 + outputs: + Diamond Pickaxe: + material: DIAMOND_PICKAXE + amount: 1 + display_name: Diamond Pickaxe Rank 2 + lore: Diamond Pickaxe Rank 2 + enchantments: + Efficiency: + type: DIG_SPEED + level: 2 + Unbreaking: + type: DURABILITY + level: 1 + DIAMOND_PICKAXE_RANK_3: + name: Diamond Pickaxe Forger Rank 3 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Diamond Pickaxe: + material: DIAMOND_PICKAXE + amount: 1 + display_name: Diamond Pickaxe Rank 2 + lore: Diamond Pickaxe Rank 2 + outputs: + Diamond Pickaxe: + material: DIAMOND_PICKAXE + amount: 1 + display_name: Diamond Pickaxe Rank 3 + lore: Diamond Pickaxe Rank 3 + enchantments: + Efficiency: + type: DIG_SPEED + level: 3 + Unbreaking: + type: DURABILITY + level: 2 + DIAMOND_PICKAXE_RANK_4: + name: Diamond Pickaxe Forger Rank 4 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Diamond Pickaxe: + material: DIAMOND_PICKAXE + amount: 1 + display_name: Diamond Pickaxe Rank 3 + lore: Diamond Pickaxe Rank 3 + outputs: + Diamond Pickaxe: + material: DIAMOND_PICKAXE + amount: 1 + display_name: Diamond Pickaxe Rank 4 + lore: Diamond Pickaxe Rank 4 + enchantments: + Efficiency: + type: DIG_SPEED + level: 4 + Unbreaking: + type: DURABILITY + level: 3 + DIAMOND_AXE_RANK_0: + name: Diamond Axe Forger Rank 0 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Iron Axe: + material: IRON_AXE + amount: 2 + display_name: Iron Axe Rank 4 + lore: Iron Axe Rank 4 + outputs: + Diamond Axe: + material: DIAMOND_AXE + amount: 1 + display_name: Diamond Axe Rank 0 + lore: Diamond Axe Rank 0 + DIAMOND_AXE_RANK_1: + name: Diamond Axe Forger Rank 1 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Diamond Axe: + material: DIAMOND_AXE + amount: 1 + display_name: Diamond Axe Rank 0 + lore: Diamond Axe Rank 0 + outputs: + Diamond Axe: + material: DIAMOND_AXE + amount: 1 + display_name: Diamond Axe Rank 1 + lore: Diamond Axe Rank 1 + enchantments: + Efficiency: + type: DIG_SPEED + level: 1 + DIAMOND_AXE_RANK_2: + name: Diamond Axe Forger Rank 2 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Diamond Axe: + material: DIAMOND_AXE + amount: 1 + display_name: Diamond Axe Rank 1 + lore: Diamond Axe Rank 1 + outputs: + Diamond Axe: + material: DIAMOND_AXE + amount: 1 + display_name: Diamond Axe Rank 2 + lore: Diamond Axe Rank 2 + enchantments: + Efficiency: + type: DIG_SPEED + level: 2 + Unbreaking: + type: DURABILITY + level: 1 + DIAMOND_AXE_RANK_3: + name: Diamond Axe Forger Rank 3 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Diamond Axe: + material: DIAMOND_AXE + amount: 1 + display_name: Diamond Axe Rank 2 + lore: Diamond Axe Rank 2 + outputs: + Diamond Axe: + material: DIAMOND_AXE + amount: 1 + display_name: Diamond Axe Rank 3 + lore: Diamond Axe Rank 3 + enchantments: + Efficiency: + type: DIG_SPEED + level: 3 + Unbreaking: + type: DURABILITY + level: 2 + DIAMOND_AXE_RANK_4: + name: Diamond Axe Forger Rank 4 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Diamond Axe: + material: DIAMOND_AXE + amount: 1 + display_name: Diamond Axe Rank 3 + lore: Diamond Axe Rank 3 + outputs: + Diamond Axe: + material: DIAMOND_AXE + amount: 1 + display_name: Diamond Axe Rank 4 + lore: Diamond Axe Rank 4 + enchantments: + Efficiency: + type: DIG_SPEED + level: 4 + Unbreaking: + type: DURABILITY + level: 3 + DIAMOND_SHOVEL_RANK_0: + name: Diamond Shovel Forger Rank 0 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Iron Shovel: + material: IRON_SHOVEL + amount: 2 + display_name: Iron Shovel Rank 4 + lore: Iron Shovel Rank 4 + outputs: + Diamond Shovel: + material: DIAMOND_SHOVEL + amount: 1 + display_name: Diamond Shovel Rank 0 + lore: Diamond Shovel Rank 0 + DIAMOND_SHOVEL_RANK_1: + name: Diamond Shovel Forger Rank 1 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Diamond Shovel: + material: DIAMOND_SHOVEL + amount: 1 + display_name: Diamond Shovel Rank 0 + lore: Diamond Shovel Rank 0 + outputs: + Diamond Shovel: + material: DIAMOND_SHOVEL + amount: 1 + display_name: Diamond Shovel Rank 1 + lore: Diamond Shovel Rank 1 + enchantments: + Efficiency: + type: DIG_SPEED + level: 1 + DIAMOND_SHOVEL_RANK_2: + name: Diamond Shovel Forger Rank 2 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Diamond Shovel: + material: DIAMOND_SHOVEL + amount: 1 + display_name: Diamond Shovel Rank 1 + lore: Diamond Shovel Rank 1 + outputs: + Diamond Shovel: + material: DIAMOND_SHOVEL + amount: 1 + display_name: Diamond Shovel Rank 2 + lore: Diamond Shovel Rank 2 + enchantments: + Efficiency: + type: DIG_SPEED + level: 2 + Unbreaking: + type: DURABILITY + level: 1 + DIAMOND_SHOVEL_RANK_3: + name: Diamond Shovel Forger Rank 3 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Diamond Shovel: + material: DIAMOND_SHOVEL + amount: 1 + display_name: Diamond Shovel Rank 2 + lore: Diamond Shovel Rank 2 + outputs: + Diamond Shovel: + material: DIAMOND_SHOVEL + amount: 1 + display_name: Diamond Shovel Rank 3 + lore: Diamond Shovel Rank 3 + enchantments: + Efficiency: + type: DIG_SPEED + level: 3 + Unbreaking: + type: DURABILITY + level: 2 + DIAMOND_SHOVEL_RANK_4: + name: Diamond Shovel Forger Rank 4 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Diamond Shovel: + material: DIAMOND_SHOVEL + amount: 1 + display_name: Diamond Shovel Rank 3 + lore: Diamond Shovel Rank 3 + outputs: + Diamond Shovel: + material: DIAMOND_SHOVEL + amount: 1 + display_name: Diamond Shovel Rank 4 + lore: Diamond Shovel Rank 4 + enchantments: + Efficiency: + type: DIG_SPEED + level: 4 + Unbreaking: + type: DURABILITY + level: 3 + DIAMOND_HOE_RANK_0: + name: Diamond Hoe Forger Rank 0 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Iron Hoe: + material: IRON_HOE + amount: 2 + display_name: Iron Hoe Rank 4 + lore: Iron Hoe Rank 4 + outputs: + Diamond Hoe: + material: DIAMOND_HOE + amount: 1 + display_name: Diamond Hoe Rank 0 + lore: Diamond Hoe Rank 0 + DIAMOND_HOE_RANK_1: + name: Diamond Hoe Forger Rank 1 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Diamond Hoe: + material: DIAMOND_HOE + amount: 1 + display_name: Diamond Hoe Rank 0 + lore: Diamond Hoe Rank 0 + outputs: + Diamond Hoe: + material: DIAMOND_HOE + amount: 1 + display_name: Diamond Hoe Rank 1 + lore: Diamond Hoe Rank 1 + enchantments: + Efficiency: + type: DIG_SPEED + level: 1 + DIAMOND_HOE_RANK_2: + name: Diamond Hoe Forger Rank 2 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Diamond Hoe: + material: DIAMOND_HOE + amount: 1 + display_name: Diamond Hoe Rank 1 + lore: Diamond Hoe Rank 1 + outputs: + Diamond Hoe: + material: DIAMOND_HOE + amount: 1 + display_name: Diamond Hoe Rank 2 + lore: Diamond Hoe Rank 2 + enchantments: + Efficiency: + type: DIG_SPEED + level: 2 + Unbreaking: + type: DURABILITY + level: 1 + DIAMOND_HOE_RANK_3: + name: Diamond Hoe Forger Rank 3 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Diamond Hoe: + material: DIAMOND_HOE + amount: 1 + display_name: Diamond Hoe Rank 2 + lore: Diamond Hoe Rank 2 + outputs: + Diamond Hoe: + material: DIAMOND_HOE + amount: 1 + display_name: Diamond Hoe Rank 3 + lore: Diamond Hoe Rank 3 + enchantments: + Efficiency: + type: DIG_SPEED + level: 3 + Unbreaking: + type: DURABILITY + level: 2 + DIAMOND_HOE_RANK_4: + name: Diamond Hoe Forger Rank 4 + production_time: 360 + inputs: + Diamond: + material: DIAMOND + amount: 32 + Diamond Hoe: + material: DIAMOND_HOE + amount: 1 + display_name: Diamond Hoe Rank 3 + lore: Diamond Hoe Rank 3 + outputs: + Diamond Hoe: + material: DIAMOND_HOE + amount: 1 + display_name: Diamond Hoe Rank 4 + lore: Diamond Hoe Rank 4 + enchantments: + Efficiency: + type: DIG_SPEED + level: 4 + Unbreaking: + type: DURABILITY + level: 3