Skip to content

Folia2045/QBP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 

Repository files navigation

QQBindPlugin

Minecraft 服务器玩家账号与 QQ 号绑定插件,通过 Web 界面完成注册和绑定流程。

功能

  • Web 界面注册,QQ 号作为唯一标识
  • 邮箱验证码验证(自动生成 QQ@qq.com 邮箱)
  • QQ 群成员验证(通过 NapCat WebSocket API)
  • 游戏内验证码确认玩家身份
  • 支持同一 QQ 绑定多个游戏账号(可配置上限)
  • Cloudflare Turnstile 人机验证
  • 深蓝色主题,支持明暗模式切换
  • SQLite 数据库存储,PreparedStatement 缓存优化

环境要求

  • Minecraft 1.21+
  • Java 21+
  • NapCat QQ 机器人(用于群成员验证)

安装

  1. 将插件 JAR 文件放入服务器的 plugins 目录
  2. 启动服务器,插件会自动生成配置文件
  3. 编辑 plugins/QQBindPlugin/config.yml 配置文件
  4. 重启服务器或使用 /qqbind reload 重载配置

配置

# Web 服务器端口
web-port: 8080

# NapCat WebSocket 地址
napcat-url: ws://127.0.0.1:3001

# 需要验证的 QQ 群号
group-ids:
  - 123456789
  - 987654321

# 每个 QQ 最大绑定账号数
max-bindings-per-account: 1

# SMTP 邮件配置
smtp:
  host: smtp.qq.com
  port: 587
  username: your-email@qq.com
  password: your-smtp-password

# Cloudflare Turnstile 配置
turnstile:
  sitekey: your-sitekey
  secret: your-secret

使用流程

玩家注册

  1. 玩家访问 Web 注册页面
  2. 输入 QQ 号,点击发送验证码
  3. 系统验证 QQ 是否在指定群内
  4. 弹出 Turnstile 人机验证
  5. 验证通过后发送验证码到 QQ 邮箱
  6. 玩家输入验证码完成注册

账号绑定

  1. 玩家进入 Minecraft 服务器
  2. 因未绑定被踢出,同时获得验证码
  3. 登录 Web 绑定页面
  4. 输入验证码完成绑定
  5. 自动设置群名片为游戏用户名

指令

指令 描述 权限
/qqbind reload 重载配置文件 qqbind.admin
/qqbind unbind <玩家> 解除玩家绑定 qqbind.admin
/qqbind list 列出所有绑定 qqbind.admin

数据库

插件使用两个 SQLite 数据库文件:

  • webusers.db - Web 用户账号
  • binds.db - 玩家绑定数据

API

插件提供 API 供其他插件调用:

// 获取玩家的 QQ 号
Long qq = plugin.getDataManager().getQQ("playerName");

// 获取 QQ 绑定的所有玩家
List<String> players = plugin.getDataManager().getPlayersByQQ(123456789L);

// 检查玩家是否已绑定
boolean bound = plugin.getDataManager().isPlayerBound("playerName");

构建

./gradlew build

生成的 JAR 文件位于 build/libs/ 目录。

License

MIT License

About

Minecraft player QQ binding plugin with NapCat integration and web interface

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors