diff --git a/src/Discord.Net.WebSocket/API/Gateway/TypingStartEvent.cs b/src/Discord.Net.WebSocket/API/Gateway/TypingStartEvent.cs index 729ea176..c2ced174 100644 --- a/src/Discord.Net.WebSocket/API/Gateway/TypingStartEvent.cs +++ b/src/Discord.Net.WebSocket/API/Gateway/TypingStartEvent.cs @@ -9,9 +9,9 @@ namespace Discord.API.Gateway [JsonProperty("channel_id")] public ulong ChannelId { get; set; } [JsonProperty("guild_id")] - public ulong GuildId { get; set; } + public Optional GuildId { get; set; } [JsonProperty("member")] - public GuildMember Member { get; set; } + public Optional Member { get; set; } [JsonProperty("timestamp")] public int Timestamp { get; set; } } diff --git a/src/Discord.Net.WebSocket/DiscordSocketClient.cs b/src/Discord.Net.WebSocket/DiscordSocketClient.cs index 1de03ecc..bc018c56 100644 --- a/src/Discord.Net.WebSocket/DiscordSocketClient.cs +++ b/src/Discord.Net.WebSocket/DiscordSocketClient.cs @@ -2046,8 +2046,8 @@ namespace Discord.WebSocket var user = (channel as SocketChannel)?.GetUser(data.UserId); if (user == null) { - if (guild != null) - user = guild.AddOrUpdateUser(data.Member); + if (guild != null && data.Member.IsSpecified) + user = guild.AddOrUpdateUser(data.Member.Value); } var cacheableUser = new Cacheable(user, data.UserId, user != null, async () => await GetUserAsync(data.UserId).ConfigureAwait(false));