MC-BngeuitBridge 机器人桥接
把 Minecraft 服务器和 Bngeuit 机器人 连起来的双向通道。
装上它之后,QQ 群里能看到玩家上下线、能在群里直接执行服务器命令、能把服务器的任何状态推到群里,也能让群里的一句话触发服务器里的任何逻辑。它自己不绑定业务,只负责把消息送过去、送回来。
三个组件,缺一不可
| 组件 | 跑在哪 | 干什么 |
|---|---|---|
| Bngeuit | 机器人主机 | QQ 机器人本体,负责收发 QQ 消息。见 Bngeuit 文档 |
| BngeuitBridge | Bngeuit 的 plugins/ | WebSocket 服务端,等 MC 服务器连过来 |
| MC-BngeuitBridge | MC 服务端的 plugins/ | WebSocket 客户端,连到 BngeuitBridge |
三者关系:
QQ 群 / 私聊
↕
Bngeuit 机器人主程序 ← 装 BngeuitBridge 插件
↕ ws://ip:8765
┌──────┴──────┐
MC-1 MC-2 ← 各自装 MC-BngeuitBridge
(client-id: (client-id:
survival) creative)- 一个 BngeuitBridge 可以同时接多台 MC 服务器
- 每台服务器用
client-id区分身份,名字随便起,但不能重复 - 消息可以发给所有服务器,也可以只发给指定的那一台
只装一边没用
MC-BngeuitBridge 是客户端,它必须连上 BngeuitBridge 才能工作;而 BngeuitBridge 是 Bngeuit 的插件,必须由 Bngeuit 加载。所以 Bngeuit + BngeuitBridge + MC-BngeuitBridge 三件套要同时存在,缺一个通道就不通。
能做什么
- 玩家上下线 → QQ 群通知(内置脚本,开箱可用)
- QQ 群发
/命令→ 服务器以控制台身份执行(内置脚本,开箱可用) - 服务器状态、TPS、在线人数 → 群里查询(写个脚本即可)
- 群里发公告 → 服务器内广播(写个脚本即可)
- 多台服务器之间的消息中转
- 任何「QQ ↔ MC」的双向通信
快速开始
- Bngeuit 侧:把
BngeuitBridge.jar放进plugins/,改token - MC 侧:把
MC-BngeuitBridge.jar放进plugins/,填同样的token、起个client-id、写对url - 重启两边,MC 控制台看到
已通过 BngeuitBridge 认证就是通了 - Bngeuit 侧再放配套脚本(
McJoinAndQuit.nc/McCommandRelay.nc/McBridgeStatus.nc),QQ 群里才会有反应
详细步骤见 安装与配置。
两侧都要配
通道只负责搬数据,QQ 群里的最终效果由 Bngeuit 侧的脚本决定;游戏内的 /bngeuitbridge status 也依赖 Bngeuit 侧装 McBridgeStatus.nc 才能应答。只装 MC 侧 = 数据发出去没人接。
两种扩展方式
MC 侧既可以写脚本,也可以写附属插件。两者拿到的是同一套通道和事件,只是语言和生效方式不同:
脚本(.nc) | 附属插件(Java / Kotlin) | |
|---|---|---|
| 要不要编译 | 不用,丢进 plugins/MC-BngeuitBridge/script/ 就行 | 要,自己打个 jar |
| 改完怎么生效 | /bngeuitbridge r,秒生效不重启 | 重载插件或重启服务器 |
| 适合 | 上下线通知、消息转发、状态查询等轻量业务 | 复杂逻辑、跨插件调用、数据库、自定义 GUI |
脚本引擎(nacre)已内置在本插件里,不需要额外装 CraneCore 之类的额外前置。一个最小脚本:
nc
package my.first.script
import cn.org.bukkit.bngeuit.bridge.MCBngeuitBridge
import org.bukkit.Bukkit
fun enable() {
val channel = MCBngeuitBridge.INSTANCE.getChannel()
if (channel != null && channel.isConnected()) {
val payload = HashMap<String, String>()
payload.put("msg", "服务器启动了")
channel.send("demo", "startup", payload)
}
Bukkit.getLogger().info("[MyScript] 已启用")
}
fun disable() {
}详见 脚本与插件开发,插件方式在那页文末。
文档目录
| 页面 | 内容 |
|---|---|
| 安装与配置 | 两侧 jar 放置、config.yml 每一项、联调检查清单 |
| 消息与事件 | JSON 消息格式、认证流程、请求-响应、事件列表 |
| 脚本与插件开发 | 两种扩展方式:.nc 脚本怎么写、附属插件怎么接、能调哪些 API、线程注意事项 |
| 内置示例 | 上下线通知、QQ 执行命令,两端配置全流程 |
| 常见问题 | 连不上 / 认证失败 / 命令不执行 / 脚本报错 |
