LogoKubeJS PMMO

重置默认值

当你需要用自定义规则替换 PMMO 的内置数据时,你首先需要一种清除默认值的方式。PmmoJS 提供两种方案:基于配置的批量重置和基于脚本的定向删除。

推荐方式:使用通用配置

从空白基线开始最干净的方法是 config/pmmojs-common.toml

[disableDefaultSettings]
all = false
skills = false
perks = false
requirements = false
xpAwards = false
itemExtras = false
blockVeinData = false

每个开关控制一个类别:

开关清除内容
all下面列出的所有内容
skillsPMMO 默认技能
perksPMMO 默认 Perk 条目
requirements物品、方块和实体的需求数据
xpAwards物品、方块和实体的 XP 奖励数据
itemExtras物品加成、正面/负面效果、回收、矿脉数据
blockVeinData方块矿脉挖掘数据

执行顺序保证你的脚本始终生效:

  1. PmmoJS 读取通用配置
  2. 启用的类别被清除
  3. 你的 KubeJS 脚本运行并应用你的自定义数据

何时使用脚本代替

当你不需要清除整个类别,只需要定向控制时,使用 KubeJS:

  • 清除一个需求族:event.clearVanillaItemSettings()
  • 清除一个 Perk 事件列表:event.clearPerks(EventType.SKILL_UP)
  • 移除单个 Perk:event.removePerkType('pmmo:fireworks')
  • 通用配置清除后覆盖特定物品

重置后重建

技能

如果你清除了 skills,定义你的整合包实际使用的技能:

PmmoJS.skillsConfig(event => {
event
.addSkill('endurance')
.withColor(0x2f6fed)
.withMaxLevel(100)
.build()
event
.addSkill('smithing')
.withColor(0xe08a25)
.withMaxLevel(100)
.build()
})

Perk

如果你清除了 perks,只加回你需要的条目:

PmmoJS.perksConfig(event => {
event
.addPerk(EventType.SKILL_UP, 'pmmo:attribute', 'endurance')
.asAttributePerk()
.withAttribute(Java.loadClass('net.minecraft.world.entity.ai.attributes.Attributes').MAX_HEALTH)
.withPerLevel(1)
.withMaxBoost(10)
.build()
})

物品设置

如果你清除了需求、XP 奖励或物品附加数据:

PmmoJS.settings(event => {
event.items([
'minecraft:diamond_pickaxe',
'minecraft:netherite_pickaxe'
], setting => {
setting.override(true)
setting.setRequirement(ReqType.TOOL, 'mining', 20)
setting.setXp(EventType.BLOCK_BREAK, 'mining', 12)
})
})

旧版需求辅助方法

设置事件还保留了以下辅助方法用于向后兼容:

  • event.clearVanillaItemSettings()
  • event.clearVanillaBlockSettings()
  • event.clearVanillaEntitySettings()

这些只重置各自对象类型的需求数据。它们不触及 XP 奖励、加成、效果、回收或矿脉数据。需要完整重置时请使用通用配置。

通用配置不覆盖的内容

生物群系和维度的设置没有批量禁用开关。这是有意为之 —— 位置数据通常需要整合包作者的显式控制。

对于位置覆盖,使用定向调用:event.biome(id, ...)event.biomes(ids, ...)event.dimension(id, ...)event.dimensions(ids, ...)

相关页面