aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar D0rs4n <[email protected]>2021-07-28 14:45:21 +0200
committerGravatar D0rs4n <[email protected]>2021-07-28 14:45:21 +0200
commitb2b9d23469960bcf9c8a0e17af7a6c0d51dda58a (patch)
tree5dfd2e46e0890b22f3c2142abac1b22606c4b853
parentMerge branch 'main' into pr/serverinfoleads (diff)
Handle non-existent roles in `join_role_stats`
-rw-r--r--bot/utils/helpers.py7
1 files changed, 5 insertions, 2 deletions
diff --git a/bot/utils/helpers.py b/bot/utils/helpers.py
index b0d17c3b8..cb1d46411 100644
--- a/bot/utils/helpers.py
+++ b/bot/utils/helpers.py
@@ -2,7 +2,7 @@ from abc import ABCMeta
from typing import Dict, List, Optional
from discord import Guild
-from discord.ext.commands import CogMeta
+from discord.ext.commands import BadArgument, CogMeta
class CogABCMeta(CogMeta, ABCMeta):
@@ -37,5 +37,8 @@ def join_role_stats(role_ids: List[int], name: str, guild: Guild) -> Dict[str, i
"""Return a dict object with the number of `members` of each role given, and the `name` for this joined group."""
members = []
for role_id in role_ids:
- members += guild.get_role(role_id).members
+ if (role := guild.get_role(role_id)) is None:
+ raise BadArgument("Unable to fetch role data, the specified role does not exist.")
+ else:
+ members += role.members
return {name: len(set(members))}