Fixed DiscordClient.Disconnect

This commit is contained in:
RogueException
2015-12-27 16:20:40 -04:00
parent 58ddcbbf4a
commit 3a074c4c04
2 changed files with 50 additions and 46 deletions

View File

@@ -265,15 +265,18 @@ namespace Discord
} }
/// <summary> Disconnects from the Discord server, canceling any pending requests. </summary> /// <summary> Disconnects from the Discord server, canceling any pending requests. </summary>
public Task Disconnect() => _taskManager.Stop(true); public async Task Disconnect()
private async Task Cleanup() {
if (State == ConnectionState.Connected)
await ClientAPI.Send(new LogoutRequest()).ConfigureAwait(false);
await _taskManager.Stop(true).ConfigureAwait(false);
}
private Task Cleanup()
{ {
State = ConnectionState.Disconnecting; State = ConnectionState.Disconnecting;
if (Config.UseMessageQueue) if (Config.UseMessageQueue)
MessageQueue.Clear(); MessageQueue.Clear();
await ClientAPI.Send(new LogoutRequest()).ConfigureAwait(false);
ClientAPI.Token = null; ClientAPI.Token = null;
GatewaySocket.Token = null; GatewaySocket.Token = null;
@@ -287,6 +290,7 @@ namespace Discord
State = (int)ConnectionState.Disconnected; State = (int)ConnectionState.Disconnected;
_connectedEvent.Reset(); _connectedEvent.Reset();
_disconnectedEvent.Set(); _disconnectedEvent.Set();
return TaskHelper.CompletedTask;
} }
public Task SetStatus(UserStatus status) public Task SetStatus(UserStatus status)