Browse Source

Fixed internal nullref on voicestate change

tags/1.0-rc
RogueException 8 years ago
parent
commit
e7401eda68
1 changed files with 7 additions and 10 deletions
  1. +7
    -10
      src/Discord.Net.WebSocket/Entities/Guilds/SocketGuild.cs

+ 7
- 10
src/Discord.Net.WebSocket/Entities/Guilds/SocketGuild.cs View File

@@ -430,13 +430,13 @@ namespace Discord.WebSocket
var after = SocketVoiceState.Create(voiceChannel, model); var after = SocketVoiceState.Create(voiceChannel, model);
_voiceStates[model.UserId] = after; _voiceStates[model.UserId] = after;


if (before.VoiceChannel?.Id != after.VoiceChannel?.Id)
if (_audioClient != null && before.VoiceChannel?.Id != after.VoiceChannel?.Id)
{ {
if (model.UserId == CurrentUser.Id) if (model.UserId == CurrentUser.Id)
RepopulateAudioStreams(); RepopulateAudioStreams();
else else
{ {
_audioClient?.RemoveInputStream(model.UserId); //User changed channels, end their stream
_audioClient.RemoveInputStream(model.UserId); //User changed channels, end their stream
if (CurrentUser.VoiceChannel != null && after.VoiceChannel?.Id == CurrentUser.VoiceChannel?.Id) if (CurrentUser.VoiceChannel != null && after.VoiceChannel?.Id == CurrentUser.VoiceChannel?.Id)
_audioClient.CreateInputStream(model.UserId); _audioClient.CreateInputStream(model.UserId);
} }
@@ -575,16 +575,13 @@ namespace Discord.WebSocket


internal void RepopulateAudioStreams() internal void RepopulateAudioStreams()
{ {
if (_audioClient != null)
_audioClient.ClearInputStreams(); //We changed channels, end all current streams
if (CurrentUser.VoiceChannel != null)
{ {
_audioClient.ClearInputStreams(); //We changed channels, end all current streams
if (CurrentUser.VoiceChannel != null)
foreach (var pair in _voiceStates)
{ {
foreach (var pair in _voiceStates)
{
if (pair.Value.VoiceChannel?.Id == CurrentUser.VoiceChannel?.Id)
_audioClient.CreateInputStream(pair.Key);
}
if (pair.Value.VoiceChannel?.Id == CurrentUser.VoiceChannel?.Id)
_audioClient.CreateInputStream(pair.Key);
} }
} }
} }


Loading…
Cancel
Save