Browse Source

Raise GuildMembersDownloaded for non-large guilds

tags/1.0.0-rc2
RogueException 8 years ago
parent
commit
6192228378
2 changed files with 11 additions and 5 deletions
  1. +7
    -1
      src/Discord.Net.WebSocket/DiscordSocketClient.cs
  2. +4
    -4
      src/Discord.Net.WebSocket/Entities/Guilds/SocketGuild.cs

+ 7
- 1
src/Discord.Net.WebSocket/DiscordSocketClient.cs 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);


+ 4
- 4
src/Discord.Net.WebSocket/Entities/Guilds/SocketGuild.cs 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)
_ = _downloaderPromise.TrySetResultAsync(true);
/*if (!model.Large)
_ = _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)
_ = _downloaderPromise.TrySetResultAsync(true);
/*if (!model.Large)
_ = _downloaderPromise.TrySetResultAsync(true);*/
} }


internal void Update(ClientState state, EmojiUpdateModel model) internal void Update(ClientState state, EmojiUpdateModel model)


Loading…
Cancel
Save