Repository navigation
ZeroLogin v1.1.0 —— SQLite 存储后端与多语言系统
本版本在保持「单个 JAR 兼容 Minecraft 1.20 ~ 26.1.2」的前提下,引入 SQLite 账号存储、双后端数据迁移与 7 种界面语言。
新增功能
SQLite 存储后端(默认)
- 账号数据默认存入单文件数据库
plugins/ZeroLogin/zerologin.db,备份只需复制一个文件 - WAL 日志模式 +
busy_timeout,读写并发更好,注册/登录高峰不阻塞读取 - 所有 SQL 在专用 IO 线程上串行执行(
CompletableFuture回调),不阻塞服务端主线程 sqlite-jdbc驱动打包内联并 relocate 到dev.zerologin.libs.sqlite,不依赖服务端环境、不与其他插件冲突uuid主键 +name_lc唯一索引:玩家改名不丢数据、大小写不敏感命中- 单行更新(
INSERT ... ON CONFLICT DO UPDATE)、批量迁移单事务、启动时PRAGMA integrity_check自检
双后端与数据迁移
storage.type可在sqlite/file(v1.0 后端)之间切换,两种后端均受支持- 新增
/zerologin migrate <from> <to> [force]:异步、非破坏式迁移;目标后端非空时中止,force前自动导出文本备份到backups/migrate-<时间戳>/ - v1.0 升级零操作:首次以 SQLite 启动且数据库为空时,自动导入
accounts/下旧账号(可用storage.sqlite.import-file: false关闭)
多语言系统
- 内置 7 种语言:
zh_cn/zh_tw/en_us/ja_jp/ko_kr/ru_ru/es_es language: auto:每位玩家按其客户端语言(Player#getLocale())收到提示,互不影响;控制台回退en_us- 语言标签前缀归一化(
zh_TW/zh_HK/zh_hant→zh_tw等) - 新增
/zerologin lang-template <lang>:导出内置消息模板,便于社区翻译新语言
管理命令扩展
/zerologin子命令从 3 个扩展到 5 个:reload/info/stats/migrate/lang-template,含 Tab 补全/zerologin info显示版本、兼容区间、存储后端与当前语言;/zerologin stats显示注册账号数与在线已认证人数
配置变更
- 新增
storage.type、storage.sqlite.file、storage.sqlite.import-file language默认值改为auto(原为固定语言)- 旧
config.yml缺失的键按默认值处理,v1.0 配置可直接沿用
兼容性与验证
- 依旧单个 JAR 兼容 Minecraft 1.20 ~ 26.1.2(Paper / Spigot),编译目标 Java 17
- 通过 1.20.1 / 1.20.2 / 1.21.11 / 26.1.2 四组 API 编译门禁
- 单元测试从 21 个增加到 43 个,新增 SQLite 存储与后端间迁移的覆盖
升级指南
- 停止服务端,备份
plugins/ZeroLogin/ - 用
ZeroLogin-1.1.0.jar替换旧 JAR(注意:JAR 因内联 SQLite 驱动约扩大到 14 MB) - 启动服务端,观察控制台是否输出账号自动导入日志
- 详见 README「数据迁移」章节
全量提交对比:v1.0.0...v1.1.0