[MD]
## 1.0.4
### 新增诊断命令
- 新增 `/sa item inspect [玩家]`,使用正式装备编译链检查玩家主手物品。
- 可查看当前物品来源模式、识别到的属性、百分比换算、关闭属性、未注册属性和无效数据原因。
- 检查过程只读,不会发布或修改玩家属性来源。
### 新增战斗追踪
- 新增 `/sa combat trace [玩家]`,查看参与者最近一次战斗结算。
- 显示攻击与防御快照、物理/法术/真实伤害、格挡、实际扣血、暴击、吸血、反伤及扩展诊断。
- 记录保存在有界内存中,不建立额外数据库表。
### 新增运行健康检查
- 新增 `/sa doctor [玩家]`,检查 Java、服务端版本、配置、数据库、可选联动和生命投影状态。
- 三项诊断命令统一使用 `sealattributes.command.diagnostics` 权限,默认仅 OP 可用。
- 本版不修改数据库 schema,八份配置的 `config-version` 保持不变。
## 1.0.5
### 内置六槽装备读取开关
- `sources.yml` 新增 `built-in-equipment-reader.enabled`,默认值为 `true`。
- 关闭后,SealAttributes 不再读取玩家主手、副手和四件护甲,方便 SealItems 等装备插件统一管理槽位。
- 热重载关闭读取器时,会撤销已有 `sealattributes:equipment/*` 来源,但保留基础 Profile、API 来源、
持久来源和其他适配来源。
- 读取器关闭时,装备事件与 `/sa refresh` 不再捕获六槽物品;`/sa item inspect` 仍可只读检查物品。
- 旧配置可以继续使用;缺少该配置项时按默认开启处理。
## 1.0.6
### 向装备插件公开六槽读取状态
- 公共 API 新增内置六槽读取器的实时只读状态查询。
- SealItems 等装备插件只有在明确读到读取器已关闭时,才可以发布同一批原版槽位属性。
- 读取器开启、运行时未就绪、绑定过期或插件关闭时,外部装备插件应进入 `READ_ONLY`。
- 该机制避免 SealAttributes 与装备插件同时发布同一件装备,造成属性重复计算。
## 1.0.7
### 内部属性扩展目录
- 新增 `plugins/SealAttributes/extensions/*.jar` 扩展目录。
- 扩展包由 SealAttributes 在启动期加载,不需要 `plugin.yml`,也不会注册成第二个 Paper 插件。
- 一个扩展 JAR 可以集中注册一组新属性、公式和属性行为。
- 扩展必须声明唯一 provider 命名空间和兼容的 API baseline,只能在 Core 注册表冻结前工作。
- 入口缺失、入口重复、版本不兼容、命名空间冲突或注册异常时,主插件会拒绝启动,避免只加载半套属性。
- 扩展按文件名排序,最多加载 64 个;不支持热加载、热卸载或扩展之间互相依赖。
- 扩展是可信 JVM 代码,不是脚本沙箱,只应安装可信来源提供的 JAR。
## 1.0.8
### 通用当前资源系统
- 公共 API baseline 升为 `1.2`,新增 provider-bound `ResourceService`。
- 新增资源定义注册、不可变资源快照、类型化操作结果和提交后资源变化事件。
- 主插件统一处理资源首次初始化、上限夹取、原子消费、固定/百分比在线恢复、死亡冻结、异步检查点、
玩家退出与停服保存、重登恢复。
- 当前资源是运行状态,不作为可叠加属性;容量上限、恢复速度和消耗减免仍由属性来源统一聚合。
### 斗罗属性与魂力扩展
- 新增可选 `SealAttributes-Douluo-1.0.8.jar`。
- 扩展注册 12 项 `douluo:*` 属性和 `douluo:soul_power` 当前魂力资源。
- 魂力资源关联魂力上限、固定恢复、百分比恢复和消耗减免四项属性。
- 装备、魂骨、职业和状态插件只负责向 SealAttributes 发布属性来源。
- 魂技插件通过 Resource API 消费或恢复当前魂力,不自行维护第二份魂力数据。
### GUI 与 PlaceholderAPI
- 现有属性 GUI 的生命区域升级为“生命与资源”,直接展示已注册资源,不新增独立页面。
- 资源变化事件会刷新正在查看对应玩家的 GUI。
- PlaceholderAPI 增加资源名称、当前值、上限和百分比的 raw/formatted 字段。
- 本版没有新增资源管理员命令、资源权限或手工 set/fill 命令。
### 装备读取与全息显示修复
- SealItems provider 已绑定时,`built-in-equipment-reader.enabled` 变为启动期设置。
- `/sa reload` 尝试切换该设置时会整体拒绝并保留旧配置,避免原版六槽在两个插件中重复发布。
- DecentHolograms 战斗浮字改为创建后默认不可见,再只向选中的观察者显示,不再先向全服广播。
- `/sa doctor` 增加战斗浮字活动数量、容量、每 tick 创建上限和累计丢弃计数。
### 数据库升级
- 数据库 schema 从 1 升级到 2,新增 `sa_resource_state`。
- SQLite 升级前会创建并检查备份。
- MySQL 升级前必须由管理员完成外部备份,并按 `database.yml` 的说明确认迁移。
- 回滚到只理解 schema 1 的旧版本时,必须同时恢复升级前数据库;不能只删除新表或手改版本号。
[/MD]