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

534 lines
18 KiB
JavaScript

// console.info("[SOCIETY] refreshVillagers.js loaded");
// ItemEvents.entityInteracted((e) => {
// const { hand, player, level, target, server } = e;
// if (hand == "OFF_HAND") return;
// if (target.type !== "minecraft:villager") return;
// let updateThis = false;
// const nbt = target.nbt.toString();
// if (nbt.includes("leatherworker") && !nbt.includes("stylin_purple_hat")) updateThis = true;
// if (nbt.includes("weaponsmith") && !nbt.includes("64k_storage_block")) updateThis = true;
// if (nbt.includes("shepherd") && !nbt.includes("diamond_lasso")) updateThis = true;
// if (nbt.includes("botanist") && !nbt.includes("endless_fortune")) updateThis = true;
// if (nbt.includes("bountiful_fertilizer")) updateThis = true;
// if (nbt.includes("candlelight:cook") && !nbt.includes("sweet_potato_seed")) updateThis = true;
// if (nbt.includes("toolsmith") && nbt.includes("reinforced_core")) updateThis = true;
// if (nbt.includes("cleric") && !nbt.includes("hostile_lasso")) updateThis = true;
// if (nbt.includes("librarian") && !nbt.includes("silk_touch")) updateThis = true;
// if (
// nbt.includes("cartographer") &&
// !nbt.includes("fletcher") &&
// !nbt.includes("shipping_bin_monitor")
// )
// updateThis = true;
// if (nbt.includes("fletcher") && !nbt.includes("enkephalin")) updateThis = true;
// if (nbt.includes("fisher") && !nbt.includes("river_jelly")) updateThis = true;
// if (updateThis) {
// let freshVillager = level.createEntity("minecraft:villager");
// let villagerNbt = freshVillager.getNbt();
// villagerNbt.VillagerData.profession = target.nbt.VillagerData.profession;
// villagerNbt.Brain.memories = target.nbt.Brain.memories;
// freshVillager.customName = target.customName;
// villagerNbt.Pos = [Number(target.x), Number(target.y), Number(target.z)];
// freshVillager.setNbt(villagerNbt);
// freshVillager.spawn();
// target.setRemoved("unloaded_to_chunk");
// server.runCommandSilent(
// `playsound stardew_fishing:complete block @a ${player.x} ${player.y} ${player.z}`
// );
// player.tell(Text.green("Villager updated! Thanks for playing Sunlit Valley!"));
// }
// });
// ItemEvents.entityInteracted((e) => {
// const { hand, level, target } = e;
// if (hand == "OFF_HAND") return;
// if (target.type !== "vinery:wandering_winemaker") return;
// let updateThis = false;
// const nbt = target.nbt.toString();
// if (nbt.includes("minecraft:emerald")) updateThis = true;
// if (updateThis) {
// let freshVillager = level.createEntity("vinery:wandering_winemaker");
// let villagerNbt = freshVillager.getNbt();
// villagerNbt.Brain.memories = target.nbt.Brain.memories;
// freshVillager.customName = target.customName;
// villagerNbt.Pos = [Number(target.x), Number(target.y), Number(target.z)];
// freshVillager.setNbt(villagerNbt);
// villagerNbt.Offers = {
// Recipes: [
// {
// buy: { Count: 18, id: "numismatics:cog" },
// buyB: { Count: 0, id: "minecraft:air" },
// demand: 0,
// maxUses: 12,
// priceMultiplier: 0.2,
// "quark:tier": 6,
// rewardExp: 1,
// sell: {
// Count: 1,
// id: "quark:pathfinders_quill",
// tag: {
// targetBiome: "minecraft:old_growth_pine_taiga",
// targetBiomeColor: 5980703,
// targetBiomeUnderground: 0,
// },
// },
// specialPrice: 0,
// uses: 0,
// xp: 15,
// },
// {
// buy: { Count: 4, id: "numismatics:cog" },
// buyB: { Count: 0, id: "minecraft:air" },
// demand: 0,
// maxUses: 8,
// priceMultiplier: 0.05,
// rewardExp: 1,
// sell: { Count: 4, id: "vinery:red_grape_seeds" },
// specialPrice: 0,
// uses: 0,
// xp: 1,
// },
// {
// buy: { Count: 4, id: "numismatics:cog" },
// buyB: { Count: 0, id: "minecraft:air" },
// demand: 0,
// maxUses: 8,
// priceMultiplier: 0.05,
// rewardExp: 1,
// sell: { Count: 4, id: "vinery:white_grape_seeds" },
// specialPrice: 0,
// uses: 0,
// xp: 1,
// },
// {
// buy: { Count: 1, id: "numismatics:crown" },
// buyB: { Count: 0, id: "minecraft:air" },
// demand: 0,
// maxUses: 8,
// priceMultiplier: 0.05,
// rewardExp: 1,
// sell: { Count: 4, id: "vinery:taiga_grape_seeds_red" },
// specialPrice: 0,
// uses: 0,
// xp: 1,
// },
// {
// buy: { Count: 1, id: "numismatics:crown" },
// buyB: { Count: 0, id: "minecraft:air" },
// demand: 0,
// maxUses: 8,
// priceMultiplier: 0.05,
// rewardExp: 1,
// sell: { Count: 4, id: "vinery:taiga_grape_seeds_white" },
// specialPrice: 0,
// uses: 0,
// xp: 1,
// },
// {
// buy: { Count: 1, id: "numismatics:crown" },
// buyB: { Count: 0, id: "minecraft:air" },
// demand: 0,
// maxUses: 8,
// priceMultiplier: 0.05,
// rewardExp: 1,
// sell: { Count: 4, id: "vinery:savanna_grape_seeds_red" },
// specialPrice: 0,
// uses: 0,
// xp: 1,
// },
// {
// buy: { Count: 1, id: "numismatics:crown" },
// buyB: { Count: 0, id: "minecraft:air" },
// demand: 0,
// maxUses: 8,
// priceMultiplier: 0.05,
// rewardExp: 1,
// sell: { Count: 4, id: "vinery:savanna_grape_seeds_white" },
// specialPrice: 0,
// uses: 0,
// xp: 1,
// },
// {
// buy: { Count: 1, id: "numismatics:crown" },
// buyB: { Count: 0, id: "minecraft:air" },
// demand: 0,
// maxUses: 8,
// priceMultiplier: 0.05,
// rewardExp: 1,
// sell: { Count: 4, id: "vinery:jungle_grape_seeds_red" },
// specialPrice: 0,
// uses: 0,
// xp: 1,
// },
// {
// buy: { Count: 1, id: "numismatics:crown" },
// buyB: { Count: 0, id: "minecraft:air" },
// demand: 0,
// maxUses: 8,
// priceMultiplier: 0.05,
// rewardExp: 1,
// sell: { Count: 4, id: "vinery:jungle_grape_seeds_white" },
// specialPrice: 0,
// uses: 0,
// xp: 1,
// },
// {
// buy: { Count: 4, id: "numismatics:crown" },
// buyB: { Count: 0, id: "minecraft:air" },
// demand: 0,
// maxUses: 8,
// priceMultiplier: 0.05,
// rewardExp: 1,
// sell: { Count: 4, id: "nethervinery:crimson_grape_seeds" },
// specialPrice: 0,
// uses: 0,
// xp: 1,
// },
// {
// buy: { Count: 4, id: "numismatics:crown" },
// buyB: { Count: 0, id: "minecraft:air" },
// demand: 0,
// maxUses: 8,
// priceMultiplier: 0.05,
// rewardExp: 1,
// sell: { Count: 4, id: "nethervinery:warped_grape_seeds" },
// specialPrice: 0,
// uses: 0,
// xp: 1,
// },
// ],
// };
// freshVillager.setNbt(villagerNbt);
// freshVillager.spawn();
// target.setRemoved("unloaded_to_chunk");
// }
// });
// ItemEvents.entityInteracted((e) => {
// const { hand, level, target } = e;
// if (hand == "OFF_HAND") return;
// if (target.type !== "bakery:wandering_baker") return;
// let updateThis = false;
// const nbt = target.nbt.toString();
// if (nbt.includes("minecraft:emerald")) updateThis = true;
// if (updateThis) {
// let freshVillager = level.createEntity("bakery:wandering_baker");
// let villagerNbt = freshVillager.getNbt();
// villagerNbt.Brain.memories = target.nbt.Brain.memories;
// freshVillager.customName = target.customName;
// villagerNbt.Pos = [Number(target.x), Number(target.y), Number(target.z)];
// freshVillager.setNbt(villagerNbt);
// villagerNbt.Offers = {
// Recipes: [
// {
// buy: { Count: 18, id: "numismatics:cog" },
// buyB: { Count: 0, id: "minecraft:air" },
// demand: 0,
// maxUses: 12,
// priceMultiplier: 0.2,
// "quark:tier": 6,
// rewardExp: 1,
// sell: {
// Count: 1,
// id: "quark:pathfinders_quill",
// tag: {
// targetBiome: "minecraft:old_growth_pine_taiga",
// targetBiomeColor: 5980703,
// targetBiomeUnderground: 0,
// },
// },
// specialPrice: 0,
// uses: 0,
// xp: 15,
// },
// {
// buy: { Count: 1, id: "numismatics:crown" },
// buyB: { Count: 0, id: "minecraft:air" },
// demand: 0,
// maxUses: 8,
// priceMultiplier: 0.05,
// rewardExp: 1,
// sell: { Count: 1, id: "bakery:strawberry_cake" },
// specialPrice: 0,
// uses: 0,
// xp: 1,
// },
// {
// buy: { Count: 2, id: "numismatics:crown" },
// buyB: { Count: 0, id: "minecraft:air" },
// demand: 0,
// maxUses: 8,
// priceMultiplier: 0.05,
// rewardExp: 1,
// sell: { Count: 1, id: "bakery:chocolate_cake" },
// specialPrice: 0,
// uses: 0,
// xp: 1,
// },
// {
// buy: { Count: 2, id: "numismatics:cog" },
// buyB: { Count: 0, id: "minecraft:air" },
// demand: 0,
// maxUses: 8,
// priceMultiplier: 0.05,
// rewardExp: 1,
// sell: { Count: 1, id: "bakery:sweetberry_cake" },
// specialPrice: 0,
// uses: 0,
// xp: 1,
// },
// {
// buy: { Count: 2, id: "numismatics:crown" },
// buyB: { Count: 0, id: "minecraft:air" },
// demand: 0,
// maxUses: 8,
// priceMultiplier: 0.05,
// rewardExp: 1,
// sell: { Count: 1, id: "atmospheric:yucca_gateau" },
// specialPrice: 0,
// uses: 0,
// xp: 1,
// },
// {
// buy: { Count: 4, id: "numismatics:cog" },
// buyB: { Count: 0, id: "minecraft:air" },
// demand: 0,
// maxUses: 8,
// priceMultiplier: 0.05,
// rewardExp: 1,
// sell: { Count: 1, id: "bakery:chocolate_gateau" },
// specialPrice: 0,
// uses: 0,
// xp: 1,
// },
// {
// buy: { Count: 1, id: "society:prismatic_shard" },
// buyB: { Count: 0, id: "minecraft:air" },
// demand: 0,
// maxUses: 8,
// priceMultiplier: 0.05,
// rewardExp: 1,
// sell: { Count: 1, id: "society:prize_ticket" },
// specialPrice: 0,
// uses: 0,
// xp: 1,
// },
// {
// buy: { Count: 1, id: "society:prismatic_shard" },
// buyB: { Count: 0, id: "minecraft:air" },
// demand: 0,
// maxUses: 8,
// priceMultiplier: 0.05,
// rewardExp: 1,
// sell: { Count: 1, id: "splendid_slimes:slime_ticket" },
// specialPrice: 0,
// uses: 0,
// xp: 1,
// },
// {
// buy: { Count: 1, id: "society:prismatic_shard" },
// buyB: { Count: 0, id: "minecraft:air" },
// demand: 0,
// maxUses: 8,
// priceMultiplier: 0.05,
// rewardExp: 1,
// sell: { Count: 4, id: "splendid_slimes:slime_candy" },
// specialPrice: 0,
// uses: 0,
// xp: 1,
// },
// {
// buy: { Count: 2, id: "society:prismatic_shard" },
// buyB: { Count: 0, id: "minecraft:air" },
// demand: 0,
// maxUses: 8,
// priceMultiplier: 0.05,
// rewardExp: 1,
// sell: { Count: 1, id: "pamhc2trees:cinnamon_sapling" },
// specialPrice: 0,
// uses: 0,
// xp: 1,
// },
// {
// buy: { Count: 3, id: "society:prismatic_shard" },
// buyB: { Count: 0, id: "minecraft:air" },
// demand: 0,
// maxUses: 8,
// priceMultiplier: 0.05,
// rewardExp: 1,
// sell: { Count: 1, id: "pamhc2trees:pawpaw_sapling" },
// specialPrice: 0,
// uses: 0,
// xp: 1,
// },
// {
// buy: { Count: 3, id: "society:prismatic_shard" },
// buyB: { Count: 0, id: "minecraft:air" },
// demand: 0,
// maxUses: 8,
// priceMultiplier: 0.05,
// rewardExp: 1,
// sell: { Count: 1, id: "pamhc2trees:hazelnut_sapling" },
// specialPrice: 0,
// uses: 0,
// xp: 1,
// },
// {
// buy: { Count: 8, id: "society:prismatic_shard" },
// buyB: { Count: 0, id: "minecraft:air" },
// demand: 0,
// maxUses: 8,
// priceMultiplier: 0.05,
// rewardExp: 1,
// sell: { Count: 1, id: "pamhc2trees:lemon_sapling" },
// specialPrice: 0,
// uses: 0,
// xp: 1,
// },
// ],
// };
// freshVillager.setNbt(villagerNbt);
// freshVillager.spawn();
// target.setRemoved("unloaded_to_chunk");
// }
// });
// ItemEvents.entityInteracted((e) => {
// const { hand, level, target } = e;
// if (hand == "OFF_HAND") return;
// if (target.type !== "ribbits:ribbit") return;
// let updateThis = false;
// const nbt = target.nbt.toString();
// if (nbt.includes("cod") || nbt.includes("salmon")) updateThis = true;
// if (updateThis) {
// let freshVillager = level.createEntity("ribbits:ribbit");
// let villagerNbt = freshVillager.getNbt();
// villagerNbt.Brain.memories = target.nbt.Brain.memories;
// freshVillager.customName = target.customName;
// villagerNbt.Pos = [Number(target.x), Number(target.y), Number(target.z)];
// freshVillager.setNbt(villagerNbt);
// villagerNbt.RibbitData = {
// umbrella: "ribbits:umbrella_3",
// instrument: "ribbits:none",
// profession: "ribbits:fisherman",
// };
// villagerNbt.Offers = {
// Recipes: [
// {
// xp: 0,
// buy: { id: "minecraft:amethyst_shard", Count: 6 },
// sell: { id: "aquaculture:sushi", Count: 1 },
// uses: 0,
// priceMultiplier: 0.05,
// "quark:tier": 6,
// maxUses: 16,
// rewardExp: 1,
// demand: -32,
// specialPrice: 0,
// buyB: { id: "minecraft:air", tag: {}, Count: 0 },
// },
// {
// xp: 0,
// buy: { id: "minecraft:amethyst_shard", Count: 16 },
// sell: { id: "crabbersdelight:pearl", Count: 1 },
// uses: 0,
// priceMultiplier: 0.05,
// "quark:tier": 6,
// maxUses: 16,
// rewardExp: 1,
// demand: -32,
// specialPrice: 0,
// buyB: { id: "minecraft:air", tag: {}, Count: 0 },
// },
// {
// xp: 0,
// buy: { id: "society:amethyst_chunk", Count: 2 },
// sell: { id: "society:ribbit_drum", Count: 1 },
// uses: 0,
// priceMultiplier: 0.05,
// "quark:tier": 6,
// maxUses: 16,
// rewardExp: 1,
// demand: -32,
// specialPrice: 0,
// buyB: { id: "minecraft:air", tag: {}, Count: 0 },
// },
// {
// xp: 0,
// buy: { id: "society:amethyst_chunk", Count: 4 },
// sell: { id: "society:ribbit_gadget", Count: 1 },
// uses: 0,
// priceMultiplier: 0.05,
// "quark:tier": 6,
// maxUses: 16,
// rewardExp: 1,
// demand: -32,
// specialPrice: 0,
// buyB: { id: "minecraft:air", tag: {}, Count: 0 },
// },
// {
// xp: 0,
// buy: { id: "minecraft:amethyst_shard", Count: 32 },
// sell: { id: "furniture:iron_fish_tank", Count: 1 },
// uses: 0,
// priceMultiplier: 0.05,
// "quark:tier": 6,
// maxUses: 16,
// rewardExp: 1,
// demand: -32,
// specialPrice: 0,
// buyB: { id: "minecraft:air", tag: {}, Count: 0 },
// },
// {
// xp: 0,
// buy: { id: "minecraft:amethyst_shard", Count: 32 },
// sell: { id: "furniture:copper_fish_tank", Count: 1 },
// uses: 0,
// priceMultiplier: 0.05,
// "quark:tier": 6,
// maxUses: 16,
// rewardExp: 1,
// demand: -32,
// specialPrice: 0,
// buyB: { id: "minecraft:air", tag: {}, Count: 0 },
// },
// {
// xp: 0,
// buy: { id: "minecraft:amethyst_block", Count: 16 },
// sell: {
// id: "aquaculture:gold_fishing_rod",
// Count: 1,
// },
// uses: 0,
// priceMultiplier: 0.05,
// "quark:tier": 6,
// maxUses: 4,
// rewardExp: 1,
// demand: -8,
// specialPrice: 0,
// buyB: { id: "minecraft:air", tag: {}, Count: 0 },
// },
// {
// xp: 0,
// buy: { id: "society:aged_amethyst_cheese_block", Count: 4 },
// sell: { id: "society:river_jelly", Count: 1 },
// uses: 0,
// priceMultiplier: 0.05,
// "quark:tier": 6,
// maxUses: 16,
// rewardExp: 1,
// demand: -32,
// specialPrice: 0,
// buyB: { id: "minecraft:air", tag: {}, Count: 0 },
// },
// ],
// };
// freshVillager.setNbt(villagerNbt);
// freshVillager.spawn();
// target.setRemoved("unloaded_to_chunk");
// }
// });