|
@@ -61,12 +61,14 @@ class Arg(Injector[ArgType]):
|
|
|
convert: Callable[[str], ArgType] = str,
|
|
|
required: bool = True,
|
|
|
default: Optional[ArgType] = None,
|
|
|
+ missing_msg: Optional[str] = None,
|
|
|
fail_msg: Optional[str] = None,
|
|
|
):
|
|
|
self.index = index
|
|
|
self.convert = convert
|
|
|
self.required = required
|
|
|
self.default = default
|
|
|
+ self.missing_msg = missing_msg or f"Missing argument {self.index}"
|
|
|
self.fail_msg = fail_msg or "Invalid argument: {}"
|
|
|
|
|
|
def arg_source(self) -> Injector[list[str]]:
|
|
@@ -77,7 +79,7 @@ class Arg(Injector[ArgType]):
|
|
|
arg = (await self.arg_source().inject(message, context))[self.index]
|
|
|
except IndexError:
|
|
|
if self.required:
|
|
|
- RollbotFailure.INVALID_ARGUMENTS.raise_exc(detail=f"Missing argument {self.index}")
|
|
|
+ RollbotFailure.INVALID_ARGUMENTS.raise_exc(detail=self.missing_msg)
|
|
|
else:
|
|
|
return self.default
|
|
|
try:
|