From 500cd6ee1a8693892039286521af91da6598e1c1 Mon Sep 17 00:00:00 2001 From: Christopher F Date: Tue, 2 Oct 2018 17:06:36 -0400 Subject: [PATCH] fix: don't assume the member will always be included on MESSAGE_CREATE This resolves #1153. Member objects are only included on a message when the user has transitioned from an offline state to an online state (i think?), so this change will fall back to the prior behavior, where we just create an incomplete member object for these states. --- src/Discord.Net.WebSocket/DiscordSocketClient.cs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/Discord.Net.WebSocket/DiscordSocketClient.cs b/src/Discord.Net.WebSocket/DiscordSocketClient.cs index 81538e6e7..1fcbbd2ff 100644 --- a/src/Discord.Net.WebSocket/DiscordSocketClient.cs +++ b/src/Discord.Net.WebSocket/DiscordSocketClient.cs @@ -1158,7 +1158,12 @@ namespace Discord.WebSocket if (author == null) { if (guild != null) - author = guild.AddOrUpdateUser(data.Member.Value); //per g250k, we can create an entire member now + { + if (data.Member.IsSpecified) // member isn't always specified... + author = guild.AddOrUpdateUser(data.Member.Value); //per g250k, we can create an entire member now + else + author = guild.AddOrUpdateUser(data.Author.Value); // user has no guild-specific data + } else if (channel is SocketGroupChannel) author = (channel as SocketGroupChannel).GetOrAddUser(data.Author.Value); else