问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

LootJS:Minecraft战利品表修改利器

创作时间:
作者:
@小白创作中心

LootJS:Minecraft战利品表修改利器

引用
1
来源
1.
https://docs2.mihono.cn/zh/modpack/kubejs/1.19.2/XPlusKubeJSTutorial/addons/lootjs

LootJS是一个用于Minecraft的KubeJS模组,它简化了战利品表的修改过程。通过LootJS,开发者可以更便捷地添加额外掉落物、修改掉落条件,并在掉落战利品时执行事件。本文将详细介绍LootJS的工作原理和使用方法。

一、附属信息

mod链接:Github | Curseforge,许可:LGPL-3.0。1.19.2+版本支持 Forge 和 Fabric 模组加载器。

你可以通过/reload命令来重载LootJS的修改内容。

二、工作原理

LootJS的工作原理如下:

三、LootJS事件

1、事件监听

注:本节代码应置于kubejs\server_scripts文件夹下

要使用LootJS修改战利品表,你需要使用LootJS.modifiers事件。

LootJS.modifiers(event => {
    // code here
});

2、修改逻辑

值得注意的是,修改战利品表时应至少存在一个战利品表事件!

例如,以下为两个修改示例:

LootJS.modifiers((event) => {
    // 玩家使用忽略nbt的下界合金镐破坏带有#forge:ores标签的方块时,额外掉落一个砂砾。
    event
        .addBlockLootModifier("#forge:ores") // 战利品表修饰器
        .matchMainHand(Item.of("minecraft:netherite_pickaxe").ignoreNBT()) // 战利品表条件
        .addLoot("minecraft:gravel");// 战利品表事件
    // 玩家破坏绿宝石块时,添加基于二项分布的绿宝石掉落
    event
        .addBlockLootModifier("minecraft:emerald_block") // 战利品表修饰器
        .pool((p) => {// 战利品表事件(新建随机池)
            p.addLoot("minecraft:emerald");// 战利品表事件
            p.applyBinomialDistributionBonus("minecraft:fortune", 0.2, 3);// 战利品表函数
        });
});

四、战利品修饰器(Loot Modifier)

函数
功能
addBlockLootModifier(...方块ID)
为方块添加新的战利品表修饰器
addEntityLootModifier(...实体ID)
为实体添加新的战利品表修饰器
addLootTableModifier(...命名空间ID)
为给定战利品表添加新的修饰器
addLootTypeModifier(...战利品表ID)
为给定战利品表类型添加新的修饰器
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号