aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Hassan Abouelela <[email protected]>2022-11-26 14:40:04 +0400
committerGravatar Hassan Abouelela <[email protected]>2022-11-26 14:40:04 +0400
commit555ed4e9195aae7b5af742c59125833ce8b01b4c (patch)
tree24baa06dbfdb3cb236469f8bf7777835dcb3d01c
parentCatch Failure In Pining Help Starter Message (diff)
Check If Thread Is Closed In wait_for_deletion
The wait_for_deletion utility would try to remove reactions from a message after the timeout expires, which would normally be fine. In threads however, they can be closed while waiting for the timeout to expire. In such a case, the bot will try to remove the reactions after the channel has been closed and fail. A special exception was added for this case to do nothing, since this is only a QoL feature. Signed-off-by: Hassan Abouelela <[email protected]>
-rw-r--r--bot/utils/messages.py9
1 files changed, 8 insertions, 1 deletions
diff --git a/bot/utils/messages.py b/bot/utils/messages.py
index a5ed84351..cc7e6dccb 100644
--- a/bot/utils/messages.py
+++ b/bot/utils/messages.py
@@ -98,7 +98,14 @@ async def wait_for_deletion(
try:
await bot.instance.wait_for('reaction_add', check=check, timeout=timeout)
except asyncio.TimeoutError:
- await message.clear_reactions()
+ try:
+ await message.clear_reactions()
+ except discord.HTTPException as e:
+ if isinstance(message.channel, discord.Thread):
+ # Threads might not be accessible by the time we try to remove the reaction.
+ pass
+ else:
+ raise e
else:
await message.delete()
except discord.NotFound: