| @@ -529,23 +529,23 @@ namespace Discord | |||||
| try | try | ||||
| { | { | ||||
| ulong serverId; | ulong serverId; | ||||
| ulong[] serverIds = new ulong[50]; | |||||
| int i = 0; | |||||
| const short batchSize = 50; | |||||
| int largeServersCount = 0; | |||||
| await Task.Delay(2500, cancelToken); | await Task.Delay(2500, cancelToken); | ||||
| while (true) | |||||
| do | |||||
| { | { | ||||
| while (_largeServers.TryDequeue(out serverId) && i < 50) | |||||
| serverIds[i++] = serverId; | |||||
| if (i > 0) | |||||
| largeServersCount = 0; | |||||
| ulong[] serverIds = new ulong[batchSize]; | |||||
| while (largeServersCount < batchSize && _largeServers.TryDequeue(out serverIds[largeServersCount++])) { } | |||||
| if (largeServersCount > 0) | |||||
| { | { | ||||
| Logger.Warning($"Downloading data for {largeServersCount} large servers."); | |||||
| cancelToken.ThrowIfCancellationRequested(); | cancelToken.ThrowIfCancellationRequested(); | ||||
| GatewaySocket.SendRequestMembers(serverIds, "", 0); | GatewaySocket.SendRequestMembers(serverIds, "", 0); | ||||
| await Task.Delay(1500, cancelToken); | await Task.Delay(1500, cancelToken); | ||||
| } | } | ||||
| if (i < 50) | |||||
| break; | |||||
| } | |||||
| } while (largeServersCount == batchSize); | |||||
| await Task.Delay(2500, cancelToken); | await Task.Delay(2500, cancelToken); | ||||
| EndConnect(); | EndConnect(); | ||||
| } | } | ||||