mirror of
https://github.com/danbulant/discord.js
synced 2026-05-24 12:35:53 +00:00
make login sane (#735)
This commit is contained in:
parent
116e6bb4c8
commit
bd1449bc5a
3 changed files with 11 additions and 2 deletions
|
|
@ -32,6 +32,10 @@ class ClientManager {
|
|||
this.client.rest.methods.getGateway().then(gateway => {
|
||||
this.client.emit(Constants.Events.DEBUG, `Using gateway ${gateway}`);
|
||||
this.client.ws.connect(gateway);
|
||||
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));
|
||||
});
|
||||
this.client.once(Constants.Events.READY, () => {
|
||||
resolve(token);
|
||||
this.client.clearTimeout(timeout);
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
const WebSocket = require('ws');
|
||||
const EventEmitter = require('events').EventEmitter;
|
||||
const Constants = require('../../util/Constants');
|
||||
const zlib = require('zlib');
|
||||
const PacketManager = require('./packets/WebSocketPacketManager');
|
||||
|
|
@ -7,8 +8,9 @@ const PacketManager = require('./packets/WebSocketPacketManager');
|
|||
* The WebSocket Manager of the Client
|
||||
* @private
|
||||
*/
|
||||
class WebSocketManager {
|
||||
class WebSocketManager extends EventEmitter {
|
||||
constructor(client) {
|
||||
super();
|
||||
/**
|
||||
* The Client that instantiated this WebSocketManager
|
||||
* @type {Client}
|
||||
|
|
@ -164,12 +166,14 @@ class WebSocketManager {
|
|||
* @param {Object} event The received websocket data
|
||||
*/
|
||||
eventClose(event) {
|
||||
this.emit('close', event);
|
||||
/**
|
||||
* Emitted whenever the client websocket is disconnected
|
||||
* @event Client#disconnect
|
||||
*/
|
||||
if (!this.reconnecting) this.client.emit(Constants.Events.DISCONNECT);
|
||||
if (event.code === 4004) throw new Error(Constants.Errors.BAD_LOGIN);
|
||||
if (event.code === 4004) return;
|
||||
if (event.code === 4010) return;
|
||||
if (!this.reconnecting && event.code !== 1000) this.tryReconnect();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -72,6 +72,7 @@ exports.Errors = {
|
|||
NOT_A_PERMISSION: 'Invalid permission string or number.',
|
||||
INVALID_RATE_LIMIT_METHOD: 'Unknown rate limiting method.',
|
||||
BAD_LOGIN: 'Incorrect login details were provided.',
|
||||
INVALID_SHARD: 'Invalid shard settings were provided',
|
||||
};
|
||||
|
||||
const API = `https://discordapp.com/api/v${exports.DefaultOptions.protocol_version}`;
|
||||
|
|
|
|||
Loading…
Reference in a new issue