blankqwq/mirai-sdk

There is no license information available for the latest version (dev-main) of this package.

a sdk for mirai

dev-main 2022-12-31 11:28 UTC

This package is auto-updated.

Last update: 2024-04-29 04:47:27 UTC


README

用于在laravel开发mirai 机器人后端

开发中

目前为测试版,所以更新较为频繁。

所有功能完成后发布的v1.0.0

大部分完成后发布v0.x.0

  • Mirai 消息类型
  • Mirai 事件类型
  • 良好的IDE提示
  • 请求翻译成对应类
  • Mirai-http-adaptor
    • http
    • websocket
  • 状态事件路由
    • 单独一个插件
    • 完善功能
  • GoCq适配

快速开始

安装

composer require blankqwq/mirai-sdk:dev-master -vvv

创建配置文件 config/mirai.php

use Blankqwq\Mirai\Drivers\Mirai\Http;
return [
    'default' => 'http', // 使用的驱动
    'debug'=>true,      // 日志记录
    'host' => 'localhost:8080', // adaptor地址
    'verify' => '', // 校验码
    'tty' => 7200, // session过期时间
    'account' => [
        'qq号', // qq号,可以为多个
    ],
    'drivers' => [ // 驱动列表,非必填(不建议设置,除非有自定义需求)
        'http' => Http::class, 
    ],
    'guzzleConfig'=>[

    ]
]

简单示例

使用默认qq进行拍一拍

use Blankqwq\Mirai\Mirai;
..

Mirai::session()->sendNudge($sender['id'], $group['id']);

..

指定某qq进行拍一拍

use Blankqwq\Mirai\Mirai;

..

$qq='1234567890';
Mirai::session($qq)->sendNudge($sender['id'], $group['id']);
..

若为拍一拍目标为机器人时,机器人也进行拍一拍

$eventOrMessage = \Blankqwq\Mirai\Translate::get($request);
if ($event instanceof NudgeEvent) {
    Log::info('success_event', [$currentQQ,$event]);
   if ($event->target==$currentQQ){
        Mirai::session()->sendNudge($event->fromId,$event->subject['id'],$event->subject['kind']);
   }
}

发送群组消息

  $mirai->sendGroupMsg($qq,new MessageGroup(new Text(Arr::random(['没有了~','被玩坏了!','再问我要给你一拳','干哈,爷就是没有','?还来']))));

发送给好友

$mirai->sendFriendMsg(
        $qq->subject['id'], // 此处为qq
        new MessageGroup(new Text(Arr::random(['没有了~','被玩坏了!','再问我要给你一拳','干哈,爷就是没有','?还来'])))
    );

多消息类型

$imageMessage= new \Blankqwq\Mirai\Message\MessageItem\Image();
$imageMessage->setBase64(''));  // base64编码
$imageMessage->setUrl('http://..'); // 图片地址
$at = new \Blankqwq\Mirai\Message\MessageItem\At('qq号');
new MessageGroup($at,new Text(),new Image($imageMessage),...);

更多内容请查阅文档

API

采用小驼峰命名

参考project-mirai/mirai-api-httpAdaptor文档

事件匹配

Translate::match($request,NudgeEvent::class,function($event){
    // 事件执行的回调

});

参与贡献

鸣谢

mirai
project-mirai/mirai-api-http
MiraiGo
Mrs4s/go-cqhttp