From a3091f5262e5e7c44b29cededdb240575b6500f2 Mon Sep 17 00:00:00 2001 From: Gus Caplan Date: Wed, 11 Jan 2017 16:59:10 -0600 Subject: [PATCH] Handle 4011 ws event code (#1083) * 4011 * Update WebSocketManager.js * smh gawdl3y --- src/client/ClientManager.js | 1 + src/client/websocket/WebSocketManager.js | 3 +-- src/structures/interface/TextBasedChannel.js | 1 - src/util/Constants.js | 1 + 4 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/client/ClientManager.js b/src/client/ClientManager.js index 0cfbbfdf4..57699f158 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 b67af5993..89136d276 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 79ea4e203..74659afac 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 dc80da5aa..bb02b3705 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.', };