Add new member objects to events

This commit is contained in:
Christopher F
2018-05-27 16:37:17 -04:00
parent a06e21261c
commit 8fb2c71814
4 changed files with 24 additions and 5 deletions

View File

@@ -1,4 +1,4 @@
#pragma warning disable CS1591
#pragma warning disable CS1591
using Newtonsoft.Json;
namespace Discord.API.Gateway
@@ -9,6 +9,10 @@ namespace Discord.API.Gateway
public ulong UserId { get; set; }
[JsonProperty("channel_id")]
public ulong ChannelId { get; set; }
[JsonProperty("guild_id")]
public ulong GuildId { get; set; }
[JsonProperty("member")]
public GuildMember Member { get; set; }
[JsonProperty("timestamp")]
public int Timestamp { get; set; }
}

View File

@@ -1091,7 +1091,7 @@ namespace Discord.WebSocket
if (author == null)
{
if (guild != null)
author = guild.AddOrUpdateUser(data.Author.Value); //User has no guild-specific data
author = guild.AddOrUpdateUser(data.Member.Value); //per g250k, we can create an entire member now
else if (channel is SocketGroupChannel)
author = (channel as SocketGroupChannel).GetOrAddUser(data.Author.Value);
else
@@ -1361,6 +1361,11 @@ namespace Discord.WebSocket
}
var user = (channel as SocketChannel).GetUser(data.UserId);
if (user == null)
{
if (guild != null)
user = guild.AddOrUpdateUser(data.Member);
}
if (user != null)
await TimedInvokeAsync(_userIsTypingEvent, nameof(UserIsTyping), user, channel).ConfigureAwait(false);
}
@@ -1427,7 +1432,8 @@ namespace Discord.WebSocket
user = guild.GetUser(data.UserId);
if (user == null)
{
await UnknownGuildUserAsync(type, data.UserId, guild.Id).ConfigureAwait(false);
user = guild.AddOrUpdateUser(data.Member.Value); //per g250k, this is always sent
//await UnknownGuildUserAsync(type, data.UserId, guild.Id).ConfigureAwait(false);
return;
}
}