Skip to content

Commit

Permalink
fix: Add missing AddRef and related (#1859)
Browse files Browse the repository at this point in the history
  • Loading branch information
SubZero0 committed May 28, 2021
1 parent 8b29e0f commit de7f9b5
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 13 deletions.
5 changes: 3 additions & 2 deletions src/Discord.Net.WebSocket/DiscordSocketClient.cs
Original file line number Diff line number Diff line change
Expand Up @@ -775,7 +775,8 @@ private async Task ProcessMessageAsync(GatewayOpCode opCode, int? seq, string ty
break;
case "GUILD_SYNC":
{
await _gatewayLogger.DebugAsync("Received Dispatch (GUILD_SYNC)").ConfigureAwait(false);
await _gatewayLogger.DebugAsync("Ignored Dispatch (GUILD_SYNC)").ConfigureAwait(false);
/*await _gatewayLogger.DebugAsync("Received Dispatch (GUILD_SYNC)").ConfigureAwait(false); //TODO remove? userbot related
var data = (payload as JToken).ToObject<GuildSyncEvent>(_serializer);
var guild = State.GetGuild(data.Id);
if (guild != null)
Expand All @@ -792,7 +793,7 @@ private async Task ProcessMessageAsync(GatewayOpCode opCode, int? seq, string ty
{
await UnknownGuildAsync(type, data.Id).ConfigureAwait(false);
return;
}
}*/
}
break;
case "GUILD_DELETE":
Expand Down
18 changes: 7 additions & 11 deletions src/Discord.Net.WebSocket/Entities/Guilds/SocketGuild.cs
Original file line number Diff line number Diff line change
Expand Up @@ -387,7 +387,8 @@ internal void Update(ClientState state, ExtendedModel model)
for (int i = 0; i < model.Members.Length; i++)
{
var member = SocketGuildUser.Create(this, state, model.Members[i]);
members.TryAdd(member.Id, member);
if (members.TryAdd(member.Id, member))
member.GlobalUser.AddRef();
}
DownloadedMemberCount = members.Count;

Expand Down Expand Up @@ -482,7 +483,7 @@ internal void Update(ClientState state, Model model)
}
_roles = roles;
}
internal void Update(ClientState state, GuildSyncModel model)
/*internal void Update(ClientState state, GuildSyncModel model) //TODO remove? userbot related
{
var members = new ConcurrentDictionary<ulong, SocketGuildUser>(ConcurrentHashSet.DefaultConcurrencyLevel, (int)(model.Members.Length * 1.05));
{
Expand All @@ -502,9 +503,9 @@ internal void Update(ClientState state, GuildSyncModel model)
_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)
{
Expand Down Expand Up @@ -842,16 +843,10 @@ internal SocketGuildUser AddOrUpdateUser(MemberModel model)
else
{
member = SocketGuildUser.Create(this, Discord.State, model);
if (member == null)
throw new InvalidOperationException("SocketGuildUser.Create failed to produce a member"); // TODO 2.2rel: delete this
if (member.GlobalUser == null)
throw new InvalidOperationException("Member was created without global user"); // TODO 2.2rel: delete this
member.GlobalUser.AddRef();
_members[member.Id] = member;
DownloadedMemberCount++;
}
if (member == null)
throw new InvalidOperationException("AddOrUpdateUser failed to produce a user"); // TODO 2.2rel: delete this
return member;
}
internal SocketGuildUser AddOrUpdateUser(PresenceModel model)
Expand Down Expand Up @@ -885,6 +880,7 @@ internal void PurgeGuildUserCache()
if (self != null)
_members.TryAdd(self.Id, self);

_downloaderPromise = new TaskCompletionSource<bool>();
DownloadedMemberCount = _members.Count;

foreach (var member in members)
Expand Down

0 comments on commit de7f9b5

Please sign in to comment.