33 co_await NewThreadAwaitable<InputEventData>();
35 throw DCAException(
"InputEvents::respondToInputEventAsync() Error: Please set an "
36 "input-event-response-type!");
40 if (dataPackage.
type == InputEventResponseType::Deferred_Response) {
45 InputEventData newEvent = InputEvents::respondToInputEvent(dataPackage02);
55 co_return std::move(newEvent);
59 InputEventData newEvent = InputEvents::respondToInputEvent(dataPackage02);
61 co_return std::move(newEvent);
63 switch (dataPackage.
type) {
66 dataPackage02.data.data.flags = 64;
67 co_return InputEvents::respondToInputEvent(dataPackage02);
69 case InputEventResponseType::Deferred_Response: {
71 co_return InputEvents::respondToInputEvent(dataPackage02);
75 co_return InputEvents::respondToInputEvent(dataPackage02);
79 co_return InputEvents::respondToInputEvent(dataPackage02);
83 co_return InputEvents::respondToInputEvent(dataPackage02);
87 co_return InputEvents::respondToInputEvent(dataPackage02);
91 co_return InputEvents::respondToInputEvent(dataPackage02);
95 co_return InputEvents::respondToInputEvent(dataPackage02);
108 co_await NewThreadAwaitable<void>();
114 dataPackageNewer.timeDelay = timeDelayNew;
120 newPackage.
responseType == InputEventResponseType::Deferred_Response) {
123 dataPackageNewer.timeDelay = timeDelayNew;
132 InputEventData dataPackageNewer{};
133 dataPackageNewer.responseType = InputEventResponseType::Deferred_Response;
134 dataPackageNewer.interactionData->applicationId = dataPackage.interactionPackage.applicationId;
135 dataPackageNewer.interactionData->token = dataPackage.interactionPackage.interactionToken;
136 dataPackageNewer.interactionData->channelId = result.channelId;
137 dataPackageNewer.interactionData->message.id = result.referencedMessage->id;
138 dataPackageNewer.interactionData->id = dataPackage.interactionPackage.interactionId;
139 dataPackageNewer.interactionData->user = result.author;
140 return dataPackageNewer;
143 InputEventData InputEvents::respondToInputEvent(CreateInteractionResponseData& dataPackage) {
145 InputEventData dataPackageNewer{};
147 dataPackageNewer.interactionData->applicationId = dataPackage.interactionPackage.applicationId;
148 dataPackageNewer.interactionData->token = dataPackage.interactionPackage.interactionToken;
149 dataPackageNewer.interactionData->id = dataPackage.interactionPackage.interactionId;
150 dataPackageNewer.interactionData->channelId = messageData.channelId;
151 dataPackageNewer.interactionData->user = messageData.author;
152 dataPackageNewer.interactionData->message = messageData;
153 return dataPackageNewer;
156 InputEventData InputEvents::respondToInputEvent(EditInteractionResponseData& dataPackage) {
158 InputEventData dataPackageNewer{};
160 dataPackageNewer.interactionData->applicationId = dataPackage.interactionPackage.applicationId;
161 dataPackageNewer.interactionData->token = dataPackage.interactionPackage.interactionToken;
162 dataPackageNewer.interactionData->id = dataPackage.interactionPackage.interactionId;
163 dataPackageNewer.interactionData->channelId = messageData.channelId;
164 dataPackageNewer.interactionData->user = messageData.author;
165 dataPackageNewer.interactionData->message = messageData;
166 return dataPackageNewer;
169 InputEventData InputEvents::respondToInputEvent(CreateFollowUpMessageData& dataPackage) {
171 InputEventData dataPackageNewer{};
173 dataPackageNewer.interactionData->applicationId = dataPackage.interactionPackage.applicationId;
174 dataPackageNewer.interactionData->token = dataPackage.interactionPackage.interactionToken;
175 dataPackageNewer.interactionData->id = dataPackage.interactionPackage.interactionId;
176 dataPackageNewer.interactionData->channelId = messageData.channelId;
177 dataPackageNewer.interactionData->user = messageData.author;
178 dataPackageNewer.interactionData->message = messageData;
179 return dataPackageNewer;
182 InputEventData InputEvents::respondToInputEvent(EditFollowUpMessageData& dataPackage) {
184 InputEventData dataPackageNewer{};
186 dataPackageNewer.interactionData->applicationId = dataPackage.interactionPackage.applicationId;
187 dataPackageNewer.interactionData->token = dataPackage.interactionPackage.interactionToken;
188 dataPackageNewer.interactionData->id = dataPackage.interactionPackage.interactionId;
189 dataPackageNewer.interactionData->channelId = messageData.channelId;
190 dataPackageNewer.interactionData->user = messageData.author;
191 dataPackageNewer.interactionData->message = messageData;
192 return dataPackageNewer;
195 InputEventData InputEvents::respondToInputEvent(CreateEphemeralInteractionResponseData& dataPackage) {
196 CreateInteractionResponseData dataPackageNew{ dataPackage };
198 InputEventData dataPackageNewer{};
200 dataPackageNewer.interactionData->applicationId = dataPackage.interactionPackage.applicationId;
201 dataPackageNewer.interactionData->token = dataPackage.interactionPackage.interactionToken;
202 dataPackageNewer.interactionData->id = dataPackage.interactionPackage.interactionId;
203 dataPackageNewer.interactionData->channelId = messageData.channelId;
204 dataPackageNewer.interactionData->user = messageData.author;
205 dataPackageNewer.interactionData->message = messageData;
206 return dataPackageNewer;
209 InputEventData InputEvents::respondToInputEvent(CreateEphemeralFollowUpMessageData& dataPackage) {
210 CreateFollowUpMessageData dataPackageNew{ dataPackage };
212 InputEventData dataPackageNewer{};
214 dataPackageNewer.interactionData->applicationId = dataPackage.interactionPackage.applicationId;
215 dataPackageNewer.interactionData->token = dataPackage.interactionPackage.interactionToken;
216 dataPackageNewer.interactionData->id = dataPackage.interactionPackage.interactionId;
217 dataPackageNewer.interactionData->channelId = messageData.channelId;
218 dataPackageNewer.interactionData->user = messageData.author;
219 dataPackageNewer.interactionData->message = messageData;
220 return dataPackageNewer;
@ Deferred_Update_Message
For components, ACK an interaction and edit the original message later; the user does not see a loadi...
@ Application_Command_Autocomplete_Result
Respond to an autocomplete interaction with suggested choices.
@ Update_Message
For components, edit the message the component was attached to.
@ Message_Component
Message component.
@ Application_Command_Autocomplete
Application command autocomplete.
@ Ephemeral_Interaction_Response
Ephemeral Interaction response.
@ Ephemeral_Deferred_Response
Deferred ephemeral response.
@ Interaction_Response
Interaction response.
@ Edit_Interaction_Response
Interaction response edit.
@ Application_Command_AutoComplete_Result
Respond to an autocomplete interaction with suggested choices.
@ Edit_Follow_Up_Message
Follow-up Message edit.
@ Ephemeral_Follow_Up_Message
Ephemeral follow-up Message.
@ Follow_Up_Message
Follow-up Message.
The main namespace for this library.
A CoRoutine - representing a potentially asynchronous operation/function.
void get()
Gets the resulting value of the CoRoutine.
Data representing an input-event, which is any Message or Interaction that is coming into the bot as ...
InputEventResponseType responseType
The type of response that this input value represents.
Data for responding to an input-event.
InputEventResponseType type
The type of response to make.
static CoRoutine< void > deleteInputEventResponseAsync(InputEventData &dataPackage, int32_t timeDelayNew=0)
Deletes a previously sent "input-event-response".
static CoRoutine< InputEventData > respondToInputEventAsync(RespondToInputEventData dataPackage)
Responds to one of a number of types of "InputEvents".
For creating an ephemeral Interaction response.
For creating a deferred Interaction response.
For creating an Interaction response.
For editing an Interaction response.
For deleting an Interaction response.
For creating an ephemeral follow up Message.
For creating a follow up Message.
For editing a follow up Message.
For deleting a follow up Message.
static CoRoutine< Message > createFollowUpMessageAsync(CreateFollowUpMessageData dataPackage)
Creates a follow up Message to an input Interaction.
static CoRoutine< Message > editInteractionResponseAsync(EditInteractionResponseData dataPackage)
Edits an Interaction response.
static CoRoutine< void > deleteFollowUpMessageAsync(DeleteFollowUpMessageData dataPackage)
Deletes a follow up Message.
static CoRoutine< Message > createInteractionResponseAsync(CreateInteractionResponseData dataPackage)
Creates a response to an input Interaction.
static CoRoutine< Message > editFollowUpMessageAsync(EditFollowUpMessageData dataPackage)
Edits a follow up Message.
static CoRoutine< void > deleteInteractionResponseAsync(DeleteInteractionResponseData dataPackage)
Deletes an Interaction respnose.