@@ -3,6 +3,8 @@ using Discord.Extensions;
using Discord.Logging;
using Discord.Logging;
using Discord.Net;
using Discord.Net;
using Discord.Net.Queue;
using Discord.Net.Queue;
using Discord.Net.Rest;
using Discord.Net.WebSockets;
using System;
using System;
using System.Collections.Generic;
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Collections.Immutable;
@@ -28,11 +30,10 @@ namespace Discord
public LoginState LoginState { get; private set; }
public LoginState LoginState { get; private set; }
public API.DiscordApiClient ApiClient { get; private set; }
public API.DiscordApiClient ApiClient { get; private set; }
public DiscordClient(DiscordConfig config = null)
public DiscordClient()
: this(new DiscordConfig()) { }
public DiscordClient(DiscordConfig config)
{
{
if (config == null)
config = new DiscordConfig();
_log = new LogManager(config.LogLevel);
_log = new LogManager(config.LogLevel);
_log.Message += async msg => await Log.Raise(msg).ConfigureAwait(false);
_log.Message += async msg => await Log.Raise(msg).ConfigureAwait(false);
_discordLogger = _log.CreateLogger("Discord");
_discordLogger = _log.CreateLogger("Discord");
@@ -41,10 +42,10 @@ namespace Discord
_connectionLock = new SemaphoreSlim(1, 1);
_connectionLock = new SemaphoreSlim(1, 1);
_requestQueue = new RequestQueue();
_requestQueue = new RequestQueue();
ApiClient = new API.DiscordApiClient(config.RestClientProvider, requestQueue: _requestQueue);
ApiClient = new API.DiscordApiClient(config.RestClientProvider, (config as DiscordSocketConfig)?.WebSocketProvider, requestQueue: _requestQueue);
ApiClient.SentRequest += async (method, endpoint, millis) => await _log.Verbose("Rest", $"{method} {endpoint}: {millis} ms").ConfigureAwait(false);
ApiClient.SentRequest += async (method, endpoint, millis) => await _log.Verbose("Rest", $"{method} {endpoint}: {millis} ms").ConfigureAwait(false);
}
}
public async Task Login(TokenType tokenType, string token, bool validateToken = true)
public async Task Login(TokenType tokenType, string token, bool validateToken = true)
{
{
await _connectionLock.WaitAsync().ConfigureAwait(false);
await _connectionLock.WaitAsync().ConfigureAwait(false);