diff --git a/src/Discord.Net/DiscordClient.cs b/src/Discord.Net/DiscordClient.cs index b491664be..4c7df69df 100644 --- a/src/Discord.Net/DiscordClient.cs +++ b/src/Discord.Net/DiscordClient.cs @@ -5,7 +5,6 @@ using System; using System.Collections.Generic; using System.Linq; using System.Net; -using System.Reflection; using System.Threading; using System.Threading.Tasks; @@ -381,6 +380,13 @@ namespace Discord } break; + //Settings + case "USER_SETTINGS_UPDATE": + { + //TODO: Process this + } + break; + //Others default: RaiseOnDebugMessage("Unknown WebSocket message type: " + e.Type); @@ -508,7 +514,17 @@ namespace Discord } //Auth - public async Task Connect(string email, string password) + public async Task Connect(string token) + { + _isStopping.Reset(); + + Http.Token = token; + await _webSocket.ConnectAsync(Endpoints.WebSocket_Hub, true); + + _isReady = true; + return token; + } + public async Task Connect(string email, string password) { _isStopping.Reset(); @@ -522,8 +538,20 @@ namespace Discord _webSocket.Login(); _isReady = true; - } - public async Task ConnectAnonymous(string username) + return response.Token; + } + public async Task Connect(string email, string password, string token) + { + try + { + return await Connect(token); + } + catch (InvalidOperationException) //Bad Token + { + return await Connect(email, password); + } + } + public async Task ConnectAnonymous(string username) { _isStopping.Reset(); @@ -537,6 +565,7 @@ namespace Discord _webSocket.Login(); _isReady = true; + return response.Token; } public async Task Disconnect() { diff --git a/src/Discord.Net/project.json b/src/Discord.Net/project.json index 37c54d89d..3766a72bf 100644 --- a/src/Discord.Net/project.json +++ b/src/Discord.Net/project.json @@ -24,6 +24,7 @@ "dnxcore50": { "dependencies": { "System.Collections.Concurrent": "4.0.10", + "System.Diagnostics.Debug": "4.0.10", "System.IO.Compression": "4.0.0", "System.Linq": "4.0.0", "System.Net.Requests": "4.0.10",