From 9487fba23f3c07eb45f8c861c565096beb17bea1 Mon Sep 17 00:00:00 2001 From: RogueException Date: Sun, 8 Nov 2015 10:38:31 -0400 Subject: [PATCH] Hid old CurrentUser, exposed GlobalUser via CurrentUser --- src/Discord.Net/DiscordClient.Users.cs | 11 +++++++---- src/Discord.Net/DiscordClient.cs | 8 ++++---- src/Discord.Net/Models/Channel.cs | 2 +- src/Discord.Net/Models/GlobalUser.cs | 7 +++---- src/Discord.Net/Models/Message.cs | 2 +- 5 files changed, 16 insertions(+), 14 deletions(-) diff --git a/src/Discord.Net/DiscordClient.Users.cs b/src/Discord.Net/DiscordClient.Users.cs index ac6755417..fae87ed90 100644 --- a/src/Discord.Net/DiscordClient.Users.cs +++ b/src/Discord.Net/DiscordClient.Users.cs @@ -108,9 +108,12 @@ namespace Discord RaiseEvent(nameof(ProfileUpdated), () => ProfileUpdated(this, EventArgs.Empty)); } - /// Returns the current logged-in user. - public User CurrentUser => _currentUser; - private User _currentUser; + /// Returns the current logged-in user in a private channel. + internal User PrivateUser => _privateUser; + private User _privateUser; + + /// Returns information about the currently logged-in account. + public GlobalUser CurrentUser => _privateUser.GlobalUser; /// Returns a collection of all users this client can currently see. internal GlobalUsers GlobalUsers => _globalUsers; @@ -244,7 +247,7 @@ namespace Discord CheckReady(); return _api.EditUser(currentPassword: currentPassword, - username: username ?? _currentUser?.Name, email: email ?? _currentUser?.GlobalUser.Email, password: password, + username: username ?? _privateUser?.Name, email: email ?? _privateUser?.GlobalUser.Email, password: password, avatarType: avatarType, avatar: avatar); } diff --git a/src/Discord.Net/DiscordClient.cs b/src/Discord.Net/DiscordClient.cs index 27a3f342d..18b0e41a1 100644 --- a/src/Discord.Net/DiscordClient.cs +++ b/src/Discord.Net/DiscordClient.cs @@ -270,7 +270,7 @@ namespace Discord _servers.Clear(); _globalUsers.Clear(); - _currentUser = null; + _privateUser = null; } public T AddService(T obj) @@ -309,9 +309,9 @@ namespace Discord { base.OnReceivedEvent(e).Wait(); //This cannot be an await, or we'll get later messages before we're ready var data = e.Payload.ToObject(_serializer); - _currentUser = _users.GetOrAdd(data.User.Id, null); - _currentUser.Update(data.User); - _currentUser.GlobalUser.Update(data.User); + _privateUser = _users.GetOrAdd(data.User.Id, null); + _privateUser.Update(data.User); + _privateUser.GlobalUser.Update(data.User); foreach (var model in data.Guilds) { if (!model.Unavailable) diff --git a/src/Discord.Net/Models/Channel.cs b/src/Discord.Net/Models/Channel.cs index 98f2f1c9e..ce4df6e80 100644 --- a/src/Discord.Net/Models/Channel.cs +++ b/src/Discord.Net/Models/Channel.cs @@ -168,7 +168,7 @@ namespace Discord { _members = new Dictionary() { - { _client.CurrentUserId, _client.CurrentUser }, + { _client.CurrentUserId, _client.PrivateUser }, { _recipient.Id, _recipient.Value } }; } diff --git a/src/Discord.Net/Models/GlobalUser.cs b/src/Discord.Net/Models/GlobalUser.cs index 6eb3a24ae..59e041296 100644 --- a/src/Discord.Net/Models/GlobalUser.cs +++ b/src/Discord.Net/Models/GlobalUser.cs @@ -3,11 +3,10 @@ using Newtonsoft.Json; using System.Collections.Concurrent; using System.Collections.Generic; using System.Linq; -using System.Threading; namespace Discord { - internal sealed class GlobalUser : CachedObject + public sealed class GlobalUser : CachedObject { private readonly ConcurrentDictionary _users; @@ -22,7 +21,7 @@ namespace Discord /// Returns the private messaging channel with this user, if one exists. [JsonIgnore] - public Channel PrivateChannel + internal Channel PrivateChannel { get { return _privateChannel; } internal set @@ -36,7 +35,7 @@ namespace Discord /// Returns a collection of all server-specific data for every server this user is a member of. [JsonIgnore] - public IEnumerable Memberships => _users.Select(x => _client.Users[Id, x.Key]); + internal IEnumerable Memberships => _users.Select(x => _client.Users[Id, x.Key]); internal GlobalUser(DiscordClient client, string id) : base(client, id) diff --git a/src/Discord.Net/Models/Message.cs b/src/Discord.Net/Models/Message.cs index a9d045414..4245fa28a 100644 --- a/src/Discord.Net/Models/Message.cs +++ b/src/Discord.Net/Models/Message.cs @@ -244,7 +244,7 @@ namespace Discord } else { - var me = _client.CurrentUser; + var me = _client.PrivateUser; IsMentioningMe = MentionedUsers?.Contains(me) ?? false; } }