新框架 https://github.com/ProtobufBot/ProtobufBot 。这是一个spring boot starter。基于SpringBoot的QQ机器人框架,demo分支是例子,jar分支是框架。
No Data
推荐使用新框架 pbbot-spring-boot-starter。建议直接下载 demo 修改,配合 Go-Mirai-Client (相当于酷Q)运行。代码结构与 Spring-CQ 基本相同,可以参考下方文档。
因为酷Q已停运,请使用demo分支下的client/spring-cq-client.jar,首次运行会产生
conf/config.json,在里面配置账号密码,然后重新运行。或使用go-cqhttp等替代酷Q。
基于 Spring-CQ-Client、SpringBoot、反向websocket 的 QQ 机器人框架
这是一个自定义spring-boot-starter,项目名暂时不改了
比起其他http框架,可以很方便地开多个QQ号,不需要额外配置cqhttp端口
这个README主要讲了大概的使用方法,详细API和EVENT看下面两个链接
详细API文档:https://github.com/lz1998/Spring-CQ/blob/demo/API.md
详细Event文档:https://github.com/lz1998/Spring-CQ/blob/demo/Event.md
新手推荐视频教程:https://www.bilibili.com/video/av89649630/ (版本更新:已删除Config,
CQGlobal.pluginList.add改为在
resources/application.yml中配置,其他相同)
Kotlin也可以用:https://github.com/lz1998/Spring-CQ-Kotlin-Demo
Groovy也可以用:https://github.com/lz1998/Spring-CQ-Groovy-Demo
demo分支是例子,jar分支是maven仓库的spring-cq
net.lz1998 spring-cq 4.14.1.1
推荐SpringBoot 2.1.8
为了避免一些问题,可以直接下载demo修改
编写XXXPlugin,继承CQPlugin
```java
/**
* 示例插件
* 插件必须继承CQPlugin,上面要 @Component
*
* 添加事件:光标移动到类中,按 Ctrl+O 添加事件(讨论组消息、加群请求、加好友请求等)
* 查看API参数类型:光标移动到方法括号中按Ctrl+P
* 查看API说明:光标移动到方法括号中按Ctrl+Q
/
@Component
public class DemoPlugin extends CQPlugin {
/*
* 收到私聊消息时会调用这个方法
*
* @param cq 机器人对象,用于调用API,例如发送私聊消息 sendPrivateMsg
* @param event 事件对象,用于获取消息内容、群号、发送者QQ等
* @return 是否继续调用下一个插件,IGNORE表示继续,BLOCK表示不继续
*/
@Override
public int onPrivateMessage(CoolQ cq, CQPrivateMessageEvent event) {
// 获取 发送者QQ 和 消息内容
long userId = event.getUserId();
String msg = event.getMessage();
if (msg.equals("hi")) { // 调用API发送hello cq.sendPrivateMsg(userId, "hello", false);// 不执行下一个插件 return MESSAGE_BLOCK;
} // 继续执行下一个插件 return MESSAGE_IGNORE;
}
/** * 收到群消息时会调用这个方法 * * @param cq 机器人对象,用于调用API,例如发送群消息 sendGroupMsg * @param event 事件对象,用于获取消息内容、群号、发送者QQ等 * @return 是否继续调用下一个插件,IGNORE表示继续,BLOCK表示不继续 */ @Override public int onGroupMessage(CoolQ cq, CQGroupMessageEvent event) { // 获取 消息内容 群号 发送者QQ String msg = event.getMessage(); long groupId = event.getGroupId(); long userId = event.getUserId();
if (msg.equals("hello")) { // 回复内容为 at发送者 + hi String result = CQCode.at(userId) + "hi";// 调用API发送消息 cq.sendGroupMsg(groupId, result, false); // 不执行下一个插件 return MESSAGE_BLOCK;
}
// 继续执行下一个插件 return MESSAGE_IGNORE;
} } ```
配置resources/application.yml ```yml server: port: 8081 # 下面的cqhttp都是8081端口,可以自己改
spring: cq: # 在这里配置各个功能执行顺序 # 如果前一个功能返回MESSAGEBLOCK,下一个功能不会被执行 # 如果前一个功能返回MESSAGEIGNORE,会继续执行下一个功能 plugin-list: - com.example.demo.plugin.DemoPlugin - com.example.demo.plugin.TestPlugin - com.example.demo.plugin.HelloPlugin ```
bash mvn clean package
bash java -jar spring-cq-0.0.1-SNAPSHOT.jar如果是Windows,并且不需要查看运行情况,可以直接双击jar文件运行,右下角托盘会出现小图标
如果需要酷Q Pro,下载解压后替换exe文件,其他不需要动
shell docker run -d --name cq01 \ -v $(pwd)/coolq:/home/user/coolq \ -p 9000:9000 \ -e VNC_PASSWD=你的VNC密码(不超过8位) \ -e COOLQ_URL=http://dlsec.cqp.me/cqa-tuling \ -e COOLQ_ACCOUNT=你的机器人QQ号 \ -e CQHTTP_USE_HTTP=false \ -e CQHTTP_USE_WS_REVERSE=true \ -e CQHTTP_WS_REVERSE_URL=ws://宿主机地址:8081/ws/cq/ \ -e CQHTTP_WS_REVERSE_USE_UNIVERSAL_CLIENT=true \ -e CQHTTP_ENABLE_HEARTBEAT=true \ -e CQHTTP_HEARTBEAT_INTERVAL=60000 \ richardchien/cqhttp如果不知道宿主机地址是什么,可以使用Docker的host模式,共享主机网络
bash docker run -d --name cq01 \ -v $(pwd)/coolq:/home/user/coolq \ --net=host \ -e VNC_PASSWD=你的VNC密码(不超过8位) \ -e COOLQ_URL=http://dlsec.cqp.me/cqa-tuling \ -e COOLQ_ACCOUNT=你的机器人QQ号 \ -e CQHTTP_USE_HTTP=false \ -e CQHTTP_USE_WS_REVERSE=true \ -e CQHTTP_WS_REVERSE_URL=ws://127.0.0.1:8081/ws/cq/ \ -e CQHTTP_WS_REVERSE_USE_UNIVERSAL_CLIENT=true \ -e CQHTTP_ENABLE_HEARTBEAT=true \ -e CQHTTP_HEARTBEAT_INTERVAL=60000 \ richardchien/cqhttp
如果需要酷Q Pro,把
http://dlsec.cqp.me/cqa-tuling改为
http://dlsec.cqp.me/cqp-tuling