diff --git a/src/Discord.Net.Core/Entities/Applications/IApplication.cs b/src/Discord.Net.Core/Entities/Applications/IApplication.cs index 03fe34eb..c8cc695a 100644 --- a/src/Discord.Net.Core/Entities/Applications/IApplication.cs +++ b/src/Discord.Net.Core/Entities/Applications/IApplication.cs @@ -100,6 +100,11 @@ namespace Discord /// int? ApproximateUserInstallCount { get; } + /// + /// Gets the approximate count of the users who have authorized the application. if not returned. + /// + int? ApproximateUserAuthorizationCount { get; } + /// /// Gets the application's discoverability state. /// diff --git a/src/Discord.Net.Rest/API/Common/Application.cs b/src/Discord.Net.Rest/API/Common/Application.cs index 9a797e16..699be08e 100644 --- a/src/Discord.Net.Rest/API/Common/Application.cs +++ b/src/Discord.Net.Rest/API/Common/Application.cs @@ -41,6 +41,9 @@ internal class Application [JsonProperty("approximate_user_install_count")] public Optional ApproximateUserInstallCount { get; set; } + [JsonProperty("approximate_user_authorization_count")] + public Optional ApproximateUserAuthorizationCount { get; set; } + [JsonProperty("guild")] public Optional PartialGuild { get; set; } diff --git a/src/Discord.Net.Rest/Entities/RestApplication.cs b/src/Discord.Net.Rest/Entities/RestApplication.cs index 2c7f734d..ce494112 100644 --- a/src/Discord.Net.Rest/Entities/RestApplication.cs +++ b/src/Discord.Net.Rest/Entities/RestApplication.cs @@ -58,6 +58,9 @@ public class RestApplication : RestEntity, IApplication /// public int? ApproximateUserInstallCount { get; private set; } + /// + public int? ApproximateUserAuthorizationCount { get; private set; } + /// public IReadOnlyCollection RedirectUris { get; private set; } @@ -122,7 +125,7 @@ public class RestApplication : RestEntity, IApplication internal void Update(Model model) { Description = model.Description; - RPCOrigins = model.RPCOrigins.IsSpecified ? model.RPCOrigins.Value.ToImmutableArray() : ImmutableArray.Empty; + RPCOrigins = model.RPCOrigins.IsSpecified ? [..model.RPCOrigins.Value] : ImmutableArray.Empty; Name = model.Name; _iconId = model.Icon; IsBotPublic = model.IsBotPublic.IsSpecified ? model.IsBotPublic.Value : null; @@ -132,7 +135,7 @@ public class RestApplication : RestEntity, IApplication TermsOfService = model.TermsOfService; InstallParams = model.InstallParams.IsSpecified - ? new ApplicationInstallParams(model.InstallParams.Value.Scopes, (GuildPermission)model.InstallParams.Value.Permission) + ? new ApplicationInstallParams(model.InstallParams.Value.Scopes, model.InstallParams.Value.Permission) : null; if (model.Flags.IsSpecified) @@ -154,15 +157,16 @@ public class RestApplication : RestEntity, IApplication if (model.RedirectUris.IsSpecified) RedirectUris = model.RedirectUris.Value.ToImmutableArray(); - ApproximateGuildCount = model.ApproximateGuildCount.IsSpecified ? model.ApproximateGuildCount.Value : null; - ApproximateUserInstallCount = model.ApproximateUserInstallCount.IsSpecified ? model.ApproximateUserInstallCount.Value : null; + ApproximateGuildCount = model.ApproximateGuildCount.ToNullable(); + ApproximateUserInstallCount = model.ApproximateUserInstallCount.ToNullable(); + ApproximateUserAuthorizationCount = model.ApproximateUserAuthorizationCount.ToNullable(); DiscoverabilityState = model.DiscoverabilityState.GetValueOrDefault(ApplicationDiscoverabilityState.None); DiscoveryEligibilityFlags = model.DiscoveryEligibilityFlags.GetValueOrDefault(DiscoveryEligibilityFlags.None); ExplicitContentFilterLevel = model.ExplicitContentFilter.GetValueOrDefault(ApplicationExplicitContentFilterLevel.Disabled); IsHook = model.IsHook; - InteractionEventTypes = model.InteractionsEventTypes.GetValueOrDefault(Array.Empty()).ToImmutableArray(); + InteractionEventTypes = model.InteractionsEventTypes.GetValueOrDefault([]).ToImmutableArray(); InteractionsVersion = model.InteractionsVersion.GetValueOrDefault(ApplicationInteractionsVersion.Version1); IsMonetized = model.IsMonetized; @@ -178,7 +182,7 @@ public class RestApplication : RestEntity, IApplication { foreach (var p in model.IntegrationTypesConfig.Value) { - dict.Add(p.Key, new ApplicationInstallParams(p.Value.Scopes ?? Array.Empty(), p.Value.Permission)); + dict.Add(p.Key, new ApplicationInstallParams(p.Value.Scopes ?? [], p.Value.Permission)); } } IntegrationTypesConfig = dict.ToImmutableDictionary();