From 61922283780f590e6893f99739b38b61ec480d00 Mon Sep 17 00:00:00 2001 From: RogueException Date: Thu, 6 Apr 2017 00:03:34 -0300 Subject: [PATCH] Raise GuildMembersDownloaded for non-large guilds --- src/Discord.Net.WebSocket/DiscordSocketClient.cs | 8 +++++++- src/Discord.Net.WebSocket/Entities/Guilds/SocketGuild.cs | 8 ++++---- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/Discord.Net.WebSocket/DiscordSocketClient.cs b/src/Discord.Net.WebSocket/DiscordSocketClient.cs index f2f540d54..96eccacfe 100644 --- a/src/Discord.Net.WebSocket/DiscordSocketClient.cs +++ b/src/Discord.Net.WebSocket/DiscordSocketClient.cs @@ -545,6 +545,12 @@ namespace Discord.WebSocket if (unavailableGuilds != 0) _unavailableGuilds = unavailableGuilds - 1; await GuildAvailableAsync(guild).ConfigureAwait(false); + + if (guild.DownloadedMemberCount >= guild.MemberCount && !guild.DownloaderPromise.IsCompleted) + { + guild.CompleteDownloadUsers(); + await TimedInvokeAsync(_guildMembersDownloadedEvent, nameof(GuildMembersDownloaded), guild).ConfigureAwait(false); + } } else { @@ -879,7 +885,7 @@ namespace Discord.WebSocket foreach (var memberModel in data.Members) guild.AddOrUpdateUser(memberModel); - if (guild.DownloadedMemberCount >= guild.MemberCount) //Finished downloading for there + if (guild.DownloadedMemberCount >= guild.MemberCount && !guild.DownloaderPromise.IsCompleted) { guild.CompleteDownloadUsers(); await TimedInvokeAsync(_guildMembersDownloadedEvent, nameof(GuildMembersDownloaded), guild).ConfigureAwait(false); diff --git a/src/Discord.Net.WebSocket/Entities/Guilds/SocketGuild.cs b/src/Discord.Net.WebSocket/Entities/Guilds/SocketGuild.cs index 6345b8ddb..1c2ee1847 100644 --- a/src/Discord.Net.WebSocket/Entities/Guilds/SocketGuild.cs +++ b/src/Discord.Net.WebSocket/Entities/Guilds/SocketGuild.cs @@ -190,8 +190,8 @@ namespace Discord.WebSocket if (Discord.ApiClient.AuthTokenType != TokenType.User) { var _ = _syncPromise.TrySetResultAsync(true); - if (!model.Large) - _ = _downloaderPromise.TrySetResultAsync(true); + /*if (!model.Large) + _ = _downloaderPromise.TrySetResultAsync(true);*/ } } internal void Update(ClientState state, Model model) @@ -258,8 +258,8 @@ namespace Discord.WebSocket _members = members; var _ = _syncPromise.TrySetResultAsync(true); - if (!model.Large) - _ = _downloaderPromise.TrySetResultAsync(true); + /*if (!model.Large) + _ = _downloaderPromise.TrySetResultAsync(true);*/ } internal void Update(ClientState state, EmojiUpdateModel model)