BanOP ¥6
OP 白名单保护:发现未授权 OP 自动撤权 + 踢出 + 记录
Paper 1.20+
MySQL
安全
插件介绍
核心目标:OP 只给“被允许的人”
任何不在白名单内的玩家一旦获得 OP(无论是玩家执行 /op 还是控制台执行),都会被插件立刻撤销 OP 并踢出。
BanOP 是一个 OP 白名单保护插件,适用于“多人管理/脚本多/权限复杂”的服务器环境,用于防止未授权 OP、误操作 OP、或被漏洞提权后造成损失。
主要功能
- OP 白名单 —— 只允许白名单内的玩家拥有 OP
- 监听 /op 行为 —— 玩家输入
/op xxx或控制台op xxx都会被检测 - 自动撤权 + 踢出 —— 未授权 OP 会被立刻
setOp(false)并踢出 - 封禁记录入库 —— 将异常记录写入 MySQL(方便追查)
- 定时巡检 —— 定时检查在线 OP 是否全部在白名单内
- 配置自动升级 —— 配置版本过旧时自动补全新配置项(保留数据库与白名单)
命令列表
主命令:/banop
| 命令 | 说明 | 权限 |
|---|---|---|
/banop add <玩家名> | 添加 OP 白名单 | banop.admin |
/banop remove <玩家名> | 移除 OP 白名单 | banop.admin |
/banop list | 查看白名单列表 | banop.admin |
/banop reload | 重载配置、刷新白名单缓存、重启定时检测 | banop.admin |
/banop unban <玩家名> | 解封(对 Bukkit 名单封禁执行 pardon) | banop.admin |
权限节点
| 权限 | 说明 | 默认 |
|---|---|---|
banop.admin | 管理权限(add/remove/list/reload/unban) | OP |
配置文件
配置文件路径:plugins/BanOP/config.yml
数据库配置
YAMLconfig.yml
mysql:
host: "127.0.0.1"
port: 3306
database: "banop"
username: "banop"
password: "password"
检测与冻结
YAMLconfig.yml
check-interval: 60
freeze-duration: 60
kick-message: "服务器异常,等待解锁指令权限。"
freeze-message: "§c服务器异常,等待解锁指令权限。剩余 {time} 秒。"
OP 白名单
YAMLconfig.yml
op-whitelist:
- "RainRainRain"
- "NewPlayer"
工作原理
- 命令监听 —— 监听玩家聊天命令与控制台命令中的
op <玩家>,延迟 2 tick 再检查目标是否已成为 OP - 白名单校验 —— 若目标不在白名单缓存中:撤销 OP、踢出、异步写入记录
- 定时巡检 —— 按
check-interval秒周期检查在线玩家 OP 状态
依赖插件
| 组件 | 是否必须 | 说明 |
|---|---|---|
| MySQL 5.7+ | 必须 | 白名单与记录存储 |
| Paper 1.20+ | 必须 | 服务端核心 |
常见问题
把你的游戏名加入
op-whitelist,并确保数据库白名单同步成功。插件会读取配置里的默认白名单并同步到数据库,运行时以内存缓存/数据库为准;使用
/banop add/remove 会写入数据库并更新缓存。