From e31ba8e75f4923ef9f91bdc978e17b5289979cde Mon Sep 17 00:00:00 2001 From: Armano den Boef Date: Sun, 15 May 2022 16:21:02 +0200 Subject: [PATCH] Patch out NRE's, test on all int types --- .../Entities/Interactions/RestInteraction.cs | 2 +- .../Entities/Users/RestGuildUser.cs | 14 ++++++++------ 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/src/Discord.Net.Rest/Entities/Interactions/RestInteraction.cs b/src/Discord.Net.Rest/Entities/Interactions/RestInteraction.cs index 78c03d4b4..fad49ac68 100644 --- a/src/Discord.Net.Rest/Entities/Interactions/RestInteraction.cs +++ b/src/Discord.Net.Rest/Entities/Interactions/RestInteraction.cs @@ -168,7 +168,7 @@ namespace Discord.Rest { if (model.Member.IsSpecified && model.GuildId.IsSpecified) { - User = RestGuildUser.Create(Discord, Guild, model.Member.Value); + User = RestGuildUser.Create(Discord, Guild, model.Member.Value, (Guild is null) ? model.GuildId.Value : null); } else { diff --git a/src/Discord.Net.Rest/Entities/Users/RestGuildUser.cs b/src/Discord.Net.Rest/Entities/Users/RestGuildUser.cs index 0a4a33099..6c311b6b5 100644 --- a/src/Discord.Net.Rest/Entities/Users/RestGuildUser.cs +++ b/src/Discord.Net.Rest/Entities/Users/RestGuildUser.cs @@ -35,7 +35,7 @@ namespace Discord.Rest /// public DateTimeOffset? PremiumSince => DateTimeUtils.FromTicks(_premiumSinceTicks); /// - public ulong GuildId => Guild.Id; + public ulong GuildId { get; } /// public bool? IsPending { get; private set; } /// @@ -80,14 +80,16 @@ namespace Discord.Rest /// public DateTimeOffset? JoinedAt => DateTimeUtils.FromTicks(_joinedAtTicks); - internal RestGuildUser(BaseDiscordClient discord, IGuild guild, ulong id) + internal RestGuildUser(BaseDiscordClient discord, IGuild guild, ulong id, ulong? guildId = null) : base(discord, id) { - Guild = guild; + if (guild is not null) + Guild = guild; + GuildId = guildId ?? Guild.Id; } - internal static RestGuildUser Create(BaseDiscordClient discord, IGuild guild, Model model) + internal static RestGuildUser Create(BaseDiscordClient discord, IGuild guild, Model model, ulong? guildId = null) { - var entity = new RestGuildUser(discord, guild, model.User.Id); + var entity = new RestGuildUser(discord, guild, model.User.Id, guildId); entity.Update(model); return entity; } @@ -116,7 +118,7 @@ namespace Discord.Rest private void UpdateRoles(ulong[] roleIds) { var roles = ImmutableArray.CreateBuilder(roleIds.Length + 1); - roles.Add(Guild.Id); + roles.Add(GuildId); for (int i = 0; i < roleIds.Length; i++) roles.Add(roleIds[i]); _roleIds = roles.ToImmutable();