# BistroWhitelist **Repository Path**: myKasa/BistroWhitelist ## Basic Information - **Project Name**: BistroWhitelist - **Description**: 酒馆白名单 支持MiraiMC的QQ群白名单 - **Primary Language**: Unknown - **License**: AGPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-02-20 - **Last Updated**: 2025-08-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## BistroWhitelist —— 酒馆白名单 支持MiraiMC的QQ群白名单
一个简单而又强大的插件
由于找遍市面上支持QQ群的白名单插件都没有发现有好用并且支持高版本的插件
所以自己简单动手写了一个
已在1.21.1服务器中使用,其他版本可自行测试反馈
插件已开源至gitee,需手动构建,也可在当前页面下载已构建的版本



## 功能介绍 所有语言提示均可自定义
支持 MySQL 和 SQLite 数据库
没有添加到白名单的 ID 无法进入游戏
可在游戏内查询 ID 绑定的QQ
可脱离 MiraiMC 单独使用,但会默认关闭机器人功能
可使 QQ 与游戏 ID 进行绑定,并且可手动开启 QQ 重复绑定功能,防止小号注册
可检测绑定的 QQ 是否在群内,不在群内视为不在白名单
可使用管理员模式,管理员模式下,只有管理员可进行白名单操作
可添加多个群和机器人进行管理



``` # 当前配置版本 请勿修改 version: 1.5 # 将会兼容的最低版本 请勿修改 min-version: 1.5 # 插件配置 general: # 语言配置 language: 'zh_CN' # 是否启用 BistroBot # 如果没有安装 BistroBot 请将此选项设置为 false # 本插件会自动检测是否安装 BistroBot 如果没有安装将会自动强制禁用该配置 # 此选项主要用于兼容群组服 多个服务器仅需在登录服或某一服务器中安装 BistroBot 来提供绑定 # 子服关闭此选项后 仅会做校验白名单的功能 # 以此达到群组服白名单功能 enable-bot: true # 添加绑定消息前缀 # 玩家需要发送“消息前缀 + 自己的ID”才会添加绑定 # 例如:下方设置为“申请白名单”,玩家的ID是“123456”,则玩家需要在群内发送消息“申请白名单 123456”, 注意中间有一个空格 # 如果是管理员,则管理员需要发送“消息前缀 + 玩家的ID + 玩家的QQ号”才会添加绑定 # 例如:下方设置为“申请白名单”,玩家的ID是“123456”,玩家的QQ号是“123456789”,则管理员需要在群内发送消息“申请白名单 123456 123456789”, 注意中间有一个空格 bind-command-prefix: "添加白名单" # 解除绑定消息前缀 # 玩家需要发送“解除白名单”才会解除绑定, 注意:会删除所有该QQ绑定的ID # 如果是管理员,则管理员需要发送“消息前缀 + 玩家的ID”才会添加绑定 # 例如:下方设置为“解除白名单”,玩家的ID是“123456”,则管理员需要在群内发送消息“解除白名单 123456”, 注意中间有一个空格 unbind-command-prefix: "解除白名单" # Geyser 支持 # 与 Geyser 中的设置对应 # 如果不清楚的话请勿启用该功能 geyser: # 是否启用 Geyser 支持 enable: false # 设置的基岩版玩家名称前缀 prefix: '.' # 数据库配置 目前支持 sqlite 和 mysql database: # 数据库类型 不区分大小写 type: sqlite # 数据库表前缀 prefix: bwl_ # mysql 配置 仅数据库类型为 mysql 时生效 mysql: # 数据库地址 url: 127.0.0.1 # 数据库端口 port: 3306 # 数据库参数 parameters: '?useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true' # 数据库用户名 username: root # 数据库密码 password: root # 数据库名称 database: bistro # sqlite 配置 仅数据库类型为 sqlite 时生效 sqlite: # 数据库文件路径 插件目录:%plugin_folder% path: '%plugin_folder%/whitelist.db' # 数据库连接池设置 不清楚的话不要修改 pool: # 连接池连接超时时间 connection-timeout: 30000 # 连接池最大生命周期 max-lifetime: 1800000 # 连接池空闲时间 idle-timeout: 600000 # 连接池空闲线程存活时间 keep-alive-time: 0 # 连接池最大连接数 max-pool-size: 15 # 连接池最小连接数 min-pool-size: 5 # 指令配置 command: # 游戏中绑定时阻止已经绑定过 ID 的 QQ 重复绑定 prevent-qq-rebind: true # 群配置 # 不同 QQ 群可单独配置 group: # 群1配置 # 是否启用该群配置 - enable: false # 群号 group-id: 12345678 # 对应的机器人 QQ 号 bot-id: 1234567 # 对应的管理员列表 可配置多个管理员 # 请至少填写一个 admins: - 123456 # 阻止已经绑定过 ID 的 QQ 重复绑定 # 例如:QQ123456 已经绑定了 ID1234567 那么 QQ123456 无法再次绑定其他 ID prevent-qq-rebind: true # 是否开启管理员独占模式 # 如果开启,只有管理员才能执行绑定和解绑操作 # 如果关闭,管理员和玩家都可以执行绑定和解绑操作,但需要区分管理员和玩家的绑定格式 admin-only: true # 检测玩家绑定的 QQ 是否在群内,如果不在群内视为没有白名单 # 注意,通过游戏指令添加的玩家将跳过检测 # 如果单个玩家在多个群绑定过ID或拥有白名单 那么会对玩家所在的所有群进行检查 将会跳过没有开启群 开启检测的群中只要在其中一个群内就视为在群内 check-qq-in-group: true # 群2配置 # 是否启用该群配置 - enable: false # 群号 group-id: 12345678 # 对应的机器人 QQ 号 bot-id: 1234567 # 对应的管理员列表 可配置多个管理员 # 请至少填写一个 admins: - 123456 # 阻止已经绑定过 ID 的 QQ 重复绑定 # 例如:QQ123456 已经绑定了 ID1234567 那么 QQ123456 无法再次绑定其他 ID prevent-qq-rebind: true # 是否开启管理员独占模式 # 如果开启,只有管理员才能执行绑定和解绑操作 # 如果关闭,管理员和玩家都可以执行绑定和解绑操作,但需要区分管理员和玩家的绑定格式 admin-only: true # 检测玩家绑定的 QQ 是否在群内,如果不在群内视为没有白名单 # 注意,通过游戏指令添加的玩家将跳过检测 # 如果单个玩家在多个群绑定过ID或拥有白名单 那么会对玩家所在的所有群进行检查 将会跳过没有开启群 开启检测的群中只要在其中一个群内就视为在群内 check-qq-in-group: true ```


``` # 当前配置版本 不要修改 # 用于版本兼容 version: 1.1 # 系统消息 # 支持hex颜色 格式为: &#RRGGBB system: # 消息前缀 prefix: "&7[ 򽸱白名单 &7] >>> &f" # 你没有权限 no-permission: "&c你没有足够的权限执行此命令" # 重载成功 reload-success: "&a配置文件已经重新加载, 部分配置可能需要重新启动服务器才能生效" # 重载失败 reload-failed: "&c重新配置文件时出现问题, 请查看控制台了解更多信息" # 踢出信息。在踢出不在数据库的玩家时显示的踢出消息 # 默认提示消息使用的是 YAML 换行符,如果想使用单行消息可以设为 kick-message: "消息内容" # 可用变量:%player_name% kick-message: |- &f你不在小酒馆的名单中噢,可以加入QQ群进行申请 &bQQ群 123456 # 游戏内消息 # 游戏中的消息都在这里配置 game: # 未找到玩家绑定信息 # 可用变量:%player_name% player-not-found: "&f未找到 QQ 或者该玩家没有白名单" # 玩家绑定的信息 # 可用变量:%player_name% %player_qq% player-bind-info: "&f玩家 &a%player_name% &f绑定的QQ是 &a%player_qq%" # 绑定成功消息 # 可用变量:%player_name% %player_qq% bind-success: "&a绑定成功 绑定ID: &f%player_name% &a绑定QQ:&f %player_qq%" # 绑定失败消息 长度问题 bind-length-error: "&c指令格式不对哦, 正确的格式是/bwl bind ID QQ" # 绑定失败消息 ID问题 # 可用变量:%player_name% %player_qq% id-bind-failed: "&c添加失败, 当前ID已经在白名单中啦, 绑定的QQ为 &f%player_qq%" # 绑定失败消息 QQ问题 # 需要开启阻止已经绑定过 ID 的 QQ 重复绑定功能 # 可用变量:%player_name% %player_qq% qq-bind-failed: "&c添加失败, 当前QQ已经在白名单中啦, 绑定的ID为 &f%player_name%" # 解绑成功消息 # 多个ID将会用逗号分割 # 可用变量:%player_name% %player_qq% unbind-success: "&a白名单已移除 移除ID &f%player_name% &a移除QQ &f%player_qq%" # 解绑失败消息 长度问题 unbind-length-error: "&c指令格式不对哦, 正确的格式是/bwl unbind ID" # 解绑失败消息 # 可用变量:%player_name% %player_qq% unbind-failed: "&c解绑失败, 当前ID可能没有在白名单中" # 群内消息 # 插件向群内发送的所有消息都在这里配置 group: # 未找到玩家绑定信息 # 可用变量:%player_name% player-not-found: "未找到 QQ 或者该玩家没有白名单" # 绑定成功 # 可用变量:%player_name% %player_qq% bind-success: |- 白名单添加成功啦 ~ 绑定ID %player_name% 绑定QQ %player_qq% # 管理员 绑定失败消息 长度问题 # 需开启管理员模式 admin-bind-length-error: "指令格式不对哦~ 正确的格式是:添加白名单 ID QQ" # 普通 绑定失败消息 长度问题 # 需关闭管理员模式 normal-bind-length-error: "指令格式不对哦~ 正确的格式是:申请白名单 ID" # 通用 绑定失败消息 ID问题 # 可用变量:%player_name% %player_qq% id-bind-failed: |- 添加失败, 当前ID已经在白名单中啦 ~ 绑定的QQ %player_qq% # 通用 绑定失败消息 QQ问题 # 需要开启阻止已经绑定过 ID 的 QQ 重复绑定功能 # 可用变量:%player_name% %player_qq% qq-bind-failed: |- 添加失败, 当前QQ已经在白名单中啦 ~ 绑定的ID %player_name% # 解绑成功 # 多个ID将会用逗号分割 # 可用变量:%player_name% %player_qq% unbind-success: |- 白名单已移除 移除ID %player_name% 移除QQ %player_qq% # 管理员 解绑失败消息 长度问题 # 需开启管理员模式 admin-unbind-length-error: "指令格式不对哦~ 正确的格式是:解除白名单 ID" # 普通 解绑失败消息 长度问题 # 需关闭管理员模式 normal-unbind-length-error: "指令格式不对哦~ 正确的格式是:解除白名单" # 解绑失败 # 可用变量:%player_name% %player_qq% unbind-failed: |- 解绑失败, 当前ID可能没有在白名单中 解绑ID %player_name% 解绑QQ %player_qq% ```