From b085c1501fa7b4affe649f01eb294ccec0864cb5 Mon Sep 17 00:00:00 2001 From: Stonedestroyer <1307729+Stonedestroyer@users.noreply.github.com> Date: Mon, 20 Jan 2020 22:49:46 +0100 Subject: [PATCH] [General] Max amount to roll (#3395) * [General] Rolls max amount Adds max amount to roll. * Removed redundant code. * QA changes * Add typehinting. --- changelog.d/general/3284.bugfix.rst | 1 + redbot/cogs/general/general.py | 14 ++++++++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) create mode 100644 changelog.d/general/3284.bugfix.rst diff --git a/changelog.d/general/3284.bugfix.rst b/changelog.d/general/3284.bugfix.rst new file mode 100644 index 000000000..8b89090ce --- /dev/null +++ b/changelog.d/general/3284.bugfix.rst @@ -0,0 +1 @@ +[General] Adds a maximum amount to roll command. \ No newline at end of file diff --git a/redbot/cogs/general/general.py b/redbot/cogs/general/general.py index 0814525a9..1fbd8f578 100644 --- a/redbot/cogs/general/general.py +++ b/redbot/cogs/general/general.py @@ -2,6 +2,7 @@ import datetime import time from enum import Enum from random import randint, choice +from typing import Final import aiohttp import discord from redbot.core import commands @@ -31,6 +32,9 @@ class RPSParser: self.choice = None +MAX_ROLL: Final[int] = 2 ** 64 - 1 + + @cog_i18n(_) class General(commands.Cog): """General commands.""" @@ -87,15 +91,21 @@ class General(commands.Cog): `` defaults to 100. """ author = ctx.author - if number > 1: + if 1 < number <= MAX_ROLL: n = randint(1, number) await ctx.send( "{author.mention} :game_die: {n} :game_die:".format( author=author, n=humanize_number(n) ) ) - else: + elif number <= 1: await ctx.send(_("{author.mention} Maybe higher than 1? ;P").format(author=author)) + else: + await ctx.send( + _("{author.mention} Max allowed number is {maxamount}.").format( + author=author, maxamount=humanize_number(MAX_ROLL) + ) + ) @commands.command() async def flip(self, ctx, user: discord.Member = None):