深色模式
配置总览与重载
SealAttributes 只读取 plugins/SealAttributes/ 下八份业务 YAML。所有文件都使用 config-version: 1,并对代码实际读取的键进行类型、范围、枚举和跨字段校验;attributes、Profile、GUI 分组等结构还会拒绝非法键。
文件职责
| 文件 | 职责 | 通常能否 /sa reload |
|---|---|---|
config.yml | 语言、权威模式、基础 Profile、诊断 | 是 |
attributes.yml | 22 项内置属性显示元数据、默认值、启用状态、基础 Profile | 是 |
combat.yml | 随机、防御、格挡、攻速、rating、反伤、恢复、容量 | 是 |
sources.yml | 内置装备读取、结构化 PDC、Lore 规则 | 是;SealItems 已绑定时不能热切换内置读取器 |
display.yml | 生命条、移速、重生、格式化、全息、原版效果 | 是 |
gui.yml | 属性 GUI、七个分类按钮和材质 | 是 |
messages.yml | 命令消息 | 是 |
database.yml | 后端、连接池、队列、超时、检查点、迁移确认 | 部分;连接/池/worker/容量必须重启 |
datasource.yml 是 TabooLib 内部桥接,不属于业务配置,不要编辑。
原子重载
text
/sa reload重载流程是:后台读取八份候选文件 → 完整校验 → 主线程准备新 Core/storage/root/listeners → 原子提交。任何一步失败都保留整套旧状态;不会出现“属性新了、战斗还是旧的”这种半重载。已有重载正在执行时返回 busy。
必须完整重启的变更
database.type、SQLite 文件、MySQL 端点/账户/TLS;- pool 全部字段;
queue.storage-threads、queue.capacity;- 安装、删除、替换
extensions/*.jar; - SealItems provider 已绑定时切换
built-in-equipment-reader.enabled; - 数据库 schema 迁移和
migration.mysql-backup-confirmed的实际使用; - 主插件 JAR、服务端、Java 或软依赖版本。
编辑流程
- 复制八份 YAML 和数据库备份;
- 一次只改变一组相关键;
- 保存 UTF-8 YAML;
/sa reload;- 用
inspect、sources、doctor和实际战斗验证; - 重启必需项在维护窗口完整停服后改;
- 保留成功前后的配置差异和日志。
严格校验示例
错误枚举:
yaml
combat-mode: VANILLA_PLUS仅支持 AUTHORITATIVE,候选配置会被拒绝。
错误固定值:
yaml
structured:
pdc-key: myplugin:attributesPDC 键固定为 sealattributes:item_attributes,不能自定义。
错误跨字段:
yaml
pool:
minimum-idle: 4
maximum-pool-size: 2最小空闲不能大于池上限。
不要用未知键猜功能:
yaml
diagnostics:
enabled: true
verbose: true # 不存在普通区段中的额外键可能被当前加载器忽略,而不是报错或生效;结构严格的区段则会拒绝。无论哪种结果,verbose 都不是能力开关。只使用本文与当前默认资源列出的键。
YAML 注意事项
- 布尔值用
true/false,不要用yes/no; - 含冒号、
#、MiniMessage 标签或前导空格的消息建议加引号; - 属性值必须有限;
- 配置键区分大小写;枚举按文档使用大写;
attributes: {}合法,表示所有内置属性使用代码默认定义;- 禁止用 Bukkit
/reload代替插件自己的原子重载。