事件类型 - 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)