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
{
public sealed class GuildMembersChunkEvent
{
[JsonProperty("guild_id"), JsonConverter(typeof(LongStringConverter))]
public ulong GuildId { get; set; }
[JsonProperty("members")]
public Member[] Members;
}


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

@@ -322,7 +322,7 @@ namespace Discord
#region Channels
internal void AddChannel(Channel channel)
{
_channels[channel.Id] = channel;
_channels.GetOrAdd(channel.Id, channel);
}
private Channel RemoveChannel(ulong id)
{
@@ -457,7 +457,7 @@ namespace Discord
switch (e.Type)
{
//Global
case "READY": //Resync
case "READY":
{
var data = e.Payload.ToObject<ReadyEvent>(_serializer);
SessionId = data.SessionId;
@@ -639,10 +639,10 @@ namespace Discord
case "GUILD_MEMBERS_CHUNK":
{
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);
user.Update(memberData);


Loading…
Cancel
Save