ChangeEvent

一个与 变更 有关的事件。

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

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

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

当然,一般情况下,根据事件语义,如果目标尚未发生改变,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

比较两个 IDContainerIDContainer.id 是否一致。