86 lines
2.4 KiB
JavaScript
86 lines
2.4 KiB
JavaScript
console.info("[SOCIETY] animalSunlitCrystal.js loaded");
|
|
|
|
ItemEvents.entityInteracted((e) => {
|
|
const { hand, level, target, item, player, server } = e;
|
|
if (hand == "OFF_HAND") return;
|
|
if (!global.checkEntityTag(target, "society:husbandry_animal")) return;
|
|
if (hand == "MAIN_HAND" && item === "society:sunlit_crystal") {
|
|
const animalData = target.persistentData;
|
|
const animalNbt = target.getNbt();
|
|
const plushie = player.getHeldItem("off_hand");
|
|
let plushieNbt = plushie.getNbt();
|
|
let errorString = "";
|
|
if (Number(animalData.getInt("affection") || 0) < 1000) {
|
|
errorString =
|
|
"society.husbandry.sunlit_crystal.not_enough_animal_affection";
|
|
}
|
|
if (!plushie.hasTag("society:plushies")) {
|
|
errorString = "society.husbandry.sunlit_crystal.not_plushie";
|
|
} else if (Number(plushieNbt.get("affection")) < 4) {
|
|
errorString =
|
|
"society.husbandry.sunlit_crystal.not_enough_plushie_affection";
|
|
} else if (plushieNbt.get("animal")) {
|
|
errorString = "society.husbandry.sunlit_crystal.has_animal";
|
|
}
|
|
if (errorString) {
|
|
server.runCommandSilent(
|
|
global.getEmbersTextAPICommand(
|
|
player.username,
|
|
global.animalMessageSettings,
|
|
80,
|
|
Text.translatable(errorString).toJson()
|
|
)
|
|
);
|
|
return;
|
|
} else {
|
|
if (!player.isCreative()) item.shrink(1);
|
|
player.give(
|
|
Item.of(
|
|
plushie.id,
|
|
global.getPlushieItemNbt(
|
|
plushieNbt,
|
|
target.type,
|
|
target.customName,
|
|
animalData,
|
|
animalNbt
|
|
)
|
|
)
|
|
);
|
|
plushie.shrink(1);
|
|
server.runCommandSilent(
|
|
`playsound relics:table_upgrade block @a ${player.x} ${player.y} ${player.z}`
|
|
);
|
|
server.runCommandSilent(
|
|
`playsound chimes:block.amethyst.shimmer block @a ${player.x} ${player.y} ${player.z}`
|
|
);
|
|
|
|
level.spawnParticles(
|
|
"snowyspirit:glow_light",
|
|
true,
|
|
target.x,
|
|
target.y + 1,
|
|
target.z,
|
|
0.2 * rnd(1, 4),
|
|
0.2 * rnd(1, 4),
|
|
0.2 * rnd(1, 4),
|
|
15,
|
|
0.01
|
|
);
|
|
level.spawnParticles(
|
|
"species:wicked_flame",
|
|
true,
|
|
target.x,
|
|
target.y + 1,
|
|
target.z,
|
|
0.2 * rnd(1, 4),
|
|
0.2 * rnd(1, 4),
|
|
0.2 * rnd(1, 4),
|
|
15,
|
|
0.01
|
|
);
|
|
|
|
target.setRemoved("unloaded_to_chunk");
|
|
}
|
|
}
|
|
});
|