[Fix] NRE on thread member creation without a guild user in the payload (#3030)
lets hope for the best
This commit is contained in:
@@ -178,14 +178,14 @@ namespace Discord.WebSocket
|
|||||||
member.Update(model);
|
member.Update(model);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
member = SocketThreadUser.Create(Guild, this, model, guildMember);
|
member = SocketThreadUser.Create(Guild, this, model, guildMember ?? Guild.GetUser(model.UserId.GetValueOrDefault(0)));
|
||||||
member.GlobalUser.AddRef();
|
member.GlobalUser?.AddRef();
|
||||||
_members[member.Id] = member;
|
_members[member.Id] = member;
|
||||||
}
|
}
|
||||||
return member;
|
return member;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <inheritdoc />
|
/// <inheritdoc cref="SocketGuildChannel.GetUser"/>
|
||||||
public new SocketThreadUser GetUser(ulong id)
|
public new SocketThreadUser GetUser(ulong id)
|
||||||
{
|
{
|
||||||
var user = Users.FirstOrDefault(x => x.Id == id);
|
var user = Users.FirstOrDefault(x => x.Id == id);
|
||||||
|
|||||||
@@ -251,9 +251,9 @@ namespace Discord.WebSocket
|
|||||||
public override string GetDisplayAvatarUrl(ImageFormat format = ImageFormat.Auto, ushort size = 128)
|
public override string GetDisplayAvatarUrl(ImageFormat format = ImageFormat.Auto, ushort size = 128)
|
||||||
=> GuildUser.GetGuildAvatarUrl() ?? base.GetDisplayAvatarUrl(format, size);
|
=> 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; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gets the guild user of this thread user.
|
/// Gets the guild user of this thread user.
|
||||||
|
|||||||
Reference in New Issue
Block a user