### 主要特性
核心功能
- 登录/注册系统 - 完整的玩家账号认证
- 对话框GUI登录 - 支持 HYDialogApi 的现代化对话框界面
- 会话管理 - 自动保持登录状态
- 多存储支持 - YAML / JSON / SQLite 三种存储方式
安全特性
- 防暴力破解 - 限制登录尝试次数
- IP变化检测 - 自动要求重新登录
- 密码强度检查 - 阻止简单密码
- 登录前限制 - 移动限制、失明效果、隐身
管理功能
- ActionBar提示 - 实时提醒未登录玩家
- 自动保存 - 定时保存玩家数据
- 完整权限系统 - 细粒度权限控制
### 命令列表
/login <密码> 登录账号
/register <密码> /reg 注册账号
/hycp /changepw , /changepassword 修改密码
/auth <子命令>
/hyauthme 管理命令
管理子命令:
- /auth reload - 重载配置
- /auth unregister <玩家> - 注销玩家账号
- /auth info <玩家> - 查看玩家信息
- /auth forcelogin <玩家> - 强制登录玩家
- /auth forceregister <玩家> <密码> - 强制注册玩家
- /auth changepassword <玩家> <新密码> - 修改玩家密码
config.yml
messages.yml
- 登录/注册系统 - 完整的玩家账号认证
- 对话框GUI登录 - 支持 HYDialogApi 的现代化对话框界面
- 会话管理 - 自动保持登录状态
- 多存储支持 - YAML / JSON / SQLite 三种存储方式
- 防暴力破解 - 限制登录尝试次数
- IP变化检测 - 自动要求重新登录
- 密码强度检查 - 阻止简单密码
- 登录前限制 - 移动限制、失明效果、隐身
- ActionBar提示 - 实时提醒未登录玩家
- 自动保存 - 定时保存玩家数据
- 完整权限系统 - 细粒度权限控制
### 命令列表
/login <密码> 登录账号
/register <密码> /reg 注册账号
/hycp /changepw , /changepassword 修改密码
/auth <子命令>
/hyauthme 管理命令
管理子命令:
- /auth reload - 重载配置
- /auth unregister <玩家> - 注销玩家账号
- /auth info <玩家> - 查看玩家信息
- /auth forcelogin <玩家> - 强制登录玩家
- /auth forceregister <玩家> <密码> - 强制注册玩家
- /auth changepassword <玩家> <新密码> - 修改玩家密码
config.yml
YAML:
# HYAuthMe 配置文件
# HYAuthMe 配置文件
# 登录插件配置
# 数据库设置
database:
# 存储类型: yaml, json, sqlite
type: yaml
# 玩家数据保存路径 (支持相对路径和绝对路径)
# 相对路径: 相对于插件数据文件夹 (如 "playerdata", "../data/players")
# 绝对路径: 如 "D:/minecraft/playerdata" 或 "/home/mc/server/data"
data-path: "playerdata"
# SQLite 数据库文件名 (仅当 type 为 sqlite 时有效)
sqlite-file: "players.db"
# 密码设置
password:
# 最小密码长度
min-length: 4
# 最大密码长度
max-length: 32
# 密码加密算法: SHA256, SHA512, BCRYPT
encryption: SHA256
# 是否允许简单密码 (如 123456)
allow-simple-passwords: false
# 禁用的密码列表
blocked-passwords:
- "123456"
- "password"
- "12345678"
- "qwerty"
- "abc123"
# 登录设置
login:
# 登录超时时间 (秒), 0 表示无限制
timeout: 60
# 最大登录尝试次数
max-attempts: 5
# 登录失败后封禁时间 (秒)
ban-time: 300
# 是否在登录前隐藏玩家
hide-player-before-login: true
# 是否在登录前给予失明效果
blindness-effect: true
# 是否在登录前限制移动
restrict-movement: true
# 登录后是否传送到上次退出位置
teleport-to-last-location: false
# 正版玩家是否跳过注册登录 (true = 跳过, false = 需要正常认证)
skip-auth-for-premium-players: false
# 注册设置
register:
# 是否需要邮箱验证
require-email: false
# 是否需要验证码
require-captcha: false
# 每个IP最大注册账号数, 0 表示无限制
max-accounts-per-ip: 0
# 是否强制注册
force-register: true
# 禁止注册的用户名列表 (不区分大小写)
blocked-usernames:
- "admin"
- "administrator"
- "console"
- "server"
- "system"
- "mod"
- "moderator"
- "op"
- "operator"
- "owner"
- "staff"
# 会话设置
session:
# 会话超时时间 (秒)
timeout: 3600
# 是否允许同IP自动登录
auto-login-same-ip: true
# 是否允许同IP不同玩家名登录
allow-multiple-sessions: false
# 安全设置
security:
# 是否启用防暴力破解
anti-brute-force: true
# 是否记录登录日志
log-logins: true
# 是否检查玩家IP变化
check-ip-change: true
# IP变化后是否需要重新登录
relogin-on-ip-change: true
# 对话框设置
dialog:
# 登录对话框标题
login-title: "登录"
# 注册对话框标题
register-title: "注册"
# 是否允许按ESC关闭对话框
can-close-with-escape: false
# 是否启用登录对话框 (关闭后使用聊天命令登录)
enable-login-dialog: true
# 是否启用注册对话框 (关闭后使用聊天命令注册)
enable-register-dialog: true
# 提示设置
messages:
# 是否使用对话框显示消息
use-dialog-messages: true
# 是否在ActionBar显示提示
use-actionbar: true
# ActionBar提示间隔 (tick)
actionbar-interval: 40
# 功能开关
features:
# 是否启用自动保存
auto-save: true
# 自动保存间隔 (秒)
auto-save-interval: 300
# 是否启用玩家数据备份
backup: true
# 备份间隔 (分钟)
backup-interval: 60
# 调试模式
debug: false
messages.yml
YAML:
# HYAuthMe 消息文件
# 支持颜色代码: & + 颜色代码
# 前缀
prefix: "&6[HYAuthMe] &r"
# 通用消息
general:
no-permission: "&c你没有权限执行此操作!"
player-only: "&c此命令只能由玩家执行!"
player-not-found: "&c找不到该玩家!"
config-reloaded: "&a配置文件已重新加载!"
# 注册消息
register:
already-registered: "&c你已经注册过了!"
success: "&a注册成功! 请登录你的账号。"
password-too-short: "&c密码太短! 最少需要 {min} 个字符。"
password-too-long: "&c密码太长! 最多允许 {max} 个字符。"
password-blocked: "&c此密码被禁止使用,请更换一个更复杂的密码。"
password-too-simple: "&c密码过于简单,请使用更复杂的密码。"
please-register: "&e请使用对话框注册你的账号!"
register-required: "&c你必须先注册才能游玩!"
email-required: "&c请输入有效的邮箱地址!"
captcha-required: "&c请输入正确的验证码!"
max-accounts-reached: "&c此IP已达到最大注册数量限制!"
# 登录消息
login:
not-registered: "&c你还没有注册! 请先注册。"
success: "&a登录成功! 欢迎回来, {player}!"
wrong-password: "&c密码错误! 你还有 {attempts} 次尝试机会。"
max-attempts-reached: "&c登录尝试次数过多! 你已被临时封禁 {time} 秒。"
already-logged-in: "&a你已经登录过了!"
please-login: "&e请使用对话框登录你的账号!"
login-required: "&c你必须先登录才能游玩!"
timeout: "&c登录超时! 请重新连接服务器。"
session-continued: "&a检测到有效会话, 自动登录成功!"
ip-changed: "&c检测到IP地址变化, 请重新登录!"
# 注销消息
logout:
success: "&a已成功注销!"
not-logged-in: "&c你还没有登录!"
# 密码修改消息
changepassword:
success: "&a密码修改成功!"
wrong-old-password: "&c旧密码错误!"
usage: "&e用法: /changepassword <旧密码> <新密码>"
# 账号管理消息
account:
player-info: "&e玩家信息: &f{player}"
last-login: "&e上次登录: &f{date}"
last-ip: "&e上次IP: &f{ip}"
registered-date: "&e注册时间: &f{date}"
not-registered: "&c该玩家未注册!"
# 管理员消息
admin:
player-registered: "&a成功为玩家 {player} 注册账号!"
player-unregistered: "&a成功注销玩家 {player} 的账号!"
player-password-changed: "&a成功修改玩家 {player} 的密码!"
player-not-registered: "&c玩家 {player} 未注册!"
player-already-registered: "&c玩家 {player} 已经注册过了!"
force-login: "&a已强制登录玩家 {player}!"
force-logout: "&a已强制注销玩家 {player}!"
# 对话框消息
dialog:
login-title: "&6&l登录"
login-body: "&f请输入你的密码登录"
login-button: "&a登录"
register-title: "&6&l注册"
register-body: "&f请输入密码注册账号"
register-button: "&a注册"
password-placeholder: "输入密码..."
confirm-password-placeholder: "确认密码..."
password-mismatch: "&c两次输入的密码不匹配!"
back-button: "&7返回"
# ActionBar消息
actionbar:
please-login: "&e请登录你的账号! 使用 /login <密码>"
please-register: "&e请注册你的账号! 使用 /register <密码>"
login-success: "&a登录成功!"
register-success: "&a注册成功!"
# 标题消息 (Title)
title:
login:
title: "&6登录"
subtitle: "&e请输入密码"
register:
title: "&6注册"
subtitle: "&e请设置密码"
welcome:
title: "&a欢迎"
subtitle: "&e{player}"
# 错误消息
error:
database-error: "&c数据库错误, 请联系管理员!"
session-error: "&c会话错误, 请重新登录!"
unknown-error: "&c发生未知错误, 请联系管理员!"
dialog-error: "&c对话框创建失败, 请使用命令登录!"