Browse Source

Destroy audio stream when a user disconnects

tags/1.0.0-rc2
RogueException 8 years ago
parent
commit
eed0598f99
2 changed files with 6 additions and 2 deletions
  1. +1
    -1
      src/Discord.Net.WebSocket/DiscordSocketClient.cs
  2. +5
    -1
      src/Discord.Net.WebSocket/Entities/Guilds/SocketGuild.cs

+ 1
- 1
src/Discord.Net.WebSocket/DiscordSocketClient.cs 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);
}



+ 5
- 1
src/Discord.Net.WebSocket/Entities/Guilds/SocketGuild.cs 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;
}



Loading…
Cancel
Save