备份、迁移与回滚
数据范围、备份节奏、MythicDungeons/Paper/Folia 迁移与灾难恢复。
必须备份的内容
| 路径 | 原因 |
|---|---|
plugins/LiDungeon/maps/ |
地牢模板、配置、房间和功能数据 |
plugins/LiDungeon/globalplayerdata/ |
玩家完成记录、冷却和持久变量 |
plugins/LiDungeon/config.yml |
全局实例、队伍、Folia、旁观设置 |
plugins/LiDungeon/lang/ |
自定义中文文本 |
plugins/LiDungeon/backups/ |
插件历史备份,可作为二级恢复来源 |
| 当前 LiDungeon Jar | 保证数据与程序版本成对回滚 |
| Folia 池世界配置/加载配置 | 重建同一世界池拓扑 |
活动实例不是可靠备份源。执行备份前让玩家退出,等待编辑保存完成并正常停服。
推荐备份节奏
- 每次更换 Jar 前;
- 每次批量修改触发器或房间前;
- 每次改变世界池前;
- 每次发布新地牢前;
- 正式服每日自动备份;
- 重大活动开始前额外做一次离线备份。
保留至少“最近一次稳定版本”“更新前版本”“当前工作版本”三组可识别时间点。
从 MythicDungeons 迁移
LiDungeon 保留地图配置键、dungeons.* 权限、Java API 包名和 %md_...% 占位符,以兼容旧内容。迁移步骤:
- 在原服记录服务端、Java、MythicMobs/Citizens/PAPI 版本。
- 正常停服并备份旧插件数据。
- 在隔离测试服只安装 LiDungeon 和同版本依赖。
- 复制
maps/与globalplayerdata/到plugins/LiDungeon/。 - 启动一次,让配置自动补齐。
- 检查加载数量和所有警告。
- 对每个地牢执行
status、edit、save、play、完成、重启复测。 - 修改公告、菜单和 NPC 指令为
/lidungeon play <地牢>。 - 正式迁移时再次用最新离线备份替换测试数据。
不要把旧 /md join <地牢> 批量替换为 /lidungeon join <地牢>;正确玩家入口是 play。
Paper 到 Folia
推荐把 Paper 当制作/导入环境,把 Folia 当运行环境:
- 在同游戏版本 Paper 完成地图制作。
- 停服复制整个
maps/<地牢>/。 - 在 Folia 提前加载池世界。
- 配置
Folia.MultiWorld.Worlds。 - 启动后确认有效池数量。
- 先单实例测试,再并发压测。
迁移模板不等于复制一个正在运行的实例世界;以 maps/ 中的地牢模板为准。
回滚原则
程序 Jar 与数据必须来自同一备份时间点。错误做法包括:
- 只换回旧 Jar,保留新版本已经迁移的数据;
- 只恢复
maps/,不恢复玩家完成/冷却数据; - 在服务器运行时覆盖地牢目录;
- 从正在运行的池世界复制区块当模板;
- 回滚后立即开放所有玩家,没有先做测试实例。
标准回滚
- 停服。
- 单独保存失败版本的 Jar、数据和完整日志用于排查。
- 恢复旧 Jar。
- 恢复同一时间点的
config.yml、maps/、globalplayerdata/、lang/。 - 恢复世界池配置和加载顺序。
- 启动后仅允许管理测试账号进入。
- 验证一个经典地牢、一个程序化地牢、玩家完成记录和进入冷却。
- 确认无数据继续迁移提示后再开放。
灾难恢复验收
一次备份只有经过恢复演练才可信。至少每个大版本做一次:
- 在空白测试服恢复备份;
- 启动并加载全部地牢;
- 用旧玩家数据进入并完成地牢;
- 检查奖励、钥匙和冷却;
- 重启后再次确认;
- 记录恢复时长和缺失项。