跳到正文

SealAttributes 联动

SealItems 保存“装备上有哪些属性贡献”,SealAttributes 负责定义属性、聚合来源并把结果应用到玩家。两者职责不要混淆。

何时需要

只做展示物品、材料或掉落,不一定需要 SealAttributes。只要希望装备、词条、宝石或共鸣真正改变攻击、生命等属性,就需要可写的 SealAttributes API。

启动检查

  1. 把兼容版本 SealAttributes JAR 放入 plugins/
  2. 先确保 SealAttributes 自己启动成功。
  3. 再看 SealItems 启动日志。
  4. /si health 中确认 equipment integration writable。

SealItems 找不到或无法写入联动时会避免把运行态误报为完整 READY。可选玩法配置失败与核心配置失败会分别报告。

属性配置例子

装备固定/随机基础贡献:

yaml
equipment:
  attributes:
    sealattributes:physical_attack:
      add: { min: 18, max: 24 }
    sealattributes:max_health:
      add: 20
      total-percent: 0.05

词条贡献:

yaml
attributes:
  sealattributes:physical_attack:
    add:
      algorithm: uniform
      pity-direction: higher
      min: 8
      max: 18
      step: 1

宝石贡献:

yaml
effects:
  default:
    sealattributes:max_health: { add: 20 }
  contexts:
    weapon:
      sealattributes:physical_attack: { add: 12, total-percent: 0.10 }

共鸣贡献:

yaml
thresholds:
  3:
    sealattributes:physical_attack: { add: 5 }

operation 语义

  • add:加法值。
  • total-percent:总百分比,0.10 表示 10%。

属性 ID 与允许 operation 以你的 SealAttributes 定义为准。示例 ID 只有在 SealAttributes 中存在才可用。

装备同步

玩家装备变化时,SealItems 读取完整装备与宝石/共鸣状态,生成稳定来源快照发布给 SealAttributes。损坏、未知 schema、缺定义或全身限制超额的部分不会被冒险计入。装备频繁切换应更新来源而不是永久叠加。

“Lore 有属性但玩家没变强”的检查

  1. /si inspect 确认物品 READY,不是 PROTECTED。
  2. /si health 确认联动 writable。
  3. 检查 SealAttributes 控制台是否认识该属性 ID/operation。
  4. 确认物品在受支持装备槽,而不是只放背包。
  5. 检查宝石是否因 per-item/equipped 限制被停用。
  6. 检查未鉴定限制。
  7. 让玩家重新装备一次,再查看 SealAttributes 自身诊断。

开发边界

SealItems 只 compileOnly 依赖 SealAttributes API,不把其类打进 JAR。第三方插件也不要反射 SealItems 私有 integration 实现;如果需要新的公开能力,应先设计并加入 sealitems-api

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