Remove unnecessary DNXCore checks
This commit is contained in:
@@ -33,8 +33,7 @@ namespace Discord
|
|||||||
private ManualResetEventSlim _connectWaitOnLogin;
|
private ManualResetEventSlim _connectWaitOnLogin;
|
||||||
private uint _ssrc;
|
private uint _ssrc;
|
||||||
private readonly Random _rand = new Random();
|
private readonly Random _rand = new Random();
|
||||||
|
|
||||||
#if !DNXCORE50
|
|
||||||
private OpusEncoder _encoder;
|
private OpusEncoder _encoder;
|
||||||
private ConcurrentQueue<Packet> _sendQueue;
|
private ConcurrentQueue<Packet> _sendQueue;
|
||||||
private UdpClient _udp;
|
private UdpClient _udp;
|
||||||
@@ -46,20 +45,16 @@ namespace Discord
|
|||||||
private string _mode;
|
private string _mode;
|
||||||
#if USE_THREAD
|
#if USE_THREAD
|
||||||
private Thread _sendThread;
|
private Thread _sendThread;
|
||||||
#endif
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
public DiscordVoiceSocket(DiscordClient client, int timeout, int interval, bool isDebug)
|
public DiscordVoiceSocket(DiscordClient client, int timeout, int interval, bool isDebug)
|
||||||
: base(client, timeout, interval, isDebug)
|
: base(client, timeout, interval, isDebug)
|
||||||
{
|
{
|
||||||
_connectWaitOnLogin = new ManualResetEventSlim(false);
|
_connectWaitOnLogin = new ManualResetEventSlim(false);
|
||||||
#if !DNXCORE50
|
|
||||||
_sendQueue = new ConcurrentQueue<Packet>();
|
_sendQueue = new ConcurrentQueue<Packet>();
|
||||||
_encoder = new OpusEncoder(48000, 1, 20, Application.Audio);
|
_encoder = new OpusEncoder(48000, 1, 20, Application.Audio);
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !DNXCORE50
|
|
||||||
protected override void OnConnect()
|
protected override void OnConnect()
|
||||||
{
|
{
|
||||||
_udp = new UdpClient(new IPEndPoint(IPAddress.Any, 0));
|
_udp = new UdpClient(new IPEndPoint(IPAddress.Any, 0));
|
||||||
@@ -77,21 +72,18 @@ namespace Discord
|
|||||||
_sendThread = null;
|
_sendThread = null;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
protected override Task[] CreateTasks()
|
protected override Task[] CreateTasks()
|
||||||
{
|
{
|
||||||
#if !DNXCORE50 && USE_THREAD
|
#if USE_THREAD
|
||||||
_sendThread = new Thread(new ThreadStart(() => SendAsync(_disconnectToken)));
|
_sendThread = new Thread(new ThreadStart(() => SendAsync(_disconnectToken)));
|
||||||
_sendThread.Start();
|
_sendThread.Start();
|
||||||
#endif
|
#endif
|
||||||
return new Task[]
|
return new Task[]
|
||||||
{
|
{
|
||||||
#if !DNXCORE50
|
|
||||||
ReceiveAsync(),
|
ReceiveAsync(),
|
||||||
#if !USE_THREAD
|
#if !USE_THREAD
|
||||||
SendAsync(),
|
SendAsync(),
|
||||||
#endif
|
|
||||||
#endif
|
#endif
|
||||||
WatcherAsync()
|
WatcherAsync()
|
||||||
}.Concat(base.CreateTasks()).ToArray();
|
}.Concat(base.CreateTasks()).ToArray();
|
||||||
@@ -122,8 +114,7 @@ namespace Discord
|
|||||||
|
|
||||||
SetConnected();
|
SetConnected();
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !DNXCORE50
|
|
||||||
private async Task ReceiveAsync()
|
private async Task ReceiveAsync()
|
||||||
{
|
{
|
||||||
var cancelSource = _disconnectToken;
|
var cancelSource = _disconnectToken;
|
||||||
@@ -152,7 +143,6 @@ namespace Discord
|
|||||||
var cancelSource = _disconnectToken;
|
var cancelSource = _disconnectToken;
|
||||||
var cancelToken = cancelSource.Token;
|
var cancelToken = cancelSource.Token;
|
||||||
await Task.Yield();
|
await Task.Yield();
|
||||||
#endif
|
|
||||||
|
|
||||||
Packet packet;
|
Packet packet;
|
||||||
try
|
try
|
||||||
@@ -231,30 +221,21 @@ namespace Discord
|
|||||||
await Task.Delay(-1, cancelToken);
|
await Task.Delay(-1, cancelToken);
|
||||||
}
|
}
|
||||||
catch (TaskCanceledException) { }
|
catch (TaskCanceledException) { }
|
||||||
#if !DNXCORE50
|
|
||||||
finally { _udp.Close(); }
|
finally { _udp.Close(); }
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#if DNXCORE50
|
|
||||||
protected override Task ProcessMessage(string json)
|
|
||||||
#else
|
|
||||||
protected override async Task ProcessMessage(string json)
|
protected override async Task ProcessMessage(string json)
|
||||||
#endif
|
|
||||||
{
|
{
|
||||||
var msg = JsonConvert.DeserializeObject<WebSocketMessage>(json);
|
var msg = JsonConvert.DeserializeObject<WebSocketMessage>(json);
|
||||||
switch (msg.Operation)
|
switch (msg.Operation)
|
||||||
{
|
{
|
||||||
case 2: //READY
|
case 2: //READY
|
||||||
{
|
{
|
||||||
#if !DNXCORE50
|
|
||||||
if (!_isReady)
|
if (!_isReady)
|
||||||
{
|
{
|
||||||
#endif
|
|
||||||
var payload = (msg.Payload as JToken).ToObject<VoiceWebSocketEvents.Ready>();
|
var payload = (msg.Payload as JToken).ToObject<VoiceWebSocketEvents.Ready>();
|
||||||
_heartbeatInterval = payload.HeartbeatInterval;
|
_heartbeatInterval = payload.HeartbeatInterval;
|
||||||
_ssrc = payload.SSRC;
|
_ssrc = payload.SSRC;
|
||||||
#if !DNXCORE50
|
|
||||||
_endpoint = new IPEndPoint((await Dns.GetHostAddressesAsync(_host)).FirstOrDefault(), payload.Port);
|
_endpoint = new IPEndPoint((await Dns.GetHostAddressesAsync(_host)).FirstOrDefault(), payload.Port);
|
||||||
//_mode = payload.Modes.LastOrDefault();
|
//_mode = payload.Modes.LastOrDefault();
|
||||||
_mode = "plain";
|
_mode = "plain";
|
||||||
@@ -273,12 +254,8 @@ namespace Discord
|
|||||||
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
||||||
0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }, 70);
|
0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }, 70);
|
||||||
}
|
}
|
||||||
#else
|
|
||||||
_connectWaitOnLogin.Set();
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
#if !DNXCORE50
|
|
||||||
case 4: //SESSION_DESCRIPTION
|
case 4: //SESSION_DESCRIPTION
|
||||||
{
|
{
|
||||||
var payload = (msg.Payload as JToken).ToObject<VoiceWebSocketEvents.JoinServer>();
|
var payload = (msg.Payload as JToken).ToObject<VoiceWebSocketEvents.JoinServer>();
|
||||||
@@ -287,17 +264,13 @@ namespace Discord
|
|||||||
_connectWaitOnLogin.Set();
|
_connectWaitOnLogin.Set();
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
#endif
|
|
||||||
default:
|
default:
|
||||||
if (_isDebug)
|
if (_isDebug)
|
||||||
RaiseOnDebugMessage(DebugMessageType.WebSocketUnknownOpCode, "Unknown Opcode: " + msg.Operation);
|
RaiseOnDebugMessage(DebugMessageType.WebSocketUnknownOpCode, "Unknown Opcode: " + msg.Operation);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
#if DNXCORE50
|
|
||||||
return Task.CompletedTask;
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
#if !DNXCORE50
|
|
||||||
private void ProcessUdpMessage(UdpReceiveResult msg)
|
private void ProcessUdpMessage(UdpReceiveResult msg)
|
||||||
{
|
{
|
||||||
if (msg.Buffer.Length > 0 && msg.RemoteEndPoint.Equals(_endpoint))
|
if (msg.Buffer.Length > 0 && msg.RemoteEndPoint.Equals(_endpoint))
|
||||||
@@ -369,7 +342,6 @@ namespace Discord
|
|||||||
if (length < 36) //12 + 24
|
if (length < 36) //12 + 24
|
||||||
throw new Exception($"Unexpected message length. Expected >= 36, got {length}.");
|
throw new Exception($"Unexpected message length. Expected >= 36, got {length}.");
|
||||||
|
|
||||||
#if !DNXCORE50
|
|
||||||
byte[] nonce = new byte[24]; //16 bytes static, 8 bytes incrementing?
|
byte[] nonce = new byte[24]; //16 bytes static, 8 bytes incrementing?
|
||||||
Buffer.BlockCopy(buffer, 12, nonce, 0, 24);
|
Buffer.BlockCopy(buffer, 12, nonce, 0, 24);
|
||||||
|
|
||||||
@@ -377,7 +349,6 @@ namespace Discord
|
|||||||
Buffer.BlockCopy(buffer, 36, cipherText, 0, cipherText.Length);
|
Buffer.BlockCopy(buffer, 36, cipherText, 0, cipherText.Length);
|
||||||
|
|
||||||
Sodium.SecretBox.Open(cipherText, nonce, _secretKey);
|
Sodium.SecretBox.Open(cipherText, nonce, _secretKey);
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
else //Plain
|
else //Plain
|
||||||
{
|
{
|
||||||
@@ -427,7 +398,6 @@ namespace Discord
|
|||||||
isTalking.Payload.Delay = 0;
|
isTalking.Payload.Delay = 0;
|
||||||
QueueMessage(isTalking);
|
QueueMessage(isTalking);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
protected override object GetKeepAlive()
|
protected override object GetKeepAlive()
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user