• 欢迎加入MineBBS QQ讨论群:点击查看所有的官方讨论群
  • 我们将于近期对服务器进行迁移,服务可能中断至多2日。请各位安排好自己的访问计划,造成不便敬请谅解!
  • MineBBS入站考试已经上线!想要成为【正式会员】解锁更多功能吗?快来参与吧!【点我去看】
VeloAuth

二次开发 工具 VeloAuth 1.1.5

请登录后获取
版权类型
二次开发
插件中文名称
VeloAuth
插件英文名称
VeloAuth
原帖地址
https://modrinth.com/plugin/veloauth
支持的核心(代理端)
  1. Velocity
语言支持
多语言
前置组件
该fork开源:https://github.com/GUKUAN/VeloAuth-Genuine-offline-coexistence
适配版本(Java)
  1. 最新版本
  2. 26.x
  3. 1.21
  4. 1.20
  5. 1.19
  6. 1.18
  7. 1.17
  8. 1.16
  9. 1.15
  10. 1.14
  11. 1.13
  12. 1.12
  13. 1.11
  14. 1.10
  15. 1.9
  16. 1.8
本插件为veloauth的fork
对于原插件有个问题:
正版玩家添加到自动数据库后就不可以离线登录了
所以我通过修改了原理达到了我要的功能(正版可以自动登录,离线则需要密码)
原理:
[MD] ## 当前登录逻辑解释 (v1.1.5) ### 1. PreLoginEvent 阶段(玩家连接时) 插件会进行两项检测: | 检测项 | 说明 | |--------|------| | **是否为正版** | 通过 `premium_uuids` 数据库缓存查询该名字是否为正版玩家 | | **数据库是否有记录** | 在 `auth` 表中查找该玩家是否已注册(有过密码) | ### 2. 处理逻辑 ``` 检测正版状态 + 数据库记录 ↓ 如果 数据库有记录(已注册账号) → 强制离线模式 (forceOfflineMode) → 玩家需要用 /login 密码 登录 ↓ 否则 如果 检测为正版玩家 → 强制正版模式 (forceOnlineMode) → Velocity 连接 Mojang 验证 → 验证成功则进入游戏(无需密码) ↓ 否则(新玩家 + 离线检测) → 强制离线模式 (forceOfflineMode) → 玩家需要用 /register 密码 密码 注册 ``` ### 3. GameProfileRequestEvent 阶段(正版验证成功后) ``` 如果配置 premium-uuid: false → 将正版 UUID 转换成离线 UUID → 玩家使用离线 UUID 进入服务器(数据共享) 如果配置 premium-uuid: true → 保持正版 UUID → 玩家使用正版 UUID 进入服务器 ``` ### 4. PostLoginEvent 阶段(玩家进入游戏后) ``` 根据玩家连接模式决定后续处理 如果是正版模式 (player.isOnlineMode == true) → handlePremiumPlayer() 自动处理 → 玩家直接进入游戏 如果是离线模式 (player.isOnlineMode == false) → handleOfflinePlayer() 处理 → 玩家会被传送到登录服务器 → 需要完成密码登录/注册才能进入游戏 ``` --- ### 当前行为总结 | 场景 | 行为 | |------|------| | **数据库有记录 + 正版玩家** | forceOfflineMode → 需要 `/login 密码` 登录 → 登录成功后自动保存正版UUID到数据库 | | **数据库有记录 + 离线玩家** | forceOfflineMode → 需要 `/login 密码` 登录 | | **数据库无记录 + 正版玩家** | forceOnlineMode → Velocity 验证 → 自动登录(无需密码) | | **数据库无记录 + 离线玩家** | forceOfflineMode → 需要 `/register 密码 密码` 注册 | --- [/MD]
以下为原插件简介:
VeloAuth

VeloAuth

莫德林斯 Discord 许可 b统计
完整的Velocity认证插件,具备智能昵称保护、高级自动登录和安全离线玩家管理。

什么是VeloAuth?

VeloAuth 是一个全面的 Velocity 代理认证系统,能在玩家到达后台服务器之前处理所有授权。它支持任何中间服务器,提供顺畅的登录体验,同时通过智能冲突解决保护昵称所有权。

主要特征

  • 🔒 智能昵称保护——除非已注册的破解玩家,否则高级昵称是保留的
  • ⚡ 高级自动登录 - Mojang 账户所有者自动跳过身份验证
  • 🔄 自动昵称更改检测——检测高级播放器是否更改了他们的Mojang账户,并自动更新数据库记录
  • 🛡️ 安全离线认证 - BCrypt密码哈希及暴力破解防护
  • 📱 可选的Floodgate支持——当启用Floodgate集成时,Bedrock玩家可以绕过认证服务器
  • 🗺️ 强制主机支持——玩家通过自定义域名(例如 )连接,认证后会被正确路由到指定服务器pvp.server.com
  • 🚫 智能命令隐藏——认证命令(, )在玩家登录后完全隐藏于标签完成/login/register
  • 🚀 高性能 - 三层高级分辨率缓存:内存内→数据库→外部API,24小时保持高级状态
  • 🔄 冲突解决——智能处理高级/破解昵称冲突
  • 📊 管理工具——完整的冲突管理/vauth conflicts
  • 🗄️ 多数据库 - MySQL、PostgreSQL、H2、SQLite
  • 🌍 17种语言——英语、复数、德语、法语、俄语、俄语、意大利语、意大利语、ZH_CN语、ZH_HK语、雅语、高中文、爱尔兰语、古语、荷兰语、爱德语、PT_BR语
  • 🔄 LimboAuth兼容 - 100%数据库兼容性(无需迁移)
  • 📢 Discord 警报 - 安全事件的 Webhook 通知
  • 🧵 虚拟线程——基于Java 21构建,实现最大性能
  • 📈 bStats Analytics - 匿名使用统计数据,来自 bStats

要求

  • Java 21 或更新版本
  • Velocity proxy (API 3.4.0+)
  • Limbo服务器:NanoLimbo、LOOHP/Limbo、LimboService、PicoLimbo、hpfxd/Limbo,或其他任何服务器
  • 数据库:MySQL、PostgreSQL、H2 或 SQLite

快速设置

安装

  1. 从 Modrinth 下载 VeloAuth
  2. 把文件放进你的Velocity文件夹里plugins/
  3. Start Velocity - 插件会生成一个文件config.yml
  4. 停止Velocity,然后在plugins/VeloAuth/config.yml
  5. 重启速度
注意:默认情况下关闭了Floodgate支持。只有在你实际使用Geyser/Floodgate时才启用。

速度配置

配置你的Limbo/认证服务器和后端服务器:velocity.toml
[BGCOLOR=var(--color-button-bg)]
代码:
[B][COLOR=rgb(0, 136, 136)][servers][/COLOR][/B][/SIZE][/COLOR][/SIZE][/COLOR][/SIZE][/COLOR]
[COLOR=rgb(176, 186, 197)][SIZE=16px][COLOR=rgb(176, 186, 197)][SIZE=16px][COLOR=rgb(176, 186, 197)][SIZE=16px]limbo = "127.0.0.1:25566"  [COLOR=rgb(136, 136, 136)]# Auth/limbo server (NanoLimbo, LOOHP/Limbo, etc.)[/COLOR]
lobby = "127.0.0.1:25565"  [COLOR=rgb(136, 136, 136)]# Typical backend server[/COLOR]
survival = "127.0.0.1:25567" [COLOR=rgb(136, 136, 136)]# Another backend server[/COLOR]

try = ["lobby", "survival"]  [COLOR=rgb(136, 136, 136)]# Order matters. Do NOT put 'limbo' here.[/COLOR]

[B][COLOR=rgb(0, 136, 136)][forced-hosts][/COLOR][/B]
[COLOR=rgb(136, 136, 136)]# VeloAuth fully respects Velocity's forced hosts! 
# Players connecting via this IP will be sent to limbo to login, 
# and then seamlessly transferred to 'survival' instead of 'lobby'.[/COLOR]
"survival.example.com" = ["survival"]
[/BGCOLOR]
重要信息:配置默认控制已认证玩家的重定向位置。VeloAuth 会自动跳过服务器,选择第一个可用的后端服务器,除非玩家使用了域名,这种情况下玩家会被原生路由到预定目的地!trylimboforced-host

Discord Webhook

VeloAuth 支持针对安全事件(登录突发失败、暴力破解尝试、高级解析失败)发送 Discord 通知。在 下方配置 webhook URL。config.ymlalerts.discord

数据库配置

支持:H2(开箱即用)、MySQL、PostgreSQL、SQLite

玩家指令


指挥描述限制
/register(注册)<password> <confirm>创建新账户登录后隐藏。没有高级昵称
/登录<password>登录你的账户登录后隐藏。适用于所有玩家
/更改密码 <old> <new>更改你的密码必须登录

管理命令


指挥许可描述
/unregister(取消注册)<nickname>veloauth.admin移除玩家账户(解决冲突)
/vauth reloadveloauth.admin装填配置
/vauth 缓存重置 [玩家]veloauth.admin清除授权缓存
/vauth 统计veloauth.admin显示插件统计数据
/vauth 冲突veloauth.admin名单昵称冲突

工作原理

认证流程

  1. 玩家连接到Velocity
  2. VeloAuth 检查内存内授权缓存(即时,无 I/O )
  3. 如果不在内存中,检查数据库高级缓存(跨重启持续存在)
  4. 如果不在数据库缓存中,则通过 Mojang/Ashcon API 并行解析,使用虚拟线程
  5. 如果不是高级会员,玩家会被送往认证服务器(除非Floodgate Bedrock绕过系统适用)。
  6. 玩家类型 /login 或 /登录
  7. VeloAuth 通过 BCrypt 验证凭证

高级分辨率(3层)

[BGCOLOR=var(--color-button-bg)]
代码:
Connect → [In-memory cache] → [Database cache] → [Mojang/Ashcon API]
              ~0ms                ~1ms                 ~200-500ms
[/BGCOLOR]

所有 API 调用都并行运行在虚拟线程上。结果会缓存在数据库中,并在代理重启后存活。

昵称更改检测

当高级播放器登录用户名与存储不同(Mojang账户重命名)时,VeloAuth会自动检测不匹配并更新数据库记录,保持UUID到用户名的准确对应,无需管理员干预。

昵称保护系统

  • 除非已经被破解玩家注册,否则高级昵称是保留的
  • 当高级玩家使用破解注册昵称时的冲突解决
  • 管理昵称冲突的工具
  • 自动屏蔽试图使用高级昵称的破解玩家

LimboAuth迁移

  1. 停止在你的后端服务器上使用 LimboAuth
  2. 在Velocity上安装VeloAuth
  3. 配置VeloAuth使用与LimboAuth相同的数据库
  4. Start Velocity - 所有现有账户都会自动运行

贡献

欢迎大家的贡献!请开启一个议题或公关。

支持

需要帮助吗?发现了 bug?在 GitHub 上开启一个议题,或加入我们的 Discord 服务器。

许可

本项目采用该项目授权在授权
作者
gukuan
价格
18.00金粒
下载
18
查看
375
首次发布
最后更新

评分

0.00 星 0 次评分

gukuan 的其他资源

最新更新

  1. 1.1.5

    修复了离线账户在未认证正版的情况注册密码后,正版账户却可以直接登录的问题
后退
顶部 底部