zhamao-framework/assets/js/29.5427ad45.js
2024-09-19 08:29:13 +00:00

1 line
71 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

(window.webpackJsonp=window.webpackJsonp||[]).push([[29],{740:function(t,s,a){"use strict";a.r(s);var n=a(84),e=Object(n.a)({},(function(){var t=this,s=t._self._c;return s("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[s("h1",{attrs:{id:"onebot-机器人上下文"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#onebot-机器人上下文"}},[t._v("#")]),t._v(" OneBot 机器人上下文")]),t._v(" "),s("p",[t._v("在你使用炸毛框架为你的机器人编写逻辑和使用插件时,围绕机器人的核心处理方式为机器人上下文。\n机器人上下文可获取当前机器人事件的其他参数、发起机器人动作请求、互动询问消息等。")]),t._v(" "),s("p",[t._v("BotContext 为上下文对象,例如下方的 "),s("code",[t._v("#[\\BotCommand]")]),t._v(" 事件:")]),t._v(" "),s("div",{staticClass:"language-php line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-php"}},[s("code",[s("span",{pre:!0,attrs:{class:"token attribute"}},[s("span",{pre:!0,attrs:{class:"token delimiter punctuation"}},[t._v("#[")]),s("span",{pre:!0,attrs:{class:"token attribute-content"}},[t._v("\\"),s("span",{pre:!0,attrs:{class:"token attribute-class-name class-name"}},[t._v("BotCommand")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token attribute-class-name class-name"}},[t._v("match")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string single-quoted-string"}},[t._v("'SOS'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")])]),s("span",{pre:!0,attrs:{class:"token delimiter punctuation"}},[t._v("]")])]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function-definition function"}},[t._v("sos")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token class-name class-name-fully-qualified type-declaration"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("\\")]),t._v("BotContext")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token variable"}},[t._v("$ctx")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token variable"}},[t._v("$ctx")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("reply")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string single-quoted-string"}},[t._v("'不许求救!'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])]),t._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[t._v("1")]),s("br"),s("span",{staticClass:"line-number"},[t._v("2")]),s("br"),s("span",{staticClass:"line-number"},[t._v("3")]),s("br"),s("span",{staticClass:"line-number"},[t._v("4")]),s("br"),s("span",{staticClass:"line-number"},[t._v("5")]),s("br")])]),s("p",[t._v("关于 BotContext 机器人上下文如果你不喜欢上方通过参数绑定的依赖注入DI形式获取还可以在相关事件内使用全局函数 "),s("code",[t._v("bot()")]),t._v(" 获取:")]),t._v(" "),s("div",{staticClass:"language-php line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-php"}},[s("code",[s("span",{pre:!0,attrs:{class:"token attribute"}},[s("span",{pre:!0,attrs:{class:"token delimiter punctuation"}},[t._v("#[")]),s("span",{pre:!0,attrs:{class:"token attribute-content"}},[t._v("\\"),s("span",{pre:!0,attrs:{class:"token attribute-class-name class-name"}},[t._v("BotCommand")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token attribute-class-name class-name"}},[t._v("match")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string single-quoted-string"}},[t._v("'SOS'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")])]),s("span",{pre:!0,attrs:{class:"token delimiter punctuation"}},[t._v("]")])]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function-definition function"}},[t._v("sos")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("bot")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("reply")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string single-quoted-string"}},[t._v("'不许求救!'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])]),t._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[t._v("1")]),s("br"),s("span",{staticClass:"line-number"},[t._v("2")]),s("br"),s("span",{staticClass:"line-number"},[t._v("3")]),s("br"),s("span",{staticClass:"line-number"},[t._v("4")]),s("br"),s("span",{staticClass:"line-number"},[t._v("5")]),s("br")])]),s("h2",{attrs:{id:"reply-快速回复消息"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#reply-快速回复消息"}},[t._v("#")]),t._v(" reply() - 快速回复消息")]),t._v(" "),s("p",[t._v("可能是你在编写插件时最常用的方法,用于快速回复消息。")]),t._v(" "),s("ul",[s("li",[t._v("定义:"),s("code",[t._v("reply($message, int $reply_mode = ZM_REPLY_NONE)")])]),t._v(" "),s("li",[t._v("返回:"),s("code",[t._v("ActionResponse|bool")])])]),t._v(" "),s("p",[t._v("参数说明:")]),t._v(" "),s("ul",[s("li",[s("code",[t._v("$message")]),t._v(":消息内容,可以是字符串或数组,如果是数组,会验证是否为标准的消息段格式。有关消息段格式的说明,见 "),s("RouterLink",{attrs:{to:"/components/bot/message-segment.html"}},[t._v("消息段")]),t._v("。")],1),t._v(" "),s("li",[s("code",[t._v("$reply_mode")]),t._v(":回复模式,可选值为 "),s("code",[t._v("ZM_REPLY_NONE")]),t._v("、"),s("code",[t._v("ZM_REPLY_MENTION")]),t._v("、"),s("code",[t._v("ZM_REPLY_QUOTE")]),t._v(",默认为 "),s("code",[t._v("ZM_REPLY_NONE")]),t._v("。")])]),t._v(" "),s("p",[t._v("回复模式说明:")]),t._v(" "),s("ul",[s("li",[s("code",[t._v("ZM_REPLY_NONE")]),t._v(":仅回复文本本身,直接发送消息。")]),t._v(" "),s("li",[s("code",[t._v("ZM_REPLY_MENTION")]),t._v(":回复并 @ 消息发送者。")]),t._v(" "),s("li",[s("code",[t._v("ZM_REPLY_QUOTE")]),t._v(":回复并引用消息。")])]),t._v(" "),s("p",[t._v("其中 "),s("code",[t._v("$message")]),t._v(" 和下方的 "),s("code",[t._v("sendMessage()")]),t._v(" 内的 "),s("code",[t._v("$message")]),t._v(" 参数格式一致,可参考下方。\n"),s("code",[t._v("$reply_mode")]),t._v(" 可以通过 "),s("code",[t._v("ZM_REPLY_MENTION")]),t._v(" 和 "),s("code",[t._v("ZM_REPLY_QUOTE")]),t._v(" 两个常量来设置,例如:")]),t._v(" "),s("div",{staticClass:"language-php line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-php"}},[s("code",[s("span",{pre:!0,attrs:{class:"token attribute"}},[s("span",{pre:!0,attrs:{class:"token delimiter punctuation"}},[t._v("#[")]),s("span",{pre:!0,attrs:{class:"token attribute-content"}},[s("span",{pre:!0,attrs:{class:"token attribute-class-name class-name"}},[t._v("BotCommand")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token attribute-class-name class-name"}},[t._v("match")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string single-quoted-string"}},[t._v("'测试at'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")])]),s("span",{pre:!0,attrs:{class:"token delimiter punctuation"}},[t._v("]")])]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function-definition function"}},[t._v("testAt")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token class-name class-name-fully-qualified type-declaration"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("\\")]),t._v("BotContext")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token variable"}},[t._v("$ctx")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token variable"}},[t._v("$ctx")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("reply")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string single-quoted-string"}},[t._v("'测试at回复完成'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("ZM_REPLY_MENTION")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token attribute"}},[s("span",{pre:!0,attrs:{class:"token delimiter punctuation"}},[t._v("#[")]),s("span",{pre:!0,attrs:{class:"token attribute-content"}},[s("span",{pre:!0,attrs:{class:"token attribute-class-name class-name"}},[t._v("BotCommand")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token attribute-class-name class-name"}},[t._v("match")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string single-quoted-string"}},[t._v("'测试引用'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")])]),s("span",{pre:!0,attrs:{class:"token delimiter punctuation"}},[t._v("]")])]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function-definition function"}},[t._v("testDefault")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token class-name class-name-fully-qualified type-declaration"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("\\")]),t._v("BotContext")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token variable"}},[t._v("$ctx")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token variable"}},[t._v("$ctx")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("reply")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string single-quoted-string"}},[t._v("'测试引用回复完成'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("ZM_REPLY_QUOTE")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])]),t._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[t._v("1")]),s("br"),s("span",{staticClass:"line-number"},[t._v("2")]),s("br"),s("span",{staticClass:"line-number"},[t._v("3")]),s("br"),s("span",{staticClass:"line-number"},[t._v("4")]),s("br"),s("span",{staticClass:"line-number"},[t._v("5")]),s("br"),s("span",{staticClass:"line-number"},[t._v("6")]),s("br"),s("span",{staticClass:"line-number"},[t._v("7")]),s("br"),s("span",{staticClass:"line-number"},[t._v("8")]),s("br"),s("span",{staticClass:"line-number"},[t._v("9")]),s("br"),s("span",{staticClass:"line-number"},[t._v("10")]),s("br"),s("span",{staticClass:"line-number"},[t._v("11")]),s("br")])]),s("chat-box",{attrs:{"my-chats":[{type:0,content:"测试at"},{type:1,content:"@123456 测试at回复完成"},{type:0,content:"测试引用"},{type:4,quote:"测试引用",content:"测试引用回复完成"}]}}),t._v(" "),s("div",{staticClass:"custom-block warning"},[s("p",{staticClass:"custom-block-title"},[t._v("注意")]),t._v(" "),s("p",[s("code",[t._v("reply()")]),t._v(" 只能运用在 "),s("code",[t._v("BotCommand")]),t._v("、"),s("code",[t._v("BotEvent")]),t._v(" 的回调事件中,如果你想在其他事件中使用,可以使用 "),s("code",[t._v("sendMessage()")]),t._v(" 方法。")])]),t._v(" "),s("h2",{attrs:{id:"sendmessage-发送一条机器人消息"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#sendmessage-发送一条机器人消息"}},[t._v("#")]),t._v(" sendMessage() - 发送一条机器人消息")]),t._v(" "),s("p",[t._v("作为聊天机器人的最主要功能,"),s("code",[t._v("sendMessage()")]),t._v(" 方法可以发送一条消息。")]),t._v(" "),s("ul",[s("li",[t._v("定义:"),s("code",[t._v("sendMessage($message, string $detail_type, array $params = [])")])]),t._v(" "),s("li",[t._v("返回:"),s("code",[t._v("ActionResponse|bool")])])]),t._v(" "),s("p",[t._v("参数说明:")]),t._v(" "),s("ul",[s("li",[s("code",[t._v("$message")]),t._v(":消息内容,可以是字符串或数组,如果是数组,会验证是否为标准的消息段格式。有关消息段格式的说明,见 "),s("RouterLink",{attrs:{to:"/components/bot/message-segment.html"}},[t._v("消息段")]),t._v("。")],1),t._v(" "),s("li",[s("code",[t._v("$detail_type")]),t._v(":消息类型,可选值为 "),s("code",[t._v("private")]),t._v("、"),s("code",[t._v("group")]),t._v("、"),s("code",[t._v("channel")]),t._v(",分别表示私聊、群聊、频道。如果你的机器人实现端有扩展,也可以使用自定义的消息类型。")]),t._v(" "),s("li",[s("code",[t._v("$params")]),t._v(":可选参数,用于指定消息的其他参数,例如 "),s("code",[t._v("group_id")]),t._v("、"),s("code",[t._v("user_id")]),t._v(" 等。")]),t._v(" "),s("li",[s("code",[t._v("ActionResponse|false")]),t._v(":如果发送成功,返回一个 "),s("code",[t._v("ActionResponse")]),t._v(" 对象,否则返回 "),s("code",[t._v("false")]),t._v("。")])]),t._v(" "),s("div",{staticClass:"custom-block tip"},[s("p",{staticClass:"custom-block-title"},[t._v("提示")]),t._v(" "),s("p",[t._v("如果你的 PHP 没有安装 Swoole 扩展且 PHP 版本低于 8.1,那么将无法返回 ActionResponse只能返回 "),s("code",[t._v("true")]),t._v(" 或 "),s("code",[t._v("false")]),t._v("。")])]),t._v(" "),s("p",[t._v("示例:")]),t._v(" "),s("div",{staticClass:"language-php line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-php"}},[s("code",[s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 发送一条私聊消息")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token variable"}},[t._v("$response")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token variable"}},[t._v("$ctx")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("sendMessage")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string single-quoted-string"}},[t._v("'你好'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string single-quoted-string"}},[t._v("'private'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token string single-quoted-string"}},[t._v("'user_id'")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=>")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string single-quoted-string"}},[t._v("'123456'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token variable"}},[t._v("$response")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("instanceof")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name class-name-fully-qualified"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("\\")]),t._v("ActionResponse")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 发送成功")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token variable"}},[t._v("$response")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),s("span",{pre:!0,attrs:{class:"token property"}},[t._v("data")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token string single-quoted-string"}},[t._v("'message_id'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 获取发送的消息 ID")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("else")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 发送失败")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 发送一条多媒体消息,例如图片")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token variable"}},[t._v("$ctx")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("sendMessage")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token class-name static-context"}},[t._v("MessageSegment")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("::")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("image")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token argument-name"}},[t._v("file_id")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string single-quoted-string"}},[t._v("'7815696ecbf1c96e6894b779456d330e'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])]),t._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[t._v("1")]),s("br"),s("span",{staticClass:"line-number"},[t._v("2")]),s("br"),s("span",{staticClass:"line-number"},[t._v("3")]),s("br"),s("span",{staticClass:"line-number"},[t._v("4")]),s("br"),s("span",{staticClass:"line-number"},[t._v("5")]),s("br"),s("span",{staticClass:"line-number"},[t._v("6")]),s("br"),s("span",{staticClass:"line-number"},[t._v("7")]),s("br"),s("span",{staticClass:"line-number"},[t._v("8")]),s("br"),s("span",{staticClass:"line-number"},[t._v("9")]),s("br"),s("span",{staticClass:"line-number"},[t._v("10")]),s("br"),s("span",{staticClass:"line-number"},[t._v("11")]),s("br")])]),s("h2",{attrs:{id:"sendaction-发送一个机器人动作"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#sendaction-发送一个机器人动作"}},[t._v("#")]),t._v(" sendAction() - 发送一个机器人动作")]),t._v(" "),s("p",[s("code",[t._v("sendAction()")]),t._v(" 方法可以发送一个机器人动作,动作的格式和支持的动作列表详见 "),s("a",{attrs:{href:"https://12.onebot.dev/interface/",target:"_blank",rel:"noopener noreferrer"}},[t._v("OneBot12 - 接口定义"),s("OutboundLink")],1),t._v("。")]),t._v(" "),s("ul",[s("li",[t._v("定义:"),s("code",[t._v("sendAction(string $action, array $params = [], ?array $self = null)")])]),t._v(" "),s("li",[t._v("返回:"),s("code",[t._v("ActionResponse|bool")])])]),t._v(" "),s("p",[t._v("参数说明:")]),t._v(" "),s("ul",[s("li",[s("code",[t._v("$action")]),t._v(":动作名称,例如 "),s("code",[t._v("send_message")]),t._v("、"),s("code",[t._v("get_status")]),t._v(" 等。")]),t._v(" "),s("li",[s("code",[t._v("$params")]),t._v(":动作参数,例如 "),s("code",[t._v("message")]),t._v("、"),s("code",[t._v("user_id")]),t._v(" 等。")]),t._v(" "),s("li",[s("code",[t._v("$self")]),t._v(":可选参数,用于指定动作的机器人平台和对应机器人自身 ID如果不指定将使用当前上下文机器人的 ID。")])]),t._v(" "),s("p",[s("code",[t._v("$self")]),t._v(" 参数仅在连接到炸毛框架的 OneBot 12 实现端需要时有效,例如部分机器人实现端支持多机器人占用一个连接,这时必须指定 "),s("code",[t._v("self.user_id")]),t._v(" 和 "),s("code",[t._v("self.platform")]),t._v(" 参数。")]),t._v(" "),s("p",[t._v("示例:")]),t._v(" "),s("div",{staticClass:"language-php line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-php"}},[s("code",[s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 从实现端获取机器人状态,写入终端日志")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token variable"}},[t._v("$response")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token variable"}},[t._v("$ctx")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("sendAction")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string single-quoted-string"}},[t._v("'get_status'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token variable"}},[t._v("$response")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("instanceof")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name class-name-fully-qualified"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("\\")]),t._v("ActionResponse")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 获取成功")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token variable"}},[t._v("$good")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token variable"}},[t._v("$response")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),s("span",{pre:!0,attrs:{class:"token property"}},[t._v("data")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token string single-quoted-string"}},[t._v("'good'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 获取机器人在线状态")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("logger")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("info")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string single-quoted-string"}},[t._v("'机器人状态:'")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(".")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token variable"}},[t._v("$good")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("?")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string single-quoted-string"}},[t._v("'在线'")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string single-quoted-string"}},[t._v("'离线'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("else")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("logger")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("error")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string single-quoted-string"}},[t._v("'获取机器人状态失败'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])]),t._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[t._v("1")]),s("br"),s("span",{staticClass:"line-number"},[t._v("2")]),s("br"),s("span",{staticClass:"line-number"},[t._v("3")]),s("br"),s("span",{staticClass:"line-number"},[t._v("4")]),s("br"),s("span",{staticClass:"line-number"},[t._v("5")]),s("br"),s("span",{staticClass:"line-number"},[t._v("6")]),s("br"),s("span",{staticClass:"line-number"},[t._v("7")]),s("br"),s("span",{staticClass:"line-number"},[t._v("8")]),s("br"),s("span",{staticClass:"line-number"},[t._v("9")]),s("br")])]),s("div",{staticClass:"custom-block tip"},[s("p",{staticClass:"custom-block-title"},[t._v("提示")]),t._v(" "),s("p",[t._v("部分 OneBot 12 实现端支持了较多 OneBot 12 标准以外的扩展动作,这里也可以使用 "),s("code",[t._v("sendAction()")]),t._v(" 方法发送这些扩展动作。\n但动作列表需要自行寻找对应实现端的文档进行查询。")])]),t._v(" "),s("h2",{attrs:{id:"prompt-等待一条消息回复"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#prompt-等待一条消息回复"}},[t._v("#")]),t._v(" prompt() - 等待一条消息回复")]),t._v(" "),s("p",[s("code",[t._v("prompt()")]),t._v(" 方法用处是等待一条用户的回复消息,它会阻塞当前协程,直到用户回复消息或超时。")]),t._v(" "),s("blockquote",[s("p",[t._v("此方法仅在 "),s("code",[t._v("BotCommand")]),t._v(" 或 "),s("code",[t._v("BotEvent")]),t._v(" 内 "),s("code",[t._v("type")]),t._v(" 为 "),s("code",[t._v("message")]),t._v(" 的上下文中有效,且仅可在协程环境可用时使用。")])]),t._v(" "),s("ul",[s("li",[t._v("定义:"),s("code",[t._v("prompt($prompt = '', int $timeout = 600, string $timeout_prompt = '', int $option = ZM_PROMPT_NONE)")])]),t._v(" "),s("li",[t._v("返回:"),s("code",[t._v("MessageSegment[]|string|OneBotEvent")])])]),t._v(" "),s("p",[t._v("参数说明:")]),t._v(" "),s("ul",[s("li",[s("code",[t._v("$prompt")]),t._v(":可选参数,用于指定等待回复时发送的提示消息,如果不指定,将不发送提示消息。")]),t._v(" "),s("li",[s("code",[t._v("$timeout")]),t._v(":可选参数,用于指定等待回复的超时时间,单位为秒,如果不指定,将使用默认的 600 秒。")]),t._v(" "),s("li",[s("code",[t._v("$timeout_prompt")]),t._v(":可选参数,用于指定等待回复超时时发送的提示消息,如果不指定,将不发送提示消息。")]),t._v(" "),s("li",[s("code",[t._v("$option")]),t._v(":可选参数,用于设置 prompt 等待回复提示语句和超时语句的额外选项")])]),t._v(" "),s("p",[t._v("该函数只会在成功时候返回,如果超时,会抛出一个 "),s("code",[t._v("WaitTimeoutException")]),t._v(" 异常,但会被 OneBot 处理器捕获并回复超时消息,使用此功能的开发者无需捕获此异常。")]),t._v(" "),s("p",[t._v("额外选项 "),s("code",[t._v("$option")]),t._v(" 说明:")]),t._v(" "),s("ul",[s("li",[s("code",[t._v("ZM_PROMPT_NONE")]),t._v(":不附加任何特性,直接回复原内容(默认)。")]),t._v(" "),s("li",[s("code",[t._v("ZM_PROMPT_MENTION_USER")]),t._v(":在发送 "),s("code",[t._v("$prompt")]),t._v(" 消息时,在消息前添加一个 at 该用户。(如果 "),s("code",[t._v("$prompt")]),t._v(" 为空则该参数无效)")]),t._v(" "),s("li",[s("code",[t._v("ZM_PROMPT_QUOTE_USER")]),t._v(":在发送 "),s("code",[t._v("$prompt")]),t._v(" 消息时,引用当前上下文绑定的那条用户消息。(如果 "),s("code",[t._v("$prompt")]),t._v(" 为空则该参数无效)")]),t._v(" "),s("li",[s("code",[t._v("ZM_PROMPT_TIMEOUT_MENTION_USER")]),t._v(":在询问参数超时时,如果超时的消息不为空则在超时的消息前添加一个 at 该用户。")]),t._v(" "),s("li",[s("code",[t._v("ZM_PROMPT_TIMEOUT_QUOTE_SELF")]),t._v(":在询问参数超时时,如果 "),s("code",[t._v("$timeout_prompt")]),t._v(" 和 "),s("code",[t._v("$prompt")]),t._v(" 均不为空,则在发送超时提示语时引用自己发送的 "),s("code",[t._v("$prompt")]),t._v(" 提示语。")]),t._v(" "),s("li",[s("code",[t._v("ZM_PROMPT_TIMEOUT_QUOTE_USER")]),t._v(":在询问参数超时时,如果超时的消息不为空则引用用户最开始触发该注解的消息。")]),t._v(" "),s("li",[s("code",[t._v("ZM_PROMPT_RETURN_STRING")]),t._v(":在获取到询问回复时,该函数返回消息的字符串格式。")]),t._v(" "),s("li",[s("code",[t._v("ZM_PROMPT_RETURN_ARRAY")]),t._v(":在获取到询问回复时,该函数返回消息的消息段格式(默认)。")]),t._v(" "),s("li",[s("code",[t._v("ZM_PROMPT_RETURN_EVENT")]),t._v(":在获取到询问回复时,该函数返回消息对应的 OneBotEvent 对象格式。")])]),t._v(" "),s("p",[t._v("示例:")]),t._v(" "),s("div",{staticClass:"language-php line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-php"}},[s("code",[s("span",{pre:!0,attrs:{class:"token attribute"}},[s("span",{pre:!0,attrs:{class:"token delimiter punctuation"}},[t._v("#[")]),s("span",{pre:!0,attrs:{class:"token attribute-content"}},[t._v("\\"),s("span",{pre:!0,attrs:{class:"token attribute-class-name class-name"}},[t._v("BotCommand")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token attribute-class-name class-name"}},[t._v("match")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string single-quoted-string"}},[t._v("'测试段'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")])]),s("span",{pre:!0,attrs:{class:"token delimiter punctuation"}},[t._v("]")])]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function-definition function"}},[t._v("testSegment")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token class-name class-name-fully-qualified type-declaration"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("\\")]),t._v("BotContext")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token variable"}},[t._v("$ctx")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 等待用户回复一条消息")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token variable"}},[t._v("$reply")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token variable"}},[t._v("$ctx")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("prompt")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string single-quoted-string"}},[t._v("'请回复一条消息'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 如果用户回复了消息,那么 reply 将是一个消息段数组")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 如果用户没有回复消息,超时了,那下方的代码不会被执行,此处的事件流程将强制中断")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token variable"}},[t._v("$ctx")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("reply")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token string single-quoted-string"}},[t._v("'你回复了:'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("...")]),s("span",{pre:!0,attrs:{class:"token variable"}},[t._v("$reply")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n\n"),s("span",{pre:!0,attrs:{class:"token attribute"}},[s("span",{pre:!0,attrs:{class:"token delimiter punctuation"}},[t._v("#[")]),s("span",{pre:!0,attrs:{class:"token attribute-content"}},[t._v("\\"),s("span",{pre:!0,attrs:{class:"token attribute-class-name class-name"}},[t._v("BotCommand")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token attribute-class-name class-name"}},[t._v("match")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string single-quoted-string"}},[t._v("'测试字符串'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")])]),s("span",{pre:!0,attrs:{class:"token delimiter punctuation"}},[t._v("]")])]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function-definition function"}},[t._v("testString")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token class-name class-name-fully-qualified type-declaration"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("\\")]),t._v("BotContext")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token variable"}},[t._v("$ctx")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 等待用户回复一条消息")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token variable"}},[t._v("$reply")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token variable"}},[t._v("$ctx")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("promptString")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string single-quoted-string"}},[t._v("'请回复一条消息'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("600")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string single-quoted-string"}},[t._v("'你超时了'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 如果用户回复了消息,那么 reply 将是一个字符串")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 如果用户没有回复消息,超时了,那下方的代码不会被执行,此处的事件流程将强制中断")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token variable"}},[t._v("$ctx")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("reply")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string single-quoted-string"}},[t._v("'你回复了:'")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(".")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token variable"}},[t._v("$reply")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token variable"}},[t._v("$reply2")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token variable"}},[t._v("$ctx")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("prompt")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string single-quoted-string"}},[t._v("'请再回复一条消息'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token number"}},[t._v("30")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string single-quoted-string"}},[t._v("'你又超时了'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ZM_PROMPT_RETURN_STRING")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("|")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("ZM_PROMPT_TIMEOUT_QUOTE_SELF")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])]),t._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[t._v("1")]),s("br"),s("span",{staticClass:"line-number"},[t._v("2")]),s("br"),s("span",{staticClass:"line-number"},[t._v("3")]),s("br"),s("span",{staticClass:"line-number"},[t._v("4")]),s("br"),s("span",{staticClass:"line-number"},[t._v("5")]),s("br"),s("span",{staticClass:"line-number"},[t._v("6")]),s("br"),s("span",{staticClass:"line-number"},[t._v("7")]),s("br"),s("span",{staticClass:"line-number"},[t._v("8")]),s("br"),s("span",{staticClass:"line-number"},[t._v("9")]),s("br"),s("span",{staticClass:"line-number"},[t._v("10")]),s("br"),s("span",{staticClass:"line-number"},[t._v("11")]),s("br"),s("span",{staticClass:"line-number"},[t._v("12")]),s("br"),s("span",{staticClass:"line-number"},[t._v("13")]),s("br"),s("span",{staticClass:"line-number"},[t._v("14")]),s("br"),s("span",{staticClass:"line-number"},[t._v("15")]),s("br"),s("span",{staticClass:"line-number"},[t._v("16")]),s("br"),s("span",{staticClass:"line-number"},[t._v("17")]),s("br"),s("span",{staticClass:"line-number"},[t._v("18")]),s("br"),s("span",{staticClass:"line-number"},[t._v("19")]),s("br"),s("span",{staticClass:"line-number"},[t._v("20")]),s("br")])]),s("chat-box",{attrs:{"my-chats":[{type:0,content:"测试段"},{type:1,content:"请回复一条消息"},{type:0,content:"test"},{type:1,content:"你回复了test"},{type:0,content:"测试字符串"},{type:1,content:"请回复一条消息"},{type:2,content:"等待 600 秒以上"},{type:1,content:"你超时了"},{type:0,content:"测试字符串"},{type:1,content:"请回复一条消息"},{type:0,content:"abab"},{type:1,content:"你回复了abab"},{type:1,content:"请再回复一条消息"},{type:2,content:"等待 30 秒以上"},{type:4,quote:"请再回复一条消息",content:"你又超时了"}]}}),t._v(" "),s("h2",{attrs:{id:"promptstring-等待一条消息回复并以字符串格式返回"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#promptstring-等待一条消息回复并以字符串格式返回"}},[t._v("#")]),t._v(" promptString() - 等待一条消息回复并以字符串格式返回")]),t._v(" "),s("p",[t._v("该方法参数完全等同 "),s("code",[t._v("prompt()")]),t._v(",只是在返回的值方面,此方法会返回 string 类型,等同于 "),s("code",[t._v("$option")]),t._v(" 参数设置了 "),s("code",[t._v("ZM_PROMPT_RETURN_STRING")]),t._v(" 参数。")]),t._v(" "),s("h2",{attrs:{id:"hasreplied-检查是否已回复"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#hasreplied-检查是否已回复"}},[t._v("#")]),t._v(" hasReplied() - 检查是否已回复")]),t._v(" "),s("p",[s("code",[t._v("hasReplied()")]),t._v(" 方法用处是检查当前事件是否已经回复过消息,如果已经回复过消息(即调用过 "),s("code",[t._v("reply()")]),t._v("),那么这里将返回 "),s("code",[t._v("true")]),t._v(",否则返回 "),s("code",[t._v("false")]),t._v("。")]),t._v(" "),s("ul",[s("li",[t._v("定义:"),s("code",[t._v("hasReplied()")])]),t._v(" "),s("li",[t._v("返回:"),s("code",[t._v("bool")])])]),t._v(" "),s("p",[t._v("示例:")]),t._v(" "),s("div",{staticClass:"language-php line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-php"}},[s("code",[s("span",{pre:!0,attrs:{class:"token attribute"}},[s("span",{pre:!0,attrs:{class:"token delimiter punctuation"}},[t._v("#[")]),s("span",{pre:!0,attrs:{class:"token attribute-content"}},[t._v("\\"),s("span",{pre:!0,attrs:{class:"token attribute-class-name class-name"}},[t._v("BotCommand")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token attribute-class-name class-name"}},[t._v("match")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string single-quoted-string"}},[t._v("'测试消息'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")])]),s("span",{pre:!0,attrs:{class:"token delimiter punctuation"}},[t._v("]")])]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function-definition function"}},[t._v("testMsg")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token class-name class-name-fully-qualified type-declaration"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("\\")]),t._v("BotContext")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token variable"}},[t._v("$ctx")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token variable"}},[t._v("$ctx")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("reply")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string single-quoted-string"}},[t._v("'这是一条消息'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 检查是否已经回复过消息")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("if")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token variable"}},[t._v("$ctx")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("hasReplied")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token variable"}},[t._v("$ctx")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("reply")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string single-quoted-string"}},[t._v("'已经回复过消息了'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("else")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token variable"}},[t._v("$ctx")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("reply")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string single-quoted-string"}},[t._v("'还没有回复过消息'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])]),t._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[t._v("1")]),s("br"),s("span",{staticClass:"line-number"},[t._v("2")]),s("br"),s("span",{staticClass:"line-number"},[t._v("3")]),s("br"),s("span",{staticClass:"line-number"},[t._v("4")]),s("br"),s("span",{staticClass:"line-number"},[t._v("5")]),s("br"),s("span",{staticClass:"line-number"},[t._v("6")]),s("br"),s("span",{staticClass:"line-number"},[t._v("7")]),s("br"),s("span",{staticClass:"line-number"},[t._v("8")]),s("br"),s("span",{staticClass:"line-number"},[t._v("9")]),s("br"),s("span",{staticClass:"line-number"},[t._v("10")]),s("br"),s("span",{staticClass:"line-number"},[t._v("11")]),s("br")])]),s("chat-box",{attrs:{"my-chats":[{type:0,content:"测试消息"},{type:1,content:"这是一条消息"},{type:1,content:"已经回复过消息了"}]}}),t._v(" "),s("h2",{attrs:{id:"getbot-获取其他机器人上下文对象"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#getbot-获取其他机器人上下文对象"}},[t._v("#")]),t._v(" getBot() - 获取其他机器人上下文对象")]),t._v(" "),s("p",[s("code",[t._v("getBot()")]),t._v(" 方法用处是获取其他机器人的上下文,这里的“其他机器人”是指同时连接到框架的其他 OneBot 12 实现端的上下文。")]),t._v(" "),s("p",[t._v("例如你使用了两个 Walle-Q 连接到框架,机器人 QQ 号分别为 123 和 456你在 123 机器人的上下文中要获取 456 机器人的上下文:")]),t._v(" "),s("div",{staticClass:"language-php line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-php"}},[s("code",[s("span",{pre:!0,attrs:{class:"token variable"}},[t._v("$another_ctx")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token variable"}},[t._v("$ctx")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getBot")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token argument-name"}},[t._v("bot_id")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string single-quoted-string"}},[t._v("'456'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token argument-name"}},[t._v("platform")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string single-quoted-string"}},[t._v("'qq'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])]),t._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[t._v("1")]),s("br")])]),s("ul",[s("li",[t._v("定义:"),s("code",[t._v("getBot(string $bot_id, string $platform = '')")])]),t._v(" "),s("li",[t._v("返回:"),s("code",[t._v("\\BotContext")])])]),t._v(" "),s("h2",{attrs:{id:"getparam-获取-botcommand-注解解析出来的参数"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#getparam-获取-botcommand-注解解析出来的参数"}},[t._v("#")]),t._v(" getParam() - 获取 BotCommand 注解解析出来的参数")]),t._v(" "),s("p",[s("code",[t._v("getParam()")]),t._v(" 方法用处是获取 BotCommand 和 CommandArgument 注解解析出来的参数,这里的“参数”是指 BotCommand 注解的 "),s("code",[t._v("param")]),t._v(" 属性。")]),t._v(" "),s("ul",[s("li",[t._v("定义:"),s("code",[t._v("getParam(string $name)")])]),t._v(" "),s("li",[t._v("返回:"),s("code",[t._v("MessageSegment[]|string|null")])])]),t._v(" "),s("p",[t._v("参数 "),s("code",[t._v("$name")]),t._v(" 是参数名,如果参数不存在,将返回 "),s("code",[t._v("null")]),t._v("。")]),t._v(" "),s("p",[t._v("由 CommandArgument 注解解析出来的参数,且 "),s("code",[t._v("required")]),t._v(" 为 "),s("code",[t._v("true")]),t._v(",则对应名字的 param 必定会存在,可以通过对应 CommandArgument 绑定的名字来获取,例如:")]),t._v(" "),s("div",{staticClass:"language-php line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-php"}},[s("code",[s("span",{pre:!0,attrs:{class:"token attribute"}},[s("span",{pre:!0,attrs:{class:"token delimiter punctuation"}},[t._v("#[")]),s("span",{pre:!0,attrs:{class:"token attribute-content"}},[t._v("\\"),s("span",{pre:!0,attrs:{class:"token attribute-class-name class-name"}},[t._v("BotCommand")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token attribute-class-name class-name"}},[t._v("match")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string single-quoted-string"}},[t._v("'测试参数'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")])]),s("span",{pre:!0,attrs:{class:"token delimiter punctuation"}},[t._v("]")])]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token attribute"}},[s("span",{pre:!0,attrs:{class:"token delimiter punctuation"}},[t._v("#[")]),s("span",{pre:!0,attrs:{class:"token attribute-content"}},[t._v("\\"),s("span",{pre:!0,attrs:{class:"token attribute-class-name class-name"}},[t._v("CommandArgument")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token attribute-class-name class-name"}},[t._v("name")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string single-quoted-string"}},[t._v("'param1'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token attribute-class-name class-name"}},[t._v("type")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string single-quoted-string"}},[t._v("'string'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token attribute-class-name class-name"}},[t._v("required")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token attribute-class-name class-name"}},[t._v("true")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")])]),s("span",{pre:!0,attrs:{class:"token delimiter punctuation"}},[t._v("]")])]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function-definition function"}},[t._v("testParam")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token class-name class-name-fully-qualified type-declaration"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("\\")]),t._v("BotContext")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token variable"}},[t._v("$ctx")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token variable"}},[t._v("$ctx")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("reply")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token string single-quoted-string"}},[t._v("'参数1'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("...")]),s("span",{pre:!0,attrs:{class:"token variable"}},[t._v("$ctx")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getParam")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string single-quoted-string"}},[t._v("'param1'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])]),t._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[t._v("1")]),s("br"),s("span",{staticClass:"line-number"},[t._v("2")]),s("br"),s("span",{staticClass:"line-number"},[t._v("3")]),s("br"),s("span",{staticClass:"line-number"},[t._v("4")]),s("br"),s("span",{staticClass:"line-number"},[t._v("5")]),s("br"),s("span",{staticClass:"line-number"},[t._v("6")]),s("br")])]),s("chat-box",{attrs:{"my-chats":[{type:0,content:"测试参数"},{type:1,content:"请输入param1"},{type:0,content:"test"},{type:1,content:"参数1test"},{type:0,content:"测试参数 test123"},{type:1,content:"参数1test123"}]}}),t._v(" "),s("p",[t._v("如果你没有使用 CommandArgument 绑定参数或想获取更多参数,可以使用 "),s("code",[t._v("getParam('.unnamed')")]),t._v(" 方法,这样会返回所有未绑定的参数:")]),t._v(" "),s("div",{staticClass:"language-php line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-php"}},[s("code",[s("span",{pre:!0,attrs:{class:"token attribute"}},[s("span",{pre:!0,attrs:{class:"token delimiter punctuation"}},[t._v("#[")]),s("span",{pre:!0,attrs:{class:"token attribute-content"}},[t._v("\\"),s("span",{pre:!0,attrs:{class:"token attribute-class-name class-name"}},[t._v("BotCommand")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token attribute-class-name class-name"}},[t._v("match")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string single-quoted-string"}},[t._v("'测试参数'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")])]),s("span",{pre:!0,attrs:{class:"token delimiter punctuation"}},[t._v("]")])]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token attribute"}},[s("span",{pre:!0,attrs:{class:"token delimiter punctuation"}},[t._v("#[")]),s("span",{pre:!0,attrs:{class:"token attribute-content"}},[t._v("\\"),s("span",{pre:!0,attrs:{class:"token attribute-class-name class-name"}},[t._v("CommandArgument")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token attribute-class-name class-name"}},[t._v("name")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string single-quoted-string"}},[t._v("'param1'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token attribute-class-name class-name"}},[t._v("type")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string single-quoted-string"}},[t._v("'string'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token attribute-class-name class-name"}},[t._v("required")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token attribute-class-name class-name"}},[t._v("true")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")])]),s("span",{pre:!0,attrs:{class:"token delimiter punctuation"}},[t._v("]")])]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function-definition function"}},[t._v("testParam")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token class-name class-name-fully-qualified type-declaration"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("\\")]),t._v("BotContext")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token variable"}},[t._v("$ctx")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token variable"}},[t._v("$ctx")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("reply")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),s("span",{pre:!0,attrs:{class:"token string single-quoted-string"}},[t._v("'参数1'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("...")]),s("span",{pre:!0,attrs:{class:"token variable"}},[t._v("$ctx")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getParam")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string single-quoted-string"}},[t._v("'param1'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token variable"}},[t._v("$ctx")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("reply")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string single-quoted-string"}},[t._v("'未命名参数列表:['")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(".")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("implode")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string single-quoted-string"}},[t._v("', '")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token variable"}},[t._v("$ctx")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getParam")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token string single-quoted-string"}},[t._v("'.unnamed'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v(".")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string single-quoted-string"}},[t._v("']'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])]),t._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[t._v("1")]),s("br"),s("span",{staticClass:"line-number"},[t._v("2")]),s("br"),s("span",{staticClass:"line-number"},[t._v("3")]),s("br"),s("span",{staticClass:"line-number"},[t._v("4")]),s("br"),s("span",{staticClass:"line-number"},[t._v("5")]),s("br"),s("span",{staticClass:"line-number"},[t._v("6")]),s("br"),s("span",{staticClass:"line-number"},[t._v("7")]),s("br")])]),s("chat-box",{attrs:{"my-chats":[{type:0,content:"测试参数 abc def ghhaha 你好"},{type:1,content:"参数1abc"},{type:1,content:"未命名参数列表:[def, ghhaha, 你好]"}]}}),t._v(" "),s("h2",{attrs:{id:"getparamstring-获取-botcommand-注解解析出来的参数字符串"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#getparamstring-获取-botcommand-注解解析出来的参数字符串"}},[t._v("#")]),t._v(" getParamString() - 获取 BotCommand 注解解析出来的参数字符串")]),t._v(" "),s("p",[s("code",[t._v("getParamString()")]),t._v(" 功能和 "),s("code",[t._v("getParam()")]),t._v(" 完全一样,参数也一模一样,不一样的地方在于这个方法返回的参数都是字符串,而 "),s("code",[t._v("getParam()")]),t._v(" 返回的是 MessageSegment 数组。")]),t._v(" "),s("p",[t._v("一般用于不在意用户返回的其他富文本参数,只需要字符串参数的情况。")]),t._v(" "),s("ul",[s("li",[t._v("定义:"),s("code",[t._v("getParamString(string $name)")])]),t._v(" "),s("li",[t._v("返回:"),s("code",[t._v("string|null")])])]),t._v(" "),s("h2",{attrs:{id:"getparams-获取-botcommand-注解解析出来的所有参数"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#getparams-获取-botcommand-注解解析出来的所有参数"}},[t._v("#")]),t._v(" getParams() - 获取 BotCommand 注解解析出来的所有参数")]),t._v(" "),s("p",[s("code",[t._v("getParams()")]),t._v(" 方法用处是获取 BotCommand 注解解析出来的所有参数,这里的“参数”是指 BotCommand 注解的 "),s("code",[t._v("param")]),t._v(" 属性。")]),t._v(" "),s("ul",[s("li",[t._v("定义:"),s("code",[t._v("getParams()")])]),t._v(" "),s("li",[t._v("返回:"),s("code",[t._v("array")])])]),t._v(" "),s("div",{staticClass:"language-php line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-php"}},[s("code",[s("span",{pre:!0,attrs:{class:"token attribute"}},[s("span",{pre:!0,attrs:{class:"token delimiter punctuation"}},[t._v("#[")]),s("span",{pre:!0,attrs:{class:"token attribute-content"}},[t._v("\\"),s("span",{pre:!0,attrs:{class:"token attribute-class-name class-name"}},[t._v("BotCommand")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token attribute-class-name class-name"}},[t._v("match")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string single-quoted-string"}},[t._v("'测试参数'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")])]),s("span",{pre:!0,attrs:{class:"token delimiter punctuation"}},[t._v("]")])]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token attribute"}},[s("span",{pre:!0,attrs:{class:"token delimiter punctuation"}},[t._v("#[")]),s("span",{pre:!0,attrs:{class:"token attribute-content"}},[t._v("\\"),s("span",{pre:!0,attrs:{class:"token attribute-class-name class-name"}},[t._v("CommandArgument")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token attribute-class-name class-name"}},[t._v("name")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string single-quoted-string"}},[t._v("'param1'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token attribute-class-name class-name"}},[t._v("type")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token string single-quoted-string"}},[t._v("'string'")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token attribute-class-name class-name"}},[t._v("required")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token attribute-class-name class-name"}},[t._v("true")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")])]),s("span",{pre:!0,attrs:{class:"token delimiter punctuation"}},[t._v("]")])]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token function-definition function"}},[t._v("testParam")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token class-name class-name-fully-qualified type-declaration"}},[s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("\\")]),t._v("BotContext")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token variable"}},[t._v("$ctx")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n "),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("logger")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("info")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("json_encode")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token variable"}},[t._v("$ctx")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getParams")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token constant"}},[t._v("JSON_PRETTY_PRINT")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// 假设询问内容为“测试参数 abc def”返回结果")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v('/*\n{\n "param1":[{"type":"text","data":{"text":"abc"}}],\n ".unnamed":[{"type":"text","data":{"text":"def"}}]\n}\n*/')]),t._v("\n")])]),t._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[t._v("1")]),s("br"),s("span",{staticClass:"line-number"},[t._v("2")]),s("br"),s("span",{staticClass:"line-number"},[t._v("3")]),s("br"),s("span",{staticClass:"line-number"},[t._v("4")]),s("br"),s("span",{staticClass:"line-number"},[t._v("5")]),s("br"),s("span",{staticClass:"line-number"},[t._v("6")]),s("br"),s("span",{staticClass:"line-number"},[t._v("7")]),s("br"),s("span",{staticClass:"line-number"},[t._v("8")]),s("br"),s("span",{staticClass:"line-number"},[t._v("9")]),s("br"),s("span",{staticClass:"line-number"},[t._v("10")]),s("br"),s("span",{staticClass:"line-number"},[t._v("11")]),s("br"),s("span",{staticClass:"line-number"},[t._v("12")]),s("br"),s("span",{staticClass:"line-number"},[t._v("13")]),s("br")])]),s("h2",{attrs:{id:"getself-获取当前上下文的机器人信息"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#getself-获取当前上下文的机器人信息"}},[t._v("#")]),t._v(" getSelf() - 获取当前上下文的机器人信息")]),t._v(" "),s("ul",[s("li",[t._v("定义:"),s("code",[t._v("getSelf()")])]),t._v(" "),s("li",[t._v("返回:"),s("code",[t._v("array")])])]),t._v(" "),s("div",{staticClass:"language-php line-numbers-mode"},[s("pre",{pre:!0,attrs:{class:"language-php"}},[s("code",[s("span",{pre:!0,attrs:{class:"token variable"}},[t._v("$self")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),s("span",{pre:!0,attrs:{class:"token variable"}},[t._v("$ctx")]),s("span",{pre:!0,attrs:{class:"token operator"}},[t._v("->")]),s("span",{pre:!0,attrs:{class:"token function"}},[t._v("getSelf")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),s("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),s("span",{pre:!0,attrs:{class:"token comment"}},[t._v('// 返回:["user_id" => "123456", "platform" => "qq"]')]),t._v("\n")])]),t._v(" "),s("div",{staticClass:"line-numbers-wrapper"},[s("span",{staticClass:"line-number"},[t._v("1")]),s("br"),s("span",{staticClass:"line-number"},[t._v("2")]),s("br")])])],1)}),[],!1,null,null,null);s.default=e.exports}}]);