常见问题 - lmxdg/ZeroLogin GitHub Wiki
Paper / Spigot 及其衍生服务端,Minecraft 1.20 ~ 26.1.2。单个 JAR 覆盖整个区间。
暂不支持。plugin.yml 中已声明 folia-supported: false。
Java 17 或更高。插件字节码为 Java 17,运行于 Java 25 的 26.x 服务端同样可用。
任意版本都用同一个 JAR(如 ZeroLogin-1.1.0.jar),无需按服务端版本区分。
默认(SQLite)后端:停止服务端后删除该账号行:
DELETE FROM accounts WHERE name_lc = '<玩家名小写>';若使用 file 后端,删除 plugins/ZeroLogin/accounts/<玩家UUID>.txt。
两种方式都会丢失该账号的 IP 白名单等数据,玩家下次进入需重新注册。
可用 /zerologin stats 了解概况;精确定位单个玩家 UUID 可借助第三方工具或服务端自带的 UUID 查询功能。
这是刻意设计——避免「完全冻结」造成卡死感,同时阻止其位移。可通过 protection.freeze-movement 调整。
可以。授予 zerologin.bypass 权限即可,例如:
/lp user <玩家名> permission set zerologin.bypass true
该权限会跳过全部认证,请仅授予可信人员。
在 config.yml 中设置:
session:
ip-auto-login: false
remember-seconds: 0然后 /zerologin reload。
多数配置不必。执行 /zerologin reload 即可让配置与语言文件生效。
例外:
storage.type的切换必须迁移数据并重启服务端,见下一条。
/zerologin reload 不会切换存储后端。正确流程:
- 在运行中的服务端执行
/zerologin migrate <当前的后端> <目标后端>(也可在服务器控制台执行) - 停止服务端
- 修改
config.yml中的storage.type - 启动服务端
建议在低峰期操作,避免迁移后、重启前又有新数据写入旧后端。迁移在异步线程执行;若目标后端已有数据,命令会中止以防覆盖,确认无误后加
force(会先自动导出文本备份)。
说明新后端里还没有数据。执行 /zerologin migrate <旧后端> <新后端> 导入即可;若目标后端已有数据,命令会中止以防覆盖,确认无误后加 force。
-
file 后端:可以把各服的
plugins/ZeroLogin/accounts/指向共享存储或定期同步。注意并发写入同一账号文件可能冲突。 - sqlite 后端:单文件数据库适合整库复制,不适合多服并发读写同一文件。
多服实时共享计划由后续 MySQL 后端解决。
内置迁移只支持本插件的 file ↔ sqlite 两种后端。从其他插件迁移可先按 .txt 格式(见 账号数据)写出文件,把目录放到 plugins/ZeroLogin/accounts/,再以 sqlite 启动触发自动导入,或用 /zerologin migrate file sqlite;也可以让玩家重新注册。
可能原因:
- 玩家名大小写或 UUID 变化导致查到的不是同一账号(离线服改名会生成新 UUID)
- 账号数据损坏或被手工编辑过
排查:默认(SQLite)后端确认 accounts 表中存在该玩家行(SELECT * FROM accounts WHERE name_lc = '<名字小写>');file 后端确认 accounts/ 下存在该玩家 UUID 的文件且格式正确(见 账号数据)。
检查 security.login-timeout-seconds,过短会导致慢电脑 / 高延迟玩家来不及输入。适当调大即可。
v1.1.0 把 SQLite JDBC 驱动(含各平台 native 库)内联进 JAR,并 relocate 到独立包名 dev.zerologin.libs.sqlite,避免与服务端其他插件的 sqlite-jdbc 版本冲突。插件自身的类仍很小。
file 后端下个别 .txt 文件格式非法(可能被手工编辑)。插件会安全跳过并记录警告,不影响其他账号。修复或删除问题文件即可。
当前版本未开放公共 API / 事件。后续版本计划提供。
MIT License。
没找到答案? 请到 Issues 反馈。