Destroy audio stream when a user disconnects
This commit is contained in:
@@ -1440,7 +1440,7 @@ namespace Discord.WebSocket
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
before = guild.RemoveVoiceState(data.UserId) ?? SocketVoiceState.Default;
|
before = await guild.RemoveVoiceStateAsync(data.UserId).ConfigureAwait(false) ?? SocketVoiceState.Default;
|
||||||
after = SocketVoiceState.Create(null, data);
|
after = SocketVoiceState.Create(null, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -471,11 +471,15 @@ namespace Discord.WebSocket
|
|||||||
return voiceState;
|
return voiceState;
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
internal SocketVoiceState? RemoveVoiceState(ulong id)
|
internal async Task<SocketVoiceState?> RemoveVoiceStateAsync(ulong id)
|
||||||
{
|
{
|
||||||
SocketVoiceState voiceState;
|
SocketVoiceState voiceState;
|
||||||
if (_voiceStates.TryRemove(id, out 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 voiceState;
|
||||||
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user