add first patch

This commit is contained in:
2026-07-31 10:34:32 +09:00
parent 03aac2e45e
commit b1cbc6c78d
6390 changed files with 547430 additions and 0 deletions
+554
View File
@@ -0,0 +1,554 @@
console.info("[SOCIETY] miningLoot.js loaded");
const overworldOres = [
"meadow:alpine_diamond_ore",
"meadow:alpine_salt_ore",
"meadow:alpine_redstone_ore",
"meadow:alpine_coal_ore",
"meadow:alpine_lapis_ore",
"meadow:alpine_gold_ore",
"meadow:alpine_iron_ore",
"meadow:alpine_copper_ore",
"minecraft:deepslate_gold_ore",
"minecraft:gold_ore",
"minecraft:deepslate_copper_ore",
"minecraft:copper_ore",
"minecraft:deepslate_iron_ore",
"minecraft:iron_ore",
"minecraft:deepslate_coal_ore",
"minecraft:coal_ore",
"minecraft:redstone_ore",
"minecraft:deepslate_diamond_ore",
"minecraft:diamond_ore",
"minecraft:deepslate_lapis_ore",
"minecraft:lapis_ore",
"create:deepslate_zinc_ore",
"create:zinc_ore",
"minecraft:deepslate_redstone_ore",
"minecraft:deepslate_emerald_ore",
"minecraft:emerald_ore",
];
const netherOres = [
"minecraft:nether_gold_ore",
"minecraft:nether_quartz_ore",
"etcetera:nether_bismuth_ore",
];
const skullCavernOres = [
"oreganized:lead_ore",
"oreganized:deepslate_lead_ore",
"oreganized:silver_ore",
"oreganized:deepslate_silver_ore",
"society:iridium_ore",
"society:deepslate_iridium_ore",
"society:sparkstone_ore",
"society:deepslate_sparkstone_ore",
];
const addMiningLootToAllOres = (e, stage, chance, item, otherPool) => {
overworldOres.forEach((ore) => {
e.addBlockLootModifier(ore)
.hasAnyStage(stage)
.pool((p) => {
p.not((n) =>
n.matchMainHand(ItemFilter.hasEnchantment("minecraft:silk_touch"))
);
p.randomChance(chance).addLoot(item);
});
});
netherOres.forEach((ore) => {
e.addBlockLootModifier(ore)
.hasAnyStage(stage)
.pool((p) => {
p.not((n) =>
n.matchMainHand(ItemFilter.hasEnchantment("minecraft:silk_touch"))
);
p.randomChance(chance).addLoot(item);
});
});
skullCavernOres.forEach((ore) => {
e.addBlockLootModifier(ore)
.hasAnyStage(stage)
.pool((p) => {
p.not((n) =>
n.matchMainHand(ItemFilter.hasEnchantment("minecraft:silk_touch"))
);
p.randomChance(chance).addLoot(item);
});
});
if (otherPool && otherPool.length > 0) {
otherPool.forEach((ore) => {
e.addBlockLootModifier(ore)
.hasAnyStage(stage)
.pool((p) => {
p.not((n) =>
n.matchMainHand(ItemFilter.hasEnchantment("minecraft:silk_touch"))
);
p.randomChance(chance).addLoot(item);
});
});
}
};
const addWeightedMiningLootToAllOres = (e, stage, chance, item, otherPool) => {
overworldOres.forEach((ore) => {
e.addBlockLootModifier(ore)
.hasAnyStage(stage)
.pool((p) => {
p.not((n) =>
n.matchMainHand(ItemFilter.hasEnchantment("minecraft:silk_touch"))
);
p.randomChance(chance).addWeightedLoot(item);
});
});
netherOres.forEach((ore) => {
e.addBlockLootModifier(ore)
.hasAnyStage(stage)
.pool((p) => {
p.not((n) =>
n.matchMainHand(ItemFilter.hasEnchantment("minecraft:silk_touch"))
);
p.randomChance(chance).addWeightedLoot(item);
});
});
skullCavernOres.forEach((ore) => {
e.addBlockLootModifier(ore)
.hasAnyStage(stage)
.pool((p) => {
p.not((n) =>
n.matchMainHand(ItemFilter.hasEnchantment("minecraft:silk_touch"))
);
p.randomChance(chance).addWeightedLoot(item);
});
});
if (otherPool && otherPool.length > 0) {
otherPool.forEach((ore) => {
e.addBlockLootModifier(ore)
.hasAnyStage(stage)
.pool((p) => {
p.not((n) =>
n.matchMainHand(ItemFilter.hasEnchantment("minecraft:silk_touch"))
);
p.randomChance(chance).addWeightedLoot(item);
});
});
}
};
const addAdditionalGeodeRoll = (e, geodeStage) => {
overworldOres.forEach((ore) => {
e.addBlockLootModifier(ore)
.hasAnyStage(geodeStage)
.pool((p) => {
p.not((n) =>
n.matchMainHand(ItemFilter.hasEnchantment("minecraft:silk_touch"))
);
p.randomChance(0.1).addLoot("society:geode");
});
e.addBlockLootModifier(ore)
.biome("#forge:is_cold")
.hasAnyStage(geodeStage)
.pool((p) => {
p.not((n) =>
n.matchMainHand(ItemFilter.hasEnchantment("minecraft:silk_touch"))
);
p.randomChance(0.1).addLoot("society:frozen_geode");
});
e.addBlockLootModifier(ore)
.playerPredicate((p) => global.getSeasonFromLevel(p.level) === "winter")
.hasAnyStage(geodeStage)
.pool((p) => {
p.not((n) =>
n.matchMainHand(ItemFilter.hasEnchantment("minecraft:silk_touch"))
);
p.randomChance(0.1).addLoot("society:frozen_geode");
});
e.addBlockLootModifier(ore)
.biome("#society:is_skull_cavern")
.hasAnyStage(geodeStage)
.pool((p) => {
p.not((n) =>
n.matchMainHand(ItemFilter.hasEnchantment("minecraft:silk_touch"))
);
p.randomChance(0.04).addLoot("society:omni_geode");
});
});
netherOres.forEach((ore) => {
e.addBlockLootModifier(ore)
.hasAnyStage(geodeStage)
.pool((p) => {
p.not((n) =>
n.matchMainHand(ItemFilter.hasEnchantment("minecraft:silk_touch"))
);
p.randomChance(0.1).addLoot("society:magma_geode");
});
});
};
LootJS.modifiers((e) => {
overworldOres.forEach((ore) => {
e.addBlockLootModifier(ore).pool((p) => {
p.not((n) =>
n.matchMainHand(ItemFilter.hasEnchantment("minecraft:silk_touch"))
);
p.matchEntity((entity) => {
entity.anyType("minecraft:player");
});
p.randomChance(0.1).addLoot("society:geode");
});
e.addBlockLootModifier(ore)
.hasAnyStage("mineralogist")
.pool((p) => {
p.not((n) =>
n.matchMainHand(ItemFilter.hasEnchantment("minecraft:silk_touch"))
);
p.randomChance(0.1).addLoot("society:earth_crystal");
});
e.addBlockLootModifier(ore)
.biome("#forge:is_cold")
.pool((p) => {
p.not((n) =>
n.matchMainHand(ItemFilter.hasEnchantment("minecraft:silk_touch"))
);
p.matchEntity((entity) => {
entity.anyType("minecraft:player");
});
p.randomChance(0.1).addLoot("society:frozen_geode");
});
e.addBlockLootModifier(ore)
.playerPredicate((p) => global.getSeasonFromLevel(p.level) === "winter")
.pool((p) => {
p.not((n) =>
n.matchMainHand(ItemFilter.hasEnchantment("minecraft:silk_touch"))
);
p.matchEntity((entity) => {
entity.anyType("minecraft:player");
});
p.randomChance(0.1).addLoot("society:frozen_geode");
});
e.addBlockLootModifier(ore)
.biome("#forge:is_cold")
.hasAnyStage("mineralogist")
.pool((p) => {
p.not((n) =>
n.matchMainHand(ItemFilter.hasEnchantment("minecraft:silk_touch"))
);
p.randomChance(0.1).addLoot("society:frozen_tear");
});
e.addBlockLootModifier(ore)
.biome("#society:is_skull_cavern")
.pool((p) => {
p.not((n) =>
n.matchMainHand(ItemFilter.hasEnchantment("minecraft:silk_touch"))
);
p.matchEntity((entity) => {
entity.anyType("minecraft:player");
});
p.randomChance(0.04).addLoot("society:omni_geode");
});
e.addBlockLootModifier(ore)
.biome("#society:is_skull_cavern")
.hasAnyStage("mineralogist")
.pool((p) => {
p.not((n) =>
n.matchMainHand(ItemFilter.hasEnchantment("minecraft:silk_touch"))
);
p.randomChance(0.02).addLoot("society:jade");
});
e.addBlockLootModifier(ore)
.hasAnyStage("blockchain")
.pool((p) => {
p.not((n) =>
n.matchMainHand(ItemFilter.hasEnchantment("minecraft:silk_touch"))
);
p.randomChance(0.03).addLoot("numismatics:crown");
});
e.addBlockLootModifier(ore)
.hasAnyStage("furniture_archaeologist")
.pool((p) => {
p.not((n) =>
n.matchMainHand(ItemFilter.hasEnchantment("minecraft:silk_touch"))
);
p.randomChance(0.03).addLoot("society:furniture_box");
});
e.addBlockLootModifier(ore)
.hasAnyStage("star_blessing")
.anyDimension("minecraft:overworld")
.pool((p) => {
p.not((n) =>
n.matchMainHand(ItemFilter.hasEnchantment("minecraft:silk_touch"))
);
p.randomChance(0.02).addLoot("society:pristine_star_shards");
});
e.addBlockLootModifier(ore)
.hasAnyStage("star_blessing")
.anyDimension("society:skull_cavern")
.pool((p) => {
p.not((n) =>
n.matchMainHand(ItemFilter.hasEnchantment("minecraft:silk_touch"))
);
p.randomChance(0.06).addLoot("society:pristine_star_shards");
});
});
e.addBlockLootModifier("society:geode_node")
.biome("#forge:is_cold")
.pool((p) => {
p.randomChance(0.1).addLoot("society:frozen_geode");
});
e.addBlockLootModifier("society:geode_node").pool((p) => {
p.randomChance(0.05).addLoot("society:mining_monthly");
});
e.addBlockLootModifier("society:geode_node")
.anyDimension("minecraft:overworld")
.hasAnyStage("prismatic_prospector")
.pool((p) => {
p.randomChance(0.05).addLoot("society:prismatic_shard");
});
e.addBlockLootModifier("society:magma_geode_node").pool((p) => {
p.randomChance(0.1).addLoot("society:mining_monthly");
});
e.addBlockLootModifier("society:magma_geode_node")
.anyDimension("minecraft:the_nether")
.hasAnyStage("prismatic_prospector")
.pool((p) => {
p.randomChance(0.2).addLoot("society:prismatic_shard");
});
e.addBlockLootModifier("society:omni_geode_node").pool((p) => {
p.randomChance(0.1).addLoot("society:mining_monthly");
});
e.addBlockLootModifier("society:omni_geode_node")
.hasAnyStage("prismatic_prospector")
.pool((p) => {
p.randomChance(0.3).addLoot("society:prismatic_shard");
});
e.addBlockLootModifier("minecraft:deepslate")
.hasAnyStage("filthy_excavator")
.pool((p) => {
p.randomChance(0.02).addLoot("society:geode");
});
e.addBlockLootModifier("minecraft:netherrack")
.hasAnyStage("filthy_excavator")
.pool((p) => {
p.randomChance(0.01).addLoot("society:magma_geode");
});
netherOres.forEach((ore) => {
e.addBlockLootModifier(ore).pool((p) => {
p.not((n) =>
n.matchMainHand(ItemFilter.hasEnchantment("minecraft:silk_touch"))
);
p.matchEntity((entity) => {
entity.anyType("minecraft:player");
});
p.randomChance(0.1).addLoot("society:magma_geode");
});
e.addBlockLootModifier(ore)
.hasAnyStage("mineralogist")
.pool((p) => {
p.not((n) =>
n.matchMainHand(ItemFilter.hasEnchantment("minecraft:silk_touch"))
);
p.randomChance(0.1).addLoot("society:fire_quartz");
});
e.addBlockLootModifier(ore)
.hasAnyStage("blockchain")
.pool((p) => {
p.not((n) =>
n.matchMainHand(ItemFilter.hasEnchantment("minecraft:silk_touch"))
);
p.randomChance(0.06).addLoot("numismatics:crown");
});
e.addBlockLootModifier(ore)
.hasAnyStage("furniture_archaeologist")
.pool((p) => {
p.not((n) =>
n.matchMainHand(ItemFilter.hasEnchantment("minecraft:silk_touch"))
);
p.randomChance(0.01).addLoot("society:furniture_box");
});
e.addBlockLootModifier(ore)
.hasAnyStage("star_blessing")
.anyDimension("minecraft:the_nether")
.pool((p) => {
p.not((n) =>
n.matchMainHand(ItemFilter.hasEnchantment("minecraft:silk_touch"))
);
p.randomChance(0.04).addLoot("society:pristine_star_shards");
});
e.addBlockLootModifier(ore)
.hasAnyStage("star_blessing")
.anyDimension("society:skull_cavern")
.pool((p) => {
p.not((n) =>
n.matchMainHand(ItemFilter.hasEnchantment("minecraft:silk_touch"))
);
p.randomChance(0.06).addLoot("society:pristine_star_shards");
});
});
skullCavernOres.forEach((ore) => {
e.addBlockLootModifier(ore)
.biome("#forge:is_cold")
.pool((p) => {
p.not((n) =>
n.matchMainHand(ItemFilter.hasEnchantment("minecraft:silk_touch"))
);
p.matchEntity((entity) => {
entity.anyType("minecraft:player");
});
p.randomChance(0.1).addLoot("society:frozen_geode");
});
e.addBlockLootModifier(ore)
.playerPredicate((p) => global.getSeasonFromLevel(p.level) === "winter")
.pool((p) => {
p.not((n) =>
n.matchMainHand(ItemFilter.hasEnchantment("minecraft:silk_touch"))
);
p.matchEntity((entity) => {
entity.anyType("minecraft:player");
});
p.randomChance(0.1).addLoot("society:frozen_geode");
});
e.addBlockLootModifier(ore)
.biome("#forge:is_cold")
.hasAnyStage("mineralogist")
.pool((p) => {
p.not((n) =>
n.matchMainHand(ItemFilter.hasEnchantment("minecraft:silk_touch"))
);
p.randomChance(0.1).addLoot("society:frozen_tear");
});
e.addBlockLootModifier(ore)
.biome("#society:is_skull_cavern")
.pool((p) => {
p.not((n) =>
n.matchMainHand(ItemFilter.hasEnchantment("minecraft:silk_touch"))
);
p.matchEntity((entity) => {
entity.anyType("minecraft:player");
});
p.randomChance(0.04).addLoot("society:omni_geode");
});
e.addBlockLootModifier(ore)
.biome("#society:is_skull_cavern")
.hasAnyStage("mineralogist")
.pool((p) => {
p.not((n) =>
n.matchMainHand(ItemFilter.hasEnchantment("minecraft:silk_touch"))
);
p.randomChance(0.02).addLoot("society:jade");
});
e.addBlockLootModifier(ore)
.hasAnyStage("blockchain")
.pool((p) => {
p.not((n) =>
n.matchMainHand(ItemFilter.hasEnchantment("minecraft:silk_touch"))
);
p.randomChance(0.03).addLoot("numismatics:crown");
});
e.addBlockLootModifier(ore)
.hasAnyStage("furniture_archaeologist")
.pool((p) => {
p.not((n) =>
n.matchMainHand(ItemFilter.hasEnchantment("minecraft:silk_touch"))
);
p.randomChance(0.03).addLoot("society:furniture_box");
});
e.addBlockLootModifier(ore)
.hasAnyStage("star_blessing")
.anyDimension("society:skull_cavern")
.pool((p) => {
p.not((n) =>
n.matchMainHand(ItemFilter.hasEnchantment("minecraft:silk_touch"))
);
p.randomChance(0.06).addLoot("society:pristine_star_shards");
});
});
[
"minecraft:deepslate_gold_ore",
"meadow:alpine_gold_ore",
"minecraft:gold_ore",
].forEach((ore) => {
e.addBlockLootModifier(ore)
.hasAnyStage("gold_rush")
.pool((p) => {
p.not((n) =>
n.matchMainHand(ItemFilter.hasEnchantment("minecraft:silk_touch"))
);
p.addLoot(Item.of("4x minecraft:raw_gold_block"));
});
});
addMiningLootToAllOres(
e,
"the_spark_also_rises",
1,
Item.of("1x society:sparkstone")
);
addMiningLootToAllOres(
e,
"husbandry_mastery",
0.01,
Item.of("1x society:animal_cracker"),
[
"society:oak_supply_crate",
"society:spruce_supply_crate",
"society:palm_supply_crate",
"society:grimwood_supply_crate",
]
);
["society:sparkstone_ore", "society:deepslate_sparkstone_ore"].forEach(
(ore) => {
e.addBlockLootModifier(ore)
.hasAnyStage("mining_mastery")
.pool((p) => {
p.not((n) =>
n.matchMainHand(ItemFilter.hasEnchantment("minecraft:silk_touch"))
);
p.randomChance(0.001).addLoot("society:the_spark_also_rises");
});
}
);
addAdditionalGeodeRoll(e, "excavator");
// Mastery Moon Statue
const weightedRemains = [];
[
"betterarcheology:creeper_fossil_body",
"betterarcheology:creeper_fossil_head",
"betterarcheology:villager_fossil_body",
"betterarcheology:villager_fossil_head",
"betterarcheology:chicken_fossil_body",
"betterarcheology:chicken_fossil_head",
"betterarcheology:ocelot_fossil_body",
"betterarcheology:ocelot_fossil_head",
"betterarcheology:wolf_fossil_body",
"betterarcheology:wolf_fossil_head",
"betterarcheology:sheep_fossil_body",
"betterarcheology:sheep_fossil_head",
"betterarcheology:guardian_fossil_head",
"betterarcheology:guardian_fossil_body",
"crittersandcompanions:clam",
"species:petrified_egg",
"society:petrified_slime",
"twigs:petrified_lichen",
"atmospheric:petrified_armor_trim_smithing_template",
"betterarcheology:fossiliferous_dirt",
"minecraft:bone",
"aquaculture:fish_bones",
"netherdepthsupgrade:bonefish",
"society:fantasy_box_bone",
"betterarcheology:artifact_shards",
"society:artifact_trove"
].forEach((remain) =>
weightedRemains.push(Item.of(remain).withChance(1))
);
addWeightedMiningLootToAllOres(e, "moon_remains", 0.05, weightedRemains);
addAdditionalGeodeRoll(e, "moon_geode_roll");
e.addBlockLootModifier(overworldOres)
.hasAnyStage("moon_extra_ore")
.modifyLoot(Ingredient.all, (itemStack) => {
if (itemStack.hasTag("forge:raw_materials"))
itemStack.setCount(itemStack.getCount() + 1);
return itemStack;
});
});