Fixed LeaveVoiceServer when Multiserver is disabled

This commit is contained in:
RogueException
2015-10-17 00:59:50 -03:00
parent 81428ac0e2
commit dd9b72a05d
2 changed files with 19 additions and 6 deletions

View File

@@ -798,10 +798,18 @@ namespace Discord
CheckReady(); //checkVoice is done inside the voice client
if (serverId == null) throw new ArgumentNullException(nameof(serverId));
DiscordSimpleClient client;
if (_voiceClients.TryRemove(serverId, out client))
await client.Disconnect();
}
if (Config.EnableVoiceMultiserver)
{
DiscordSimpleClient client;
if (_voiceClients.TryRemove(serverId, out client))
await client.Disconnect();
}
else
{
_dataSocket.SendLeaveVoice(serverId);
await _voiceSocket.Disconnect();
}
}
private void SendInitialLog()
{

View File

@@ -248,10 +248,15 @@ namespace Discord
protected virtual async Task Cleanup()
{
await _dataSocket.Disconnect().ConfigureAwait(false);
if (_enableVoice)
{
string voiceServerId = _voiceSocket.CurrentServerId;
if (voiceServerId != null)
_dataSocket.SendLeaveVoice(voiceServerId);
await _voiceSocket.Disconnect().ConfigureAwait(false);
}
await _dataSocket.Disconnect().ConfigureAwait(false);
_currentUserId = null;
_gateway = null;
_token = null;