- ◆ 游戏版本
- 1.18.2~26.3(理论上)
- ◆ 服务端核心
- Paper / Purpur / Spigot(纯 Bukkit API)
- ◆ 前置/依赖
- 无
🩺 ConfigDoctor —— 配置检查 & 备份恢复 & 报错解读
💡 简介
配置改了半天,插件却一点反应都没有?控制台报了一屏错,堆栈看得头皮发麻?
那大概率是配置写错了 —— 而插件一声不吭,安静地用回默认值。
ConfigDoctor 拿插件 jar 里的默认配置当尺子,逐键比对服务器上的实际配置;还能解读报错、备份和对比配置。
🔒 体检全程只读 —— 扫描不写任何文件;备份、恢复、对比也只在你自己敲命令时才动手。
⚙️ 功能特性
🔍 配置体检 —— 对比 jar 默认配置与服务器配置,一眼揪出:
- 键名拼错或旧版残留;
- 类型不匹配;
- 重复键(同一个键写了两遍,实际生效的不是你改的那一处);
- 直接读不动的配置文件。
支持全量扫描,也可以只查某一个插件。
💾 备份 / 恢复 / 对比 —— 动配置之前的保命三件套:
- 备份 —— 单个插件或
all全服,只打包.yml/.yaml,递归包含子目录,存成带时间戳的 zip:backups/<插件名>/<时间戳>.zip,按插件分目录、按时间排序、永不覆盖; - 恢复 —— 先列出该插件全部可用备份(新→旧)任你挑;覆盖前还要二次确认,并列出即将被覆盖的文件清单;动手前自动把当前配置快照为
pre-restore-<时间戳>.zip,手抖也能反悔;还内置 zip-slip 路径穿越防护; - 对比 —— 逐键比较任意备份与当前配置,标出改(旧→新)、增、删三类变化;聊天窗口先列前 20 处,完整清单写入
diff-<时间戳>.txt报告。
📜 报错解读 —— 分析 logs/latest.log,按出现频率统计错误事件,对常见异常(ClassCastException、NoSuchMethod、NPE、异步违规、数据库锁定等)给出人话解释,不用再对着密密麻麻的报错发呆。
🙈 忽略 —— 两级降噪,各管一摊:/cfgdoc ignore <通配> 忽略某类键(如 dynmap.*、*.markers.*),写入 ignores.txt,改完 /cfgdoc reload 生效;ignore-files 在 config.yml 里按相对路径整份跳过(如 lang/*.yml、translations/**)。跳过了多少份文件,报告里也会写。
⌨️ Tab 补全 —— 敲命令时按 Tab 直接补全:子命令、要扫描的插件名、能备份的插件、有备份的插件、以及该插件的历史备份文件名。不用再翻 plugins 目录数文件名了。
🎮 命令
主命令 /configdoctor,别名 /cfgdoc,权限 configdoctor.use(默认仅 OP)。
| 命令 | 说明 |
|---|---|
/cfgdoc scan [插件名] |
体检配置,可全量或指定插件 |
/cfgdoc errors |
分析日志报错并生成解释报告 |
/cfgdoc backup <插件名|all> |
备份配置 |
/cfgdoc restore <插件名> [备份] |
恢复备份,需二次确认 |
/cfgdoc diff <插件名> [备份] |
对比备份与当前配置 |
/cfgdoc report |
重看最近一次扫描结果 |
/cfgdoc ignore <通配> |
忽略某类键,如 dynmap.* |
/cfgdoc reload |
重载自身配置与忽略列表 |
📝 配置
plugins/ConfigDoctor/config.yml:
# 扫描时跳过的插件(与对方 plugin.yml 的 name 一致)
exclude-plugins: []
# 整份跳过对比的配置文件,按相对路径通配,如 lang/*.yml
ignore-files: []
# 语言文件里的多余键只提示不告警
locale-lenient: true
# 生成报告文件
report-file: true
# 是否报告「默认有而用户未设置」的键
show-missing: false
# 匿名统计(也可在 plugins/bStats/config.yml 关闭)
bstats: true
键级忽略列表另存于 plugins/ConfigDoctor/ignores.txt,由命令写入,也可手改后 /cfgdoc reload。
📁 报告与备份路径
都在 plugins/ConfigDoctor/ 下,文件名带时间戳,旧报告统统留着:
| 项目 | 路径 |
|---|---|
| 配置体检 | report-<时间戳>.txt |
| 日志报错解读 | errors-<时间戳>.txt |
| 配置差异对比 | diff-<时间戳>.txt |
| 配置备份 | backups/<插件名>/<时间戳>.zip |
| 恢复前快照 | backups/<插件名>/pre-restore-<时间戳>.zip |
🚀 安装
- 下载
ConfigDoctor-x.x.x.jar,丢进plugins/; - 重启服务器;
- 敲一句
/cfgdoc scan,看看你的配置有没有埋雷。
首次启动自动生成默认配置,零前置依赖。
🧩 兼容性
- 核心:Paper / Purpur / Spigot 及兼容 Bukkit API 的衍生核心;
- 版本:1.18.2 ~ 26.x(服务端需 Java 17+);
- Folia:支持;
- 前置:无,单 jar 即用;
- 统计:内置 bStats,可在配置里关掉。
👆 更新
Version 1.3.0
- 新增忽略文件
ignore-files配置 - 宽松解析,优化检测逻辑
- 接入bStats
- 修复了一些bug
Version 1.2.1
- 首次公开发布
📮 反馈
有问题、有误报请联系作者:block409@foxmail.com