diff options
Diffstat (limited to 'pydis_core')
-rw-r--r-- | pydis_core/utils/members.py | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/pydis_core/utils/members.py b/pydis_core/utils/members.py index b6eacc88..fa8481cc 100644 --- a/pydis_core/utils/members.py +++ b/pydis_core/utils/members.py @@ -18,13 +18,15 @@ async def get_or_fetch_member(guild: discord.Guild, member_id: int) -> typing.Op """ if member := guild.get_member(member_id): log.trace(f"{member} retrieved from cache.") - else: - try: - member = await guild.fetch_member(member_id) - except discord.errors.NotFound: - log.trace(f"Failed to fetch {member_id} from API.") + return member + try: + member = await guild.fetch_member(member_id) + except discord.errors.HTTPException as e: + log.trace(f"Failed to fetch {member_id} from API.") + if e.status in [400, 404]: return None - log.trace(f"{member} fetched from API.") + raise + log.trace(f"{member} fetched from API.") return member |