Skip to content

Commit 5e26ef6

Browse files
committed
fix: ensure all defer methods raise the same exceptions
1 parent 9bf59e7 commit 5e26ef6

File tree

1 file changed

+11
-7
lines changed

1 file changed

+11
-7
lines changed

interactions/models/internal/context.py

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -384,8 +384,10 @@ async def defer(self, *, ephemeral: bool = False) -> None:
384384
Args:
385385
ephemeral: Whether the interaction response should be ephemeral.
386386
"""
387-
if self.deferred or self.responded:
388-
raise RuntimeError("Interaction has already been responded to.")
387+
if self.deferred:
388+
raise AlreadyDeferred("Interaction has already been responded to.")
389+
if self.responded:
390+
raise AlreadyResponded("Interaction has already been responded to.")
389391

390392
payload = {"type": CallbackType.DEFERRED_CHANNEL_MESSAGE_WITH_SOURCE}
391393
if ephemeral:
@@ -599,13 +601,15 @@ async def defer(self, *, ephemeral: bool = False, edit_origin: bool = False) ->
599601
ephemeral: Whether the interaction response should be ephemeral.
600602
edit_origin: Whether to edit the original message instead of sending a new one.
601603
"""
602-
if self.deferred or self.responded:
603-
raise RuntimeError("Interaction has already been responded to.")
604+
if self.deferred:
605+
raise AlreadyDeferred("Interaction has already been responded to.")
606+
if self.responded:
607+
raise AlreadyResponded("Interaction has already been responded to.")
604608

605609
payload = {
606-
"type": CallbackType.DEFERRED_CHANNEL_MESSAGE_WITH_SOURCE
607-
if not edit_origin
608-
else CallbackType.DEFERRED_UPDATE_MESSAGE
610+
"type": CallbackType.DEFERRED_UPDATE_MESSAGE
611+
if edit_origin
612+
else CallbackType.DEFERRED_CHANNEL_MESSAGE_WITH_SOURCE
609613
}
610614
if ephemeral:
611615
if edit_origin:

0 commit comments

Comments
 (0)