Skip to content

Markdown 消息 ​

发送 ​

java
import cn.org.bukkit.bngeuit.Bngeuit;

// 群聊
Bngeuit.sendGroupMarkdown(groupOpenid, """
    # 标题
    **粗体** *斜体*
    - 列表项 1
    - 列表项 2
    [链接](https://qq.com)
    """);

// 私聊
Bngeuit.sendC2CMarkdown(openid, "**Hello!**");

// 带键盘
Bngeuit.sendGroupMarkdown(groupOpenid, "请选择:", keyboard);

回复/引用 ​

java
// 被动回复(设 msgId,不带气泡)
Bngeuit.replyGroupMarkdown(groupOpenid, msgId, msgSeq, "**回复**");

// 引用回复(refIdx 是被引用消息的引用索引,见下方提示)
Bngeuit.quoteGroupMarkdown(groupOpenid, refIdx, msgId, msgSeq, "**引用回复**");

引用回复的 refIdx

quote 系列方法的 refIdx 必须是 REFIDX_... 格式的引用索引,不是 ROBOT1.0_... 格式的消息 ID:

  • 引用别人的消息:用事件 e.getMessageScene().msgIdx()
  • 引用自己的消息:用发送响应 resp.extInfo().refIdx()

reply 系列使用的才是消息 ID(msg_id)。

从本地文件读取 Markdown ​

Bngeuit.getMarkdownContent(String fileName) 读取 markdown_files/<fileName> 的内容:

java
String md = Bngeuit.getMarkdownContent("帮助.md");
if (md != null) {
    Bngeuit.sendGroupMarkdown(groupOpenid, md);
}

图片 ​

Markdown 图片语法为 ![说明 #宽px #高px](url),宽高可选:

java
String md = "![分时K线 #800px #400px](https://example.com/kline.png)";
Bngeuit.sendGroupMarkdown(groupOpenid, md);

url 可以是公网链接,也可以是素材管理接口返回的 qqbot-media://image/v1/<token>(平台托管,不依赖公网图床)。后者见 素材管理。

辅助标签 ​

atUser — @用户 ​

在 Markdown 消息中 @指定用户:

java
// 生成 <qqbot-at-user id="xxx" /> 标签
String md = "你好 " + Bngeuit.atUser(userOpenid) + ",欢迎!";
Bngeuit.sendGroupMarkdown(groupOpenid, md);

atEveryone — @全体成员 ​

java
// 生成 <qqbot-at-everyone /> 标签,仅群聊有效
String md = Bngeuit.atEveryone() + "\n# 维护通知\n今晚 23:00 重启";
Bngeuit.sendGroupMarkdown(groupOpenid, md);

cmdInput — 指令输入按钮 ​

生成可点击的指令按钮,用户点击后自动填入指定文本:

java
// 生成 <qqbot-cmd-input text="xxx" show="xxx" reference="true|false" /> 标签
String md = "可用指令:\n" +
    "- " + Bngeuit.cmdInput("/help", "查看帮助", false) + "\n" +
    "- " + Bngeuit.cmdInput("/sign", "每日签到", true);
Bngeuit.sendGroupMarkdown(groupOpenid, md);

参数说明:

  • text:点击后填入输入框的文本
  • show:按钮显示的文案
  • reference:是否引用回复原消息