1
Fork 0
mirror of https://github.com/RYGhub/royalnet.git synced 2024-11-23 19:44:20 +00:00

Don't raise an error for invalid roll inputs

This commit is contained in:
Steffo 2020-04-02 18:29:51 +02:00
parent f425be7c95
commit 403e969708

View file

@ -15,14 +15,21 @@ class RollCommand(Command):
async def run(self, args: CommandArgs, data: CommandData) -> None: async def run(self, args: CommandArgs, data: CommandData) -> None:
first: typing.Optional[str] = args.optional(0) first: typing.Optional[str] = args.optional(0)
second: typing.Optional[str] = args.optional(1) second: typing.Optional[str] = args.optional(1)
if second: try:
minimum = int(first) if second:
maximum = int(second) minimum = int(first)
elif first: maximum = int(second)
minimum = 1 elif first:
maximum = int(first) minimum = 1
else: maximum = int(first)
minimum = 1 else:
maximum = 100 minimum = 1
maximum = 100
except ValueError:
if isinstance(first, str) and "d20" in first:
raise InvalidInputError(f"Invalid value specified.\n"
f"Were you looking for [c]{self.interface.prefix}dice[/c]?")
else:
raise InvalidInputError("Invalid value specified.")
result = random.randrange(minimum, maximum+1) result = random.randrange(minimum, maximum+1)
await data.reply(f"🎲 Dice roll [{minimum}-{maximum}]: [b]{result}[/b]") await data.reply(f"🎲 Dice roll [{minimum}-{maximum}]: [b]{result}[/b]")