feat: switch all event emitting logic to new method

This commit is contained in:
Junyan Qin
2025-07-02 11:58:10 +08:00
parent ee3da8aa17
commit e2124054bf
2 changed files with 14 additions and 3 deletions

View File

@@ -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)

View File

@@ -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,