Files
jgl_sunlit_patch/kubejs/server_scripts/itemEvents/plushieCapsule.js
T
2026-07-31 10:34:32 +09:00

39 lines
1.4 KiB
JavaScript

console.info("[SOCIETY] plushieCapsule.js loaded");
ItemEvents.rightClicked("society:plushie_capsule", (e) => {
const { server, player, item } = e;
server.runCommandSilent(
`playsound minecraft:ui.stonecutter.take_result block @a ${player.x} ${player.y} ${player.z}`
);
const plushies = Ingredient.of("#society:plushies").itemIds;
if (!player.isCreative()) item.count--;
let red = player.stages.has("the_red_and_the_black");
let women = player.stages.has("women_who_run_with_the_plushies");
const drop = plushies[Math.floor(Math.random() * plushies.length)];
let reward = player.level.createEntity("minecraft:item");
let quality = 0;
const qualityRoll = Math.random();
const type = Number(rnd(0, 14));
const quest = Number(rnd(1, 3));
const gatchaRarity = women ? [0.25, 0.6, 0.3, 0.1] : [0.5, 0.3, 0.15, 0.05];
gatchaRarity.forEach((rarity, index) => {
if (qualityRoll < rarity) quality = index;
});
reward.x = player.x;
reward.y = player.y;
reward.z = player.z;
reward.item = Item.of(
`${red ? 2 : 1}x ${drop}`,
`{quality_food:{quality:${quality}},type:${type},quest_id:${quest},affection:${
women ? 2 : 0
}}`
);
reward.spawn();
server.runCommandSilent(
`playsound stardew_fishing:complete block @a ${player.x} ${player.y} ${player.z}`
);
global.addItemCooldown(player, "society:plushie_capsule", 2);
});