add first patch
This commit is contained in:
@@ -0,0 +1,105 @@
|
||||
console.info("[SOCIETY] animalBreeding.js loaded");
|
||||
|
||||
const breedingItems = [
|
||||
"minecraft:carrot",
|
||||
"minecraft:wheat",
|
||||
"minecraft:beetroot",
|
||||
"minecraft:potato",
|
||||
"farmersdelight:cabbage_seeds",
|
||||
"vintagedelight:ghost_pepper_seeds",
|
||||
"vintagedelight:cucumber_seeds",
|
||||
"supplementaries:flax_seeds",
|
||||
"minecraft:beetroot_seeds",
|
||||
"minecraft:wheat_seeds",
|
||||
"minecraft:pumpkin_seeds",
|
||||
"minecraft:torchflower_seeds",
|
||||
"farmersdelight:tomato_seeds",
|
||||
"society:tubabacco_seed",
|
||||
"society:ancient_fruit_seed",
|
||||
"society:blueberry_seed",
|
||||
"minecraft:dandelion",
|
||||
"minecraft:golden_carrot",
|
||||
];
|
||||
|
||||
ItemEvents.entityInteracted((e) => {
|
||||
const { hand, player, item, target, level, server } = e;
|
||||
if (player.cooldowns.isOnCooldown(item)) return;
|
||||
if (!global.checkEntityTag(target, "society:husbandry_animal") || target.isBaby()) return;
|
||||
if (breedingItems.includes(item.id)) {
|
||||
server.runCommandSilent(
|
||||
global.getEmbersTextAPICommand(
|
||||
player.username,
|
||||
global.animalMessageSettings,
|
||||
160,
|
||||
Text.translatable("society.husbandry.breeding.need_potion").toJson()
|
||||
)
|
||||
);
|
||||
e.cancel();
|
||||
}
|
||||
|
||||
if (hand == "OFF_HAND") return;
|
||||
if (hand == "MAIN_HAND" && item === "society:miracle_potion") {
|
||||
if (global.checkEntityTag(target, "society:infertile")) {
|
||||
server.runCommandSilent(
|
||||
global.getEmbersTextAPICommand(
|
||||
player.username,
|
||||
global.animalMessageSettings,
|
||||
120,
|
||||
Text.translatable("society.husbandry.breeding.infertile").toJson()
|
||||
)
|
||||
);
|
||||
e.cancel();
|
||||
}
|
||||
let animalNbt = target.getNbt();
|
||||
let day = global.getDay(level);
|
||||
let ageLastBred = target.persistentData.ageLastBred || 0;
|
||||
if (global.isFresh(day, ageLastBred)) ageLastBred = 0;
|
||||
if (Number(animalNbt.InLove) === 0 && day > ageLastBred) {
|
||||
if (
|
||||
["crittersandcompanions:red_panda", "minecraft:panda"].includes(target.type) &&
|
||||
Math.random() > 0.2
|
||||
) {
|
||||
item.count--;
|
||||
target.persistentData.ageLastBred = day;
|
||||
server.runCommandSilent(
|
||||
global.getEmbersTextAPICommand(
|
||||
player.username,
|
||||
global.animalMessageSettings,
|
||||
160,
|
||||
Text.translatable("society.husbandry.breeding.fail").toJson()
|
||||
)
|
||||
);
|
||||
} else {
|
||||
animalNbt.InLove = 2000;
|
||||
target.setNbt(animalNbt);
|
||||
item.count--;
|
||||
level.spawnParticles(
|
||||
"minecraft:heart",
|
||||
true,
|
||||
target.x,
|
||||
target.y + 1.5,
|
||||
target.z,
|
||||
0.2 * rnd(1, 4),
|
||||
0.2 * rnd(1, 4),
|
||||
0.2 * rnd(1, 4),
|
||||
12,
|
||||
0.01
|
||||
);
|
||||
target.persistentData.ageLastBred = day;
|
||||
global.giveExperience(server, player, "husbandry", 80);
|
||||
player.swing();
|
||||
global.addItemCooldown(player, item, 10);
|
||||
}
|
||||
} else if (day > ageLastBred) {
|
||||
global.addItemCooldown(player, "society:miracle_potion", 40);
|
||||
server.runCommandSilent(
|
||||
global.getEmbersTextAPICommand(
|
||||
player.username,
|
||||
global.animalMessageSettings,
|
||||
120,
|
||||
Text.translatable("society.husbandry.breeding.cooldown").toJson()
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
});
|
||||
Reference in New Issue
Block a user