aboutsummaryrefslogtreecommitdiffstats
path: root/pydis_core
diff options
context:
space:
mode:
Diffstat (limited to 'pydis_core')
-rw-r--r--pydis_core/utils/members.py14
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