Files
2026-07-31 10:34:32 +09:00

55 lines
1.7 KiB
JavaScript

EntityEvents.death((e) => {
const { source, level, server, entity } = e;
if (
source.player &&
source.player.getType() === "minecraft:player" &&
["minecraft:sheep", "wildernature:minisheep", "meadow:wooly_sheep"].includes(entity.type) &&
source.player.stages.has("sacrificial_lamb")
) {
let sacrificeAffection = entity.persistentData.getInt("affection");
if (sacrificeAffection < 200) return;
let witnesses = level
.getEntitiesWithin(source.player.boundingBox.inflate(8))
.filter((entity) => global.checkEntityTag(entity, "society:husbandry_animal"));
server.runCommandSilent(
`playsound legendarycreatures:corpse_eater_death block @a ${source.player.x} ${source.player.y} ${source.player.z}`
);
witnesses.forEach((animal) => {
let data
if (["minecraft:sheep", "wildernature:minisheep", "meadow:wooly_sheep"].includes(animal.type)) {
data = animal.persistentData;
data.affection = data.getInt("affection") - 100;
level.spawnParticles(
"minecraft:angry_villager",
true,
animal.x,
animal.y + 1.5,
animal.z,
0.1 * rnd(1, 4),
0.1 * rnd(1, 4),
0.1 * rnd(1, 4),
5,
0.01
);
} else if (Math.random() < 0.5) {
data = animal.persistentData;
data.affection =
data.getInt("affection") + Math.round(sacrificeAffection / 2);
level.spawnParticles(
"minecraft:sculk_soul",
true,
animal.x,
animal.y + 1.5,
animal.z,
0.1 * rnd(1, 4),
0.1 * rnd(1, 4),
0.1 * rnd(1, 4),
5,
0.01
);
}
});
}
});