• Stars
    star
    188
  • Rank 205,563 (Top 5 %)
  • Language
    Java
  • Created about 5 years ago
  • Updated almost 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

新框架 https://github.com/ProtobufBot/ProtobufBot 。这是一个spring boot starter。基于SpringBoot的QQ机器人框架,demo分支是例子,jar分支是框架。

Spring-CQ

maven QQ群

开发环境

  • IntelliJ IDEA Ultimate(学生认证免费)
  • IntelliJ IDEA中的lombok插件,File->Settings->Plugins->搜索Lombok->Install->重启IDEA
  • JDK IDEA自动安装,不需要自己装
  • MAVEN IDEA自动安装,不需要自己装

导入maven依赖

    <dependency>
        <groupId>net.lz1998</groupId>
        <artifactId>spring-cq</artifactId>
        <version>4.14.1.1</version>
    </dependency>

推荐SpringBoot 2.1.8
为了避免一些问题,可以直接下载demo修改

编写插件

  1. 编写XXXPlugin,继承CQPlugin

    /**
    * 示例插件
    * 插件必须继承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;
       }
    }
  2. 配置resources/application.yml

    server:
      port: 8081 # 下面的cqhttp都是8081端口,可以自己改
    
    spring:
      cq:
        # 在这里配置各个功能执行顺序
        # 如果前一个功能返回MESSAGE_BLOCK,下一个功能不会被执行
        # 如果前一个功能返回MESSAGE_IGNORE,会继续执行下一个功能
        plugin-list:
          - com.example.demo.plugin.DemoPlugin
          - com.example.demo.plugin.TestPlugin
          - com.example.demo.plugin.HelloPlugin

测试应用

  1. 运行SpringCqApplication的main方法

打包应用

  1. 使用maven打包应用
    mvn clean package
  2. 在target目录下,spring-cq-0.0.1-SNAPSHOT.jar即为打包的jar

运行应用

  1. 输入指令
    java -jar spring-cq-0.0.1-SNAPSHOT.jar

如果是Windows,并且不需要查看运行情况,可以直接双击jar文件运行,右下角托盘会出现小图标

Windows运行酷Q和cqhttp

  1. 准备酷Q Air
    • 方案一:下载已经配置好cqhttp的酷Q Air
    • 方案二:自己配置
      1. 下载酷Q Air
      2. 下载CQHTTP插件
      3. 创建文件酷Q Air\data\app\io.github.richardchien.coolqhttpapi\config.ini
        [general]
        use_http=false
        use_ws_reverse=true
        ws_reverse_url=ws://127.0.0.1:8081/ws/cq/
        ws_reverse_use_universal_client=true
        enable_heartbeat=true
        heartbeat_interval=60000
  2. 解压后运行 CQA.exe 登录QQ账号

如果需要酷Q Pro,下载解压后替换exe文件,其他不需要动

Docker运行酷Q和cqhttp

  1. 安装酷Q和CQHTTP插件
    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模式,共享主机网络
    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
  2. 访问 http://127.0.0.1:9000 登录QQ账号

如果需要酷Q Pro,把http://dlsec.cqp.me/cqa-tuling改为http://dlsec.cqp.me/cqp-tuling

截图

More Repositories

1

ricq

Rust 高性能 QQ 协议(原RS-QQ)。Linux-musl运行内存1.6MB。
Rust
632
star
2

axum-book-management

CRUD system of book-management with ORM and JWT for educational purposes.
Rust
43
star
3

ssr-echarts

服务端渲染echarts,直接生成PNG图片返回,可用于发送邮件等。可以设置宽度、高度、主题,包含15种主题。
JavaScript
9
star
4

15puzzle-android

最初版的数字华容道,为了方便iOS用户,已改用vue开发,Cordova打包app
Java
7
star
5

ricq-react-ui

TypeScript
7
star
6

lolicon_proxy

pixiv插图漫画预加载
Go
5
star
7

Spring-CQ-web

Spring-CQ demo 词库设置功能、入群欢迎功能,包含WEB控制台页面。
Java
4
star
8

vue-puzzle15

vue+mint,Cordova打包成app,安卓/iOS通用
Vue
4
star
9

silk-rs

QQ微信语音转PCM
C
4
star
10

Zbot-Open

魔方QQ机器人-机哥开源部分
Java
4
star
11

hello-axum

字节跳动掘金小册《Rust 从入门到实战》 - 如何使用 Rust 开发 HTTP Server ?
Rust
3
star
12

wg-rs

tokio boringtun/wireguard
Rust
2
star
13

rs-sql2struct

A developer-friendly tool for generating rust struct using sql
TypeScript
2
star
14

zbot-docs

机哥使用说明文档 vue-press
2
star
15

Spring-CQ-Kotlin-Demo

Kotlin
2
star
16

welove520

Rust 情侣空间农场 自动种菜收菜卖菜 跑订单
Rust
2
star
17

lianjia

Python
2
star
18

axum-sqlx-demo

Rust async CRUD http demo。With ORM: https://github.com/lz1998/axum-book-management
Rust
1
star
19

Spring-CQ-web-UI

Vue
1
star
20

django-wca

Python
1
star
21

gif-maker

Python
1
star
22

lz1998.github.io

JavaScript
1
star
23

WCA-Data-Service

WCA数据服务,推荐使用docker部署lz1998/wca-data-service
Java
1
star
24

rq-tower

Rust
1
star
25

cgo_icu4x_segmenter

Segment strings by word and sentences. See icu4x for more details.
Rust
1
star