@@ -30,7 +30,7 @@ namespace Discord
#if !DNXCORE50
#if !DNXCORE50
private readonly DiscordVoiceWebSocket _voiceWebSocket;
private readonly DiscordVoiceWebSocket _voiceWebSocket;
private string _currentVoiceServer;
private string _currentVoiceServer, _currentVoiceToken ;
#endif
#endif
/// <summary> Returns the User object for the current logged in user. </summary>
/// <summary> Returns the User object for the current logged in user. </summary>
@@ -320,7 +320,8 @@ namespace Discord
{
{
await Task.Delay(_config.ReconnectDelay);
await Task.Delay(_config.ReconnectDelay);
await _voiceWebSocket.ConnectAsync(Endpoints.WebSocket_Hub);
await _voiceWebSocket.ConnectAsync(Endpoints.WebSocket_Hub);
await _voiceWebSocket.Login(_currentVoiceServer, UserId, SessionId);
if (_currentVoiceServer != null)
await _voiceWebSocket.Login(_currentVoiceServer, UserId, SessionId, _currentVoiceToken);
break;
break;
}
}
catch (Exception ex)
catch (Exception ex)
@@ -334,7 +335,8 @@ namespace Discord
_voiceWebSocket.OnDebugMessage += (s, e) => RaiseOnVoiceDebugMessage(e.Message);
_voiceWebSocket.OnDebugMessage += (s, e) => RaiseOnVoiceDebugMessage(e.Message);
#endif
#endif
_webSocket.GotEvent += (s, e) =>
#pragma warning disable CS1998 //Disable unused async keyword warning
_webSocket.GotEvent += async (s, e) =>
{
{
switch (e.Type)
switch (e.Type)
{
{
@@ -583,7 +585,18 @@ namespace Discord
{
{
var data = e.Event.ToObject<TextWebSocketEvents.VoiceServerUpdate>(_serializer);
var data = e.Event.ToObject<TextWebSocketEvents.VoiceServerUpdate>(_serializer);
var server = _servers[data.ServerId];
var server = _servers[data.ServerId];
try { RaiseVoiceServerUpdated(server, data.Endpoint); } catch { }
server.VoiceServer = data.Endpoint;
try { RaiseVoiceServerUpdated(server, data.Endpoint); } catch { }
#if !DNXCORE50
if (data.ServerId == _currentVoiceServer)
{
_currentVoiceServer = data.Endpoint;
_currentVoiceToken = data.Token;
await _voiceWebSocket.ConnectAsync(_currentVoiceServer);
await _voiceWebSocket.Login(_currentVoiceServer, UserId, SessionId, _currentVoiceToken);
}
#endif
}
}
break;
break;
@@ -608,7 +621,8 @@ namespace Discord
}
}
};
};
}
}
#pragma warning restore CS1998 //Restore unused async keyword warning
private async Task SendAsync()
private async Task SendAsync()
{
{
var cancelToken = _disconnectToken.Token;
var cancelToken = _disconnectToken.Token;