Raise GuildMembersDownloaded for non-large guilds

This commit is contained in:
RogueException
2017-04-06 00:03:34 -03:00
parent 14f0535a43
commit 6192228378
2 changed files with 11 additions and 5 deletions

View File

@@ -545,6 +545,12 @@ namespace Discord.WebSocket
if (unavailableGuilds != 0) if (unavailableGuilds != 0)
_unavailableGuilds = unavailableGuilds - 1; _unavailableGuilds = unavailableGuilds - 1;
await GuildAvailableAsync(guild).ConfigureAwait(false); await GuildAvailableAsync(guild).ConfigureAwait(false);
if (guild.DownloadedMemberCount >= guild.MemberCount && !guild.DownloaderPromise.IsCompleted)
{
guild.CompleteDownloadUsers();
await TimedInvokeAsync(_guildMembersDownloadedEvent, nameof(GuildMembersDownloaded), guild).ConfigureAwait(false);
}
} }
else else
{ {
@@ -879,7 +885,7 @@ namespace Discord.WebSocket
foreach (var memberModel in data.Members) foreach (var memberModel in data.Members)
guild.AddOrUpdateUser(memberModel); guild.AddOrUpdateUser(memberModel);
if (guild.DownloadedMemberCount >= guild.MemberCount) //Finished downloading for there if (guild.DownloadedMemberCount >= guild.MemberCount && !guild.DownloaderPromise.IsCompleted)
{ {
guild.CompleteDownloadUsers(); guild.CompleteDownloadUsers();
await TimedInvokeAsync(_guildMembersDownloadedEvent, nameof(GuildMembersDownloaded), guild).ConfigureAwait(false); await TimedInvokeAsync(_guildMembersDownloadedEvent, nameof(GuildMembersDownloaded), guild).ConfigureAwait(false);

View File

@@ -190,8 +190,8 @@ namespace Discord.WebSocket
if (Discord.ApiClient.AuthTokenType != TokenType.User) if (Discord.ApiClient.AuthTokenType != TokenType.User)
{ {
var _ = _syncPromise.TrySetResultAsync(true); var _ = _syncPromise.TrySetResultAsync(true);
if (!model.Large) /*if (!model.Large)
_ = _downloaderPromise.TrySetResultAsync(true); _ = _downloaderPromise.TrySetResultAsync(true);*/
} }
} }
internal void Update(ClientState state, Model model) internal void Update(ClientState state, Model model)
@@ -258,8 +258,8 @@ namespace Discord.WebSocket
_members = members; _members = members;
var _ = _syncPromise.TrySetResultAsync(true); var _ = _syncPromise.TrySetResultAsync(true);
if (!model.Large) /*if (!model.Large)
_ = _downloaderPromise.TrySetResultAsync(true); _ = _downloaderPromise.TrySetResultAsync(true);*/
} }
internal void Update(ClientState state, EmojiUpdateModel model) internal void Update(ClientState state, EmojiUpdateModel model)