Fixed GUILD_MEMBERS_CHUNK and channel desync
This commit is contained in:
@@ -1,9 +1,12 @@
|
|||||||
using Newtonsoft.Json;
|
using Discord.API.Converters;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
|
||||||
namespace Discord.API.Client.GatewaySocket
|
namespace Discord.API.Client.GatewaySocket
|
||||||
{
|
{
|
||||||
public sealed class GuildMembersChunkEvent
|
public sealed class GuildMembersChunkEvent
|
||||||
{
|
{
|
||||||
|
[JsonProperty("guild_id"), JsonConverter(typeof(LongStringConverter))]
|
||||||
|
public ulong GuildId { get; set; }
|
||||||
[JsonProperty("members")]
|
[JsonProperty("members")]
|
||||||
public Member[] Members;
|
public Member[] Members;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -322,7 +322,7 @@ namespace Discord
|
|||||||
#region Channels
|
#region Channels
|
||||||
internal void AddChannel(Channel channel)
|
internal void AddChannel(Channel channel)
|
||||||
{
|
{
|
||||||
_channels[channel.Id] = channel;
|
_channels.GetOrAdd(channel.Id, channel);
|
||||||
}
|
}
|
||||||
private Channel RemoveChannel(ulong id)
|
private Channel RemoveChannel(ulong id)
|
||||||
{
|
{
|
||||||
@@ -457,7 +457,7 @@ namespace Discord
|
|||||||
switch (e.Type)
|
switch (e.Type)
|
||||||
{
|
{
|
||||||
//Global
|
//Global
|
||||||
case "READY": //Resync
|
case "READY":
|
||||||
{
|
{
|
||||||
var data = e.Payload.ToObject<ReadyEvent>(_serializer);
|
var data = e.Payload.ToObject<ReadyEvent>(_serializer);
|
||||||
SessionId = data.SessionId;
|
SessionId = data.SessionId;
|
||||||
@@ -639,10 +639,10 @@ namespace Discord
|
|||||||
case "GUILD_MEMBERS_CHUNK":
|
case "GUILD_MEMBERS_CHUNK":
|
||||||
{
|
{
|
||||||
var data = e.Payload.ToObject<GuildMembersChunkEvent>(_serializer);
|
var data = e.Payload.ToObject<GuildMembersChunkEvent>(_serializer);
|
||||||
foreach (var memberData in data.Members)
|
var server = GetServer(data.GuildId);
|
||||||
|
if (server != null)
|
||||||
{
|
{
|
||||||
var server = GetServer(memberData.GuildId.Value);
|
foreach (var memberData in data.Members)
|
||||||
if (server != null)
|
|
||||||
{
|
{
|
||||||
var user = server.AddUser(memberData.User.Id);
|
var user = server.AddUser(memberData.User.Id);
|
||||||
user.Update(memberData);
|
user.Update(memberData);
|
||||||
|
|||||||
Reference in New Issue
Block a user