@@ -18,7 +18,7 @@ namespace Discord.API | |||||
// New flags prop. this make the response "ephemeral". see https://discord.com/developers/docs/interactions/slash-commands#interaction-response-interactionapplicationcommandcallbackdata | // New flags prop. this make the response "ephemeral". see https://discord.com/developers/docs/interactions/slash-commands#interaction-response-interactionapplicationcommandcallbackdata | ||||
[JsonProperty("flags")] | [JsonProperty("flags")] | ||||
public Optional<int> Flags { get; set; } | |||||
public Optional<MessageFlags> Flags { get; set; } | |||||
[JsonProperty("components")] | [JsonProperty("components")] | ||||
public Optional<API.ActionRowComponent[]> Components { get; set; } | public Optional<API.ActionRowComponent[]> Components { get; set; } | ||||
@@ -28,7 +28,7 @@ namespace Discord.API.Rest | |||||
public Optional<AllowedMentions> AllowedMentions { get; set; } | public Optional<AllowedMentions> AllowedMentions { get; set; } | ||||
[JsonProperty("flags")] | [JsonProperty("flags")] | ||||
public Optional<int> Flags { get; set; } | |||||
public Optional<MessageFlags> Flags { get; set; } | |||||
[JsonProperty("components")] | [JsonProperty("components")] | ||||
public Optional<API.ActionRowComponent[]> Components { get; set; } | public Optional<API.ActionRowComponent[]> Components { get; set; } | ||||
@@ -3628,14 +3628,8 @@ | |||||
<member name="M:Discord.WebSocket.SocketMessageComponent.FollowupAsync(System.String,Discord.Embed[],System.Boolean,System.Boolean,Discord.AllowedMentions,Discord.RequestOptions,Discord.MessageComponent,Discord.Embed)"> | <member name="M:Discord.WebSocket.SocketMessageComponent.FollowupAsync(System.String,Discord.Embed[],System.Boolean,System.Boolean,Discord.AllowedMentions,Discord.RequestOptions,Discord.MessageComponent,Discord.Embed)"> | ||||
<inheritdoc/> | <inheritdoc/> | ||||
</member> | </member> | ||||
<member name="M:Discord.WebSocket.SocketMessageComponent.DeferAsync(Discord.RequestOptions)"> | |||||
<summary> | |||||
Acknowledges this interaction with the <see cref="F:Discord.InteractionResponseType.DeferredUpdateMessage"/>. | |||||
</summary> | |||||
<param name="options">The request options for this async request.</param> | |||||
<returns> | |||||
A task that represents the asynchronous operation of acknowledging the interaction. | |||||
</returns> | |||||
<member name="M:Discord.WebSocket.SocketMessageComponent.DeferAsync(System.Boolean,Discord.RequestOptions)"> | |||||
<inheritdoc/> | |||||
</member> | </member> | ||||
<member name="T:Discord.WebSocket.SocketMessageComponentData"> | <member name="T:Discord.WebSocket.SocketMessageComponentData"> | ||||
<summary> | <summary> | ||||
@@ -3747,13 +3741,8 @@ | |||||
<member name="M:Discord.WebSocket.SocketSlashCommand.FollowupAsync(System.String,Discord.Embed[],System.Boolean,System.Boolean,Discord.AllowedMentions,Discord.RequestOptions,Discord.MessageComponent,Discord.Embed)"> | <member name="M:Discord.WebSocket.SocketSlashCommand.FollowupAsync(System.String,Discord.Embed[],System.Boolean,System.Boolean,Discord.AllowedMentions,Discord.RequestOptions,Discord.MessageComponent,Discord.Embed)"> | ||||
<inheritdoc/> | <inheritdoc/> | ||||
</member> | </member> | ||||
<member name="M:Discord.WebSocket.SocketSlashCommand.DeferAsync(Discord.RequestOptions)"> | |||||
<summary> | |||||
Acknowledges this interaction with the <see cref="F:Discord.InteractionResponseType.DeferredChannelMessageWithSource"/>. | |||||
</summary> | |||||
<returns> | |||||
A task that represents the asynchronous operation of acknowledging the interaction. | |||||
</returns> | |||||
<member name="M:Discord.WebSocket.SocketSlashCommand.DeferAsync(System.Boolean,Discord.RequestOptions)"> | |||||
<inheritdoc/> | |||||
</member> | </member> | ||||
<member name="T:Discord.WebSocket.SocketSlashCommandData"> | <member name="T:Discord.WebSocket.SocketSlashCommandData"> | ||||
<summary> | <summary> | ||||
@@ -3888,10 +3877,12 @@ | |||||
A task that represents the asynchronous operation of acknowledging the interaction. | A task that represents the asynchronous operation of acknowledging the interaction. | ||||
</returns> | </returns> | ||||
</member> | </member> | ||||
<member name="M:Discord.WebSocket.SocketInteraction.DeferAsync(Discord.RequestOptions)"> | |||||
<member name="M:Discord.WebSocket.SocketInteraction.DeferAsync(System.Boolean,Discord.RequestOptions)"> | |||||
<summary> | <summary> | ||||
Acknowledges this interaction. | Acknowledges this interaction. | ||||
</summary> | </summary> | ||||
<param name="ephemeral"><see langword="true"/> to send this message ephemerally, otherwise <see langword="false"/>.</param> | |||||
<param name="options">The request options for this async request.</param> | |||||
<returns> | <returns> | ||||
A task that represents the asynchronous operation of acknowledging the interaction. | A task that represents the asynchronous operation of acknowledging the interaction. | ||||
</returns> | </returns> | ||||
@@ -123,7 +123,7 @@ namespace Discord.WebSocket | |||||
}; | }; | ||||
if (ephemeral) | if (ephemeral) | ||||
response.Data.Value.Flags = 64; | |||||
response.Data.Value.Flags = MessageFlags.Ephemeral; | |||||
await InteractionHelper.SendInteractionResponse(this.Discord, response, this.Id, Token, options); | await InteractionHelper.SendInteractionResponse(this.Discord, response, this.Id, Token, options); | ||||
} | } | ||||
@@ -180,7 +180,7 @@ namespace Discord.WebSocket | |||||
Components = args.Components.IsSpecified | Components = args.Components.IsSpecified | ||||
? args.Components.Value?.Components.Select(x => new API.ActionRowComponent(x)).ToArray() | ? args.Components.Value?.Components.Select(x => new API.ActionRowComponent(x)).ToArray() | ||||
: Optional<API.ActionRowComponent[]>.Unspecified, | : Optional<API.ActionRowComponent[]>.Unspecified, | ||||
Flags = args.Flags.IsSpecified ? (int?)args.Flags.Value ?? Optional<int>.Unspecified : Optional<int>.Unspecified | |||||
Flags = args.Flags.IsSpecified ? args.Flags.Value ?? Optional<MessageFlags>.Unspecified : Optional<MessageFlags>.Unspecified | |||||
} | } | ||||
}; | }; | ||||
@@ -217,23 +217,19 @@ namespace Discord.WebSocket | |||||
}; | }; | ||||
if (ephemeral) | if (ephemeral) | ||||
args.Flags = 64; | |||||
args.Flags = MessageFlags.Ephemeral; | |||||
return await InteractionHelper.SendFollowupAsync(Discord.Rest, args, Token, Channel, options); | return await InteractionHelper.SendFollowupAsync(Discord.Rest, args, Token, Channel, options); | ||||
} | } | ||||
/// <summary> | |||||
/// Acknowledges this interaction with the <see cref="InteractionResponseType.DeferredUpdateMessage"/>. | |||||
/// </summary> | |||||
/// <param name="options">The request options for this async request.</param> | |||||
/// <returns> | |||||
/// A task that represents the asynchronous operation of acknowledging the interaction. | |||||
/// </returns> | |||||
public override Task DeferAsync(RequestOptions options = null) | |||||
/// <inheritdoc/> | |||||
public override Task DeferAsync(bool ephemeral = false, RequestOptions options = null) | |||||
{ | { | ||||
var response = new API.InteractionResponse() | var response = new API.InteractionResponse() | ||||
{ | { | ||||
Type = InteractionResponseType.DeferredUpdateMessage, | Type = InteractionResponseType.DeferredUpdateMessage, | ||||
Data = ephemeral ? new API.InteractionCallbackData() { Flags = MessageFlags.Ephemeral } : Optional<API.InteractionCallbackData>.Unspecified | |||||
}; | }; | ||||
return Discord.Rest.ApiClient.CreateInteractionResponse(response, this.Id, this.Token, options); | return Discord.Rest.ApiClient.CreateInteractionResponse(response, this.Id, this.Token, options); | ||||
@@ -106,7 +106,7 @@ namespace Discord.WebSocket | |||||
}; | }; | ||||
if (ephemeral) | if (ephemeral) | ||||
response.Data.Value.Flags = 64; | |||||
response.Data.Value.Flags = MessageFlags.Ephemeral; | |||||
await InteractionHelper.SendInteractionResponse(this.Discord, response, this.Id, Token, options); | await InteractionHelper.SendInteractionResponse(this.Discord, response, this.Id, Token, options); | ||||
} | } | ||||
@@ -141,22 +141,18 @@ namespace Discord.WebSocket | |||||
}; | }; | ||||
if (ephemeral) | if (ephemeral) | ||||
args.Flags = 64; | |||||
args.Flags = MessageFlags.Ephemeral; | |||||
return await InteractionHelper.SendFollowupAsync(Discord.Rest, args, Token, Channel, options); | return await InteractionHelper.SendFollowupAsync(Discord.Rest, args, Token, Channel, options); | ||||
} | } | ||||
/// <summary> | |||||
/// Acknowledges this interaction with the <see cref="InteractionResponseType.DeferredChannelMessageWithSource"/>. | |||||
/// </summary> | |||||
/// <returns> | |||||
/// A task that represents the asynchronous operation of acknowledging the interaction. | |||||
/// </returns> | |||||
public override Task DeferAsync(RequestOptions options = null) | |||||
/// <inheritdoc/> | |||||
public override Task DeferAsync(bool ephemeral = false, RequestOptions options = null) | |||||
{ | { | ||||
var response = new API.InteractionResponse | var response = new API.InteractionResponse | ||||
{ | { | ||||
Type = InteractionResponseType.DeferredChannelMessageWithSource, | Type = InteractionResponseType.DeferredChannelMessageWithSource, | ||||
Data = ephemeral ? new API.InteractionCallbackData() { Flags = MessageFlags.Ephemeral } : Optional<API.InteractionCallbackData>.Unspecified | |||||
}; | }; | ||||
return Discord.Rest.ApiClient.CreateInteractionResponse(response, this.Id, this.Token, options); | return Discord.Rest.ApiClient.CreateInteractionResponse(response, this.Id, this.Token, options); | ||||
@@ -156,15 +156,17 @@ namespace Discord.WebSocket | |||||
/// A task that represents the asynchronous operation of acknowledging the interaction. | /// A task that represents the asynchronous operation of acknowledging the interaction. | ||||
/// </returns> | /// </returns> | ||||
[Obsolete("This method deprecated, please use DeferAsync instead")] | [Obsolete("This method deprecated, please use DeferAsync instead")] | ||||
public Task AcknowledgeAsync(RequestOptions options = null) => DeferAsync(options); | |||||
public Task AcknowledgeAsync(RequestOptions options = null) => DeferAsync(options: options); | |||||
/// <summary> | /// <summary> | ||||
/// Acknowledges this interaction. | /// Acknowledges this interaction. | ||||
/// </summary> | /// </summary> | ||||
/// <param name="ephemeral"><see langword="true"/> to send this message ephemerally, otherwise <see langword="false"/>.</param> | |||||
/// <param name="options">The request options for this async request.</param> | |||||
/// <returns> | /// <returns> | ||||
/// A task that represents the asynchronous operation of acknowledging the interaction. | /// A task that represents the asynchronous operation of acknowledging the interaction. | ||||
/// </returns> | /// </returns> | ||||
public abstract Task DeferAsync(RequestOptions options = null); | |||||
public abstract Task DeferAsync(bool ephemeral = false, RequestOptions options = null); | |||||
private bool CheckToken() | private bool CheckToken() | ||||
{ | { | ||||