消息事件
一些与 消息 相关的事件类型。
消息事件通常会配合着 对象事件 进行实现。
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();