消息事件
一些与 消息 相关的事件类型。
消息事件通常会配合着 对象事件 进行实现。
MessageEvent
api.message RemoteMessageContainer ReplySupport
MessageEvent 是所有 消息事件 的基础父类型。
属性
MessageEvent 提供了获取下述属性的能力:
| 属性 | 类型 | 描述 |
|---|---|---|
source | Objectives | 本次消息事件发生的主要源。 |
messageContent | RemoteMessageContent | 本次消息事件所收到的消息。 |
省略
如果上述属性定义在后续事件中没有发生变化,则将不再赘述。
- Kotlin
- Java
val source: Objectives = event.source()
val messageContent: ReceivedMessageContent = event.messageContent
Objectives source = event.getSource();
ReceivedMessageContent messageContent = event.getMessageContent();
source 的值可能会随着当前事件的具体含义范围而变化。具体细节可参考后续的其他事件。
ReplySupport
MessageEvent 继承 ReplySupport,对于消息事件来讲它总是 期望 实现者拥有 消息回复(reply) 的能力。
- Kotlin
- Java
val message: Message = ...
val receipt: MessageReceipt = event.reply(message)
Message message = ...;
MessageReceipt receipt = event.replyBlocking(message);
DeleteSupport
MessageEvent 中的 MessageContent 实现 DeleteSupport。在预期内且权限允许的情况下,代表其能够对此消息进行 删除 。
通常这种行为可以理解为 撤回。
并非其本身
事件类型本身并不实现 DeleteSupport。
- Kotlin
- Java
val messageContent: MessageContent = event.messageContent
val isDeleted: Boolean = messageContent.delete()
MessageContent messageContent = event.getMessageContent();
messageContent.deleteBlocking();
// or messageContent.deleteAsync();
ContactMessageEvent
api.contact_message MessageEvent UserEvent
在 ContactMessageEvent 中,属性 user 与 source 返回类型一致,为 User 类型。
- Kotlin
- Java
val user: User = event.user()
// same as
val source: User = event.source()
User user = event.getUser();
// same as
User source = event.getSource();
FriendMessageEvent
api.friend_message ContactMessageEvent FriendEvent
| 属性 | 类型 | 描述 |
|---|---|---|
friend | Friend | 本次消息事件中消息的发送者对象。 |
user | 同上 | 同上 |
source | 同上 | 同上 |
- Kotlin
- Java
val friend: Friend = event.friend()
val user: Friend = event.user()
val source: Friend = event.source()
Friend friend = event.getFriend();
Friend user = event.getUser();
Friend source = event.getSource();
ChatRoomMessageEvent
api.chat_room_message MessageEvent OrganizationEvent MessageContainer
在 ChatRoomMessageEvent 中,属性 source 为 ChatRoom 类型。
| 属性 | 类型 | 描述 |
|---|---|---|
author | Member | 本次消息事件中消息的发送者对象。 |
source | ChatRoom | 本次消息事件发生所在的聊天室。 |
organization | 同上 | 同上 |
在 Kotlin 中,ChatRoomMessageEvent 为属性 author 提供了 in/use 扩展函数:
event.inAuthor { // this: Author
// ...
}
event.useAuthor { author: Author ->
// ...
}
GroupMessageEvent
api.group_message ChatRoomMessageEvent GroupEvent
一个来自于 群 的消息事件。
| 属性 | 类型 | 描述 |
|---|---|---|
source | Group | 此事件所来源的群。 |
group | 同上 | 同上 |
- Kotlin
- Java
val source: Group = event.source()
val group: Group = event.group()
Group source = event.getSource();
Group group = event.getGroup();
ChannelMessageEvent
api.channel_message ChatRoomMessageEvent ChannelEvent
| 属性 | 类型 | 描述 |
|---|---|---|
source | Channel | 此事件所来源的子频道。 |
channel | 同上 | 同上 |
- Kotlin
- Java
val source: Channel = event.source()
val channel: Channel = event.channel()
Channel source = event.getSource();
Channel channel = event.getChannel();