Add a reply on failed commands
This commit is contained in:
parent
3e8e034a5a
commit
1a3abc22f8
@ -26,6 +26,15 @@ from mautrix.types import MessageType, EventType
|
|||||||
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[List[str], Tuple[str, ...], Set[str], Callable[[str], bool],
|
AliasesType = Union[List[str], Tuple[str, ...], Set[str], Callable[[str], bool],
|
||||||
Callable[[Any, str], bool]]
|
Callable[[Any, str], bool]]
|
||||||
@ -116,9 +125,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__(self, evt: MaubotMessageEvent, call_args: Dict[str, Any],
|
async def __call_subcommand__(self, evt: MaubotMessageEvent, call_args: Dict[str, Any],
|
||||||
remaining_val: str) -> Tuple[bool, Any]:
|
remaining_val: str) -> Tuple[bool, Any]:
|
||||||
|
Loading…
Reference in New Issue
Block a user