From 00da7d14fbcb00b54f0b2c897cc18889d83253b0 Mon Sep 17 00:00:00 2001 From: crazywhalecc Date: Tue, 28 Feb 2023 23:40:41 +0800 Subject: [PATCH] add prompt update event option --- src/Globals/global_defines_app.php | 1 + src/ZM/Context/BotContext.php | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/src/Globals/global_defines_app.php b/src/Globals/global_defines_app.php index 5cbb924a..69ba36d9 100644 --- a/src/Globals/global_defines_app.php +++ b/src/Globals/global_defines_app.php @@ -45,6 +45,7 @@ const ZM_PROMPT_TIMEOUT_QUOTE_USER = 16; // 回复超时时引用用户 const ZM_PROMPT_RETURN_STRING = 32; // 回复返回 string 格式 const ZM_PROMPT_RETURN_ARRAY = 0; // 回复返回消息段格式 const ZM_PROMPT_RETURN_EVENT = 64; // 回复返回 prompt 消息所对应的事件对象格式 +const ZM_PROMPT_UPDATE_EVENT = 128; // 在接收到 prompt 后,更新容器内绑定的事件对象 const ZM_PLUGIN_TYPE_NATIVE = 0; // 原生类型的插件,特指内部插件、ZMApplication 继承的插件 const ZM_PLUGIN_TYPE_PHAR = 1; // Phar 类型的插件 diff --git a/src/ZM/Context/BotContext.php b/src/ZM/Context/BotContext.php index 084c8276..bfefd094 100644 --- a/src/ZM/Context/BotContext.php +++ b/src/ZM/Context/BotContext.php @@ -273,6 +273,11 @@ class BotContext implements ContextInterface if (!$result instanceof OneBotEvent || $result->type !== 'message') { throw new OneBot12Exception('Internal error for resuming prompt: unknown type ' . gettype($result)); } + // 更新容器内的事件绑定对象 + if (($option & ZM_PROMPT_UPDATE_EVENT) === ZM_PROMPT_UPDATE_EVENT) { + container()->set(OneBotEvent::class, $result); + container()->set('bot.event', $result); + } // 是否为 string 回复 if (($option & ZM_PROMPT_RETURN_STRING) === ZM_PROMPT_RETURN_STRING) { return $result->getMessageString();