|
|
@@ -13,6 +13,7 @@ using System.Collections.Immutable; |
|
|
|
using System.Linq; |
|
|
|
using System.Threading; |
|
|
|
using System.Threading.Tasks; |
|
|
|
using System.Diagnostics; |
|
|
|
|
|
|
|
namespace Discord |
|
|
|
{ |
|
|
@@ -308,7 +309,7 @@ namespace Discord |
|
|
|
internal CachedDMChannel AddDMChannel(API.Channel model, DataStore dataStore, ConcurrentHashSet<ulong> dmChannels) |
|
|
|
{ |
|
|
|
var recipient = GetOrAddUser(model.Recipient.Value, dataStore); |
|
|
|
var channel = recipient.AddDMChannel(model); |
|
|
|
var channel = recipient.AddDMChannel(this, model); |
|
|
|
dataStore.AddChannel(channel); |
|
|
|
dmChannels.TryAdd(model.Id); |
|
|
|
return channel; |
|
|
@@ -334,7 +335,7 @@ namespace Discord |
|
|
|
} |
|
|
|
internal CachedPublicUser GetOrAddUser(API.User model, DataStore dataStore) |
|
|
|
{ |
|
|
|
var user = dataStore.GetOrAddUser(model.Id, _ => new CachedPublicUser(this, model)); |
|
|
|
var user = dataStore.GetOrAddUser(model.Id, _ => new CachedPublicUser(model)); |
|
|
|
user.AddRef(); |
|
|
|
return user; |
|
|
|
} |
|
|
@@ -543,7 +544,7 @@ namespace Discord |
|
|
|
if (guild != null) |
|
|
|
{ |
|
|
|
foreach (var member in guild.Members) |
|
|
|
member.User.RemoveRef(); |
|
|
|
member.User.RemoveRef(this); |
|
|
|
|
|
|
|
await GuildUnavailable.RaiseAsync(guild).ConfigureAwait(false); |
|
|
|
await _gatewayLogger.InfoAsync($"Disconnected from {data.Name}").ConfigureAwait(false); |
|
|
@@ -692,7 +693,7 @@ namespace Discord |
|
|
|
var user = guild.RemoveUser(data.User.Id); |
|
|
|
if (user != null) |
|
|
|
{ |
|
|
|
user.User.RemoveRef(); |
|
|
|
user.User.RemoveRef(this); |
|
|
|
await UserLeft.RaiseAsync(user).ConfigureAwait(false); |
|
|
|
} |
|
|
|
else |
|
|
@@ -813,7 +814,7 @@ namespace Discord |
|
|
|
var data = (payload as JToken).ToObject<GuildBanEvent>(_serializer); |
|
|
|
var guild = DataStore.GetGuild(data.GuildId); |
|
|
|
if (guild != null) |
|
|
|
await UserBanned.RaiseAsync(new User(this, data)).ConfigureAwait(false); |
|
|
|
await UserBanned.RaiseAsync(new User(data)).ConfigureAwait(false); |
|
|
|
else |
|
|
|
{ |
|
|
|
await _gatewayLogger.WarningAsync("GUILD_BAN_ADD referenced an unknown guild.").ConfigureAwait(false); |
|
|
@@ -828,7 +829,7 @@ namespace Discord |
|
|
|
var data = (payload as JToken).ToObject<GuildBanEvent>(_serializer); |
|
|
|
var guild = DataStore.GetGuild(data.GuildId); |
|
|
|
if (guild != null) |
|
|
|
await UserUnbanned.RaiseAsync(new User(this, data)).ConfigureAwait(false); |
|
|
|
await UserUnbanned.RaiseAsync(new User(data)).ConfigureAwait(false); |
|
|
|
else |
|
|
|
{ |
|
|
|
await _gatewayLogger.WarningAsync("GUILD_BAN_REMOVE referenced an unknown guild.").ConfigureAwait(false); |
|
|
|