Destroy audio stream when a user disconnects

This commit is contained in:
RogueException
2017-04-04 00:59:16 -03:00
parent c49118e25f
commit eed0598f99
2 changed files with 6 additions and 2 deletions

View File

@@ -1440,7 +1440,7 @@ namespace Discord.WebSocket
}
else
{
before = guild.RemoveVoiceState(data.UserId) ?? SocketVoiceState.Default;
before = await guild.RemoveVoiceStateAsync(data.UserId).ConfigureAwait(false) ?? SocketVoiceState.Default;
after = SocketVoiceState.Create(null, data);
}

View File

@@ -471,11 +471,15 @@ namespace Discord.WebSocket
return voiceState;
return null;
}
internal SocketVoiceState? RemoveVoiceState(ulong id)
internal async Task<SocketVoiceState?> RemoveVoiceStateAsync(ulong id)
{
SocketVoiceState voiceState;
if (_voiceStates.TryRemove(id, out voiceState))
{
if (_audioClient != null)
await _audioClient.RemoveInputStreamAsync(id).ConfigureAwait(false); //User changed channels, end their stream
return voiceState;
}
return null;
}