Skip to content

特殊占位符

多羅狼 edited this page Mar 11, 2026 · 5 revisions

机器人在某些场景下可能需要发送特殊格式的消息。当开发者使用指定格式的占位符文本时,机器人便可以将这些占位符转为对应的特殊消息,例如 @ 他人等。

Note

解析优先级:KE > I18N > AT

仅建议高优先级嵌套低优先级,避免其他相互嵌套行为,否则可能会导致不可预料的结果。

KE 码

KE 码用于使用消息文本来插入其他消息元素,例如图片、语音等。部分平台不支持特定类型的 KE 码。

KE 码的格式类似于 CQ 码,语法如下:

[KE:消息元素,参数1=值1,参数2=值2]

其中,[KE:...] 是固定格式。当有多个参数时,参数间使用逗号分隔。

Important

KE 码内部不应出现空格,参数值内的特殊符号(如 []& 等)须使用 HTML 字符实体转义。

消息类型

以下是 KE 码支持的消息元素类型。KE 码被解析时会自动换行

纯文本

格式示例:

[KE:plain,text=123]

参数:

  • text:要发送的文本。

图片

格式示例:

[KE:image,path=https://http.cat/200.jpg]

参数:

  • path:图片路径,支持 URL 或以 file:// 开头的绝对路径。
  • headers:Base64 编码后的 JSON,作为获取图片的请求头。

语音

格式示例: [KE:voice,path=file://path/to/audio.mp3] 参数:

  • path:语音路径,仅支持以 file:// 开头的绝对路径。

多语言文本

格式示例:

[KE:i18n,i18nkey=message.brackets,msg=test]

参数:

  • i18nkey:多语言键名。
  • **kwargs:多语言参数。

Important

使用 KE 码处理多语言将会自动产生换行,若需要行内多语言,请使用多语言标记

提及

格式示例:

[KE:mention,userid=TEST|0]

参数:

  • userid:用户 ID,不正确或跨平台的 ID 将会导致解析失败。

Important

使用 KE 码处理多语言将会自动产生换行,若需要行内多语言,请使用 AT 码

Note

用户 ID 的结构为 客户端|子平台(可选)|平台 ID,可使用 ~whoami 命令查看你自己的用户 ID。

多语言标记

多语言标记用于在消息中行内插入多语言文本。

多语言标记的语法如下:

{I18N:键名,参数1=值1,参数2=值2}

格式示例:

{I18N:message.brackets,msg=test}

其中,{I18N:...} 是固定格式。参数是可选的,当有多个参数时,参数间使用逗号分隔。

Important

多语言标记内部不应出现空格,参数值内的特殊符号(如 {}& 等)须使用 HTML 字符实体转义。

AT 码

AT 码用于在消息中行内提及用户

AT 码的语法如下:

<AT:用户ID>
<@:用户ID>

格式示例:

<AT:TEST|0>

其中,<AT:...> 是固定格式。使用不正确或跨平台的 ID 将不会被正确处理,而是原样输出。

Note

用户 ID 的结构为 客户端|子平台(可选)|平台 ID,可使用 ~whoami 命令查看你自己的用户 ID。

Clone this wiki locally