Added config to log, fixed LeaveVoiceServer
This commit is contained in:
@@ -22,6 +22,7 @@ namespace Discord
|
|||||||
private readonly JsonSerializer _serializer;
|
private readonly JsonSerializer _serializer;
|
||||||
private readonly ConcurrentQueue<Message> _pendingMessages;
|
private readonly ConcurrentQueue<Message> _pendingMessages;
|
||||||
private readonly ConcurrentDictionary<string, DiscordSimpleClient> _voiceClients;
|
private readonly ConcurrentDictionary<string, DiscordSimpleClient> _voiceClients;
|
||||||
|
private bool _sentInitialLog;
|
||||||
|
|
||||||
/// <summary> Returns the current logged-in user. </summary>
|
/// <summary> Returns the current logged-in user. </summary>
|
||||||
public User CurrentUser => _currentUser;
|
public User CurrentUser => _currentUser;
|
||||||
@@ -219,6 +220,9 @@ namespace Discord
|
|||||||
/// <returns> Returns a token for future connections. </returns>
|
/// <returns> Returns a token for future connections. </returns>
|
||||||
public new async Task<string> Connect(string email, string password)
|
public new async Task<string> Connect(string email, string password)
|
||||||
{
|
{
|
||||||
|
if (!_sentInitialLog)
|
||||||
|
SendInitialLog();
|
||||||
|
|
||||||
if (State != DiscordClientState.Disconnected)
|
if (State != DiscordClientState.Disconnected)
|
||||||
await Disconnect().ConfigureAwait(false);
|
await Disconnect().ConfigureAwait(false);
|
||||||
|
|
||||||
@@ -240,6 +244,9 @@ namespace Discord
|
|||||||
/// <summary> Connects to the Discord server with the provided token. </summary>
|
/// <summary> Connects to the Discord server with the provided token. </summary>
|
||||||
public async Task Connect(string token)
|
public async Task Connect(string token)
|
||||||
{
|
{
|
||||||
|
if (!_sentInitialLog)
|
||||||
|
SendInitialLog();
|
||||||
|
|
||||||
if (State != (int)DiscordClientState.Disconnected)
|
if (State != (int)DiscordClientState.Disconnected)
|
||||||
await Disconnect().ConfigureAwait(false);
|
await Disconnect().ConfigureAwait(false);
|
||||||
|
|
||||||
@@ -729,7 +736,9 @@ namespace Discord
|
|||||||
return client;
|
return client;
|
||||||
}
|
}
|
||||||
|
|
||||||
async Task LeaveVoiceServer(string serverId)
|
public Task LeaveVoiceServer(Server server)
|
||||||
|
=> LeaveVoiceServer(server?.Id);
|
||||||
|
public async Task LeaveVoiceServer(string serverId)
|
||||||
{
|
{
|
||||||
CheckReady(); //checkVoice is done inside the voice client
|
CheckReady(); //checkVoice is done inside the voice client
|
||||||
if (serverId == null) throw new ArgumentNullException(nameof(serverId));
|
if (serverId == null) throw new ArgumentNullException(nameof(serverId));
|
||||||
@@ -738,5 +747,12 @@ namespace Discord
|
|||||||
if (_voiceClients.TryRemove(serverId, out client))
|
if (_voiceClients.TryRemove(serverId, out client))
|
||||||
await client.Disconnect();
|
await client.Disconnect();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void SendInitialLog()
|
||||||
|
{
|
||||||
|
if (_config.LogLevel >= LogMessageSeverity.Verbose)
|
||||||
|
RaiseOnLog(LogMessageSeverity.Verbose, LogMessageSource.Client, $"Config: {JsonConvert.SerializeObject(_config)}");
|
||||||
|
_sentInitialLog = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,7 +9,6 @@ namespace Discord
|
|||||||
public interface IDiscordVoiceClient
|
public interface IDiscordVoiceClient
|
||||||
{
|
{
|
||||||
Task JoinChannel(string channelId);
|
Task JoinChannel(string channelId);
|
||||||
Task Disconnect();
|
|
||||||
|
|
||||||
void SendVoicePCM(byte[] data, int count);
|
void SendVoicePCM(byte[] data, int count);
|
||||||
void ClearVoicePCM();
|
void ClearVoicePCM();
|
||||||
@@ -24,7 +23,7 @@ namespace Discord
|
|||||||
CheckReady(checkVoice: true);
|
CheckReady(checkVoice: true);
|
||||||
if (channelId == null) throw new ArgumentNullException(nameof(channelId));
|
if (channelId == null) throw new ArgumentNullException(nameof(channelId));
|
||||||
|
|
||||||
await ((IDiscordVoiceClient)this).Disconnect().ConfigureAwait(false);
|
await _voiceSocket.Disconnect().ConfigureAwait(false);
|
||||||
_voiceSocket.SetChannel(_voiceServerId, channelId);
|
_voiceSocket.SetChannel(_voiceServerId, channelId);
|
||||||
_dataSocket.SendJoinVoice(_voiceServerId, channelId);
|
_dataSocket.SendJoinVoice(_voiceServerId, channelId);
|
||||||
|
|
||||||
@@ -38,12 +37,12 @@ namespace Discord
|
|||||||
catch (TimeoutException)
|
catch (TimeoutException)
|
||||||
{
|
{
|
||||||
tokenSource.Cancel();
|
tokenSource.Cancel();
|
||||||
await ((IDiscordVoiceClient)this).Disconnect().ConfigureAwait(false);
|
await _voiceSocket.Disconnect().ConfigureAwait(false);
|
||||||
throw;
|
throw;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async Task IDiscordVoiceClient.Disconnect()
|
/*async Task IDiscordVoiceClient.Disconnect()
|
||||||
{
|
{
|
||||||
CheckReady(checkVoice: true);
|
CheckReady(checkVoice: true);
|
||||||
|
|
||||||
@@ -55,7 +54,7 @@ namespace Discord
|
|||||||
_dataSocket.SendLeaveVoice(_voiceSocket.CurrentServerId);
|
_dataSocket.SendLeaveVoice(_voiceSocket.CurrentServerId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}*/
|
||||||
|
|
||||||
/// <summary> Sends a PCM frame to the voice server. Will block until space frees up in the outgoing buffer. </summary>
|
/// <summary> Sends a PCM frame to the voice server. Will block until space frees up in the outgoing buffer. </summary>
|
||||||
/// <param name="data">PCM frame to send. This must be a single or collection of uncompressed 48Kz monochannel 20ms PCM frames. </param>
|
/// <param name="data">PCM frame to send. This must be a single or collection of uncompressed 48Kz monochannel 20ms PCM frames. </param>
|
||||||
|
|||||||
Reference in New Issue
Block a user