diff --git a/src/Discord.Net.WebSocket/Entities/Channels/SocketThreadChannel.cs b/src/Discord.Net.WebSocket/Entities/Channels/SocketThreadChannel.cs index 3df89d84..5f476d89 100644 --- a/src/Discord.Net.WebSocket/Entities/Channels/SocketThreadChannel.cs +++ b/src/Discord.Net.WebSocket/Entities/Channels/SocketThreadChannel.cs @@ -178,14 +178,14 @@ namespace Discord.WebSocket member.Update(model); else { - member = SocketThreadUser.Create(Guild, this, model, guildMember); - member.GlobalUser.AddRef(); + member = SocketThreadUser.Create(Guild, this, model, guildMember ?? Guild.GetUser(model.UserId.GetValueOrDefault(0))); + member.GlobalUser?.AddRef(); _members[member.Id] = member; } return member; } - /// + /// public new SocketThreadUser GetUser(ulong id) { var user = Users.FirstOrDefault(x => x.Id == id); diff --git a/src/Discord.Net.WebSocket/Entities/Users/SocketThreadUser.cs b/src/Discord.Net.WebSocket/Entities/Users/SocketThreadUser.cs index b5859e77..d87da400 100644 --- a/src/Discord.Net.WebSocket/Entities/Users/SocketThreadUser.cs +++ b/src/Discord.Net.WebSocket/Entities/Users/SocketThreadUser.cs @@ -251,9 +251,9 @@ namespace Discord.WebSocket public override string GetDisplayAvatarUrl(ImageFormat format = ImageFormat.Auto, ushort size = 128) => GuildUser.GetGuildAvatarUrl() ?? base.GetDisplayAvatarUrl(format, size); - internal override SocketGlobalUser GlobalUser { get => GuildUser.GlobalUser; set => GuildUser.GlobalUser = value; } + internal override SocketGlobalUser GlobalUser { get => GuildUser?.GlobalUser; set => GuildUser.GlobalUser = value; } - internal override SocketPresence Presence { get => GuildUser.Presence; set => GuildUser.Presence = value; } + internal override SocketPresence Presence { get => GuildUser?.Presence; set => GuildUser.Presence = value; } /// /// Gets the guild user of this thread user.