概述
AuthShield 是一个专为 NeoForge 服务器设计的登录模组,仅对服务端起效。
此模组的设计来源于 Bukkit 插件中的 AuthMe。
| 命令 | 用法 | 描述 |
|---|
| /reg 或 /register | 后接 <密码> <重复密码> | 注册账号 |
| /l 或 /login | 后接 <已设置的密码> | 登陆账号 |
| /cp 或 /changepassword | 后接 <旧密码> <新密码> | 账号改密 |
| 命令 | 用法 | 描述 |
|---|
/authshield help | 直接输入 | 显示帮助信息 |
/authshield unregister | 后接 <玩家名> | 注销指定玩家 |
/authshield setfirstspawn | 直接输入 | 设置玩家首次进服的出生点 |
用户注册与登录
注册流程:当玩家首次进入服务器时,如果还没有注册,就会被提示进行注册操作。玩家需要输入密码并进行确认,模组会对密码使用 PBKDF2SHA-256 进行加密后存储在一个 JSON 文件中,确保密码的安全性。
登录流程:对于已经注册的玩家,登录时只需要输入密码,模组会验证密码是否正确。登录成功后,玩家会解除所有限制,恢复正常的游戏状态。
行为限制与玩家保护
对于未通过认证的玩家,模组会自动限制其行为,比如禁止移动、攻击、生效物品使用、聊天以及执行大部分命令。
为了防止未认证玩家意外对游戏环境造成影响,模组会给他们施加减速(Slowness)和无敌(高等级抗性)效果,同时将他们的游戏模式转换为旁观者模式(Spectator),以确保其无法做出破坏性操作。
超时退出机制
模组设定了一个登录超时(例如 60 秒)的机制。如果玩家在规定时间内没有完成注册或登录,系统就会自动断开该玩家的连接,这样可以有效防止挂机或恶意滞留在服务器上。
用户体验与提示
模组支持通过游戏内的标题和副标题显示提示信息,使提示内容更加直观和醒目。
对于使用中文的服务器,模组会输出中文提示,以提升玩家的使用体验。
在玩家完成注册或登录后,会生成粒子效果表示登陆成功
注意事项
新版本加入 mysql 存储方式。
如果您没有使用 mysql 存储,请不要擅自删除服务端根目录下的 Config/AuthShield 文件夹,因为本模组使用 json 文件存储玩家数据,删除会造成数据丢失!
更多详情请参阅 GitHub。