Simple Robot v4.15.0 Help

消息元素

本章节介绍 KOOK 组件中针对 simbot 标准库中 消息元素(Message.Element) 的实现类型。

Message.Element

先简单介绍一下 Message.Element 。它是 simbot 标准库中提供一个接口类型, 用来定义一个消息元素 。一个消息元素或多个消息元素组成的消息链可用于发送消息。

simbot 标准库提供了一些常见的标准消息元素实现,例如 AtImage 等。 但是很多情况下,对于一个组件而言这些标准实现可能不能满足需求,这时候就需要组件实现这个接口, 来提供更多期望的功能。

标准消息元素支持

PlainText

最基础的消息元素类型。支持使用文本消息元素, 例如 Text

At

提及一个用户、提及一个角色或提及一个子频道。 提及目标根据 At.type 决定:

  • user (默认) 或其他未知: 提及一个用户

  • role: 提及一个角色

  • channel: 提及一个子频道

如果你希望直接构建这三种 At, 可使用 KookMessages.atUser(...)KookMessages.atRole(...)KookMessages.atChannel(...)

AtAll

提及所有人。即 @全体

Image

支持使用:

  • OfflineImage: 上传一个本地离线文件作为图片并用于发送。

  • RemoteImage: 如果是 RemoteUrlAwareImage ,则使用它的 url ,否则将它的 id 视为 url 字符串。

Face

会作为 KMarkdown 中的 “服务器表情” 使用。

Emoji

会作为 KMarkdown 中的 “emoji” 使用。 Emoji.id 会被处理为:

:Emoji.id:

KOOK 组件消息元素实现

KOOK 组件进行特殊实现的 Message.Element 均继承自 love.forte.simbot.component.kook.message.KookMessageElement

其中一部分“仅用于发送”的元素会被 @KookSendOnlyMessage 标记, 意味着它们通常不会原样出现在接收事件里。

KookKMarkdownMessage

love.forte.simbot.kook.objects.kmd.KMarkdown 包装为消息元素。

常用入口:

  • KMarkdown.asMessage()

  • kookKMarkdown { ... }

KookCardMessage

将 KOOK Card Message 包装为消息元素。

常用入口:

  • CardMessage.asMessage()

  • kookCard { ... }

KookAssetMessage

表示“已经通过 CreateAssetApi 上传完成”的资产消息。 这是典型的发送型消息元素。

主要子类型:

  • KookAsset: 任意资产 + 指定消息类型

  • KookAssetImage: 资产图片,同时可视为 RemoteImage

常见来源:

  • KookBot.uploadAsset(...)

  • KookBot.uploadAssetImage(...)

  • Asset.asMessage(...)

  • Asset.asImage()

KookAtAllHere

通知当前在线成员 ,语义接近 “@在线成员”。

KookAttachmentMessage 子类型

表示从接收消息中解析出来的附件消息。 这类类型通常更偏向“接收侧”。

KookAttachmentMessage
KookAttachment

普通附件。

KookAttachmentFile

文件附件。

KookAttachmentImage

图片附件,同时可作为 Image 使用。

KookAttachmentVideo

视频附件。

KookQuote

通过 MessageContent.reference() 查询得到的消息引用信息。 它也可以直接作为发送时的引用目标使用,语义等同于 MessageIdReference

14 July 2026