From f7ae287e40fa21d44ffef2c8e2ca6bbf4bd99b02 Mon Sep 17 00:00:00 2001 From: Soulter <905617992@qq.com> Date: Wed, 12 Feb 2025 00:27:25 +0800 Subject: [PATCH] fix: ensure result is retrieved again to handle potential plugin chain replacements --- astrbot/core/pipeline/result_decorate/stage.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/astrbot/core/pipeline/result_decorate/stage.py b/astrbot/core/pipeline/result_decorate/stage.py index 1d9cca8a..f5a32178 100644 --- a/astrbot/core/pipeline/result_decorate/stage.py +++ b/astrbot/core/pipeline/result_decorate/stage.py @@ -57,7 +57,12 @@ class ResultDecorateStage(Stage): handlers = star_handlers_registry.get_handlers_by_event_type(EventType.OnDecoratingResultEvent) for handler in handlers: await handler.handler(event) - + + # 需要再获取一次。插件可能直接对 chain 进行了替换。 + result = event.get_result() + if result is None: + return + if len(result.chain) > 0: # 回复前缀 if self.reply_prefix: