ChangeEvent

一个与 变更 有关的事件。

这个变更可能是正在变更、计划变更,或者已经变更。

source 是本次变更的载体,是 before 与 after 发生这样前后变化的舞台。 举个例子,对于一种"用户名称变更事件",用户即为载体 source, before 则为变更前的名称,after 则为变更后的名称。

before 与 after 作为变更状态前后的两个瞬态,应当伴随事件并作为属性直接提供。

当然,一般情况下,根据事件语义,如果目标尚未发生改变,after 应当为非真实内容,before 可能是瞬时 状态。 如果变更已经发生,则 after 应当是当前状态(可能是瞬时),而 before 则为历史态。

变更前后的两个瞬态均无法准确定义其是否可空,因此对于可空情况由实现者自行约束。

See also

Types

Link copied to clipboard

Functions

Link copied to clipboard
abstract suspend fun after(): Any?

变更行为后的内容。

Link copied to clipboard
abstract suspend fun before(): Any?

变更行为前的内容。

Link copied to clipboard
abstract suspend fun source(): Any

变更载体,或者说变更内容的源。

Properties

Link copied to clipboard
abstract override val bot: Bot

与这个事件有关系的 Bot.

Link copied to clipboard
open override val component: Component

一个事件所属的组件。 通常与 bot 的组件所属一致。

Link copied to clipboard
abstract override val id: ID

事件的唯一标识。

Link copied to clipboard
abstract val key: Event.Key<out Event>

得到当前事件所对应的类型key。

Link copied to clipboard
abstract val timestamp: Timestamp

此时间发生的时间戳。

Inheritors

Link copied to clipboard

Extensions

Link copied to clipboard
suspend fun Event.replyIfSupport(message: Message): MessageReceipt?
suspend fun Event.replyIfSupport(message: () -> Message): MessageReceipt?
suspend fun Event.replyIfSupport(message: String): MessageReceipt?

如果此事件允许回复消息,发送,否则得到null。

Link copied to clipboard

比较两个 IDContainer 的 IDContainer.id 是否一致。