This commit is contained in:
Gaëlle 2024-08-29 16:47:15 +02:00 committed by GitHub
commit 61bc5ec3ee
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -39,6 +39,15 @@ from mautrix.types import EventType, MessageType
from ..matrix import MaubotMessageEvent from ..matrix import MaubotMessageEvent
from . import event from . import event
class CommandError(Exception):
pass
class CommandFailure(CommandError):
pass
PrefixType = Optional[Union[str, Callable[[], str], Callable[[Any], str]]] PrefixType = Optional[Union[str, Callable[[], str], Callable[[Any], str]]]
AliasesType = Union[ AliasesType = Union[
List[str], Tuple[str, ...], Set[str], Callable[[str], bool], Callable[[Any, str], bool] List[str], Tuple[str, ...], Set[str], Callable[[str], bool], Callable[[Any, str], bool]
@ -150,9 +159,18 @@ class CommandHandler:
await evt.reply(self.__mb_full_help__) await evt.reply(self.__mb_full_help__)
return return
if self.__bound_instance__: try:
return await self.__mb_func__(self.__bound_instance__, evt, **call_args) if self.__bound_instance__:
return await self.__mb_func__(evt, **call_args) return await self.__mb_func__(self.__bound_instance__, evt, **call_args)
return await self.__mb_func__(evt, **call_args)
except CommandFailure as e:
await evt.reply(f"Error: {e}")
except CommandError as e:
await evt.reply(f"Error: {e}")
raise e
except Exception as e:
await evt.reply("An error happened while running the command")
raise e
async def __call_subcommand__( async def __call_subcommand__(
self, evt: MaubotMessageEvent, call_args: Dict[str, Any], remaining_val: str self, evt: MaubotMessageEvent, call_args: Dict[str, Any], remaining_val: str