fix: 移除不必要的后置钩子注册,简化消息处理逻辑
This commit is contained in:
@@ -120,9 +120,6 @@ class MessageHandler:
|
|||||||
# 注册前置钩子:消息预处理和过滤
|
# 注册前置钩子:消息预处理和过滤
|
||||||
runtime.register_before_hook(self._before_hook)
|
runtime.register_before_hook(self._before_hook)
|
||||||
|
|
||||||
# 注册后置钩子:存储、情绪更新等
|
|
||||||
runtime.register_after_hook(self._after_hook)
|
|
||||||
|
|
||||||
# 注册错误钩子:统一异常处理
|
# 注册错误钩子:统一异常处理
|
||||||
runtime.register_error_hook(self._error_hook)
|
runtime.register_error_hook(self._error_hook)
|
||||||
|
|
||||||
@@ -222,14 +219,6 @@ class MessageHandler:
|
|||||||
await MessageStorage.update_message(dict(envelope))
|
await MessageStorage.update_message(dict(envelope))
|
||||||
raise UserWarning("Echo 消息已处理")
|
raise UserWarning("Echo 消息已处理")
|
||||||
|
|
||||||
async def _after_hook(self, envelope: MessageEnvelope) -> None:
|
|
||||||
"""
|
|
||||||
后置钩子:消息后处理
|
|
||||||
|
|
||||||
在消息处理完成后执行的清理工作
|
|
||||||
"""
|
|
||||||
# 后置处理逻辑(如有需要)
|
|
||||||
pass
|
|
||||||
|
|
||||||
async def _error_hook(self, envelope: MessageEnvelope, exc: BaseException) -> None:
|
async def _error_hook(self, envelope: MessageEnvelope, exc: BaseException) -> None:
|
||||||
"""
|
"""
|
||||||
@@ -486,6 +475,21 @@ class MessageHandler:
|
|||||||
# 处理命令和后续流程
|
# 处理命令和后续流程
|
||||||
await self._process_commands(message, chat)
|
await self._process_commands(message, chat)
|
||||||
|
|
||||||
|
# 触发消息事件
|
||||||
|
result = await event_manager.trigger_event(
|
||||||
|
EventType.ON_MESSAGE,
|
||||||
|
permission_group="SYSTEM",
|
||||||
|
message=message
|
||||||
|
)
|
||||||
|
if result and not result.all_continue_process():
|
||||||
|
raise UserWarning(
|
||||||
|
f"插件{result.get_summary().get('stopped_handlers', '')}于消息到达时取消了消息处理"
|
||||||
|
)
|
||||||
|
|
||||||
|
# 预处理消息
|
||||||
|
await self._preprocess_message(message, chat)
|
||||||
|
|
||||||
|
|
||||||
except UserWarning as uw:
|
except UserWarning as uw:
|
||||||
logger.info(str(uw))
|
logger.info(str(uw))
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
@@ -515,20 +519,6 @@ class MessageHandler:
|
|||||||
logger.info(f"命令处理完成,跳过后续消息处理: {cmd_result}")
|
logger.info(f"命令处理完成,跳过后续消息处理: {cmd_result}")
|
||||||
return
|
return
|
||||||
|
|
||||||
# 触发消息事件
|
|
||||||
result = await event_manager.trigger_event(
|
|
||||||
EventType.ON_MESSAGE,
|
|
||||||
permission_group="SYSTEM",
|
|
||||||
message=message
|
|
||||||
)
|
|
||||||
if result and not result.all_continue_process():
|
|
||||||
raise UserWarning(
|
|
||||||
f"插件{result.get_summary().get('stopped_handlers', '')}于消息到达时取消了消息处理"
|
|
||||||
)
|
|
||||||
|
|
||||||
# 预处理消息
|
|
||||||
await self._preprocess_message(message, chat)
|
|
||||||
|
|
||||||
except UserWarning as uw:
|
except UserWarning as uw:
|
||||||
logger.info(str(uw))
|
logger.info(str(uw))
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
|||||||
Reference in New Issue
Block a user