Compare commits
No commits in common. "dfd0f54ef417aa4c2e45c9c94c328029832b4aa1" and "29fe7de4dda06102cf3110e424740aac272512f4" have entirely different histories.
dfd0f54ef4
...
29fe7de4dd
|
|
@ -42,9 +42,9 @@ const enchantment_list = {
|
||||||
shepherd: ['knockback', 'aqua_affinity'],
|
shepherd: ['knockback', 'aqua_affinity'],
|
||||||
toolsmith: ['silk_touch', 'fortune'],
|
toolsmith: ['silk_touch', 'fortune'],
|
||||||
weaponsmith: ['sharpness', 'fire_aspect'],
|
weaponsmith: ['sharpness', 'fire_aspect'],
|
||||||
delightchef: ['flame', 'fire_aspect'],
|
'chefsdelight:delightchef': ['flame', 'fire_aspect'],
|
||||||
delightcook: ['flame', 'fire_aspect'],
|
'chefsdelight:delightcook': ['flame', 'fire_aspect'],
|
||||||
carpenter: ['knockback', 'fortune'],
|
'sawmill:carpenter': ['knockback', 'fortune'],
|
||||||
};
|
};
|
||||||
|
|
||||||
// level 2 villagers sell consumables for 2 emerald
|
// level 2 villagers sell consumables for 2 emerald
|
||||||
|
|
@ -84,11 +84,11 @@ const consumables = {
|
||||||
// sword, axe
|
// sword, axe
|
||||||
weaponsmith: ['iron_sword', 'iron_axe', 'golden_sword', 'golden_axe'],
|
weaponsmith: ['iron_sword', 'iron_axe', 'golden_sword', 'golden_axe'],
|
||||||
// rice, spaghetti, dough, crust
|
// rice, spaghetti, dough, crust
|
||||||
delightchef: ['8x farmersdelight:rice', '10x farmersdelight:raw_pasta', '10x farmersdelight:crust', '16x sugar'],
|
'chefsdelight:delightchef': ['8x farmersdelight:rice', '10x farmersdelight:raw_pasta', '10x farmersdelight:crust', '16x sugar'],
|
||||||
// cut raw meat
|
// cut raw meat
|
||||||
delightcook: ['16x bowl', '16x glass_bottle', '1x bucket', '8x farmersdelight:minced_beef', '8x farmersdelight:bacon'],
|
'chefsdelight:delightcook': ['16x bowl', '16x glass_bottle', '1x bucket', '8x farmersdelight:minced_beef', '8x farmersdelight:bacon'],
|
||||||
// planks
|
// planks
|
||||||
carpenter: ['32x oak_planks', '32x spruce_planks', '32x birch_planks', '32x jungle_planks', '32x pine_planks', '32x bamboo_planks',
|
'sawmill:carpenter': ['32x oak_planks', '32x spruce_planks', '32x birch_planks', '32x jungle_planks', '32x pine_planks', '32x bamboo_planks',
|
||||||
'32x cherry_planks'],
|
'32x cherry_planks'],
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -136,7 +136,6 @@ const food_list = [
|
||||||
* @returns {string}
|
* @returns {string}
|
||||||
*/
|
*/
|
||||||
function roll(list, random){
|
function roll(list, random){
|
||||||
if (list == null) throw new Error("list not valid...");
|
|
||||||
return list[Math.floor(random.nextFloat() * list.length)];
|
return list[Math.floor(random.nextFloat() * list.length)];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -184,14 +183,8 @@ MoreJSEvents.villagerTrades((event) => {
|
||||||
event.removeVanillaTrades();
|
event.removeVanillaTrades();
|
||||||
event.removeModdedTrades();
|
event.removeModdedTrades();
|
||||||
const professions = VillagerUtils.getProfessions();
|
const professions = VillagerUtils.getProfessions();
|
||||||
professions.forEach(prof => {
|
for(const prof of professions){
|
||||||
const profName = prof.name();
|
const profName = prof.name();
|
||||||
if(profName === 'nitwit') return;
|
|
||||||
const rolls = enchant_consumables[profName] || 0;
|
|
||||||
const enchantments = enchantment_list[profName];
|
|
||||||
const staples = consumables[profName];
|
|
||||||
if(!enchantments) throw new Error("No enchantments for " + profName);
|
|
||||||
if(!staples) throw new Error("No staples for " + profName);
|
|
||||||
// 1 level 5 trade
|
// 1 level 5 trade
|
||||||
event.addCustomTrade(prof, 5, (offer, entity, random) => {
|
event.addCustomTrade(prof, 5, (offer, entity, random) => {
|
||||||
offer.setFirstInput(roll(feast_list, random));
|
offer.setFirstInput(roll(feast_list, random));
|
||||||
|
|
@ -212,18 +205,20 @@ MoreJSEvents.villagerTrades((event) => {
|
||||||
});
|
});
|
||||||
// level 3
|
// level 3
|
||||||
event.addCustomTrade(prof, 3, (offer, entity, random) => {
|
event.addCustomTrade(prof, 3, (offer, entity, random) => {
|
||||||
|
const rolls = 1 + (enchant_consumables[profName] || 0);
|
||||||
offer.setFirstInput(roll(gems, random));
|
offer.setFirstInput(roll(gems, random));
|
||||||
offer.setSecondInput('8x emerald');
|
offer.setSecondInput('8x emerald');
|
||||||
offer.setOutput(genEnchanted(['enchanted_book'], enchantments, rolls+1, random, false));
|
offer.setOutput(genEnchanted(['enchanted_book'], enchantment_list[profName], rolls, random, false));
|
||||||
offer.setMaxUses(1);
|
offer.setMaxUses(1);
|
||||||
offer.setVillagerExperience(1);
|
offer.setVillagerExperience(1);
|
||||||
offer.setPriceMultiplier(1);
|
offer.setPriceMultiplier(1);
|
||||||
});
|
});
|
||||||
// level 2
|
// level 2
|
||||||
event.addCustomTrade(prof, 2, (offer, entity, random) => {
|
event.addCustomTrade(prof, 2, (offer, entity, random) => {
|
||||||
|
const rolls = enchant_consumables[profName] || 0;
|
||||||
offer.setFirstInput('2x emerald');
|
offer.setFirstInput('2x emerald');
|
||||||
if(rolls > 0) offer.setOutput(genEnchanted(staples, enchantments, rolls, random, true));
|
if(rolls > 0) offer.setOutput(genEnchanted(consumables[profName], enchantment_list[profName], rolls, random, true));
|
||||||
else offer.setOutput(roll(staples, random));
|
else offer.setOutput(roll(consumables[profName], random));
|
||||||
offer.setMaxUses(1);
|
offer.setMaxUses(1);
|
||||||
offer.setVillagerExperience(1);
|
offer.setVillagerExperience(1);
|
||||||
offer.setPriceMultiplier(1);
|
offer.setPriceMultiplier(1);
|
||||||
|
|
@ -237,5 +232,5 @@ MoreJSEvents.villagerTrades((event) => {
|
||||||
offer.setPriceMultiplier(1);
|
offer.setPriceMultiplier(1);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
}
|
||||||
});
|
});
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue