fix: wire on_timeout so delete_message_after actually deletes
delete_message_after was stored but never read and no on_timeout override existed, so the documented 'delete the message on timeout' never happened. added on_timeout that deletes self.message when the flag is set, swallowing only the expected discord.NotFound (already deleted) / discord.Forbidden (no permission) and letting any unexpected error surface. Signed-off-by: disqualifier <dev@disqualifier.me>
This commit is contained in:
parent
6dae35001e
commit
f6caa6f016
@ -388,3 +388,16 @@ class ButtonPaginator(Generic[PageT_co], discord.ui.View):
|
|||||||
raise TypeError(f"expected Interaction or Messageable, got {obj.__class__.__name__}")
|
raise TypeError(f"expected Interaction or Messageable, got {obj.__class__.__name__}")
|
||||||
|
|
||||||
return self.message
|
return self.message
|
||||||
|
|
||||||
|
async def on_timeout(self) -> None:
|
||||||
|
"""delete the message on timeout when delete_message_after is set
|
||||||
|
|
||||||
|
only the expected discord failures (already deleted, or no permission) are
|
||||||
|
swallowed; an unexpected error surfaces rather than being silently dropped.
|
||||||
|
"""
|
||||||
|
if not self.delete_message_after or self.message is None:
|
||||||
|
return
|
||||||
|
try:
|
||||||
|
await self.message.delete()
|
||||||
|
except (discord.NotFound, discord.Forbidden):
|
||||||
|
pass
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user