diff --git a/lib/Client/Client.js b/lib/Client/Client.js index bb1fb80d7..46672b55b 100644 --- a/lib/Client/Client.js +++ b/lib/Client/Client.js @@ -86,7 +86,7 @@ var Client = (function (_EventEmitter) { var callback = arguments.length <= 0 || arguments[0] === undefined ? function () /*err, {}*/{} : arguments[0]; - this.internal.logout().then(function () { + return this.internal.logout().then(function () { return _this.internal.disconnected(true); }).then(dataCallback(callback), errorCallback(callback)); }; @@ -179,7 +179,7 @@ var Client = (function (_EventEmitter) { // def getChannelLogs Client.prototype.getChannelLogs = function getChannelLogs(where) { - var limit = arguments.length <= 1 || arguments[1] === undefined ? 500 : arguments[1]; + var limit = arguments.length <= 1 || arguments[1] === undefined ? 50 : arguments[1]; var options = arguments.length <= 2 || arguments[2] === undefined ? {} : arguments[2]; var callback = arguments.length <= 3 || arguments[3] === undefined ? function () /*err, logs*/{} : arguments[3]; @@ -187,6 +187,10 @@ var Client = (function (_EventEmitter) { // options is the callback callback = options; options = {}; + } else if (typeof limit === "function") { + // options is the callback + callback = limit; + limit = 50; } return this.internal.getChannelLogs(where, limit, options).then(dataCallback(callback), errorCallback(callback)); diff --git a/lib/Client/InternalClient.js b/lib/Client/InternalClient.js index 0ebeff88c..ba2e49bb9 100644 --- a/lib/Client/InternalClient.js +++ b/lib/Client/InternalClient.js @@ -588,7 +588,7 @@ var InternalClient = (function () { InternalClient.prototype.getChannelLogs = function getChannelLogs(_channel) { var _this15 = this; - var limit = arguments.length <= 1 || arguments[1] === undefined ? 500 : arguments[1]; + var limit = arguments.length <= 1 || arguments[1] === undefined ? 50 : arguments[1]; var options = arguments.length <= 2 || arguments[2] === undefined ? {} : arguments[2]; return this.resolver.resolveChannel(_channel).then(function (channel) { @@ -1373,7 +1373,7 @@ var InternalClient = (function () { break; case _Constants.PacketType.SERVER_CREATE: var server = self.servers.get("id", data.id); - if (!server) { + if (!server && !data.unavailable) { server = new _StructuresServer2["default"](data, client); self.servers.add(server); client.emit("serverCreated", server); @@ -1381,8 +1381,7 @@ var InternalClient = (function () { break; case _Constants.PacketType.SERVER_DELETE: var server = self.servers.get("id", data.id); - if (server) { - + if (server && !data.unavailable) { for (var _iterator5 = server.channels, _isArray5 = Array.isArray(_iterator5), _i5 = 0, _iterator5 = _isArray5 ? _iterator5 : _iterator5[Symbol.iterator]();;) { var _ref5; diff --git a/lib/Structures/Server.js b/lib/Structures/Server.js index 983178e4b..519000fd2 100644 --- a/lib/Structures/Server.js +++ b/lib/Structures/Server.js @@ -67,38 +67,32 @@ var Server = (function (_Equality) { var self = this; - if (data.roles) { - data.roles.forEach(function (dataRole) { - _this.roles.add(new _Role2["default"](dataRole, _this, client)); - }); - } + data.roles.forEach(function (dataRole) { + _this.roles.add(new _Role2["default"](dataRole, _this, client)); + }); - if (data.members) { - data.members.forEach(function (dataUser) { - _this.memberMap[dataUser.user.id] = { - roles: dataUser.roles.map(function (pid) { - return self.roles.get("id", pid); - }), - mute: dataUser.mute, - deaf: dataUser.deaf, - joinedAt: Date.parse(dataUser.joined_at) - }; - var user = client.internal.users.add(new _User2["default"](dataUser.user, client)); - _this.members.add(user); - }); - } + data.members.forEach(function (dataUser) { + _this.memberMap[dataUser.user.id] = { + roles: dataUser.roles.map(function (pid) { + return self.roles.get("id", pid); + }), + mute: dataUser.mute, + deaf: dataUser.deaf, + joinedAt: Date.parse(dataUser.joined_at) + }; + var user = client.internal.users.add(new _User2["default"](dataUser.user, client)); + _this.members.add(user); + }); - if (data.channels) { - data.channels.forEach(function (dataChannel) { - if (dataChannel.type === "text") { - var channel = client.internal.channels.add(new _TextChannel2["default"](dataChannel, client, _this)); - _this.channels.add(channel); - } else { - var channel = client.internal.channels.add(new _VoiceChannel2["default"](dataChannel, client, _this)); - _this.channels.add(channel); - } - }); - } + data.channels.forEach(function (dataChannel) { + if (dataChannel.type === "text") { + var channel = client.internal.channels.add(new _TextChannel2["default"](dataChannel, client, _this)); + _this.channels.add(channel); + } else { + var channel = client.internal.channels.add(new _VoiceChannel2["default"](dataChannel, client, _this)); + _this.channels.add(channel); + } + }); if (data.presences) { for (var _iterator = data.presences, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) { diff --git a/src/Client/Client.js b/src/Client/Client.js index 1c1680360..cbc4945dc 100644 --- a/src/Client/Client.js +++ b/src/Client/Client.js @@ -167,12 +167,17 @@ export default class Client extends EventEmitter { } // def getChannelLogs - getChannelLogs(where, limit = 500, options = {}, callback = (/*err, logs*/) => { }) { + getChannelLogs(where, limit = 50, options = {}, callback = (/*err, logs*/) => { }) { if (typeof options === "function") { // options is the callback callback = options; options = {}; } + else if (typeof limit === "function") { + // options is the callback + callback = limit; + limit = 50; + } return this.internal.getChannelLogs(where, limit, options) .then(dataCallback(callback), errorCallback(callback)); diff --git a/src/Client/InternalClient.js b/src/Client/InternalClient.js index cd94bd3e4..0385a5b25 100644 --- a/src/Client/InternalClient.js +++ b/src/Client/InternalClient.js @@ -86,7 +86,7 @@ export default class InternalClient { return reject(error); } }else{ - resolve(data.body); + resolve(data.body); } }); }); @@ -472,7 +472,7 @@ export default class InternalClient { } // def getChannelLogs - getChannelLogs(_channel, limit = 500, options = {}) { + getChannelLogs(_channel, limit = 50, options = {}) { return this.resolver.resolveChannel(_channel) .then(channel => { var qsObject = {limit}; @@ -1187,7 +1187,7 @@ export default class InternalClient { break; case PacketType.SERVER_CREATE: var server = self.servers.get("id", data.id); - if (!server) { + if (!server && !data.unavailable) { server = new Server(data, client) self.servers.add(server); client.emit("serverCreated", server); @@ -1195,8 +1195,7 @@ export default class InternalClient { break; case PacketType.SERVER_DELETE: var server = self.servers.get("id", data.id); - if (server) { - + if (server && !data.unavailable) { for (var channel of server.channels) { self.channels.remove(channel); } diff --git a/src/Structures/Server.js b/src/Structures/Server.js index 32f9b39ee..93688d2d2 100644 --- a/src/Structures/Server.js +++ b/src/Structures/Server.js @@ -35,36 +35,30 @@ export default class Server extends Equality { var self = this; - if (data.roles) { - data.roles.forEach((dataRole) => { - this.roles.add(new Role(dataRole, this, client)); - }); - } + data.roles.forEach((dataRole) => { + this.roles.add(new Role(dataRole, this, client)); + }); - if (data.members) { - data.members.forEach((dataUser) => { - this.memberMap[dataUser.user.id] = { - roles: dataUser.roles.map((pid) => self.roles.get("id", pid)), - mute: dataUser.mute, - deaf: dataUser.deaf, - joinedAt: Date.parse(dataUser.joined_at) - }; - var user = client.internal.users.add(new User(dataUser.user, client)); - this.members.add(user); - }); - } + data.members.forEach((dataUser) => { + this.memberMap[dataUser.user.id] = { + roles: dataUser.roles.map((pid) => self.roles.get("id", pid)), + mute: dataUser.mute, + deaf: dataUser.deaf, + joinedAt: Date.parse(dataUser.joined_at) + }; + var user = client.internal.users.add(new User(dataUser.user, client)); + this.members.add(user); + }); - if (data.channels) { - data.channels.forEach((dataChannel) => { - if (dataChannel.type === "text") { - var channel = client.internal.channels.add(new TextChannel(dataChannel, client, this)); - this.channels.add(channel); - } else { - var channel = client.internal.channels.add(new VoiceChannel(dataChannel, client, this)); - this.channels.add(channel); - } - }); - } + data.channels.forEach((dataChannel) => { + if (dataChannel.type === "text") { + var channel = client.internal.channels.add(new TextChannel(dataChannel, client, this)); + this.channels.add(channel); + } else { + var channel = client.internal.channels.add(new VoiceChannel(dataChannel, client, this)); + this.channels.add(channel); + } + }); if (data.presences) { for (var presence of data.presences) {