常见问题 - lmxdg/ZeroLogin GitHub Wiki

常见问题


支持哪些服务端与版本?

Paper / Spigot 及其衍生服务端,Minecraft 1.20 ~ 26.1.2。单个 JAR 覆盖整个区间。

支持 Folia 吗?

暂不支持。plugin.yml 中已声明 folia-supported: false。

需要什么 Java 版本?

Java 17 或更高。插件字节码为 Java 17,运行于 Java 25 的 26.x 服务端同样可用。

我该用哪个 JAR?

任意版本都用同一个 JAR(如 ZeroLogin-1.1.0.jar),无需按服务端版本区分。


玩家忘记密码怎么办?

默认(SQLite)后端:停止服务端后删除该账号行:

DELETE FROM accounts WHERE name_lc = '<玩家名小写>';

若使用 file 后端,删除 plugins/ZeroLogin/accounts/<玩家UUID>.txt。

两种方式都会丢失该账号的 IP 白名单等数据,玩家下次进入需重新注册。

怎么查看玩家 UUID?

可用 /zerologin stats 了解概况;精确定位单个玩家 UUID 可借助第三方工具或服务端自带的 UUID 查询功能。

为什么未认证时玩家能转视角却不能移动?

这是刻意设计——避免「完全冻结」造成卡死感,同时阻止其位移。可通过 protection.freeze-movement 调整。

能把某个玩家设为免登录吗?

可以。授予 zerologin.bypass 权限即可,例如:

/lp user <玩家名> permission set zerologin.bypass true

该权限会跳过全部认证,请仅授予可信人员。


怎么关闭 IP 自动登录?

在 config.yml 中设置:

session:
  ip-auto-login: false
  remember-seconds: 0

然后 /zerologin reload。

修改配置后要重启吗?

多数配置不必。执行 /zerologin reload 即可让配置与语言文件生效。

例外:storage.type 的切换必须迁移数据并重启服务端,见下一条。

怎么切换到 SQLite / 换回文件存储?

/zerologin reload 不会切换存储后端。正确流程:

  1. 在运行中的服务端执行 /zerologin migrate <当前的后端> <目标后端>(也可在服务器控制台执行)
  2. 停止服务端
  3. 修改 config.yml 中的 storage.type
  4. 启动服务端

建议在低峰期操作,避免迁移后、重启前又有新数据写入旧后端。迁移在异步线程执行;若目标后端已有数据,命令会中止以防覆盖,确认无误后加 force(会先自动导出文本备份)。

为什么改了 storage.type 重启后账号是空的?

说明新后端里还没有数据。执行 /zerologin migrate <旧后端> <新后端> 导入即可;若目标后端已有数据,命令会中止以防覆盖,确认无误后加 force。

能跨多个服务器共享账号吗?

  • file 后端:可以把各服的 plugins/ZeroLogin/accounts/ 指向共享存储或定期同步。注意并发写入同一账号文件可能冲突。
  • sqlite 后端:单文件数据库适合整库复制,不适合多服并发读写同一文件。

多服实时共享计划由后续 MySQL 后端解决。

支持从其他登录插件迁移吗?

内置迁移只支持本插件的 file ↔ sqlite 两种后端。从其他插件迁移可先按 .txt 格式(见 账号数据)写出文件,把目录放到 plugins/ZeroLogin/accounts/,再以 sqlite 启动触发自动导入,或用 /zerologin migrate file sqlite;也可以让玩家重新注册。


登录时提示"密码错误"但我确定没输错?

可能原因:

  1. 玩家名大小写或 UUID 变化导致查到的不是同一账号(离线服改名会生成新 UUID)
  2. 账号数据损坏或被手工编辑过

排查:默认(SQLite)后端确认 accounts 表中存在该玩家行(SELECT * FROM accounts WHERE name_lc = '<名字小写>');file 后端确认 accounts/ 下存在该玩家 UUID 的文件且格式正确(见 账号数据)。

玩家一直被踢出"登录超时"?

检查 security.login-timeout-seconds,过短会导致慢电脑 / 高延迟玩家来不及输入。适当调大即可。

JAR 为什么有 14 MB?

v1.1.0 把 SQLite JDBC 驱动(含各平台 native 库)内联进 JAR,并 relocate 到独立包名 dev.zerologin.libs.sqlite,避免与服务端其他插件的 sqlite-jdbc 版本冲突。插件自身的类仍很小。

启动时报账号文件无法解析?

file 后端下个别 .txt 文件格式非法(可能被手工编辑)。插件会安全跳过并记录警告,不影响其他账号。修复或删除问题文件即可。


有 API 供其他插件调用吗?

当前版本未开放公共 API / 事件。后续版本计划提供。

开源协议是什么?

MIT License。


没找到答案? 请到 Issues 反馈。

⚠️ **GitHub.com Fallback** ⚠️