From e2124054bfd5f6254eeed2fe3d363e9efaeb4953 Mon Sep 17 00:00:00 2001 From: Junyan Qin Date: Wed, 2 Jul 2025 11:58:10 +0800 Subject: [PATCH] feat: switch all event emitting logic to new method --- pkg/pipeline/process/handlers/command.py | 11 +++++++++-- pkg/pipeline/wrapper/wrapper.py | 6 +++++- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/pkg/pipeline/process/handlers/command.py b/pkg/pipeline/process/handlers/command.py index a6156946..cc659955 100644 --- a/pkg/pipeline/process/handlers/command.py +++ b/pkg/pipeline/process/handlers/command.py @@ -4,11 +4,12 @@ import typing from .. import handler from ... import entities -from ....plugin import events import langbot_plugin.api.entities.builtin.provider.message as provider_message import langbot_plugin.api.entities.builtin.platform.message as platform_message import langbot_plugin.api.entities.builtin.provider.session as provider_session import langbot_plugin.api.entities.builtin.pipeline.query as pipeline_query +import langbot_plugin.api.entities.context as event_context +import langbot_plugin.api.entities.events as events class CommandHandler(handler.MessageHandler): @@ -33,7 +34,7 @@ class CommandHandler(handler.MessageHandler): else events.GroupCommandSent ) - event_ctx = await self.ap.plugin_mgr.emit_event( + event_ctx = event_context.EventContext( event=event_class( launcher_type=query.launcher_type.value, launcher_id=query.launcher_id, @@ -46,6 +47,12 @@ class CommandHandler(handler.MessageHandler): ) ) + event_ctx_result = await self.ap.plugin_connector.handler.emit_event( + event_ctx.model_dump(serialize_as_any=True) + ) + + event_ctx = event_context.EventContext.parse_from_dict(event_ctx_result['event_context']) + if event_ctx.is_prevented_default(): if event_ctx.event.reply is not None: mc = platform_message.MessageChain(event_ctx.event.reply) diff --git a/pkg/pipeline/wrapper/wrapper.py b/pkg/pipeline/wrapper/wrapper.py index 3608d616..ba17091c 100644 --- a/pkg/pipeline/wrapper/wrapper.py +++ b/pkg/pipeline/wrapper/wrapper.py @@ -108,7 +108,7 @@ class ResponseWrapper(stage.PipelineStage): ) if query.pipeline_config['output']['misc']['track-function-calls']: - event_ctx = await self.ap.plugin_mgr.emit_event( + event_ctx = event_context.EventContext( event=events.NormalMessageResponded( launcher_type=query.launcher_type.value, launcher_id=query.launcher_id, @@ -124,6 +124,10 @@ class ResponseWrapper(stage.PipelineStage): ) ) + event_ctx_result = await self.ap.plugin_connector.handler.emit_event(serialized_event_ctx) + + event_ctx = event_context.EventContext.parse_from_dict(event_ctx_result['event_context']) + if event_ctx.is_prevented_default(): yield entities.StageProcessResult( result_type=entities.ResultType.INTERRUPT,