diff --git a/mirai/models/events.py b/mirai/models/events.py index 2e0f8ea..036b132 100644 --- a/mirai/models/events.py +++ b/mirai/models/events.py @@ -3,7 +3,7 @@ 此模块提供事件模型。 """ from datetime import datetime -from typing import TYPE_CHECKING, Any, Optional, Union, cast +from typing import TYPE_CHECKING, Any, Optional, Type, Union, cast if TYPE_CHECKING: from typing_extensions import Literal @@ -45,6 +45,13 @@ def parse_obj(cls, obj: dict) -> 'Event': except ValueError: return Event(type=obj['type']) + @classmethod + def get_subtype(cls, name: str) -> Type['Event']: + try: + return cast(Type[Event], super().get_subtype(name)) + except ValueError: + return Event + ############################### # Bot Event