diff --git a/src/client/ClientManager.js b/src/client/ClientManager.js index 0cfbbfdf4e68..57699f158195 100644 --- a/src/client/ClientManager.js +++ b/src/client/ClientManager.js @@ -35,6 +35,7 @@ class ClientManager { this.client.ws.once('close', event => { if (event.code === 4004) reject(new Error(Constants.Errors.BAD_LOGIN)); if (event.code === 4010) reject(new Error(Constants.Errors.INVALID_SHARD)); + if (event.code === 4011) reject(new Error(Constants.Errors.SHARDING_REQUIRED)); }); this.client.once(Constants.Events.READY, () => { resolve(token); diff --git a/src/client/websocket/WebSocketManager.js b/src/client/websocket/WebSocketManager.js index b67af5993b80..89136d276366 100644 --- a/src/client/websocket/WebSocketManager.js +++ b/src/client/websocket/WebSocketManager.js @@ -249,8 +249,7 @@ class WebSocketManager extends EventEmitter { * @param {CloseEvent} event The WebSocket close event */ if (!this.reconnecting) this.client.emit(Constants.Events.DISCONNECT, event); - if (event.code === 4004) return; - if (event.code === 4010) return; + if ([4004, 4010, 4011].includes(event.code)) return; if (!this.reconnecting && event.code !== 1000) this.tryReconnect(); } diff --git a/src/structures/interface/TextBasedChannel.js b/src/structures/interface/TextBasedChannel.js index 79ea4e203630..74659afac728 100644 --- a/src/structures/interface/TextBasedChannel.js +++ b/src/structures/interface/TextBasedChannel.js @@ -2,7 +2,6 @@ const path = require('path'); const Message = require('../Message'); const MessageCollector = require('../MessageCollector'); const Collection = require('../../util/Collection'); -let GuildMember; /** * Interface for classes that have text-channel-like features diff --git a/src/util/Constants.js b/src/util/Constants.js index dc80da5aa5e1..bb02b3705609 100644 --- a/src/util/Constants.js +++ b/src/util/Constants.js @@ -72,6 +72,7 @@ exports.Errors = { INVALID_RATE_LIMIT_METHOD: 'Unknown rate limiting method.', BAD_LOGIN: 'Incorrect login details were provided.', INVALID_SHARD: 'Invalid shard settings were provided.', + SHARDING_REQUIRED: 'This session would have handled too many guilds - Sharding is required.', INVALID_TOKEN: 'An invalid token was provided.', };