跳到正文

更新记录

本页依据当前源码根目录的 CHANGELOG.md、正式交付更新记录和构建版本配置整理。版本号相同并不代表验证层级相同:请先看状态,再决定能否升级生产服。

版本状态

版本日期状态关键变化
1.0.92026-08-14源码候选API baseline 1.3、解除旧单来源 64 条上限、聚合与诊断性能、可选 PRD
1.0.82026-08-10当前正式交付Resource API、schema 2、斗罗资源、扩展属性统一配置
1.0.72026-08-08历史正式交付启动期扩展 JAR 与 ServiceLoader
1.0.62026-08-08历史版本向装备插件公开六槽读取器状态
1.0.52026-08-08历史版本内置六槽读取开关
1.0.42026-08-08历史版本item inspect、combat trace、doctor
1.0.32026-08-07历史版本Profile 热重载投影修复
1.0.22026-08-07历史版本Profile、来源拆解、批量 mutate、Mythic 技能联动
1.0.12026-08-06历史版本百分比显示修复
1.0.02026-08-05首次本地交付候选V1 API、Core、Paper、战斗、存储和基础联动

当前 Wiki 与正式 JAR

本 Wiki 按当前 1.0.9 源码候选编写,因此会包含 1.0.9 API 与配置行为。正式生产交付记录仍停在 1.0.8。拿到 1.0.9 正式 JAR、SHA 和新的真实服验收记录前,不要把“源码文档已更新”当成“插件已经正式发布”。

1.0.9 — API 1.3 与高容量来源

来源与持久化

  • 公共 API baseline 升为 1.3
  • SourceSnapshot 不再执行独立的单来源贡献条数上限;旧 MAX_CONTRIBUTIONS_PER_SOURCE 只为 ABI 兼容保留。
  • 不可变复制、有限数值、合法/已注册属性、唯一 (attributeId, operation)、revision、owner epoch、单主体来源和属性总量边界继续生效。
  • 持久来源 JSON 不再复用物品输入的 64 条限制;仍保留 16 KiB UTF-8 载荷与严格 JSON 校验。
  • 单件物品 PDC/Lore 仍属于不可信输入,继续保留 64 条边界。

性能与诊断

  • 来源激活时把属性 ID、operation 和稳定贡献顺序编译为注册表代次专用稀疏数组,减少生产聚合分配。
  • 7 个来源、每来源 128 条的 JDK 21 探针由约 31,947 bytes/次降至约 2,464 bytes/次;该数字是指定探针,不代表任意服务器负载。
  • Lore 模板按字面前缀首字符分桶;内置六槽读取器增加固定 256 项 LRU,缓存合法、空和非法编译结果。
  • /sa doctor 增加聚合耗时固定桶 p95/p99、来源/贡献高水位、发布结果、拒绝 provider、装备跳过和解析缓存统计;标签与缓存均有界。

战斗与生命工作集

  • 暴击与闪避可分别选择 INDEPENDENTPRD,默认仍为独立随机。
  • PRD 状态按攻击者/防守者隔离,受主体容量约束;重载、下线、死亡会话替换和重启都会重置,不持久化。
  • 环境伤害和原版治疗在下一 tick 合并读取真实生命后重新评估回血工作集。
  • 相同生命检查点不再重复增加 revision 或写库;相同属性投影不再重复设置 Paper 血条缩放。

配置兼容

  • 扩展属性同步器支持顶层 attributes: {},并保留行尾注释与原换行风格。
  • /sa sources 增加总贡献数与最大单来源贡献数摘要。

验证状态

源码记录了 JDK 21 + MySQL 8.4.11 连续两轮 295/295、0 跳过和字节一致构建;这属于当时的自动化候选验证。本版本没有对应真实 Minecraft 服务器验收,正式交付仍为 1.0.8。

1.0.8 — Resource API 与 schema 2

  • 公共 API baseline 升为 1.2,新增 provider-bound ResourceService、资源定义、不可变资源快照、类型化结果和提交后事件。
  • 数据库从 schema 1 升为 schema 2,增加 sa_resource_state
  • 资源状态机权威处理初始化、上限夹取、原子消费、固定/百分比在线恢复、死亡冻结、检查点、退出/停服保存与重登恢复。
  • 可选斗罗扩展注册 12 项 douluo:* 属性及 douluo:soul_power
  • 启动和 /sa reload 会把已注册扩展的缺失属性块补入 attributes.yml,不覆盖已有值,也不因扩展暂时移除而删除旧配置。
  • 扩展属性与 22 项内置属性共用 Profile、聚合、GUI、Placeholder 和启停逻辑。
  • PlaceholderAPI 增加 resource current/max/percent/name;GUI slot 13 合并显示“生命与资源”。
  • sealitems provider 已绑定时,重载不能切换内置六槽读取器。
  • DecentHolograms 伤害数字改为默认不可见,再只向配置指定的观察者显示。

数据库升级要求:MySQL 必须先完成外部备份并按配置确认;回滚到只理解 schema 1 的 JAR 时必须同时恢复升级前数据库。

正式交付记录:主 JAR SHA-256 为 4babcbcec144db29fba913f0d78858aaae8c8ce41cc818dd9d33e4f0ba9dcef3;斗罗扩展 SHA-256 为 79c4ae148e7956908c8e4a387523da4dc3a18244c69fa064cbe0dd3bb7627fc2。当次记录包含 274 项 MySQL 质量门、8 个精确平台构建矩阵和 Leaf 1.21.4 正式 JAR/扩展真实服验收。

1.0.7 — 启动期属性扩展

  • 新增 plugins/SealAttributes/extensions/*.jar
  • 公共 API 新增 SealAttributeExtension;扩展通过标准 JVM ServiceLoader 文件声明入口。
  • 每个 JAR 恰好一个入口并拥有唯一 provider 命名空间,最多加载 64 个。
  • 入口只能在注册表冻结前注册定义、公式、战斗和平台行为。
  • 缺入口、多入口、API 基线不兼容、命名冲突或注册异常都会让主插件拒绝启动。
  • 不支持热加载、热卸载或扩展间依赖;扩展是可信 JVM 代码,不是安全沙箱。

正式交付主 JAR SHA-256:6306462ac124113d7e42d7dc5b5b08407a913ba78200e78f58304743d7b6d077

1.0.6 — 六槽读取器状态 API

  • 向装备插件公开内置六槽读取器的实时只读状态。
  • SealItems 等外部 owner 只有明确读到 FOUND false 才能发布槽位来源。
  • 读取器开启、平台未就绪、绑定过期、查询异常或插件关闭时都必须进入只读模式,避免双算。

1.0.5 — 内置六槽读取开关

  • sources.yml 增加 built-in-equipment-reader.enabled,默认开启并兼容旧配置。
  • 关闭后不再读取主手、副手和四件护甲,并撤销已有 sealattributes:equipment/*
  • Profile、第三方 API、持久来源和其他适配来源不受影响。
  • reader 关闭后装备事件和 /sa refresh 不再捕获物品;/sa item inspect 仍可只读诊断。

1.0.4 — 三项运维诊断

  • 新增 /sa item inspect [玩家],使用正式装备编译器检查主手输入,但不发布来源。
  • 新增 /sa combat trace [玩家],有界保存参与者最近一次战斗的计划、关键快照和最终结果。
  • 新增 /sa doctor [玩家],检查 Java、平台、配置、物品模式、数据库、软依赖和生命投影。
  • 三项诊断共用 sealattributes.command.diagnostics,默认仅 OP。

1.0.3 — Profile 重载投影修复

  • 修复 Base Profile 热重载经过 NOT_READY 中间态后,没有向 Paper 投影最终属性变化的问题。
  • 重载前保留旧 READY 快照,过程中抑制中间事件,完成后只发一次旧值到最终值的合并事件。
  • 玩家、普通实体和已跟踪 MythicMobs 怪物的有效最大生命会按最终配置重算。
  • 没有配置版本或数据库 schema 迁移。

当次 1.0.3 自动化与字节比对通过,但没有把 1.0.2 的真实服记录重新标记为 1.0.3 验证。

1.0.2 — Profile、原子来源与 Mythic 技能

  • /sa inspect <玩家> <属性ID> 增加来源拆解:基础值、ADD、TOTAL_PERCENT、计算值与规则修正值。
  • attributes.yml 增加玩家/实体 Base Profile 局部绝对值覆盖。
  • SourcePublisher 增加单主体原子 mutate,整批替换或撤销多个运行时来源。
  • 22 项内置属性增加 enabled;关闭后来源不参与聚合,并从 GUI、PAPI 与自动 Lore 隐藏。
  • 修复 load: STARTUP 下 SealAttributes 早于 MythicMobs 启用时 skill listener 不注册的问题。
  • MythicMobs 增加 sealDamage/seal_damagesealHeal/seal_heal,由 SealAttributes 统一计算伤害与治疗。
  • CombatPlan 增加固定真实伤害通道,并保留旧构造函数兼容。

当次精确 JAR 曾在 Leaf 1.21.4、MythicMobs 5.13.0 和真实协议客户端完成 29/29 功能矩阵;该记录只属于对应 1.0.2 JAR。

1.0.1 — 百分比显示修复

  • 百分比显示由内部小数正确换算为人类百分数:1.0 显示 100%0.2 显示 20%
  • /sa inspect 与 GUI 统一数值/单位格式。
  • PlaceholderAPI _formatted 返回人类百分数但不附 %_raw 继续返回内部小数。
  • 不改变战斗、存储、Mythic 结构化物品或 API 原始值语义。

1.0.0 — V1 首次本地交付候选

  • 建立稳定 V1 API:属性定义、运行时/永久来源、不可变快照、Combat Plan、Gate/Extension、治疗、平台投影与事件。
  • 建立纯 Core 聚合、主体、生命、战斗和治疗引擎,以及 Paper 权威实体战斗入口。
  • 加入 STRUCTURED PDC 与可选 Lore 物品模式。
  • 加入 SQLite/MySQL、schema 迁移、健康检查点、持久来源、有界 I/O 与停服排空。
  • 加入原生最大生命/移动速度投影、高生命支持、恢复、登录/重生/重连和死亡归因。
  • 提供八份中文业务配置、命令、只读 GUI、PlaceholderAPI 和可选 DecentHolograms。
  • 加入 MythicMobs 5.x 怪物生成生命导入、结构化物品和 adapter 子模块;adapter 合并进唯一主运行 JAR。
  • 首次兼容验证覆盖 Paper/Purpur 1.21、1.21.4、1.21.11 与 Leaf 1.21.4、1.21.11;Leaf 1.21.4 是当时完整功能和性能基线。
  • 耐久来源提交在数据库成功、在线会话失效时返回成功的 deferred-session 状态,调用方不得重复写入。
  • 生命/移动投影、启动回滚、停服清理和配置重载均采用故障关闭或失败原子边界。

升级时怎么使用本页

  1. 从当前版本逐段阅读到目标版本,记录 API、数据库 schema、扩展与配置行为变化。
  2. 对照 升级检查表 备份 JAR、八份配置和数据库。
  3. schema 发生变化时,回滚必须恢复对应数据库,不能只换旧 JAR。
  4. 重新编译所有第三方 consumer 与扩展,并用目标 JAR、实际服务端和软依赖做隔离验收。
  5. 分开记录自动化、MySQL 条件测试、真实服务器和正式交付证据。

更细的 API 与运维边界分别见 开发者快速开始存储、迁移、备份与恢复

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