diff --git a/src/Discord.Net/DiscordClient.cs b/src/Discord.Net/DiscordClient.cs index 6d80d0df3..001c117e4 100644 --- a/src/Discord.Net/DiscordClient.cs +++ b/src/Discord.Net/DiscordClient.cs @@ -142,7 +142,7 @@ namespace Discord } } else - return new DMChannel(this, new User(this, model.Recipient.Value), model); + return new DMChannel(this, new User(model.Recipient.Value), model); } return null; } @@ -150,7 +150,7 @@ namespace Discord public virtual async Task> GetDMChannelsAsync() { var models = await ApiClient.GetMyDMsAsync().ConfigureAwait(false); - return models.Select(x => new DMChannel(this, new User(this, x.Recipient.Value), x)).ToImmutableArray(); + return models.Select(x => new DMChannel(this, new User(x.Recipient.Value), x)).ToImmutableArray(); } /// @@ -198,7 +198,7 @@ namespace Discord { var model = await ApiClient.GetUserAsync(id).ConfigureAwait(false); if (model != null) - return new User(this, model); + return new User(model); return null; } /// @@ -206,7 +206,7 @@ namespace Discord { var model = await ApiClient.GetUserAsync(username, discriminator).ConfigureAwait(false); if (model != null) - return new User(this, model); + return new User(model); return null; } /// @@ -225,7 +225,7 @@ namespace Discord public virtual async Task> QueryUsersAsync(string query, int limit) { var models = await ApiClient.QueryUsersAsync(query, limit).ConfigureAwait(false); - return models.Select(x => new User(this, x)).ToImmutableArray(); + return models.Select(x => new User(x)).ToImmutableArray(); } /// diff --git a/src/Discord.Net/DiscordSocketClient.cs b/src/Discord.Net/DiscordSocketClient.cs index 2a6e31e85..78439acc9 100644 --- a/src/Discord.Net/DiscordSocketClient.cs +++ b/src/Discord.Net/DiscordSocketClient.cs @@ -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 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(_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(_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);