Skip to content

战利品

在这章中会采用原生的KubeJs实现战利品的修改和添加,并不会使用LootJs进行修改战利品,LootJs的修改在模组篇章中

在原生kubeJs中,作者一共给我们提供了以下6种战利品修改或添加的方式

虽然说是六种,但其实战利品的添加都是差不多的

建议在写之前看看战利品表战利品谓词,有空的话也可以再额外看一个物品修饰词

战利品事件调用用途添加覆盖用法
ServerEvents.genericLootTables全局战利品modifyaddGeneric全局战利品
ServerEvents.blockLootTables方块战利品modifyBlockaddBlock方块战利品
ServerEvents.entityLootTables生物战利品modifyEntityaddEntity生物战利品
ServerEvents.giftLootTables礼物战利品modifyaddGift礼物战利品
ServerEvents.fishingLootTables钓鱼战利品modifyaddFishing钓鱼战利品
ServerEvents.chestLootTables宝箱战利品modifyaddChest宝箱战利品

LootBuilderPool通用方法

方法名参数用途返回类型
setUniformRolls(int1,int2)int1->最小抽取次数 int2->最大抽取次数随机从奖池抽取次数void
addCondition(JsonObject)~~ConditionContainer
addConditionalFunction(Consumer<ConditionalFunction>)~~FunctionContainer
addEmpty(int)int->空值占比权重设置抽到空的权重LootTableEntry
addEntry(JsonObject)~~LootTableEntry
addItem(ItemStack)->添加物品LootTableEntry
addItem(ItemStack,int)int-> 权重占比添加物品LootTableEntry
addItem(ItemStack,int,NumberProvider)NumberProvider-> 数量范围添加物品LootTableEntry
addLootTable(ResourceLocation)->添加到其他的战利品表里LootTableEntry
addTag(string,bool)string->tagId bool-> 是否从其中抽取一个添加tag作为战利品LootTableEntry
randomChanceWithLooting(int1,int2)int1->chance int2->multiplier~ConditionContainer
count(NumberProvider)->设置数量范围FunctionContainer
damage(NumberProvider)->设置损坏值范围FunctionContainer
enchantRandomly(ResourceLocation[])->随机附魔FunctionContainer
enchantWithLevels(NumberProvider,bool)~~FunctionContainer
entityProperties(EntityTarget,JsonObject)~~ConditionContainer
entityScores(EntityTarget,Map<string, any>)~~ConditionContainer
entries()-获取entries列表JsonArray
killedByPlayer()-设置需要玩家击杀ConditionContainer
randomChance(int)->~ConditionContainer
randomChanceWithLooting(int1,int2)int1-> chance int2-> multiplier~ConditionContainer
setBinomialRolls(int1,int2)~~void
survivesExplosion()-~ConditionContainer
furnaceSmelt()-掉落物品可被火焰附加熔炼FunctionContainer

Contributors

Changelog