Add new member objects to events
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
#pragma warning disable CS1591
|
||||
#pragma warning disable CS1591
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
|
||||
@@ -12,10 +12,16 @@ namespace Discord.API
|
||||
public MessageType Type { get; set; }
|
||||
[JsonProperty("channel_id")]
|
||||
public ulong ChannelId { get; set; }
|
||||
// ALWAYS sent on WebSocket messages
|
||||
[JsonProperty("guild_id")]
|
||||
public Optional<ulong> GuildId { get; set; }
|
||||
[JsonProperty("webhook_id")]
|
||||
public Optional<ulong> WebhookId { get; set; }
|
||||
[JsonProperty("author")]
|
||||
public Optional<User> Author { get; set; }
|
||||
// ALWAYS sent on WebSocket messages
|
||||
[JsonProperty("member")]
|
||||
public Optional<GuildMember> Member { get; set; }
|
||||
[JsonProperty("content")]
|
||||
public Optional<string> Content { get; set; }
|
||||
[JsonProperty("timestamp")]
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#pragma warning disable CS1591
|
||||
#pragma warning disable CS1591
|
||||
using Newtonsoft.Json;
|
||||
|
||||
namespace Discord.API
|
||||
@@ -11,6 +11,9 @@ namespace Discord.API
|
||||
public ulong? ChannelId { get; set; }
|
||||
[JsonProperty("user_id")]
|
||||
public ulong UserId { get; set; }
|
||||
// ALWAYS sent over WebSocket, never on REST
|
||||
[JsonProperty("member")]
|
||||
public Optional<GuildMember> Member { get; set; }
|
||||
[JsonProperty("session_id")]
|
||||
public string SessionId { get; set; }
|
||||
[JsonProperty("deaf")]
|
||||
|
||||
@@ -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; }
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user