diff --git a/src/Discord.Net.Core/Entities/Interactions/IApplicationCommandOption.cs b/src/Discord.Net.Core/Entities/Interactions/IApplicationCommandOption.cs index 440c4bd6bb..72554fc988 100644 --- a/src/Discord.Net.Core/Entities/Interactions/IApplicationCommandOption.cs +++ b/src/Discord.Net.Core/Entities/Interactions/IApplicationCommandOption.cs @@ -32,6 +32,11 @@ public interface IApplicationCommandOption /// bool? IsRequired { get; } + /// + /// Gets whether or not the option has autocomplete enabled. + /// + bool? IsAutocomplete { get; } + /// /// Gets the smallest number value the user can input. /// diff --git a/src/Discord.Net.Rest/API/Common/ApplicationCommandOption.cs b/src/Discord.Net.Rest/API/Common/ApplicationCommandOption.cs index 1207df282c..d703bd46bb 100644 --- a/src/Discord.Net.Rest/API/Common/ApplicationCommandOption.cs +++ b/src/Discord.Net.Rest/API/Common/ApplicationCommandOption.cs @@ -56,6 +56,7 @@ public ApplicationCommandOption(IApplicationCommandOption cmd) Default = cmd.IsDefault ?? Optional.Unspecified; MinValue = cmd.MinValue ?? Optional.Unspecified; MaxValue = cmd.MaxValue ?? Optional.Unspecified; + Autocomplete = cmd.IsAutocomplete ?? Optional.Unspecified; Name = cmd.Name; Type = cmd.Type; diff --git a/src/Discord.Net.Rest/Entities/Interactions/RestApplicationCommandOption.cs b/src/Discord.Net.Rest/Entities/Interactions/RestApplicationCommandOption.cs index d5c261e0b4..1273b9a1e8 100644 --- a/src/Discord.Net.Rest/Entities/Interactions/RestApplicationCommandOption.cs +++ b/src/Discord.Net.Rest/Entities/Interactions/RestApplicationCommandOption.cs @@ -26,6 +26,9 @@ public class RestApplicationCommandOption : IApplicationCommandOption /// public bool? IsRequired { get; private set; } + /// + public bool? IsAutocomplete { get; private set; } + /// public double? MinValue { get; private set; } @@ -74,6 +77,9 @@ internal void Update(Model model) if (model.MaxValue.IsSpecified) MaxValue = model.MaxValue.Value; + if (model.Autocomplete.IsSpecified) + IsAutocomplete = model.Autocomplete.Value; + Options = model.Options.IsSpecified ? model.Options.Value.Select(Create).ToImmutableArray() : ImmutableArray.Create(); diff --git a/src/Discord.Net.WebSocket/Entities/Interaction/SocketBaseCommand/SocketApplicationCommandOption.cs b/src/Discord.Net.WebSocket/Entities/Interaction/SocketBaseCommand/SocketApplicationCommandOption.cs index a19068d48b..bdb03c8b0c 100644 --- a/src/Discord.Net.WebSocket/Entities/Interaction/SocketBaseCommand/SocketApplicationCommandOption.cs +++ b/src/Discord.Net.WebSocket/Entities/Interaction/SocketBaseCommand/SocketApplicationCommandOption.cs @@ -25,6 +25,8 @@ public class SocketApplicationCommandOption : IApplicationCommandOption /// public bool? IsRequired { get; private set; } + public bool? IsAutocomplete { get; private set; } + /// public double? MinValue { get; private set; } @@ -68,6 +70,8 @@ internal void Update(Model model) MaxValue = model.MaxValue.ToNullable(); + IsAutocomplete = model.Autocomplete.ToNullable(); + Choices = model.Choices.IsSpecified ? model.Choices.Value.Select(SocketApplicationCommandChoice.Create).ToImmutableArray() : ImmutableArray.Create();