跳到正文

故障排查索引

先保存第一条错误、完整启动段、/sa version/sa doctor [玩家]/sa database status、JAR SHA 和八份配置。不要边排查边清日志或反复 /reload

快速索引

现象先检查深入页面
插件未启用Java 21、平台范围、第一条配置/DB/扩展错误安装
/sa reload 失败返回的文件、字段、值、期望范围;旧配置仍生效配置总览
玩家 NOT_READYDB availability、preload timeout、当前 subject epoch数据库
装备没属性item inspect → sources → inspect 三层装备
装备属性双倍是否同时有 sealattributes 与 sealitems 六槽来源SealItems 联动
百万生命只到较小值服务端 maxHealth clamp、effective health性能与边界
战斗伤害两次另一个权威插件、原生+seal Mythic mechanic联动
PAPI 不替换依赖启用、在线 READY、参数/完整 ID可选联动
没有全息DecentHolograms、enabled/required、viewers/capacity显示配置
持久来源失败PublishStatus、queue、storage、stale owner/subject来源 API
停服 unfinished/dirtyDB、shutdown timeout、队列是否 drained备份恢复
IDEA 红但 CLI 过Gradle JVM、sync model、依赖 verification构建与 IDEA

插件直接停用

  1. java -version 必须是 21;
  2. 服务端在支持范围且不是 Folia;
  3. 暂时只保留主运行 JAR,不装扩展;
  4. 八份 YAML 与当前 JAR版本匹配;
  5. SQLite 目录可写,或 MySQL 从同一主机可连;
  6. 未来 schema、缺少 MySQL 备份确认、扩展 service 错误都会 fail closed。

不要删除数据库试启动生产服;先复制到隔离目录定位。

装备无效的三层定位

text
/sa item inspect Player
/sa sources Player
/sa inspect Player sealattributes:physical_attack
  • item invalid:查 PDC JSON 的 schema/id/operation/value、16 KiB、64 项、JSON+flat 混用、当前 mode;
  • item valid 但无来源:查槽位、reader 开关、SealItems owner/gate、事件刷新;
  • 有来源但最终值不对:查 Profile、其他来源、operation、属性 enabled、有效值夹取。

数据库中断

已 READY 玩家可继续内存战斗,不代表数据安全。停止新增持久业务,观察 reconnect;新登录被拒绝是预期 fail-closed。恢复后先 /sa database status 和 flush,再决定是否开放。PERSISTED_SESSION_DEFERRED 是成功状态;STORAGE_FAILURE 不是。

配置失败

错误会指出文件/路径/实际值/范围。修复候选后重新 /sa reload;旧完整状态一直工作。若错误涉及数据库结构、pool、worker、扩展或已绑定 SealItems reader,必须维护窗口重启。

请求支持时附带

  • 主 JAR SHA-256 与来源;
  • Java、服务器精确 build、所有 softdepend 版本;
  • 启动到错误后的完整日志(脱敏数据库密码/地址);
  • 八份配置的脱敏副本;
  • doctor/database status 输出;
  • 最小复现步骤、预期与实际;
  • 是否在真实服、自动化测试或历史环境复现。

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