plainText
接收到的被替换/移除所有 特殊文本(内嵌格式) 内容后的纯文本消息内容。
mentions
替换
plainText 会按照 mentions 逐次替换对应的内嵌消息字符串。
例如,发送的消息为:
@张三 你好
Content copied to clipboard
此时收到的消息中的 content
为
<qqbot-at-user id="123456" /> 你好
Content copied to clipboard
那么就会根据 mentions
进行替换,最终的 plainText 的值为:
你好
Content copied to clipboard
⚠️ 注意!此处的 " 你好"
前面是大概率有空格的,因为在默认情况下不会对消息有过多的操作,而替换后的前后空格也将会被保留。 如果有需要,请注意在判断之前先进行 trim
等操作来消除空格,或者使用例如 @ContentTrim
等相关功能。
被替换掉的 mention
会被解析在 messages 中作为 At。
mention everyone
替换
当 mentionEveryone 为 true
时, plainText 会尝试清理文本中第一个 <qqbot-at-everyone />
。
如果是群消息(即没有 QGSourceMessage 类型,只有 content
),则会全部进行转化。
被替换的 <qqbot-at-everyone />
会被解析于 messages 中作为 AtAll。
mention channel
替换
消息内嵌格式中提及一个子频道的格式如下:
<#channel_id>
Content copied to clipboard
plainText 会寻找并清除这些类型的消息。例如一个消息如下:
这个频道 #频道01 快去看看吧!
Content copied to clipboard
那么收到的消息则为
这个频道 <#654321> 快去看看吧!
Content copied to clipboard
而 plainText 进行转化后的结果为
这个频道 快去看看吧!
Content copied to clipboard
被替换掉的 channel mention
会在 messages 中被转化为 At (且 At.type 为 channel
)。
emoji
替换
消息内嵌格式中发送一个 系统表情 时的格式为
<emoji:id>
Content copied to clipboard
它们在 plainText 中也同样会被解析掉。被解析掉的 emoji
会在 messages 中被作为 Face。
原始Content
如果你想要得到本次消息最原始的 content
,直接使用 sourceContent 获取
val contentText = receiveContent.sourceMessage.content
Content copied to clipboard