diff --git a/edits.md b/edits.md index 2fc53af..a4cb373 100644 --- a/edits.md +++ b/edits.md @@ -21,7 +21,7 @@ - [x] common villager trades - [x] villager explorer map trades -- [ ] villager diet update +- [x] villager diet update - a village biome specific main crop that everybody eats - more random snacks / drinks / beer on the second slot - add more of farmer's complex food (4+ ingredients, cooked, etc) diff --git a/kubejs/server_scripts/src/custom_trades.js b/kubejs/server_scripts/src/custom_trades.js index 7519771..95930cd 100644 --- a/kubejs/server_scripts/src/custom_trades.js +++ b/kubejs/server_scripts/src/custom_trades.js @@ -75,7 +75,7 @@ const consumables = { fisherman: ['2x aquaculture:fish_bones', '3x aquaculture:leech', '5x aquaculture:worm', '8x aquaculture:box', '5x aquaculture:lockbox', '2x aquaculture:treasure_chest'], // various potion arrows, bows, crossbows - fletcher: [], + fletcher: ['8x arrow', '4x caverns_and_chasms:large_arrow', '16x caverns_and_chasms:blunt_arrow', '8x savage_and_ravages:mischief_arrow'], // leather armor, bedrolls leatherworker: ['leather_helmet', 'leather_chestplate', 'leather_leggings', 'leather_boots'], // various dyes @@ -101,7 +101,6 @@ const consumables = { const enchant_consumables = { armorer: 1, - fletcher: 1, leatherworker: 2, toolsmith: 3, weaponsmith: 2 @@ -111,17 +110,13 @@ const enchant_consumables = { const food_list = [ '8x minecraft:apple', '8x minecraft:beetroot', - '8x minecraft:baked_potato', - '8x minecraft:bread', - '8x minecraft:carrot', '8x minecraft:melon_slice', '8x minecraft:sweet_berries', - '8x farmersdelight:pumpkin_slice', '8x farmersdelight:cabbage_leaf', '8x farmersdelight:tomato', - '8x farmersdelight:cooked_rice', '8x farmersdelight:fried_egg', + '8x farmersdelight:onion', '8x neapolitan:strawberries', '8x neapolitan:banana', @@ -134,8 +129,29 @@ const food_list = [ '8x atmospheric:dragon_fruit', '8x atmospheric:candied_orange_slices', '8x atmospheric:roasted_yucca_fruit', + + 'brewinandchewin:beer', + 'brewinandchewin:vodka', + 'brewinandchewin:mead', + 'brewinandchewin:rice_wine', + 'brewinandchewin:pale_jane', + 'brewinandchewin:egg_grog', + 'brewinandchewin:bloody_mary', + 'brewinandchewin:salty_folly', + 'brewinandchewin:saccharine_rum', ]; +const main_diet = { + 'minecraft:desert': '8x #forge:milk', + 'minecraft:plains': '8x bread', + 'minecraft:savanna': '8x carrot', + 'minecraft:snowy': '8x pumpkin_slice', + 'minecraft:taiga': '8x baked_potato', + 'minecraft:jungle': '8x farmersdelight:cooked_rice', + 'minecraft:swamp': '8x mushroom_stew', + 'atmospheric:scrubland': '8x atmospheric:dragon_fruit', + default: '8x bread' +} /** * @param {string[]} list @@ -318,6 +334,27 @@ MoreJSEvents.villagerTrades((event) => { offer.setVillagerExperience(1); offer.setPriceMultiplier(0.2); }); + // 1 level 1 trade + event.addCustomTrade(prof, 1, (offer, entity, random) => { + offer.setFirstInput(roll(food_list, random)); + offer.setOutput('1x emerald'); + offer.setMaxUses(1); + offer.setVillagerExperience(5); + offer.setPriceMultiplier(0.05); + }); + // 1 diet trade + event.addCustomTrade(prof, 1, (offer, entity, random) => { + /** @type {$Villager} */ + const villager = entity; + const villagerData = villager.getVillagerData(); + const biome = villagerData.getType().toString(); + const diet = main_diet[biome] || main_diet.default; + offer.setFirstInput(diet); + offer.setOutput('1x emerald'); + offer.setMaxUses(1); + offer.setVillagerExperience(5); + offer.setPriceMultiplier(0.05); + }); // 2 for the rest for(let i = 0; i < 2; i ++) { // level 4 @@ -347,14 +384,6 @@ MoreJSEvents.villagerTrades((event) => { offer.setVillagerExperience(1); offer.setPriceMultiplier(0.05); }); - // level 1 - event.addCustomTrade(prof, 1, (offer, entity, random) => { - offer.setFirstInput(roll(food_list, random)); - offer.setOutput('1x emerald'); - offer.setMaxUses(1); - offer.setVillagerExperience(5); - offer.setPriceMultiplier(0.05); - }); } }); });