更新原版事件触发

pull/1215/head
Windpicker-owo 2025-08-23 23:21:27 +08:00
parent 8b7d21fa4f
commit 4f6abe86db
4 changed files with 12 additions and 13 deletions

View File

@ -258,10 +258,9 @@ class ChatBot:
logger.info(f"命令处理完成,跳过后续消息处理: {cmd_result}")
return
# 触发 ON_MESSAGE 事件
on_message_event = event_manager.get_event("on_message")
if not await on_message_event.activate(message):
return
result = await event_manager.trigger_event("on_message",message=message)
if not result.all_continue_process():
raise UserWarning(f"插件{result.get_summary().get('stopped_handlers','')}于消息到达时取消了消息处理")
# 确认从接口发来的message是否有自定义的prompt模板信息
if message.message_info.template_info and not message.message_info.template_info.template_default:

View File

@ -206,10 +206,10 @@ class DefaultReplyer:
from src.plugin_system.core.event_manager import event_manager
# 触发 POST_LLM 事件
post_llm_event = event_manager.get_event("post_llm")
if not from_plugin:
if not await post_llm_event.activate(None, prompt, None, stream_id=stream_id):
raise UserWarning("插件于请求前中断了内容生成")
result = await event_manager.trigger_event("post_llm",prompt=prompt,llm_response=llm_response,stream_id=stream_id)
if not result.all_continue_process():
raise UserWarning(f"插件{result.get_summary().get("stopped_handlers","")}于请求前中断了内容生成")
# 4. 调用 LLM 生成回复
content = None
@ -226,10 +226,10 @@ class DefaultReplyer:
from src.plugin_system.core.event_manager import event_manager
# 触发 AFTER_LLM 事件
after_llm_event = event_manager.get_event("on_message")
if not from_plugin:
if not await after_llm_event.activate(None, prompt, llm_response, stream_id=stream_id):
raise UserWarning("插件于请求后取消了内容生成")
result = await event_manager.trigger_event("after_llm",prompt=prompt,llm_response=llm_response,stream_id=stream_id)
if not result.all_continue_process():
raise UserWarning(f"插件{result.get_summary().get("stopped_handlers","")}于请求后取消了内容生成")
except UserWarning as e:
raise e

View File

@ -74,7 +74,7 @@ class BaseEvent:
def __name__(self):
return self.name
async def activate(self, params: dict = {}) -> HandlerResultsCollection:
async def activate(self, **params: dict) -> HandlerResultsCollection:
"""激活事件,执行所有订阅的处理器
Args:

View File

@ -262,12 +262,12 @@ class EventManager:
return {handler.handler_name: handler for handler in event.subscribers}
async def trigger_event(self, event_name: str, params: Dict[str, Any] = None) -> Optional[HandlerResultsCollection]:
async def trigger_event(self, event_name: str, **params: Dict[str, Any]) -> Optional[HandlerResultsCollection]:
"""触发指定事件
Args:
event_name (str): 事件名称
params (Dict[str, Any]): 传递给处理器的参数
**params (Dict[str, Any]): 传递给处理器的参数
Returns:
HandlerResultsCollection: 所有处理器的执行结果事件不存在返回None