12.8 LootJS战利品表修改实例

1、雨天实体掉落物翻倍

onEvent("lootjs", (event) => {
    event
        .addLootTypeModifier(LootType.ENTITY) // 修改实体战利品表
        .weatherCheck({
            raining: true,// 检测当前天气为雨天
        })
        .thenModify(Ingredient.getAll(), (itemStack) => {
            // 掉落物数量翻倍
            return itemStack.withCount(itemStack.getCount() * 2);
        });
});

2、检测玩家手持物品,当手持下界合金斧破坏带#forge:ores标签的方块时时额外掉落砂砾

onEvent("lootjs", (event) => {
    event
        .addBlockLootModifier("#forge:ores") // 使用方块tag匹配战利品表
        .matchEquip(EquipmentSlot.MAINHAND, Item.of("minecraft:netherite_pickaxe").ignoreNBT())
        .thenAdd("minecraft:gravel");
});

3、修改宝箱战利品表,概率掉落下界合金剑

onEvent("lootjs", (event) => {
    event
        .addLootTypeModifier(LootType.CHEST)
        .randomChance(0.05)
        .thenAdd("minecraft:netherite_sword");
});

4、修改宝箱战利品表,将所有钻石替换为下界合金

onEvent("lootjs", (event) => {
    event
        .addLootTypeModifier(LootType.CHEST)
        .thenReplace("minecraft:diamond","minecraft:netherite");
});

5、修改铁傀儡战利品表,使其只在村庄中被杀死时掉落铁锭

onEvent("lootjs", (event) => {
    event
        .addBlockLootModifier("minecraft:gravel")
        .not((callback)=>{
        	callback.anyStructure(["minecraft:village"], false)
        }) 
        .thenRemove("minecraft:iron_ingot");// 反转条件修改掉落物
});