跳到正文

sources.yml:来源与物品读取

完整默认配置

yaml
config-version: 1
built-in-equipment-reader:
  enabled: true
item-mode: STRUCTURED
equipment-slots:
  - MAIN_HAND
  - OFF_HAND
  - HEAD
  - CHEST
  - LEGS
  - FEET
structured:
  schema-version: 1
  pdc-key: sealattributes:item_attributes
lore:
  formats:
    number: ["{name} {value}", "{name}: {value}", "{name}:{value}", "{value} {name}"]
    percent: ["{name} {value}", "{name} {value}%", "{name}: {value}%", "{name}:{value}%", "{value}% {name}"]
  aliases: {}
  templates: []

顶层与结构化模式

默认规则
config-version1固定。
built-in-equipment-reader.enabledtrue读取六个原版槽;SealItems 接管时关闭并完整重启。
item-modeSTRUCTUREDSTRUCTUREDLORE,一次只启用一种。
equipment-slots六槽列表列表和顺序固定,不可删除、增加或重排。
structured.schema-version1固定。
structured.pdc-keysealattributes:item_attributes固定 NamespacedKey。

内置读取器不支持饰品、背包或自定义槽。第三方插件必须通过 API 用自己的 provider 发布。

Lore 模式全部键

yaml
config-version: 1
built-in-equipment-reader:
  enabled: true
item-mode: LORE
equipment-slots: [MAIN_HAND, OFF_HAND, HEAD, CHEST, LEGS, FEET]
structured:
  schema-version: 1
  pdc-key: sealattributes:item_attributes
lore:
  formats:
    number:
      - "{name}: {value}"
      - "{value} {name}"
    percent:
      - "{name}: {value}%"
  aliases:
    physical_attack:
      - 物攻
      - 攻击力
  templates:
    - attribute: sealattributes:max_health
      operation: ADD
      template: "生命上限 +{value}"
范围/依赖
lore.formats.number1~8 条,彼此唯一;每条恰好一个 {name}{value},最多 128 字符。
lore.formats.percent同上;用于百分比属性。
lore.aliases.<内置属性路径>仅当前启用的内置属性;每项 1~4 个别名;所有显示名/别名全局唯一。
lore.templates0~64 条;attribute 为完整 ID,operation 为 ADD/TOTAL_PERCENT;二选一使用单个 template 或 1~8 个字符串的 formats,每条恰好一个 {value}、最多 128 字符。

自动格式、别名和模板展开后的规则总数最多 128。TOTAL_PERCENT 只适用于 AMOUNT。扩展属性不会自动获得显示名规则,必须用完整 ID 写 template。

百分比语义

Lore 与物品 JSON 使用人类百分数。暴击率: +15% 解析为 API 数值 0.15;TOTAL_PERCENT 的 20 解析为 0.20。不要写 0.15% 来表达 15%。

热重载边界

  • item-mode、Lore 规则可在候选校验成功后重建装备来源;重建期间主体暂时不可用于战斗,避免一击混用新旧模式;
  • 关闭内置 reader 会撤销六个 sealattributes:equipment/*,保留 Profile、API 与永久来源;
  • sealitems provider 已绑定时,热重载更改 reader 值会拒绝整次重载。必须停服、编辑、再启动。

错误示例

yaml
formats:
  number: ["{name}: {value} / {value}"]

错误:{value} 出现两次。

yaml
templates:
  - attribute: sealattributes:critical_chance
    operation: TOTAL_PERCENT
    template: "暴击率总增 {value}%"

错误:该属性不接受 TOTAL_PERCENT。

yaml
equipment-slots: [MAIN_HAND, HEAD]

错误:固定六槽列表被改变。Lore 只做纯文本精确匹配,不开放正则或脚本;迁移前用 /sa item inspect 抽样验证。

Minecraft 服务端插件使用与开发文档