Simple Robot v4.6.0 Help

消息

标准消息元素

作为一个simbot组件,OneBot组件理所当然的会支持部分simbot核心库所定义的标准消息元素。

Text

纯文本消息。

At

At某人。

AtAll

At全体。

Face

一个表情。

Image

图片类型的接口类型。

发送时可以使用simbot标准API中的 Image 实现类型, 例如 OfflineImage 的某个实现。

消息段

在OneBot组件中,我们选择使用消息段的方式进行消息交互。 除了直接使用部分上述的simbot标准消息元素以外, 我们还提供了OneBot11协议中定义的所有消息段类型的实现。

当想要发送它们的时候,我们统一使用 OneBotMessageSegmentElement 对其进行包装, 表示这是一个OneBot的消息段元素。

val segment = ... val element = segment.toElement()
var segment = ...; var element = OneBotMessageSegments.toElement(segment);

消息段定义

OneBotText

纯文本

OneBotAt

@某人或@全体

OneBotFace

QQ表情

OneBotAnonymous

匿名发消息

OneBotContact

推荐好友/推荐群

OneBotDice

掷骰子魔法表情

OneBotForward

消息转发/合并转发

OneBotForward 是通过事件接收到的元素类型。

OneBotForwardNode

消息转发节点/合并转发节点

OneBotImage

图片

发送时:

如果你发送的是一个本地图片文件(例如使用 FilePath), 而你希望发送时使用 base64 而不是此文件的绝对路径 (默认是绝对路径), 那么在构建 OneBotImage 时请注意额外的配置:

val obimg = OneBotImage.create( Path("xxx.png").toResource(), ) { localFileToBase64 = true } val emement = obimg.toElement()
var params = new OneBotImage.AdditionalParams(); params.setLocalFileToBase64(true); var obimg = OneBotImage.create( Resources.valueOf(Path.of("xxx.png")), params ); var element = obimg.toElement(); // 或使用 OneBotMessageSegments.toElement(obimg);

当然,你也可以选择直接使用 ByteArrayResource 进行发送。

接收时:

会直接转为 OneBotImage.Element 而不是 DefaultOneBotMessageSegmentElement, 不过它们都实现 OneBotMessageSegmentElement

OneBotImage.Element 实现 Image 并提供了一些辅助属性或API,比如获取 Resourceurl 字符串。

OneBotVideo

短视频

发送时:

如果你发送的是一个本地文件(例如使用 FilePath), 而你希望发送时使用 base64 而不是此文件的绝对路径 (默认是绝对路径), 那么在构建 OneBotVideo 时请注意额外的配置:

val obvideo = OneBotVideo.create( Path("xxx.mp4").toResource(), OneBotVideo.AdditionalParams().apply { localFileToBase64 = true } ) val emement = obvideo.toElement()
var params = new OneBotVideo.AdditionalParams(); params.setLocalFileToBase64(true); var video = OneBotVideo.create( Resources.valueOf(Path.of("xxx.mp4")), params ); var element = OneBotMessageSegments.toElement(video);

当然,你也可以选择直接使用 ByteArrayResource 进行发送。

OneBotLocation

位置

OneBotMusic

音乐分享

OneBotPoke

戳一戳

OneBotRecord

语音

OneBotReply

引用回复

如果使用 reply API 发送消息,且消息链中没有其他的内容为 OneBotReply 的元素, 则会自动附加一个。

OneBotRps

猜拳魔法表情

OneBotShake

窗口抖动(戳一戳)

OneBotShare

链接分享

OneBotXml

XML 消息

OneBotJson

JSON 消息

OneBotUnknownSegment

一个当出现了除上述其他已知类型以外的消息段类型时使用的包装类型。 它通过对 SerializersModule 的配置增加了 OneBotMessageSegment 类型的默认序列化/反序列化器来支持解析为此默认类型。

它只支持使用JSON序列化器,因为它使用了 JsonElement 作为 data 属性的类型。

Last modified: 19 September 2024