[MD]
### 🎮 插件交流群
[/MD]
点击加入【墨系列插件交流群】
[MD] ### 🎮 玩家命令 - /register <密码> <确认密码> - 注册新账户 - /login <密码> - 登录账户 - /logout - 退出登录 - /changepassword <原密码> <新密码> <确认新密码> - 修改密码### 👑 管理员命令 - /loginadmin reload - 重新加载配置 - /loginadmin resetpassword <玩家> [新密码] - 重置玩家密码 - /loginadmin lock <玩家> [分钟数] - 锁定玩家账户 - /loginadmin unlock <玩家> - 解锁玩家账户 - /loginadmin info <玩家> - 查看账户信息 - /loginadmin cleanup - 清理过期会话 ### 🚀 安装和使用 1. 安装插件将 LoginPlugin-1.0.0.jar 放入服务器的 plugins 文件夹,重启服务器。 2. 初始配置插件首次运行会自动生成配置文件: - 默认使用SQLite本地数据库( plugins/LoginPlugin/login.db ) - 如需使用MySQL,修改 config.yml 中的数据库配置 3. 数据库初始化插件会自动创建必要的数据库表: - users 表 - 存储用户信息 - sessions 表 - 存储会话信息 4. 玩家操作流程 -1. 新玩家加入 → 提示注册 -2. 使用 /register 注册账户 -3. 使用 /login 登录 -4. 登录后可以正常游戏 -5. 使用 /logout 退出登录 ### 🔧 技术特点 数据库层 - 使用HikariCP连接池管理数据库连接 - 支持MySQL 8.0+和SQLite 3.x - 自动处理表结构和索引创建 - 异步数据库操作避免阻塞主线程 安全特性 - BCrypt密码哈希(抗彩虹表攻击) - 登录尝试限制(默认5次) - 账户锁定机制 - IP绑定可选功能 - 会话令牌安全生成 性能优化 - 内存中会话缓存减少数据库查询 - 定期清理过期会话 - 异步任务处理 - 连接池管理数据库连接 ### 📊 插件会限制未登录玩家的以下行为: - ❌ 移动(只能原地转向) - ❌ 聊天 - ❌ 与方块/实体交互 - ❌ 执行非登录相关命令 - ❌ 造成/受到伤害 - ❌ 放置/破坏方块 - ❌ 打开/操作背包 [/MD]
以下是配置文件
点击加入【墨系列插件交流群】
[MD] ### 🎮 玩家命令 - /register <密码> <确认密码> - 注册新账户 - /login <密码> - 登录账户 - /logout - 退出登录 - /changepassword <原密码> <新密码> <确认新密码> - 修改密码### 👑 管理员命令 - /loginadmin reload - 重新加载配置 - /loginadmin resetpassword <玩家> [新密码] - 重置玩家密码 - /loginadmin lock <玩家> [分钟数] - 锁定玩家账户 - /loginadmin unlock <玩家> - 解锁玩家账户 - /loginadmin info <玩家> - 查看账户信息 - /loginadmin cleanup - 清理过期会话 ### 🚀 安装和使用 1. 安装插件将 LoginPlugin-1.0.0.jar 放入服务器的 plugins 文件夹,重启服务器。 2. 初始配置插件首次运行会自动生成配置文件: - 默认使用SQLite本地数据库( plugins/LoginPlugin/login.db ) - 如需使用MySQL,修改 config.yml 中的数据库配置 3. 数据库初始化插件会自动创建必要的数据库表: - users 表 - 存储用户信息 - sessions 表 - 存储会话信息 4. 玩家操作流程 -1. 新玩家加入 → 提示注册 -2. 使用 /register 注册账户 -3. 使用 /login 登录 -4. 登录后可以正常游戏 -5. 使用 /logout 退出登录 ### 🔧 技术特点 数据库层 - 使用HikariCP连接池管理数据库连接 - 支持MySQL 8.0+和SQLite 3.x - 自动处理表结构和索引创建 - 异步数据库操作避免阻塞主线程 安全特性 - BCrypt密码哈希(抗彩虹表攻击) - 登录尝试限制(默认5次) - 账户锁定机制 - IP绑定可选功能 - 会话令牌安全生成 性能优化 - 内存中会话缓存减少数据库查询 - 定期清理过期会话 - 异步任务处理 - 连接池管理数据库连接 ### 📊 插件会限制未登录玩家的以下行为: - ❌ 移动(只能原地转向) - ❌ 聊天 - ❌ 与方块/实体交互 - ❌ 执行非登录相关命令 - ❌ 造成/受到伤害 - ❌ 放置/破坏方块 - ❌ 打开/操作背包 [/MD]
以下是配置文件
YAML:
# LoginPlugin Configuration
# 登录插件配置文件
# 数据库配置
database:
# 数据库类型: mysql 或 sqlite
type: "sqlite"
# MySQL 配置 (当 type=mysql 时生效)
mysql:
# MySQL 主机地址
host: "localhost"
# MySQL 端口
port: 3306
# 数据库名称
database: "minecraft_login"
# 用户名
username: "root"
# 密码
password: ""
# 连接池设置
pool:
# 最小连接数
minimum-idle: 5
# 最大连接数
maximum-pool-size: 20
# 连接超时时间(毫秒)
connection-timeout: 30000
# 连接最大生存时间(毫秒)
max-lifetime: 1800000
# 空闲连接超时时间(毫秒)
idle-timeout: 600000
# SQLite 配置 (当 type=sqlite 时生效)
sqlite:
# SQLite 数据库文件路径(相对于插件数据目录)
file: "login.db"
# 连接池设置
pool:
# 最小连接数
minimum-idle: 2
# 最大连接数
maximum-pool-size: 10
# 连接超时时间(毫秒)
connection-timeout: 30000
# 密码设置
password:
# BCrypt 工作因子(4-31,推荐10-12)
bcrypt-work-factor: 10
# 最小密码长度
min-length: 6
# 最大密码长度
max-length: 32
# 是否要求密码包含数字
require-numbers: true
# 是否要求密码包含字母
require-letters: true
# 会话设置
session:
# 会话过期时间(分钟,0表示永不过期)
expire-minutes: 60
# 是否启用IP绑定
ip-binding: false
# 是否启用自动登录(记住我)
remember-me: true
# 自动登录过期时间(天)
remember-me-expire-days: 30
# 注册设置
registration:
# 是否启用注册
enabled: true
# 是否要求邮箱(暂未实现)
require-email: false
# 注册后是否自动登录
auto-login: true
# 安全设置
security:
# 最大登录尝试次数(0表示无限制)
max-login-attempts: 5
# 登录失败锁定时间(分钟)
lockout-time: 5
# 是否启用登录验证码(暂未实现)
captcha: false
# 是否记录登录日志
log-login-events: true
# 消息配置
messages:
prefix: "&6[&e登录&6]&r"
# 成功消息颜色
success: "&a"
# 错误消息颜色
error: "&c"
# 信息消息颜色
info: "&e"
# 自定义消息
register:
success: "&a注册成功!欢迎来到服务器!"
password-mismatch: "&c两次输入的密码不一致!"
password-too-short: "&c密码长度至少为{min_length}位!"
password-too-long: "&c密码长度不能超过{max_length}位!"
password-requirements: "&c密码必须包含字母和数字!"
already-registered: "&c您已经注册过了!"
login:
success: "&a登录成功!欢迎回来!"
invalid-password: "&c密码错误!"
not-registered: "&c您还没有注册!请使用 /register 注册"
already-logged-in: "&c您已经登录了!"
account-locked: "&c账户已锁定,请等待{minutes}分钟后再试"
logout:
success: "&a已成功退出登录!"
not-logged-in: "&c您还没有登录!"
changepassword:
success: "&a密码修改成功!"
old-password-incorrect: "&c原密码错误!"
general:
session-expired: "&c会话已过期,请重新登录!"
no-permission: "&c您没有权限执行此命令!"
# 调试模式
debug: false