Skip to content

Commit 1c17e64

Browse files
authored
Merge pull request #645 from HyperGH/patch-6
Separate ApplicationContext.respond() and followup()
2 parents b18324e + 42d2ae4 commit 1c17e64

File tree

1 file changed

+20
-1
lines changed

1 file changed

+20
-1
lines changed

discord/commands/context.py

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,26 @@ def response(self) -> InteractionResponse:
134134

135135
@property
136136
def respond(self):
137-
return self.followup.send if self.response.is_done() else self.interaction.response.send_message
137+
if not self.response.is_done():
138+
return self.interaction.response.send_message
139+
else:
140+
raise RuntimeError(f"Interaction was already issued a response. Try using {type(self).__name__}.send_followup() instead.")
141+
142+
@property
143+
async def send_response(self) -> Callable[..., Union[Interaction, Webhook]]:
144+
"""Callable[..., Union[:class:`~.Interaction`, :class:`~.Webhook`]]: Sends either a response
145+
or a followup response depending if the interaction has been responded to yet or not."""
146+
if not self.response.is_done():
147+
return self.interaction.response.send_message # self.response
148+
else:
149+
return self.followup.send # self.send_followup
150+
151+
@property
152+
def send_followup(self):
153+
if self.response.is_done():
154+
return self.followup.send
155+
else:
156+
raise RuntimeError(f"Interaction was not yet issued a response. Try using {type(self).__name__}.respond() first.")
138157

139158
@property
140159
def defer(self):

0 commit comments

Comments
 (0)