更新日志 - lmxdg/ZeroLogin GitHub Wiki
-
新增 SQLite 存储后端(默认):单文件数据库
zerologin.db,WAL 模式,uuid主键 +name_lc唯一索引 - 所有 SQL 在专用 IO 线程串行执行,账号读写不阻塞服务端主线程
-
sqlite-jdbc驱动打包内联并 relocate 到dev.zerologin.libs.sqlite,与服务端其他插件互不干扰 - 单行更新(UPSERT)、批量迁移单事务、启动时
PRAGMA integrity_check自检 -
file后端(v1.0)完整保留,storage.type可切换
- 新增
/zerologin migrate <from> <to> [force]:file↔sqlite异步非破坏式迁移;目标非空中止,force前自动导出文本备份 - v1.0 升级零操作:首次以 SQLite 启动且数据库为空时自动导入旧
accounts/数据(storage.sqlite.import-file可关闭)
- 语言从 2 种扩展到 7 种:
zh_cn/zh_tw/en_us/ja_jp/ko_kr/ru_ru/es_es -
language: auto(新默认):每位玩家按客户端语言收到提示,控制台回退en_us - 语言标签前缀归一化(
zh_TW/zh_HK/zh_hant→zh_tw等) - 新增
/zerologin lang-template <lang>导出翻译模板
-
/zerologin子命令扩展到 5 个:reload/info/stats/migrate/lang-template -
/zerologin info增加存储后端与当前语言显示
- 单元测试从 21 个增加到 43 个(新增 SQLite 存储与后端迁移覆盖)
- 兼容性门禁扩展到 1.20.1 / 1.20.2 / 1.21.11 / 26.1.2 四组 API 全部编译通过
注意:JAR 因内联 SQLite 驱动扩大到约 14 MB。升级方法见 安装指南。
首个公开版本。
- 注册 / 登录 / 注销 / 修改密码
- PBKDF2-HMAC-SHA256 加盐口令散列(零外部依赖)
- 常量时间口令比较,防时序侧信道
- 登录成功时透明升级弱散列参数
- 口令用后即时擦除
- 未认证时拦截:移动、命令、聊天、破坏、放置、交互、丢弃、伤害、背包
- 登录超时踢出
- 密码错误次数限制并踢出
- 基于 IP 的自动登录白名单(
/ip管理,上限 5 个) - 同 IP 会话保持(
remember-seconds) -
zerologin.bypass免登录权限
- 文件后端:每账号一文件(以 UUID 命名),玩家改名安全
- 自包含编解码器,不依赖 Bukkit YAML
- 原子写入,损坏文件安全跳过
- 中英文双语消息(
zh_cn/en_us),可编辑 - 权限体系:
zerologin.admin/zerologin.bypass/zerologin.ip - 管理命令:
/zerologin reload|info|stats - 标签补全
- 单 JAR 兼容 Minecraft 1.20 ~ 26.1.2
- 编译目标 Java 17(class major 61),可运行于 Java 17 ~ 25
- 已验证:Paper 26.1.2(Java 25)实机加载启用成功
- 21 个单元测试全部通过
- 双向 API 编译门禁(1.20.1 / 26.1.2)通过
- v1.2.0:MySQL 存储后端,简化多服共享
- v1.3.0:强化保护与自动登录细节
- v1.4.0:扩展管理命令、开放公共 API / 事件
计划可能调整,以实际发布为准。