您正在使用一款已经过时的浏览器!部分功能不能正常使用。
请尝试升级或使用
其他浏览器。
- 版权类型
- 原创
- 插件中文名称
- RPT登录
- 插件英文名称
- RptLogin
- 原帖地址
- #
- 支持的核心(服务端)
- Paper
- Folia
- 语言支持
- 中文(简体)
- 适配版本(Java)
- 26.x
- 1.21
关于这个插件
RptLogin 给离线模式服务器(online-mode=false)补上「账号 = 密码」这一层。
离线服里任何人都能用你的游戏名直接进服。RptLogin 让每个账号在第一次进服时设置本地密码,之后每次进服都必须先验证身份,验证通过前无法移动、交互、聊天或使用指令 —— 冒名者即使顶着你的名字进来,也只是一个动不了的雕像。
全插件零外部依赖:不连数据库、不发 HTTP、不需要面板或机器人,数据就是一个本地文件。
功能说明
1. 密码验证流程
| 环节 | 行为 |
| 第一次进服 | 提示 /register <密码> <确认密码>(6-32 位,两次需一致) |
| 之后每次进服 | 提示 /login <密码> |
| 验证完成前 | 完全冻结:不能移动 / 交互 / 放置 / 破坏 / 丢弃 / 拾取 / 开背包 / 聊天 / 使用其它指令 |
| 超时 | 默认 60 秒未通过验证则自动踢出 |
2. 两套登录界面,自动选择
插件启动时自动探测服务端核心能力,不需要手动配置,控制台会明确打印走的是哪条路径:
| 登录界面 | 触发条件 | 玩家体验 |
| 进服前原生弹窗 | 服务端核心带 Dialog API(Paper / Folia 1.21.11 及 26.x),且玩家客户端 ≥ 1.21.11 | 还停在「连接服务器 / 配置」界面时就弹出登录或注册窗口,输入密码通过后才真正进入服务器 |
| 进服后铁砧界面 | 其它情况(1.21.x 核心,或玩家客户端低于 1.21.11) | 进服后立刻弹出不可关闭的铁砧界面,在命名框输入密码,点击右侧命名牌提交 |
- 密码错误 / 两次不一致 / 长度不足时,会带红色错误提示自动重新弹出,可无限重试。
- 铁砧界面被 ESC 关闭会自动重开;未登录期间不会因为死亡卡住界面(未登录免伤免死,万一死亡也会保住背包、立即复活并重新开窗)。
- 两条路径的文案、超时、冻结与踢出规则完全一致,可在
config.yml 里统一修改。
3. 同 IP 免登录会话(AuthMe Session Login 同款)
- 登录成功后,同一 IP + 同一游戏名在有效期(默认 10 分钟)内再次进服可免登录。
- 换 IP、或同一 IP 下的其它账号都无法借用这个会话,避免网吧 / 校园网环境下被冒名。
- 会话只存在内存里,服务端重启即失效;管理员重置密码时同步清除。
4. 每日首次登录提醒
- 玩家当天第一次完成登录时收到提醒(默认提示可以改密码)。
- 默认强制重新登录:当天首次进服即使命中免登录会话,也必须输入一次密码。
- 每日记录持久化保存,服务端重启不丢。
5. 安全实现
- 密码使用 PBKDF2WithHmacSHA256 + 随机盐 + 120000 次迭代哈希后存储于
plugins/RptLogin/passwords.yml,明文不落盘。
- 插件日志不会打印密码,调试模式下也只看得到长度。
- 全插件不含任何网络通信、遥测、后门逻辑,未做任何代码混淆,可自行反编译审阅。
支持版本与环境
| 项目 | 说明 |
| Minecraft 版本 | 1.21 ~ 26.2(实测通过:1.21 / 1.21.4 / 1.21.11 / 26.1.2 / 26.2) |
| 服务端核心 | Paper、Folia(已声明 folia-supported: true),1.21.x 与 26.x 均可 |
| Java 运行环境 | Java 21 及以上 |
| 不支持 | 1.20.x 及以下(插件 api-version 为 1.21,低版本核心会拒绝加载) |
目标用户
- 离线模式服务器的服主 —— 让玩家账号有密码保护,避免被冒名上号拆家、洗背包。
- 不想引入大型登录插件、也不想额外维护 MySQL 的服主 —— 本插件纯本地文件存储、开箱即用。
- 正在用 Folia 核心的服主 —— 市面上不少登录插件不支持 Folia,本插件从设计之初就双端兼容。
- 需要给管理员号 / 测试号放行的运维 ——
bypass-names 配置项一键跳过验证。
是否付费
完全免费。 不需要授权、不需要联网校验,下载即用。
获取作者帮助
| 途径 | 内容 |
| 交流群 | QQ 群 1124248111 |
| 作者 QQ | 2221899680 |
| 游戏内 | 输入 /rptl help 查看全部指令与说明 |
使用教程
安装
- 将
RptLogin-1.0.0.jar 放入服务端 plugins/ 目录。
- 重启服务端(首次启动会生成
plugins/RptLogin/config.yml)。
- 启动完成后确认控制台出现
RptLogin 已启用 | ... 一行,其中会标注当前走的是「原生弹窗」还是「铁砧界面」。
指令列表
| 指令 | 权限 | 说明 |
/rptl help | 默认 | 查看指令帮助 |
/rptl reload | rptl.admin | 热重载配置文件 |
/rptl info [玩家名] | rptl.use | 查看密码注册状态(查他人需管理员) |
/rptl reset <玩家名> [新密码] | rptl.admin | 重置密码:不带密码=清除(下次进服重新注册);带密码=直接设为新密码 |
/rptl debug [on|off] | rptl.admin | 开关调试日志 |
/login <密码> | 默认 | 密码登录(别名 /l) |
/register <密码> <确认密码> | 默认 | 注册或修改密码(别名 /reg、/r) |
主指令为 /rptl,/rptlogin 保留为别名。
权限节点
| 权限 | 默认值 | 说明 |
rptl.use | 所有玩家 | 查看自己的密码状态 |
rptl.admin | 仅 OP | 重载配置、重置密码、调试日志 |
主要配置项(config.yml)
| 配置项 | 默认值 | 说明 |
enforce | true | 登录验证总开关 |
password.min-length / max-length | 6 / 32 | 密码长度限制 |
password.login-timeout-seconds | 60 | 冻结超时(超时踢出) |
dialog.enabled | true | 是否启用进服前原生弹窗(核心/客户端不支持时自动改用铁砧界面) |
dialog.timeout-action | join | 弹窗超时策略:join 放行进服走后续流程 / kick 直接断开 |
gui.enabled | true | 是否启用进服后铁砧界面 |
session-login.enabled | true | 同 IP 免登录开关 |
session-login.timeout-minutes | 10 | 免登录有效时长(分钟) |
notify.daily-force-login | true | 每天首次登录是否强制重新验证 |
bypass-names | [] | 跳过验证的玩家名(小写),用于管理员号 / 测试号 |
debug | false | 调试日志 |
所有界面文案(标题、按钮、错误提示)均可直接修改,支持
§ 颜色代码。
常见问题
- 玩家说进服后动不了? 这是正常的冻结状态,需要输入
/login <密码> 或 /register <密码> <确认密码>,超时会自动踢出。
- 玩家忘密码? 管理员执行
/rptl reset <玩家名> 清除密码,玩家下次进服重新注册。
- 为什么没有进服前弹窗? 请查看启动日志的判定行:核心是 1.21.x(无 Dialog API)或客户端低于 1.21.11 时,本来就会走「进服后铁砧界面」,属于预期行为。
- 铁砧界面没弹出来 / 点了没反应? 把
debug 改为 true 后复现,日志会打印进服判定、开窗结果、界面被点击的槽位等完整信息(不会打印密码)。
声明
- 本插件为原创作品,保留所有权利,默认不允许转载与整合。如需转载或整合到服务端整合包,请先通过上方交流群或作者 QQ 联系获取授权。
- 本插件未使用任何混淆手段,字符串、方法体、主类名均未混淆,欢迎安全审查。
- 本插件不含任何后门、病毒或远程控制代码,所有数据仅保存在服务器本地
plugins/RptLogin/ 目录中。