All Projects → lz1998 → Spring Cq

lz1998 / Spring Cq

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

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Spring Cq

Qqlight Websocket
QQLight机器人WebSocket-RPC插件,让你能够使用任何语言编写QQ机器人程序
Stars: ✭ 118 (-26.71%)
Mutual labels:  qqbot, qq, websocket
Ichunqiu qqbot
i春秋社区机器人自2018年02月04日开始服务于i春秋社区,每日文章推送、文章查询、魔法币查询、作者信息查询、作家团奖金余额查询、奖金排行榜、i春秋课程查询等一列功能。据不完全统计,使用人数已经超过3.5万,使用次数达到20万,最大覆盖700+个群。
Stars: ✭ 79 (-50.93%)
Mutual labels:  bot, qqbot, qq
Miraiandroid
QQ机器人 /(实验性)在Android上运行Mirai-console,支持插件
Stars: ✭ 188 (+16.77%)
Mutual labels:  bot, qqbot, qq
Mojo Webqq
【重要通知:WebQQ将在2019年1月1日停止服务,此项目目前已停止维护,感谢大家四年来的一路陪伴】使用Perl语言(不会没关系)编写的smartqq/webqq客户端框架(非GUI),可通过插件提供基于HTTP协议的api接口供其他语言或系统调用
Stars: ✭ 1,755 (+990.06%)
Mutual labels:  bot, qqbot, qq
Picqbotx
基于 CQHTTP 插件的 Java QQ 机器人类库
Stars: ✭ 218 (+35.4%)
Mutual labels:  bot, qqbot, qq
Python Mirai
以 OICQ(QQ) 协议驱动的高性能机器人开发框架 Mirai 的 Python 接口, 通过其提供的 `HTTP API` 与无头客户端(Mirai)交互.
Stars: ✭ 155 (-3.73%)
Mutual labels:  bot, qqbot, qq
Crypto Trading Bot
Cryptocurrency trading bot in javascript for Bitfinex, Bitmex, Binance, FTX, Bybit ... (public edition)
Stars: ✭ 1,089 (+576.4%)
Mutual labels:  bot, websocket
Bilibili danmuji
(Bilibili)B站直播礼物答谢、定时广告、关注感谢,自动回复工具,房管工具,自动打卡,Bilibili直播弹幕姬(使用websocket协议),java版B站弹幕姬,基于springboot。
Stars: ✭ 76 (-52.8%)
Mutual labels:  springboot, websocket
Coolq Cpp Sdk
CoolQ C++ SDK
Stars: ✭ 157 (-2.48%)
Mutual labels:  qqbot, qq
Mirai Ts
🔧 Mirai(QQ Bot) JavaScript/TypeScript SDK for Node.js/Browser
Stars: ✭ 86 (-46.58%)
Mutual labels:  bot, qq
Qqbot
使用QQ PC协议的机器人
Stars: ✭ 99 (-38.51%)
Mutual labels:  qqbot, qq
Xiaov
👰 一个 QQ 聊天机器人,她的名字叫做小薇~
Stars: ✭ 1,466 (+810.56%)
Mutual labels:  bot, qq
Mirai Plugins
🌠一个用于收录Mirai插件的仓库|mirai|plugins|mirai plugins|mirai-plugins
Stars: ✭ 55 (-65.84%)
Mutual labels:  qqbot, qq
Miraigo Template
A template for MiraiGo
Stars: ✭ 47 (-70.81%)
Mutual labels:  qqbot, qq
Nonebot
基于 OneBot 标准的 Python 异步 QQ 机器人框架
Stars: ✭ 1,207 (+649.69%)
Mutual labels:  bot, qq
Projhyperai
一个包含了机器人框架/插件化可运行程序/IM适配器的项目集合.
Stars: ✭ 42 (-73.91%)
Mutual labels:  bot, qq
Gomirai
适配于Mirai HTTP API的Golang SDK
Stars: ✭ 39 (-75.78%)
Mutual labels:  qqbot, qq
Go Cqhttp
cqhttp的golang实现,轻量、原生跨平台.
Stars: ✭ 3,481 (+2062.11%)
Mutual labels:  bot, qqbot
Kjbot
kjBot Framework and Modules
Stars: ✭ 32 (-80.12%)
Mutual labels:  bot, qqbot
Discord4j
Discord4J is a fast, powerful, unopinionated, reactive library to enable quick and easy development of Discord bots for Java, Kotlin, and other JVM languages using the official Discord Bot API.
Stars: ✭ 973 (+504.35%)
Mutual labels:  bot, websocket

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

截图

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].