diff --git a/src/client/Client.js b/src/client/Client.js index ce72ae6bb..c1b4e78f1 100644 --- a/src/client/Client.js +++ b/src/client/Client.js @@ -37,6 +37,17 @@ class Client extends EventEmitter { this.options.shardCount = Number(process.env.SHARD_COUNT); } + if (!(this.options.disabledEvents instanceof Array)) { + throw new TypeError('The disabledEvents client option must be an array.'); + } + + let disabledEvents = {}; + for (const event in this.options.disabledEvents) { + disabledEvents[event] = true; + } + + this.options.disabledEvents = disabledEvents; + /** * The REST manager of the client * @type {RESTManager} diff --git a/src/client/websocket/packets/WebSocketPacketManager.js b/src/client/websocket/packets/WebSocketPacketManager.js index 3295ef646..5ef060f0e 100644 --- a/src/client/websocket/packets/WebSocketPacketManager.js +++ b/src/client/websocket/packets/WebSocketPacketManager.js @@ -84,7 +84,9 @@ class WebSocketPacketManager { this.setSequence(packet.s); - if (this.ws.client.options.disabledEvents.includes(packet.t)) return false; + if (this.ws.client.options.disabledEvents[packet.t] !== undefined) { + return false; + } if (this.ws.status !== Constants.Status.READY) { if (BeforeReadyWhitelist.indexOf(packet.t) === -1) {