From 675ea93bc3b3573a48c1e9a8a5b7805b2e8aa7f1 Mon Sep 17 00:00:00 2001 From: abalabahaha Date: Tue, 12 Apr 2016 23:07:40 -0700 Subject: [PATCH] fix the forceFetch fix --- lib/Client/InternalClient.js | 65 +++++++++++++----------------------- src/Client/InternalClient.js | 65 +++++++++++++----------------------- 2 files changed, 48 insertions(+), 82 deletions(-) diff --git a/lib/Client/InternalClient.js b/lib/Client/InternalClient.js index 28e0941c1..27c097c53 100644 --- a/lib/Client/InternalClient.js +++ b/lib/Client/InternalClient.js @@ -390,24 +390,26 @@ var InternalClient = (function () { // Backwards-compatible utility getter method for the first voice connection // Thanks to #q (@qeled) for suggesting this - InternalClient.prototype.getGuildMembers = function getGuildMembers(guildID, chunkCount) { - this.forceFetchCount[guildID] = chunkCount; - if (this.forceFetchLength + 3 + guildID.length > 4082) { + InternalClient.prototype.getGuildMembers = function getGuildMembers(serverID, chunkCount) { + this.forceFetchCount[serverID] = chunkCount; + if (this.forceFetchLength + 3 + serverID.length > 4082) { // 4096 - '{"op":8,"d":[]}'.length + 1 for lazy comma offset this.requestGuildMembers(this.forceFetchQueue); - this.forceFetchQueue = [guildID]; - this.forceFetchLength = 1 + guildID.length + 3; + this.forceFetchQueue = [serverID]; + this.forceFetchLength = 1 + serverID.length + 3; } else { - this.forceFetchQueue.push(guildID); - this.forceFetchLength += guildID.length + 3; + this.forceFetchQueue.push(serverID); + this.forceFetchLength += serverID.length + 3; } }; - InternalClient.prototype.requestGuildMembers = function requestGuildMembers(guildID, query, limit) { - this.sendWS(OPCodes.GET_GUILD_MEMBERS, { - guild_id: guildID, - query: query || "", - limit: limit || 0 + InternalClient.prototype.requestGuildMembers = function requestGuildMembers(serverID, query, limit) { + this.sendWS({ op: 8, + d: { + guild_id: serverID, + query: query || "", + limit: limit || 0 + } }); }; @@ -424,7 +426,7 @@ var InternalClient = (function () { } } this.readyTime = Date.now(); - client.emit("ready"); + this.client.emit("ready"); } } }; @@ -1561,7 +1563,7 @@ var InternalClient = (function () { self.getGuildMembers(server.id, Math.ceil(server.memberCount / 1000)); } } else { - client.emit("warn", "server " + guild.id + " was unavailable, could not create (ready)"); + client.emit("warn", "server " + server.id + " was unavailable, could not create (ready)"); } }); data.private_channels.forEach(function (pm) { @@ -2120,33 +2122,14 @@ var InternalClient = (function () { server.members.add(self.users.add(new _StructuresUser2["default"](user.user, client))); } - xxxx; - xxxx; - xxxx; - xxxx; - xxxx; - xxxx; - xxxx; - xxxx; - xxxx; - xxxx; - xxxx; - xxxx; - xxxx; - xxxx; - xxxx; - xxxx; - xxxx; - xxxx; - xxxx; - xxxx; - xxxx; - xxxx; - xxxx; - xxxx; - xxxx; - xxxx; - xxxx; + if (_this39.forceFetchCount.hasOwnProperty(guild.id)) { + if (_this39.forceFetchCount[guild.id] <= 1) { + delete _this39.forceFetchCount[guild.id]; + _this39.checkReady(); + } else { + _this39.forceFetchCount[guild.id]--; + } + } client.emit("debug", new Date().getTime() - testtime + "ms for " + data.members.length + " user chunk for server with id " + server.id); } else { diff --git a/src/Client/InternalClient.js b/src/Client/InternalClient.js index b15d9bdde..75d278a3e 100644 --- a/src/Client/InternalClient.js +++ b/src/Client/InternalClient.js @@ -313,23 +313,25 @@ export default class InternalClient { return this.voiceConnections[0]; } - getGuildMembers(guildID, chunkCount) { - this.forceFetchCount[guildID] = chunkCount; - if(this.forceFetchLength + 3 + guildID.length > 4082) { // 4096 - '{"op":8,"d":[]}'.length + 1 for lazy comma offset + getGuildMembers(serverID, chunkCount) { + this.forceFetchCount[serverID] = chunkCount; + if(this.forceFetchLength + 3 + serverID.length > 4082) { // 4096 - '{"op":8,"d":[]}'.length + 1 for lazy comma offset this.requestGuildMembers(this.forceFetchQueue); - this.forceFetchQueue = [guildID]; - this.forceFetchLength = 1 + guildID.length + 3; + this.forceFetchQueue = [serverID]; + this.forceFetchLength = 1 + serverID.length + 3; } else { - this.forceFetchQueue.push(guildID); - this.forceFetchLength += guildID.length + 3; + this.forceFetchQueue.push(serverID); + this.forceFetchLength += serverID.length + 3; } } - requestGuildMembers(guildID, query, limit) { - this.sendWS(OPCodes.GET_GUILD_MEMBERS, { - guild_id: guildID, - query: query || "", - limit: limit || 0 + requestGuildMembers(serverID, query, limit) { + this.sendWS({op: 8, + d: { + guild_id: serverID, + query: query || "", + limit: limit || 0 + } }); } @@ -346,7 +348,7 @@ export default class InternalClient { } } this.readyTime = Date.now(); - client.emit("ready"); + this.client.emit("ready"); } } } @@ -1322,7 +1324,7 @@ export default class InternalClient { self.getGuildMembers(server.id, Math.ceil(server.memberCount / 1000)); } } else { - client.emit("warn", "server " + guild.id + " was unavailable, could not create (ready)"); + client.emit("warn", "server " + server.id + " was unavailable, could not create (ready)"); } }); data.private_channels.forEach(pm => { @@ -1815,33 +1817,14 @@ export default class InternalClient { server.members.add(self.users.add(new User(user.user, client))); } -xxxx -xxxx -xxxx -xxxx -xxxx -xxxx -xxxx -xxxx -xxxx -xxxx -xxxx -xxxx -xxxx -xxxx -xxxx -xxxx -xxxx -xxxx -xxxx -xxxx -xxxx -xxxx -xxxx -xxxx -xxxx -xxxx -xxxx + if(this.forceFetchCount.hasOwnProperty(guild.id)) { + if(this.forceFetchCount[guild.id] <= 1) { + delete this.forceFetchCount[guild.id]; + this.checkReady(); + } else { + this.forceFetchCount[guild.id]--; + } + } client.emit("debug", (new Date().getTime() - testtime) + "ms for " + data.members.length + " user chunk for server with id " + server.id);