diff options
| author | 2021-07-28 14:45:21 +0200 | |
|---|---|---|
| committer | 2021-07-28 14:45:21 +0200 | |
| commit | b2b9d23469960bcf9c8a0e17af7a6c0d51dda58a (patch) | |
| tree | 5dfd2e46e0890b22f3c2142abac1b22606c4b853 | |
| parent | Merge branch 'main' into pr/serverinfoleads (diff) | |
Handle non-existent roles in `join_role_stats`
| -rw-r--r-- | bot/utils/helpers.py | 7 |
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))} |