add guild sharding support (#393)

* add guild sharding support

* squash if statements
This commit is contained in:
Brian Tanner
2016-05-31 13:19:15 -04:00
committed by abalabahaha
parent a073010197
commit 00e3708e78
4 changed files with 30 additions and 6 deletions

View File

@@ -77,6 +77,13 @@ var Client = (function (_EventEmitter) {
this.options.largeThreshold = options.largeThreshold || 250;
this.options.maxCachedMessages = options.maxCachedMessages || 1000;
this.options.guildCreateTimeout = options.guildCreateTimeout || 1000;
this.options.shardId = options.shardId || 0;
this.options.shardCount = options.shardCount || 0;
if (typeof options.shardCount === "number" && typeof options.shardId === "number" && options.shardCount > 0) {
this.options.shard = [options.shardId, options.shardCount];
}
/**
* Internal Client that the Client wraps around.
* @readonly

View File

@@ -1649,8 +1649,7 @@ var InternalClient = (function () {
this.websocket = new _ws2["default"](url);
this.websocket.onopen = function () {
self.sendWS({
var data = {
op: 2,
d: {
token: self.token,
@@ -1665,7 +1664,13 @@ var InternalClient = (function () {
"$referring_domain": "discord.js"
}
}
});
};
if (self.client.options.shard) {
data.d.shard = self.client.options.shard;
}
self.sendWS(data);
};
this.websocket.onclose = function (code) {

View File

@@ -51,6 +51,13 @@ export default class Client extends EventEmitter {
this.options.largeThreshold = options.largeThreshold || 250;
this.options.maxCachedMessages = options.maxCachedMessages || 1000;
this.options.guildCreateTimeout = options.guildCreateTimeout || 1000;
this.options.shardId = options.shardId || 0;
this.options.shardCount = options.shardCount || 0;
if (typeof options.shardCount === "number" && typeof options.shardId === "number" && options.shardCount > 0) {
this.options.shard = [options.shardId, options.shardCount];
}
/**
* Internal Client that the Client wraps around.
* @readonly

View File

@@ -1430,8 +1430,7 @@ export default class InternalClient {
this.websocket = new WebSocket(url);
this.websocket.onopen = () => {
self.sendWS({
var data = {
op: 2,
d: {
token: self.token,
@@ -1446,7 +1445,13 @@ export default class InternalClient {
"$referring_domain": "discord.js"
}
}
});
};
if (self.client.options.shard) {
data.d.shard = self.client.options.shard;
}
self.sendWS(data);
};
this.websocket.onclose = (code) => {