diff --git a/src/Discord.Net.Core/Entities/Invites/IInvite.cs b/src/Discord.Net.Core/Entities/Invites/IInvite.cs index 47ffffacb..292fc5c2b 100644 --- a/src/Discord.Net.Core/Entities/Invites/IInvite.cs +++ b/src/Discord.Net.Core/Entities/Invites/IInvite.cs @@ -56,6 +56,9 @@ namespace Discord /// /// Gets the guild this invite is linked to. /// + /// + /// Guild might have empty properties due to API not returning full guild object. + /// /// /// A guild object representing the guild that the invite points to. /// diff --git a/src/Discord.Net.Rest/API/Common/Guild.cs b/src/Discord.Net.Rest/API/Common/Guild.cs index d091c26a7..e49704d64 100644 --- a/src/Discord.Net.Rest/API/Common/Guild.cs +++ b/src/Discord.Net.Rest/API/Common/Guild.cs @@ -66,7 +66,7 @@ namespace Discord.API [JsonProperty("premium_subscription_count")] public int? PremiumSubscriptionCount { get; set; } [JsonProperty("preferred_locale")] - public string PreferredLocale { get; set; } + public Optional PreferredLocale { get; set; } [JsonProperty("public_updates_channel_id")] public ulong? PublicUpdatesChannelId { get; set; } [JsonProperty("max_video_channel_users")] diff --git a/src/Discord.Net.Rest/API/Common/Invite.cs b/src/Discord.Net.Rest/API/Common/Invite.cs index f9d53bad6..7b797a97d 100644 --- a/src/Discord.Net.Rest/API/Common/Invite.cs +++ b/src/Discord.Net.Rest/API/Common/Invite.cs @@ -7,7 +7,7 @@ namespace Discord.API [JsonProperty("code")] public string Code { get; set; } [JsonProperty("guild")] - public Optional Guild { get; set; } + public Optional Guild { get; set; } [JsonProperty("channel")] public InviteChannel Channel { get; set; } [JsonProperty("inviter")] diff --git a/src/Discord.Net.Rest/API/Common/InviteGuild.cs b/src/Discord.Net.Rest/API/Common/InviteGuild.cs deleted file mode 100644 index 8d63de60d..000000000 --- a/src/Discord.Net.Rest/API/Common/InviteGuild.cs +++ /dev/null @@ -1,47 +0,0 @@ -using Newtonsoft.Json; -using System.Collections.Generic; - -namespace Discord.API -{ - internal class InviteGuild - { - [JsonProperty("id")] - public ulong Id { get; set; } - - [JsonProperty("name")] - public string Name { get; set; } - - [JsonProperty("splash")] - public Optional Splash { get; set; } - - [JsonProperty("banner")] - public Optional BannerHash { get; set; } - - [JsonProperty("description")] - public Optional Description { get; set; } - - [JsonProperty("icon")] - public Optional IconHash { get; set; } - - [JsonProperty("features")] - public GuildFeatures Features { get; set; } - - [JsonProperty("verification_level")] - public VerificationLevel VerificationLevel { get; set; } - - [JsonProperty("vanity_url_code")] - public Optional VanityUrlCode { get; set; } - - [JsonProperty("premium_subscription_count")] - public Optional PremiumSubscriptionCount { get; set; } - - [JsonProperty("nsfw")] - public Optional Nsfw { get; set; } - - [JsonProperty("nsfw_level")] - public NsfwLevel NsfwLevel { get; set; } - - [JsonProperty("welcome_screen")] - public Optional WelcomeScreen { get; set; } - } -} diff --git a/src/Discord.Net.Rest/ClientHelper.cs b/src/Discord.Net.Rest/ClientHelper.cs index 0c8f8c42f..ceed8420e 100644 --- a/src/Discord.Net.Rest/ClientHelper.cs +++ b/src/Discord.Net.Rest/ClientHelper.cs @@ -57,7 +57,7 @@ namespace Discord.Rest { var model = await client.ApiClient.GetInviteAsync(inviteId, options).ConfigureAwait(false); if (model != null) - return RestInviteMetadata.Create(client, null, null, model); + return RestInviteMetadata.Create(client, RestGuild.Create(client, model.Guild.IsSpecified ? model.Guild.Value : null), null, model); return null; } diff --git a/src/Discord.Net.Rest/Entities/Guilds/RestGuild.cs b/src/Discord.Net.Rest/Entities/Guilds/RestGuild.cs index e0e96a104..9bccd4abb 100644 --- a/src/Discord.Net.Rest/Entities/Guilds/RestGuild.cs +++ b/src/Discord.Net.Rest/Entities/Guilds/RestGuild.cs @@ -181,8 +181,8 @@ namespace Discord.Rest MaxMembers = model.MaxMembers.Value; if (model.MaxVideoChannelUsers.IsSpecified) MaxVideoChannelUsers = model.MaxVideoChannelUsers.Value; - PreferredLocale = model.PreferredLocale; - PreferredCulture = new CultureInfo(PreferredLocale); + PreferredLocale = model.PreferredLocale.IsSpecified ? model.PreferredLocale.Value : null; + PreferredCulture = model.PreferredLocale.IsSpecified ? new CultureInfo(PreferredLocale) : null; if (model.ApproximateMemberCount.IsSpecified) ApproximateMemberCount = model.ApproximateMemberCount.Value; if (model.ApproximatePresenceCount.IsSpecified) diff --git a/src/Discord.Net.WebSocket/Entities/Guilds/SocketGuild.cs b/src/Discord.Net.WebSocket/Entities/Guilds/SocketGuild.cs index 7d53619f1..283b46de4 100644 --- a/src/Discord.Net.WebSocket/Entities/Guilds/SocketGuild.cs +++ b/src/Discord.Net.WebSocket/Entities/Guilds/SocketGuild.cs @@ -515,7 +515,7 @@ namespace Discord.WebSocket MaxMembers = model.MaxMembers.Value; if (model.MaxVideoChannelUsers.IsSpecified) MaxVideoChannelUsers = model.MaxVideoChannelUsers.Value; - PreferredLocale = model.PreferredLocale; + PreferredLocale = model.PreferredLocale.IsSpecified ? model.PreferredLocale.Value : null; PreferredCulture = PreferredLocale == null ? null : new CultureInfo(PreferredLocale); if (model.IsBoostProgressBarEnabled.IsSpecified) IsBoostProgressBarEnabled = model.IsBoostProgressBarEnabled.Value;