存储与跨服
SQLite / MySQL 持久化、每宠设置保存、正常重启换库与群组配置。
2.2.4 每宠设置与当前存储规则
主动攻击设置按宠物分别写入 SQLite / MySQL,旧宠物默认开启。升级自动补充缺失字段,不删除原档案;召回、重进和正常重启后保留选择。群组服应统一升级 LiPet 版本,继续使用现有数据库与 Redis 配置。
数据库连接设置从 2.2.2 起要求正常重启,/lipet reload 会拒绝在线换库并保持当前运行配置。背包恢复、未确认交易台账和数据库必须一起保留;详细边界见 持久化审计。
本页从 LiPet
0.27.1-SNAPSHOT完整 Wiki 同步整理;需要连续查阅全部功能时,请返回 LiPet 完整 Wiki。
4. 存储配置
0.27.8 召唤中断与运行时队列
旧版实体任务在受理后、执行前退休时,可能使召唤 Future 长期未完成,并阻塞同一玩家后续操作。0.27.8 补齐任务完成分支,依据本次实际保存的 revision 回滚失败召唤,并在同步依赖错误或查询失败后释放相应占位;已有宠物数据与数据库配置不需重建。
/lipet reload 不重建玩家操作队列,也不是强制清除保存任务的工具。升级应停服备份、替换 Jar 并重启。等待提示不会取消状态操作或提前解除串行保护,避免迟到写入覆盖新的操作;完整根因和验证范围见 召唤无响应修复。
SQLite 单服
storage:
type: "SQLITE"
sqlite:
file: "lipet.db"
SQLite 适合单服,默认启用。宠物、技能、背包、货币等数据会写入 plugins/LiPet/lipet.db。
关服保存等待时间可在主配置调整:
storage:
shutdown-save-timeout-seconds: 20
建议保持 20 秒以上。LiPet 会先完成活动宠物收回,再排空 SQLite/MySQL 写入队列;若服务器曾崩溃,区块实体载入时会清理未绑定的旧宠物实体,避免再次召回后出现重复实体。
MySQL 群组服
storage:
type: "MYSQL"
mysql:
host: "127.0.0.1"
port: 3306
database: "lipet"
username: "root"
password: "change-me"
maximum-pool-size: 10
connect-timeout-seconds: 10
socket-timeout-seconds: 30
群组服必须使用 MySQL。每个子服需要设置不同的 server.id,同一组服务器使用相同的 server.group。
connect-timeout-seconds 控制连接失败需要等待多久,范围 1-30 秒;socket-timeout-seconds 控制查询和写入等待响应的时间,范围 1-120 秒。这两个限制用于启动连接与运行查询,避免错误地址长期卡住。
server:
id: "survival-1"
group: "main"
更改数据库连接:正常重启
storage.type、SQLite 文件路径和 MySQL 连接、连接池参数变化都需正常重启。/lipet reload 检测到生效目标变化会拒绝本次重载,不连接候选库,不收回当前宠物,也不发布候选运行配置。文件中的编辑保留供下次正常启动读取。
- 正常停服,备份 LiPet 数据目录、恢复台账与数据库。
- 若确实更换数据库,先按服主管理流程迁移数据,再修改连接设置。
- 正常启动,用
/lipet status核对实际目标,再检查原宠物、背包和余额。
插件不会自动复制两个独立数据库的历史数据。直接指向空库后看到的也是空数据,不应把空库误认作旧档案已删除。server、cluster 与 Redis 通道同样需要重启生效。