Skip to content
This repository was archived by the owner on Aug 16, 2024. It is now read-only.

Commit b64113b

Browse files
committed
更新文档;
1 parent 1dc8ad0 commit b64113b

File tree

1 file changed

+48
-0
lines changed

1 file changed

+48
-0
lines changed

doc/使用说明.md

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,8 @@ int64_t qq = int64_t(qq);
6666

6767
MiraiBot 类提供了 On 方法和 OnEventReceived 方法,这两个方法是等价的。mirai-cpp 做了许多工作,让你可以轻松地接收某个事件。这些事件的名称可以在 [mirai-api-http 的文档](https://github.com/mamoe/mirai-api-http/blob/master/EventType.md) 里找到。你只需要知道这个事件的名称,即可使用 On 方法接收此事件。(因为时间关系,当前版本[0.4.4-alpha]有一些事件还没有实现)
6868

69+
## 监听消息和事件(以 GroupMessage 为例)
70+
6971
以 GroupMessage 消息事件为例:
7072

7173
```C++
@@ -115,6 +117,52 @@ bot.On<NewFriendRequestEvent>([&](NewFriendRequestEvent e)
115117
bot.EventLoop();
116118
```
117119

120+
## 通用消息事件
121+
122+
考虑使用“通用消息事件”(Message),这个事件会在收到好友消息、群组消息和临时消息时被触发。
123+
124+
```C++
125+
// 通用型消息
126+
// 收到 FriendMessage、GroupMessage、TempMessage 时都会调用它
127+
// 判断类型之后,也可调用对应的转换函数进行转换 (类型不正确将转换失败抛出异常)
128+
bot.On<Message>(
129+
[&](Message m)
130+
{
131+
// 只能通过 Message 获得发送者的QQ号码
132+
// 如果想要“原路回复”(好友消息私聊回复,群组消息群组回复),
133+
// 请使用 Message 事件的 Reply 方法。
134+
m.Reply("Message事件可处理三种消息:" + m.MessageChain);
135+
136+
// 判断是否群组消息
137+
if(m.GetMessageType() == MessageType::GroupMessage)
138+
{
139+
GroupMessage gm = m.ToGroupMessage();
140+
// TODO: 针对群组消息的特别处理
141+
}
142+
});
143+
```
144+
145+
## 同一个事件,多个处理函数
146+
147+
可以对同一类型的事件重复使用On方法,每个事件处理函数都会被调用,但是**不保证调用的顺序**。
148+
149+
```C++
150+
// 监听各类事件
151+
bot.On<GroupMessage>(
152+
[&](GroupMessage m)
153+
{
154+
m.QuoteReply(m.MessageChain);
155+
});
156+
// 可以多次监听同一事件,每个处理函数都会被执行,但是不保证执行顺序
157+
bot.On<GroupMessage>(
158+
[&](GroupMessage m)
159+
{
160+
m.Reply("2222 " + m.MessageChain);
161+
});
162+
```
163+
164+
## 获取事件的方式(WebSocket 或 Http)
165+
118166
mirai-cpp 默认使用 WebSocket 拉取事件和消息,如果需要通过 HTTP 来拉取消息,可以调用 UseHttp 函数。(不需要开启 mirai-api-http 的全局 WebSocket 设置,mirai-cpp 会自动针对 Session 开启 WebSocket。)
119167

120168
```C++

0 commit comments

Comments
 (0)