fix annotation handler call, for better DI process

This commit is contained in:
crazywhalecc
2023-03-11 19:52:12 +08:00
committed by Jerry
parent 560505bb4a
commit cb3d2ee950
2 changed files with 4 additions and 3 deletions

View File

@@ -58,8 +58,8 @@ trait BotActionTrait
// 调用事件在回复之前的回调 // 调用事件在回复之前的回调
$handler = new AnnotationHandler(BotAction::class); $handler = new AnnotationHandler(BotAction::class);
container()->set(Action::class, $a); container()->set(Action::class, $a);
$handler->setRuleCallback(fn (BotAction $act) => $act->action === '' || $act->action === $action && !$act->need_response); $handler->setRuleCallback(fn (BotAction $act) => ($act->action === '' || $act->action === $action) && !$act->need_response);
$handler->handleAll($a); $handler->handleAll();
// 被阻断时候,就不发送了 // 被阻断时候,就不发送了
if ($handler->getStatus() === AnnotationHandler::STATUS_INTERRUPTED) { if ($handler->getStatus() === AnnotationHandler::STATUS_INTERRUPTED) {
return false; return false;

View File

@@ -430,7 +430,8 @@ class OneBot12Adapter extends ZMPlugin
return ($event->retcode === null || $event->retcode === $resp->retcode) return ($event->retcode === null || $event->retcode === $resp->retcode)
&& ($event->status === null || $event->status === $resp->status); && ($event->status === null || $event->status === $resp->status);
}); });
$handler->handleAll($resp); container()->set(ActionResponse::class, $resp);
$handler->handleAll();
// 如果有协程,并且该 echo 记录在案的话,就恢复协程 // 如果有协程,并且该 echo 记录在案的话,就恢复协程
BotContext::tryResume($resp); BotContext::tryResume($resp);