本篇教程由作者设定未经允许禁止转载。
此跨服聊天基于MCDR,MCDR是生电服常用的工具,安装/使用说明在此,不再赘述 Fallen_Breath教程 哔哩哔哩教程
1 前言
Chatbridge是MCDR的插件,用于同步不同服务器之间的消息(以下简称CB)
此篇教程并不难,我这种对服务端管理基本上一窍不通的都可以掌握,请耐心配置
2 CB的配置
请确保服务端已安装MCDR
要运行CB,请执行以下命令来安装依赖
pip3 install pycryptodome
pip3 install colorlog
假设有两个服务器,一个为生存服,一个为创造服
此处需要三个screen来分别运行三个服务端,分别是CB服务端、生存服务端、创造服务端
你可以把CB服务端和创造服务端塞一个服务器里来运行,以节省资源
2.1 CB服务端的配置
找到ChatBridge.pyz,丢进单独的文件夹内
cd到该目录,运行
python3 ChatBridge.pyz server
运行后会报错并退出,同时该目录下会生成ChatBridge_server.json
修改该文件配置如下
{
"aes_key": "ThisIstheSecret", //没特殊用途就别动
"hostname": "0.0.0.0", //本地地址,不需更改
"port": 8124, //端口
"clients": [ //你所有需要同步消息的服务器
{
"name": "生存服", //第一台服务器的名称
"password": "Survival" //第一台服务器的密码(随意设置)
},
{
"name": "创造服", //第二台服务器的名称
"password": "Creative" //第二台服务器的密码(随意设置)
},
{
"name": "QQChannel", //运行QQbot的服务器
"password": "QQ" //QQbot服务器的密码(随意设置)
}
],
"show_chat": true,
"log_chat": true
}
修改完成后重新运行
python3 ChatBridge.pyz server
正常运行输出如下
AES Key = ThisIstheSecret
Server address = 0.0.0.0:8125
- Client #1: name = 生存服, password = Survival
- Client #2: name = 创造服, password = Creative
- Client #3: name = QQChannel, password = Creative
- Client #4: name = QQ, password = Creative
把这个进程丢screen里边防止关闭终端时服务终止
至此服务端的配置完成
2.2 客户端的配置
复制一份ChatBridge.pyz丢MCDR的插件目录里
第一次运行服务端后会在 */mcdr安装目录/config/chatbridge/* 中生成ChatBridge_client.json
修改创造服配置如下
{
"aes_key": "ThisIstheSecret",
"name": "创造服",
"password": "Creative",
"server_hostname": "0.0.0.0", //此处填生存服ip,如果生存服和创造服在同一服务器上,填0.0.0.0
"server_port": 8124 //上文服务端配置里的端口
}
修改生存服配置如下
{
"aes_key": "ThisIstheSecret",
"name": "生存服",
"password": "Survival",
"server_hostname": "0.0.0.0", //此处填生存服ip,如果生存服和创造服在同一服务器上,填0.0.0.0
"server_port": 8124 //上文服务端配置里的端口
}
如果"name":后的参数如此文一样使用中文,请用utf-8编码保存,否则会乱码
重启服务端或重载MCDR的config,配置正式完成,现在可以实现创造服与生存服消息互通了
3 QQ机器人的配置
QQ消息机器人需要两个screen来运行,分别是CBQQ端、go-cqhttps端,实测占用资源极低,可以全部塞一个服务器里
你需要准备以下材料
- QQ小号
- go-cqhttp文件 [Github下载](https://github.com/Mrs4s/go-cqhttp/releases "Github下载"),解压后得到没有后缀的程序go-cqhttp
3.1 配置go-cqhttps服务端
将go-cqgttp文件丢一个单独的文件夹内
运行
./go-cqhttp
出现以下文本
未找到配置文件,正在为您生成配置文件中!
请选择你需要的通信方式:
> 0: HTTP通信
> 1: 云函数服务
> 2: 正向 Websocket 通信
> 3: 反向 Websocket 通信
输入02,开启HTTP通信与正向 Websocket 通信
程序会自动退出并生成config.yml
编辑如下项
uin: 123456 //123456换成你的QQ小号
password: '' //*替换为密码,密码为空时使用扫码登录
此处大概率会登录失败,提示密码错误或者网络环境复杂,解决方案如下
3.1.1 go-cqhttp密码正确但仍登录失败的解决方案
在此处下载Windows版本的go-cqhttp,[Github下载](https://github.com/Mrs4s/go-cqhttp/releases "Github下载") 放到自己电脑里边,并将配置完成的config.yml复制到同目录下
shift+鼠标右键该文件夹空白区域打开powershell,输入./go-cqhttp
开始登录,但仍提示登陆失败,注意到目录下生成device.json文件
打开device.json,把"protocol"项参数从5改成2
"protocol":2
再次尝试登录发现登录成功
将目录下生成的session.token和device.json丢服务器里覆盖原文件
在服务器上重新运行go-cqhttp
./go-cqhttp
此时大概率登录成功,丢screen挂着即可
由于腾讯风控系统更改频率快,此方法在将来可能失效,如若上述步骤正确但仍无法登录,请自行谷歌解决方法
3.2 配置CBQQ端
前往步骤2.1中存放ChatBridge.pyz的目录,运行
python3 ChatBridge.pyz cqhttp_bot
与2.1配置时一样会崩溃并生成ChatBridge_CQHttp.json文件
修改ChatBridge_CQHttp.json以下的配置
"aes_key": "ThisIstheSecret", //不动
"name": "QQChannel", //与CB服务端中name相同
"password": "QQ",
"server_hostname": "127.0.0.1", //如果CBQQ和CB在同一服务器上运行,此项不动,如不在一个服务器上运行,输入CB服务器的ip地址
"server_port": 8124, //CB服务端的端口
"ws_address": "127.0.0.1",
"ws_port": 8080, //此项需修改
"access_token": "", //不动
"react_group_id": 123456, //123456改成需要同步消息的QQ群
保存后再次运行
python3 ChatBridge.pyz cqhttp_bot
丢screen里边,此时QQ群能正常收到MC服务器中发送的消息
CB的作者默认需要在MC中使用!!qq <消息>来发送至qq,在qq中需要使用!!mc <消息>来发送至MC
如果想同步全部消息,请使用这个fork
4.总结
如果配置正常,将会有以下screen运行
- MC生存服务端
- MC创造服务端
- CB服务端
- CBqq服务端
- go-cqhttp服务端
如果全部功能都正常运行,那么恭喜你,全部配置已完成
如若此文有误,或配置时出现问题,请联系Apricityx@qq.com 或是 [联系我]( "添加QQ")