运行方式:独立/放在MaiBot本体作为插件
请参考官方文档
sequenceDiagram
participant Napcat as Napcat客户端
participant Adapter as MaiBot-Napcat适配器
participant Queue as 消息队列
participant Handler as 消息处理器
participant MaiBot as MaiBot服务
Note over Napcat,MaiBot: 初始化阶段
Napcat->>Adapter: WebSocket连接(ws://localhost:8095)
Adapter->>MaiBot: WebSocket连接(ws://localhost:8000)
Note over Napcat,MaiBot: 心跳检测
loop 每30秒
Napcat->>Adapter: 发送心跳包
Adapter->>Napcat: 心跳响应
end
Note over Napcat,MaiBot: 消息处理流程
Napcat->>Adapter: 发送消息
Adapter->>Queue: 消息入队(message_queue)
Queue->>Handler: 消息出队处理
Handler->>Handler: 解析消息类型
alt 文本消息
Handler->>MaiBot: 发送文本消息
else 图片消息
Handler->>MaiBot: 发送图片消息
else 混合消息
Handler->>MaiBot: 发送混合消息
else 转发消息
Handler->>MaiBot: 发送转发消息
end
MaiBot-->>Adapter: 消息响应
Adapter-->>Napcat: 消息响应
Note over Napcat,MaiBot: 优雅关闭
Adapter->>MaiBot: 关闭连接
Adapter->>Queue: 清空消息队列
Adapter->>Napcat: 关闭连接
-
读取自动心跳测试连接
-
接受消息解析
- 文本解析
- 图片解析
- 文本与消息混合解析
- 转发解析(含图片动态解析)
- 群公告解析
- 回复解析
- 群临时消息(可能不做)
- 链接解析
- 戳一戳解析
- 读取戳一戳的自定义内容
- 语音解析(?)
- 所有的notice类
- 撤回(已添加相关指令)
-
发送消息
- 发送文本
- 发送图片
- 发送表情包
- 引用回复(完成但是没测试)
- 戳回去(?)
- 发送语音
-
使用echo与uuid保证消息顺序
-
执行部分管理员功能
- 禁言别人
- 全体禁言
- 群踢人功能
特别感谢@Maple127667对本项目代码思路的支持
以及@墨梓柒对部分代码想法的支持