Browse Source

Fixed GUILD_MEMBERS_CHUNK and channel desync

tags/docs-0.9
RogueException 9 years ago
parent
commit
75174e67bd
2 changed files with 9 additions and 6 deletions
  1. +4
    -1
      src/Discord.Net/API/Client/GatewaySocket/Events/GuildMembersChunk.cs
  2. +5
    -5
      src/Discord.Net/DiscordClient.cs

+ 4
- 1
src/Discord.Net/API/Client/GatewaySocket/Events/GuildMembersChunk.cs View File

@@ -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;
} }


+ 5
- 5
src/Discord.Net/DiscordClient.cs View File

@@ -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);
if (server != null)
foreach (var memberData in data.Members)
{ {
var user = server.AddUser(memberData.User.Id); var user = server.AddUser(memberData.User.Id);
user.Update(memberData); user.Update(memberData);


Loading…
Cancel
Save