Skip to content

Releases: lmxdg/ZeroLogin

ZeroLogin 1.1.0

Choose a tag to compare

@lmxdg lmxdg released this 05 Oct 12:37

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 存储与后端间迁移的覆盖

升级指南

  1. 停止服务端,备份 plugins/ZeroLogin/
  2. 用 ZeroLogin-1.1.0.jar 替换旧 JAR(注意:JAR 因内联 SQLite 驱动约扩大到 14 MB)
  3. 启动服务端,观察控制台是否输出账号自动导入日志
  4. 详见 README「数据迁移」章节

全量提交对比:v1.0.0...v1.1.0

ZeroLogin 1.0

Choose a tag to compare

@lmxdg lmxdg released this 04 Oct 14:44

ZeroLogin 1.0

新一代轻量级 Minecraft 登录插件,单 JAR 兼容 Minecraft 1.20 ~ 26.1.2。

兼容性

  • 单 JAR 覆盖 1.20(Java 17)至 26.1.2(Java 25),编译目标 Java 17(字节码 major 61)
  • 仅使用 1.20 与 26.x 共有的 Bukkit API 交集
  • 已在 Paper 26.1.2(Java 25)实机加载并启用验证通过

功能

  • PBKDF2-HMAC-SHA256 加盐口令散列(零外部依赖,常量时间比较)
  • 自包含文件存储后端(每账号一文件,玩家改名安全)
  • 命令:/register /login /unregister /changepassword /ip /zerologin
  • 未认证保护:冻结移动,拦截命令 / 聊天 / 破坏 / 放置 / 伤害 / 背包 / 丢弃
  • 登录超时踢出、密码错误次数限制、IP 自动登录、会话恢复
  • 中英文消息与权限体系,管理命令与统计

质量

  • 21 个单元测试全部通过
  • 双向 API 编译门禁:mvn package(对齐 1.20.1)与 mvn -Papi-latest package(对齐 26.1.2)均通过

下载

  • ZeroLogin1.0.jar — 放入服务端 plugins/ 目录即可

安装

  1. 下载 ZeroLogin1.0.jar
  2. 放入 plugins/ 并重启服务端
  3. 首次启动后按需编辑 plugins/ZeroLogin/config.yml