| @@ -141,7 +141,7 @@ namespace Discord | |||||
| } | } | ||||
| /// <inheritdoc /> | /// <inheritdoc /> | ||||
| public async Task ConnectAsync() | |||||
| public async Task ConnectAsync(bool waitForGuilds = true) | |||||
| { | { | ||||
| await _connectionLock.WaitAsync().ConfigureAwait(false); | await _connectionLock.WaitAsync().ConfigureAwait(false); | ||||
| try | try | ||||
| @@ -150,6 +150,13 @@ namespace Discord | |||||
| await ConnectInternalAsync().ConfigureAwait(false); | await ConnectInternalAsync().ConfigureAwait(false); | ||||
| } | } | ||||
| finally { _connectionLock.Release(); } | finally { _connectionLock.Release(); } | ||||
| if (waitForGuilds) | |||||
| { | |||||
| var downloadTask = _guildDownloadTask; | |||||
| if (downloadTask != null) | |||||
| await _guildDownloadTask.ConfigureAwait(false); | |||||
| } | |||||
| } | } | ||||
| private async Task ConnectInternalAsync() | private async Task ConnectInternalAsync() | ||||
| { | { | ||||
| @@ -1157,11 +1164,5 @@ namespace Discord | |||||
| while ((_unavailableGuilds != 0) && (Environment.TickCount - _lastGuildAvailableTime < 2000)) | while ((_unavailableGuilds != 0) && (Environment.TickCount - _lastGuildAvailableTime < 2000)) | ||||
| await Task.Delay(500, cancelToken).ConfigureAwait(false); | await Task.Delay(500, cancelToken).ConfigureAwait(false); | ||||
| } | } | ||||
| public async Task WaitForGuildsAsync() | |||||
| { | |||||
| var downloadTask = _guildDownloadTask; | |||||
| if (downloadTask != null) | |||||
| await _guildDownloadTask.ConfigureAwait(false); | |||||
| } | |||||
| } | } | ||||
| } | } | ||||