事件类型 - Shimogawa/rubirai GitHub Wiki

事件

所有事件都是由 {fetch,peek}_[latest_]message 返回的。如果你使用监听器,那么监听器将会调用的是 fetch_latest_message(count=10) 接口。这个接口返回的是 Event 数组。

所有事件的基类是 Event,它代表了一个事件。事件分为 5 类,分别是 BotEvent, MessageEvent, RecallEvent, RequestEvent, RubiraiErrorEvent

具体的事件类型可以看下面。

机器人事件 BotEvent

消息事件 MessageEvent

消息事件是当机器人收到消息时触发的。从消息事件中你可以获取到发送者 sender 与消息链 message_chain。当消息事件为群组消息事件 GroupMessageEvent 或临时会话消息事件 TempMessageEvent 时,sender 是一个群组成员对象 GroupUser。当消息事件为私聊消息事件 FriendMessageEvent 时,sender 是一个普通成员对象 User

消息事件还有 message_chain 字段。它会返回一个消息链 MessageChain

消息事件可以直接调用 respond 方法回复。目前它的 quote 参数测试下来是没有用的,还需要进一步修复这个问题。

例子

expect(event).to be_a(MessageEvent)  # assert event is MessageEvent
event.respond 'hello, ', Rubirai::At(target: event.sender.id)

撤回事件 RecallEvent

请求事件 RequestEvent

运行时报错事件 RubiraiErrorEvent