- 版权类型
- 原创
- 插件中文名称
- 小雨登录
- 插件英文名称
- XYLogin
- 原帖地址
- #
- 支持的核心(服务端)
- Spigot
- Paper
- Folia
- Purpur
- PufferFish
- Leaves
- 其他核心
- 语言支持
- 中文(简体)
- 前置组件
- [packetevents] https://modrinth.com/plugin/packetevents/versions
- 适配版本(Java)
- 1.21
- 1.20
- 1.19
- 1.18
- 1.17
- 1.16
XYLogin
新起之秀的异步高性能登录插件
新起之秀的异步高性能登录插件
插件简介
核心特性
安全加密
- 支持 SHA256 和 BCRYPT 双加密算法
- BCRYPT 提供更高安全性(自动加盐)
- SHA256 提供更快的加密速度
- 密码长度自定义限制(默认 6-30 位)
- 登录失败次数限制,防止暴力破解
- 完全异步的数据库操作
- 玩家数据智能缓存
- HikariCP 高性能数据库连接池
- 未登录玩家移动限制
- 聊天和命令限制
- 物品栏保护(防止掉落/拾取)
- 伤害保护(防止受伤/攻击)
- 方块交互保护
- 饥饿值冻结
- 可自定义白名单命令
- 支持 SQLite
- 支持 MySQL
- 一键数据迁移工具(SQLite ↔ MySQL)
- 登录超时自动踢出
- 登录后传送到上次位置
- 未登录玩家隐藏其他玩家
- 安全出生点检测
- 管理员强制注册/注销账号
- 管理员修改玩家密码
- 查看玩家详细信息
- 自动为正版玩家登录/注册
- 已注册可手动转正版状态
指令与权限
玩家命令
| 命令 | 别名 | 权限 | 说明 | 用法 |
| /login | /l | 无 | 登录账号 | /login <密码> |
| /register | /reg | 无 | 注册账号 | /register <密码> <确认密码> |
| /changepassword | /cp | 无 | 修改密码 | /cp <旧密码> <新密码> |
| /zhengban | /premium | 无 | 切换正版 | /zhengban <code> |
管理员命令
| 命令 | 权限 | 说明 |
| /xylogin help | xylogin.admin | 显示帮助信息 |
| /xylogin reload | xylogin.admin | 重载配置文件 |
| /xylogin info <玩家> | xylogin.admin | 查看玩家信息 |
| /xylogin register <玩家> <密码> | xylogin.admin | 强制注册玩家 |
| /xylogin unregister <玩家> | xylogin.admin | 注销玩家账号 |
| /xylogin changepassword <玩家> <新密码> | xylogin.admin | 修改玩家密码 |
| /xylogin forcelogin <玩家> | xylogin.admin | 强制玩家登录 |
数据库迁移命令
| 命令 | 权限 | 说明 |
| /xymigrate sqlite2mysql | xylogin.admin | 从 SQLite 迁移到 MySQL |
| /xymigrate mysql2sqlite | xylogin.admin | 从 MySQL 迁移到 SQLite |
功能展示
配置文件详解
YAML:
debug:
# 如果你不知道该设置,请勿修改
enabled: true
database:
# 数据库类型: sqlite 或 mysql
type: sqlite
# SQLite 设置
filename: userdata.db
# MySQL 设置 (当 type 为 mysql 时生效)
mysql:
host: localhost
port: 3306
database: xylogin
username: root
password: ""
use-ssl: false
# 连接池设置
pool:
max-connections: 10
connection-timeout: 5000
security:
# 密码长度限制
min-password-length: 6
max-password-length: 30
# 密码加密算法: SHA256 或 BCRYPT
# BCRYPT 更安全但性能稍差
hash-algorithm: SHA256
# 登录安全
max-login-attempts: 3 # 最大登录尝试次数
login-timeout: 60 # 登录超时时间(秒)
# 会话过期时间(分钟)
# 525600 = 1年,超时后需要重新登录
session-timeout: 525600
settings:
# 未登录玩家限制
allow-movement: false
allow-chat: false
allow-commands: false
# 白名单命令(未登录也可使用)
whitelisted-commands:
- /login
- /l
- /register
- /reg
# 密码错误踢出
kick-on-wrong-password: true
# 未登录玩家,隐藏其他玩家可见
hide-players-on-join: true
# 登录后传送到最后位置
teleport-to-last-location: true
performance:
# 使用异步数据库操作
async-database: true
# 缓存玩家数据
cache-player-data: true
# 缓存过期时间(分钟)
cache-expire-time: 10
world:
# 默认出生点坐标
# 格式: 世界名,x,y,z[,yaw,pitch]
# 示例: world,0,63,0,0,0
default-spawn: world,0,63,0
# 正版验证设置
# !! 警告: 除非你知道自己在做什么,否则不要修改这些设置 !!
premium:
# 是否启用正版自动登录
enabled: true
# Mojang 验证 API 地址
# 默认: https://sessionserver.mojang.com/session/minecraft/hasJoined
# !! 警告: 修改此项可能导致正版验证失败或 "安全问题",不要相信任何公益中转API !!
api-url: "https://sessionserver.mojang.com/session/minecraft/hasJoined"
# API 超时时间(毫秒)
timeout: 5000
# /zhengban 命令确认超时时间(秒)
confirm-timeout: 20
安装教程
步骤 1:环境准备
代码:
1. Minecraft 服务端版本:1.16+(建议 1.19.4+)
2. Java 版本:Java 17+
3. 服务端类型:Spigot / Paper / Purpur / Folia
步骤 2:安装插件
代码:
1. 下载 XYLogin.jar
2. 将插件放入服务器的 plugins 文件夹
3. 重启服务器
4. 插件会自动生成配置文件
[/SPOILER]
常见问题 FAQ
Q1: 玩家登录后还是无法移动/聊天?
Q2: 忘记密码怎么办?
Q3: 如何从其他登录插件迁移?
5: BCRYPT 和 SHA256 如何选择?
代码:
A: 可能原因:
1. 检查控制台是否有错误信息
2. 确认玩家已成功登录(查看提示消息)
3. 尝试使用 /xylogin forcelogin <玩家> 强制登录
4. 重启服务器并重新测试
Q2: 忘记密码怎么办?
代码:
A: 管理员可以:
1. 使用 /xylogin changepassword <玩家> <新密码> 重置密码
2. 或者使用 /xylogin unregister <玩家> 注销账号,让玩家重新注册
Q3: 如何从其他登录插件迁移?
代码:
A: 目前支持:
1. AuthMe 迁移(计划中)
2. 手动迁移:导出用户数据,转换密码格式后导入
3. 或者让玩家重新注册
5: BCRYPT 和 SHA256 如何选择?
代码:
A:
SHA256:
- 速度快,适合玩家多的服务器
- 安全性足够应对大部分场景
- 推荐用于大型服务器
BCRYPT:
- 更高的安全性(自动加盐、抗暴力破解)
- 速度稍慢,但对用户体验影响很小
- 推荐用于对安全性要求高的服务器
开发计划
- ✓ 完成基岩版登录支持(需额外附属插件 XYLogin-BedrockGUI)
- ✓ 正版登录支持(Premium/在线模式玩家)
- ○ AuthMe 数据迁移工具
- ○ 邮箱验证与密码重置功能
- ○ 登录日志记录系统
- ○ 扩展qq登录/gui登录
- ○ 正版玩家无法看到皮肤(其他玩家视角可见)。
性能测试
测试环境:
测试结果:
代码:
- 服务器:Paper 1.20.1
- CPU:Intel i7-12700K
- 内存:16GB DDR4
- 数据库:MySQL 8.0
- 测试玩家数:100 个并发登录
测试结果:
| 操作 | 平均耗时 | TPS 影响 |
| 注册(BCRYPT) | ~150ms | < 0.1 |
| 注册(SHA256) | ~8ms | < 0.01 |
| 登录验证 | ~10ms | < 0.01 |
| 会话检查 | < 1ms | 几乎无影响 |
扩展插件
XYLogin-BedrockGUI
- 为 XYLogin 提供基岩版表单登录界面
- 支持 Floodgate 和 Geyser
- 原生表单 GUI,告别聊天栏输入
- 点击查看详情