diff --git a/src/Discord.Net/API/Common/User.cs b/src/Discord.Net/API/Common/User.cs index c8e566711..7e37d2cf8 100644 --- a/src/Discord.Net/API/Common/User.cs +++ b/src/Discord.Net/API/Common/User.cs @@ -9,7 +9,7 @@ namespace Discord.API [JsonProperty("username")] public string Username { get; set; } [JsonProperty("discriminator")] - public ushort Discriminator { get; set; } + public string Discriminator { get; set; } [JsonProperty("avatar")] public string Avatar { get; set; } [JsonProperty("verified")] diff --git a/src/Discord.Net/API/DiscordAPIClient.cs b/src/Discord.Net/API/DiscordAPIClient.cs index 9f8af48e1..39a6d25f7 100644 --- a/src/Discord.Net/API/DiscordAPIClient.cs +++ b/src/Discord.Net/API/DiscordAPIClient.cs @@ -994,10 +994,11 @@ namespace Discord.API } catch (HttpException ex) when (ex.StatusCode == HttpStatusCode.NotFound) { return null; } } - public async Task GetUser(string username, ushort discriminator, RequestOptions options = null) + public async Task GetUser(string username, string discriminator, RequestOptions options = null) { Preconditions.NotNullOrEmpty(username, nameof(username)); - + Preconditions.NotNullOrEmpty(discriminator, nameof(discriminator)); + try { var models = await QueryUsers($"{username}#{discriminator}", 1, options: options).ConfigureAwait(false); diff --git a/src/Discord.Net/DiscordClient.cs b/src/Discord.Net/DiscordClient.cs index 4738ca174..719b5eba1 100644 --- a/src/Discord.Net/DiscordClient.cs +++ b/src/Discord.Net/DiscordClient.cs @@ -3,8 +3,6 @@ using Discord.Extensions; using Discord.Logging; using Discord.Net; using Discord.Net.Queue; -using Discord.Net.Rest; -using Discord.Net.WebSockets; using System; using System.Collections.Generic; using System.Collections.Immutable; @@ -190,7 +188,7 @@ namespace Discord return new User(this, model); return null; } - public virtual async Task GetUser(string username, ushort discriminator) + public virtual async Task GetUser(string username, string discriminator) { var model = await ApiClient.GetUser(username, discriminator).ConfigureAwait(false); if (model != null) diff --git a/src/Discord.Net/DiscordSocketClient.cs b/src/Discord.Net/DiscordSocketClient.cs index 80a427467..be94ecb83 100644 --- a/src/Discord.Net/DiscordSocketClient.cs +++ b/src/Discord.Net/DiscordSocketClient.cs @@ -95,7 +95,7 @@ namespace Discord _gatewayLogger = _log.CreateLogger("Gateway"); _serializer = new JsonSerializer { ContractResolver = new DiscordContractResolver() }; - + ApiClient.SentGatewayMessage += async opCode => await _gatewayLogger.Verbose($"Sent Op {(GatewayOpCode)opCode}"); ApiClient.ReceivedGatewayEvent += ProcessMessage; GatewaySocket = config.WebSocketProvider(); @@ -262,7 +262,7 @@ namespace Discord { return Task.FromResult(DataStore.GetUser(id)); } - public override Task GetUser(string username, ushort discriminator) + public override Task GetUser(string username, string discriminator) { return Task.FromResult(DataStore.Users.Where(x => x.Discriminator == discriminator && x.Username == username).FirstOrDefault()); } diff --git a/src/Discord.Net/Entities/Users/GuildUser.cs b/src/Discord.Net/Entities/Users/GuildUser.cs index ec5c5784f..fa070ca43 100644 --- a/src/Discord.Net/Entities/Users/GuildUser.cs +++ b/src/Discord.Net/Entities/Users/GuildUser.cs @@ -23,7 +23,7 @@ namespace Discord public ulong Id => User.Id; public string AvatarUrl => User.AvatarUrl; public DateTime CreatedAt => User.CreatedAt; - public ushort Discriminator => User.Discriminator; + public string Discriminator => User.Discriminator; public Game? Game => User.Game; public bool IsAttached => User.IsAttached; public bool IsBot => User.IsBot; diff --git a/src/Discord.Net/Entities/Users/IUser.cs b/src/Discord.Net/Entities/Users/IUser.cs index 8de684b7a..0b1b04332 100644 --- a/src/Discord.Net/Entities/Users/IUser.cs +++ b/src/Discord.Net/Entities/Users/IUser.cs @@ -7,7 +7,7 @@ namespace Discord /// Gets the url to this user's avatar. string AvatarUrl { get; } /// Gets the per-username unique id for this user. - ushort Discriminator { get; } + string Discriminator { get; } /// Returns true if this user is a bot account. bool IsBot { get; } /// Gets the username for this user. diff --git a/src/Discord.Net/Entities/Users/User.cs b/src/Discord.Net/Entities/Users/User.cs index 5ce282ddf..7efe5239f 100644 --- a/src/Discord.Net/Entities/Users/User.cs +++ b/src/Discord.Net/Entities/Users/User.cs @@ -10,7 +10,7 @@ namespace Discord { private string _avatarId; - public ushort Discriminator { get; private set; } + public string Discriminator { get; private set; } public bool IsBot { get; private set; } public string Username { get; private set; } diff --git a/src/Discord.Net/IDiscordClient.cs b/src/Discord.Net/IDiscordClient.cs index eb89c8452..e3049c9c3 100644 --- a/src/Discord.Net/IDiscordClient.cs +++ b/src/Discord.Net/IDiscordClient.cs @@ -31,7 +31,7 @@ namespace Discord Task GetInvite(string inviteIdOrXkcd); Task GetUser(ulong id); - Task GetUser(string username, ushort discriminator); + Task GetUser(string username, string discriminator); Task GetCurrentUser(); Task> QueryUsers(string query, int limit);