LogoKubeJS PMMO

ProbeJS 类型生成

PmmoJS 会为 ProbeJS 和 ProbeJS Legacy 添加类型补全与代码片段。ProbeJS 是可选依赖;不安装 ProbeJS 时,PmmoJS 仍然正常运行。

整合包只需要加载一个 ProbeJS 变体:

Mod ID适用情况
probejs使用当前 ProbeJS
probejs_legacy使用 ProbeJS Legacy

不要把 PmmoJS 的 ProbeJS 插件写进 kubejs.plugins.txt。PmmoJS 会检测当前安装的 ProbeJS 变体,并自动注册对应集成。

生成类型

类型生成需要在已进入世界后执行:

/probejs dump

dump 完成后,如果补全没有立即出现,可以重新加载 VSCode 或重启 TypeScript 服务。

生成的类型组

生成结果覆盖 PmmoJS 脚本常用的 PMMO 值:

类型组内容
Event 类型BLOCK_BREAK, CRAFT, DEAL_DAMAGE, SKILL_UP 等 PMMO EventType 名称
Trigger IDPmmoHelper.getTriggerTypeIds() 暴露的全部 PMMO trigger ID
Internal hook IDdimensionTravel, login, potionBrewPMMOInternalType ID
Requirement 类型WEAPON, TOOL, BREAK, ENTITY_INTERACTReqType 名称
Object 类型ITEM, BLOCK, ENTITY, BIOME, DIMENSION 等 PMMO 对象分类
Modifier 类型PMMO ModifierDataType
Perk sideSERVER, CLIENT, BOTH

ProbeJS 会把这些值生成为 Special.* 联合类型,例如 Special.EventTypeSpecial.ReqTypeSpecial.PMMOInternalType

ProbeJS Legacy 会写出等价的全局别名,例如 PmmoEventTypePmmoReqTypePmmoInternalType

生成文件

输出位置取决于使用的 ProbeJS 变体:

变体主要输出
ProbeJSkubejs/probe/generated/globals.d.ts.vscode/probe.code-snippets
ProbeJS Legacy.probe/server/global/special_types.d.ts.probe/server/packages/com.pickaid.d.ts

ProbeJS 可能生成更多包文件。这些额外文件属于正常输出。

代码片段组

PmmoJS 也会注册常用脚本模式的代码片段:

  • pmmojs.event_type, pmmojs.trigger_type, pmmojs.internal_type
  • pmmojs.req_type, pmmojs.object_type, pmmojs.modifier_type, pmmojs.perk_side
  • trigger 处理器、internal hook、批量 settings、perk 生命周期、config event 脚手架

生成约束

  • /probejs dump 需要同时加载 PmmoJS 和一个 ProbeJS 变体。
  • 在 ProbeJS 与 ProbeJS Legacy 之间切换时,旧生成文件可能残留。删除旧生成文件后重新运行 /probejs dump
  • 更新 PmmoJS 或 Project MMO 后,需要重新 dump 才能得到当前枚举值。
  • 手动注册 PmmoJSProbePluginPmmoJSLegacyProbePlugin 可能会在未安装对应 ProbeJS 变体时强制加载可选类。