fix(event): restore missing method removed in be63e9ed

This commit is contained in:
InfinityPacer
2024-09-22 01:36:26 +08:00
parent 17aa6c674f
commit 748836df23

View File

@@ -105,15 +105,24 @@ class EventManager(metaclass=Singleton):
except Exception as e:
logger.error(f"停止事件处理线程出错:{str(e)} - {traceback.format_exc()}")
def check(self, etype: EventType):
def check(self, etype: Union[EventType, ChainEventType]) -> bool:
"""
检查事件是否存在响应,去除掉被禁用的事件响应
检查是否有启用的事件处理器可以响应某个事件类型
:param etype: 事件类型 (EventType 或 ChainEventType)
:return: 返回是否存在可用的处理器
"""
if etype not in self.__broadcast_subscribers:
return False
handlers = self.__broadcast_subscribers[etype]
return any([handler for handler in handlers.values()
if handler.__qualname__.split(".")[0] not in self.__disabled_handlers])
if isinstance(etype, ChainEventType):
handlers = self.__chain_subscribers.get(etype, [])
return any(
self.__is_handler_enabled(handler)
for _, handler in handlers
)
else:
handlers = self.__broadcast_subscribers.get(etype, [])
return any(
self.__is_handler_enabled(handler)
for handler in handlers
)
def send_event(self, etype: Union[EventType, ChainEventType], data: Optional[Dict] = None,
priority: int = DEFAULT_EVENT_PRIORITY) -> Optional[Event]: