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

原创 工具 [1.21.X] 高版本登录插件LoginPlugin 1.0.0

请登录后获取
版权类型
原创
插件中文名称
登录
插件英文名称
LoginPlugin
原帖地址
#
支持的核心(服务端)
  1. Paper
语言支持
中文(简体)
适配版本(Java)
  1. 1.21
[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]

以下是配置文件
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
作者
墨凡
价格
50.00金粒
下载
118
查看
1,417
首次发布
最后更新

评分

0.00 星 0 次评分

墨凡 的其他资源

后退
顶部 底部