Add config option to download all users on GuildAvailable
Resolves #302
This commit is contained in:
@@ -57,6 +57,7 @@ namespace Discord.WebSocket
|
||||
internal ClientState State { get; private set; }
|
||||
internal int ConnectionTimeout { get; private set; }
|
||||
internal WebSocketProvider WebSocketProvider { get; private set; }
|
||||
internal bool DownloadUsersOnGuildAvailable { get; private set; }
|
||||
|
||||
public new DiscordSocketApiClient ApiClient => base.ApiClient as DiscordSocketApiClient;
|
||||
public new SocketSelfUser CurrentUser { get { return base.CurrentUser as SocketSelfUser; } private set { base.CurrentUser = value; } }
|
||||
@@ -76,6 +77,7 @@ namespace Discord.WebSocket
|
||||
LargeThreshold = config.LargeThreshold;
|
||||
AudioMode = config.AudioMode;
|
||||
WebSocketProvider = config.WebSocketProvider;
|
||||
DownloadUsersOnGuildAvailable = config.DownloadUsersOnGuildAvailable;
|
||||
ConnectionTimeout = config.ConnectionTimeout;
|
||||
State = new ClientState(0, 0);
|
||||
|
||||
@@ -108,6 +110,15 @@ namespace Discord.WebSocket
|
||||
GuildUnavailable += async g => await _gatewayLogger.VerboseAsync($"Disconnected from {g.Name}").ConfigureAwait(false);
|
||||
LatencyUpdated += async (old, val) => await _gatewayLogger.VerboseAsync($"Latency = {val} ms").ConfigureAwait(false);
|
||||
|
||||
if (DownloadUsersOnGuildAvailable)
|
||||
{
|
||||
GuildAvailable += g =>
|
||||
{
|
||||
var _ = g.DownloadUsersAsync();
|
||||
return Task.CompletedTask;
|
||||
};
|
||||
}
|
||||
|
||||
_voiceRegions = ImmutableDictionary.Create<string, RestVoiceRegion>();
|
||||
_largeGuilds = new ConcurrentQueue<ulong>();
|
||||
}
|
||||
|
||||
@@ -28,5 +28,8 @@ namespace Discord.WebSocket
|
||||
|
||||
/// <summary> Gets or sets the provider used to generate new websocket connections. </summary>
|
||||
public WebSocketProvider WebSocketProvider { get; set; } = () => new DefaultWebSocketClient();
|
||||
|
||||
/// <summary> Gets or sets whether or not all users should be downloaded as guilds come available. </summary>
|
||||
public bool DownloadUsersOnGuildAvailable { get; set; } = false;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user