From 4184e51ec3e459100d9849c81ddc3224682f4cd3 Mon Sep 17 00:00:00 2001 From: meew0 Date: Tue, 5 Jan 2016 20:33:55 +0100 Subject: [PATCH 1/6] Compare game objects before comparing their names See also http://git.io/vuR7p --- src/Structures/User.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Structures/User.js b/src/Structures/User.js index b3751c774..3074e8289 100644 --- a/src/Structures/User.js +++ b/src/Structures/User.js @@ -49,7 +49,7 @@ export default class User extends Equality{ this.discriminator === obj.discriminator && this.avatar === obj.avatar && this.status === obj.status && - (this.game && obj.game && this.game.name === obj.game.name) + (this.game === obj.game || this.game && obj.game && this.game.name === obj.game.name) ); else return false; From 3e2124e0bd0859bda515ac84bc397345b60fbfb2 Mon Sep 17 00:00:00 2001 From: meew0 Date: Tue, 5 Jan 2016 20:35:18 +0100 Subject: [PATCH 2/6] Don't acknowledge messages, fixes #130 --- src/Client/InternalClient.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/Client/InternalClient.js b/src/Client/InternalClient.js index 16842432a..ce1581323 100644 --- a/src/Client/InternalClient.js +++ b/src/Client/InternalClient.js @@ -1097,10 +1097,9 @@ export default class InternalClient { self.messageAwaits[channel.id + msg.author.id].map( fn => fn(msg) ); self.messageAwaits[channel.id + msg.author.id] = null; client.emit("message", msg, true); //2nd param is isAwaitedMessage - }else{ + } else { client.emit("message", msg); } - self.ack(msg); } else { client.emit("warn", "message created but channel is not cached"); } From 3e1568f53651cdcf0127c9ed6ba151020bfa2a81 Mon Sep 17 00:00:00 2001 From: meew0 Date: Tue, 5 Jan 2016 21:22:45 +0100 Subject: [PATCH 3/6] Implement updateServer, fixes #123 --- src/Client/InternalClient.js | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/Client/InternalClient.js b/src/Client/InternalClient.js index ce1581323..2b55a64e0 100644 --- a/src/Client/InternalClient.js +++ b/src/Client/InternalClient.js @@ -263,6 +263,21 @@ export default class InternalClient { }); } + //def updateServer + updateServer(server, name, region) { + var server = this.resolver.resolveServer(server); + if(!server) { + return Promise.reject(new Error("server did not resolve")); + } + + return this.apiRequest("patch", Endpoints.SERVER(server.id), true, { name: name || server.name, region: region || server.region }) + .then(res => { + // wait until the name and region are updated + return waitFor(() => + (this.servers.get("name", res.name) ? ((this.servers.get("name", res.name).region === res.region) ? this.servers.get("id", res.id) : false) : false)); + }); + } + //def leaveServer leaveServer(srv) { var server = this.resolver.resolveServer(srv); From fee5cade9e8286727570d52ee5aadf2f634e0b6d Mon Sep 17 00:00:00 2001 From: meew0 Date: Tue, 5 Jan 2016 21:23:00 +0100 Subject: [PATCH 4/6] Client wrapper for updateServer --- src/Client/Client.js | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/Client/Client.js b/src/Client/Client.js index 9b016562b..bd7785a19 100644 --- a/src/Client/Client.js +++ b/src/Client/Client.js @@ -203,6 +203,17 @@ export default class Client extends EventEmitter { .then(dataCallback(callback), errorCallback(callback)); } + // def updateServer + updateServer(server, name, region, callback = (/*err, srv*/) => { }) { + if (typeof region === "function") { + // region is the callback + callback = region; + } + + return this.internal.updateServer(server, name, region) + .then(dataCallback(callback), errorCallback(callback)); + } + // def deleteServer deleteServer(server, callback = (/*err, {}*/) => { }) { return this.internal.leaveServer(server) From f51fecf726a024fa7819b9d318e0ce3e0199b09c Mon Sep 17 00:00:00 2001 From: meew0 Date: Tue, 5 Jan 2016 21:27:58 +0100 Subject: [PATCH 5/6] Fix parameter callback checks not setting default arguments The `typeof X === "function"` checks to check whether the callback replaces any default arguments didn't set the default arguments afterwards, so internal functions would sometimes get called with the wrong attributes. This is now fixed. --- src/Client/Client.js | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/Client/Client.js b/src/Client/Client.js index bd7785a19..094a40ded 100644 --- a/src/Client/Client.js +++ b/src/Client/Client.js @@ -103,6 +103,7 @@ export default class Client extends EventEmitter { if (typeof options === "function") { // options is the callback callback = options; + options = {}; } return this.internal.sendMessage(where, content, options) @@ -120,6 +121,7 @@ export default class Client extends EventEmitter { if (typeof options === "function") { // options is the callback callback = options; + options = {}; } var msg = this.internal.resolver.resolveMessage(where); @@ -146,6 +148,7 @@ export default class Client extends EventEmitter { if (typeof options === "function") { // options is the callback callback = options; + options = {}; } return this.internal.deleteMessage(msg, options) @@ -156,6 +159,7 @@ export default class Client extends EventEmitter { if (typeof options === "function") { // options is the callback callback = options; + options = {}; } return this.internal.updateMessage(msg, content, options) @@ -167,6 +171,7 @@ export default class Client extends EventEmitter { if (typeof options === "function") { // options is the callback callback = options; + options = {}; } return this.internal.getChannelLogs(where, limit, options) @@ -208,6 +213,7 @@ export default class Client extends EventEmitter { if (typeof region === "function") { // region is the callback callback = region; + region = undefined; } return this.internal.updateServer(server, name, region) @@ -225,6 +231,7 @@ export default class Client extends EventEmitter { if (typeof type === "function") { // options is the callback callback = type; + type = "text"; } return this.internal.createChannel(server, name, type) @@ -242,6 +249,7 @@ export default class Client extends EventEmitter { if (typeof length === "function") { // length is the callback callback = length; + length = 1; } return this.internal.banMember(user, server, length) @@ -265,6 +273,7 @@ export default class Client extends EventEmitter { if (typeof data === "function") { // data is the callback callback = data; + data = null; } return this.internal.createRole(server, data) @@ -276,6 +285,7 @@ export default class Client extends EventEmitter { if (typeof data === "function") { // data is the callback callback = data; + data = null; } return this.internal.updateRole(role, data) .then(dataCallback(callback), errorCallback(callback)); @@ -336,6 +346,7 @@ export default class Client extends EventEmitter { if (typeof options === "function") { // options is the callback callback = options; + options = undefined; } return this.internal.createInvite(chanServ, options) @@ -365,9 +376,11 @@ export default class Client extends EventEmitter { if (typeof game === "function") { // game is the callback callback = game; + game = null; } else if (typeof idleStatus === "function") { // idleStatus is the callback callback = idleStatus; + game = null; } return this.internal.setStatus(idleStatus, game) @@ -460,12 +473,15 @@ export default class Client extends EventEmitter { if (typeof toSend === "function") { // (msg, callback) callback = toSend; + toSend = null; + options = null; } else { // (msg, toSend, ...) if (options) { if (typeof options === "function") { //(msg, toSend, callback) callback = options; + options = null; ret = this.sendMessage(msg, toSend); } else { //(msg, toSend, options, callback) From 6a09ca76df4ec4af47d343dc55975583afb6edf6 Mon Sep 17 00:00:00 2001 From: meew0 Date: Tue, 5 Jan 2016 21:29:21 +0100 Subject: [PATCH 6/6] Builds for the latest changes --- lib/Client/Client.js | 29 ++++++ lib/Client/InternalClient.js | 191 +++++++++++++++++++---------------- lib/Structures/User.js | 2 +- 3 files changed, 134 insertions(+), 88 deletions(-) diff --git a/lib/Client/Client.js b/lib/Client/Client.js index b25237753..793c6cf15 100644 --- a/lib/Client/Client.js +++ b/lib/Client/Client.js @@ -100,6 +100,7 @@ var Client = (function (_EventEmitter) { if (typeof options === "function") { // options is the callback callback = options; + options = {}; } return this.internal.sendMessage(where, content, options).then(dataCallback(callback), errorCallback(callback)); @@ -122,6 +123,7 @@ var Client = (function (_EventEmitter) { if (typeof options === "function") { // options is the callback callback = options; + options = {}; } var msg = this.internal.resolver.resolveMessage(where); @@ -153,6 +155,7 @@ var Client = (function (_EventEmitter) { if (typeof options === "function") { // options is the callback callback = options; + options = {}; } return this.internal.deleteMessage(msg, options).then(dataCallback(callback), errorCallback(callback)); @@ -167,6 +170,7 @@ var Client = (function (_EventEmitter) { if (typeof options === "function") { // options is the callback callback = options; + options = {}; } return this.internal.updateMessage(msg, content, options).then(dataCallback(callback), errorCallback(callback)); @@ -182,6 +186,7 @@ var Client = (function (_EventEmitter) { if (typeof options === "function") { // options is the callback callback = options; + options = {}; } return this.internal.getChannelLogs(where, limit, options).then(dataCallback(callback), errorCallback(callback)); @@ -229,6 +234,20 @@ var Client = (function (_EventEmitter) { return this.internal.leaveServer(server).then(dataCallback(callback), errorCallback(callback)); }; + // def updateServer + + Client.prototype.updateServer = function updateServer(server, name, region) { + var callback = arguments.length <= 3 || arguments[3] === undefined ? function () /*err, srv*/{} : arguments[3]; + + if (typeof region === "function") { + // region is the callback + callback = region; + region = undefined; + } + + return this.internal.updateServer(server, name, region).then(dataCallback(callback), errorCallback(callback)); + }; + // def deleteServer Client.prototype.deleteServer = function deleteServer(server) { @@ -246,6 +265,7 @@ var Client = (function (_EventEmitter) { if (typeof type === "function") { // options is the callback callback = type; + type = "text"; } return this.internal.createChannel(server, name, type).then(dataCallback(callback), errorCallback(callback)); @@ -268,6 +288,7 @@ var Client = (function (_EventEmitter) { if (typeof length === "function") { // length is the callback callback = length; + length = 1; } return this.internal.banMember(user, server, length).then(dataCallback(callback), errorCallback(callback)); @@ -298,6 +319,7 @@ var Client = (function (_EventEmitter) { if (typeof data === "function") { // data is the callback callback = data; + data = null; } return this.internal.createRole(server, data).then(dataCallback(callback), errorCallback(callback)); @@ -312,6 +334,7 @@ var Client = (function (_EventEmitter) { if (typeof data === "function") { // data is the callback callback = data; + data = null; } return this.internal.updateRole(role, data).then(dataCallback(callback), errorCallback(callback)); }; @@ -396,6 +419,7 @@ var Client = (function (_EventEmitter) { if (typeof options === "function") { // options is the callback callback = options; + options = undefined; } return this.internal.createInvite(chanServ, options).then(dataCallback(callback), errorCallback(callback)); @@ -434,9 +458,11 @@ var Client = (function (_EventEmitter) { if (typeof game === "function") { // game is the callback callback = game; + game = null; } else if (typeof idleStatus === "function") { // idleStatus is the callback callback = idleStatus; + game = null; } return this.internal.setStatus(idleStatus, game).then(dataCallback(callback), errorCallback(callback)); @@ -562,12 +588,15 @@ var Client = (function (_EventEmitter) { if (typeof toSend === "function") { // (msg, callback) callback = toSend; + toSend = null; + options = null; } else { // (msg, toSend, ...) if (options) { if (typeof options === "function") { //(msg, toSend, callback) callback = options; + options = null; ret = this.sendMessage(msg, toSend); } else { //(msg, toSend, options, callback) diff --git a/lib/Client/InternalClient.js b/lib/Client/InternalClient.js index 0561334e4..6f2b572e5 100644 --- a/lib/Client/InternalClient.js +++ b/lib/Client/InternalClient.js @@ -343,10 +343,28 @@ var InternalClient = (function () { }); }; + //def updateServer + + InternalClient.prototype.updateServer = function updateServer(server, name, region) { + var _this6 = this; + + var server = this.resolver.resolveServer(server); + if (!server) { + return Promise.reject(new Error("server did not resolve")); + } + + return this.apiRequest("patch", _Constants.Endpoints.SERVER(server.id), true, { name: name || server.name, region: region || server.region }).then(function (res) { + // wait until the name and region are updated + return waitFor(function () { + return _this6.servers.get("name", res.name) ? _this6.servers.get("name", res.name).region === res.region ? _this6.servers.get("id", res.id) : false : false; + }); + }); + }; + //def leaveServer InternalClient.prototype.leaveServer = function leaveServer(srv) { - var _this6 = this; + var _this7 = this; var server = this.resolver.resolveServer(srv); if (!server) { @@ -369,24 +387,24 @@ var InternalClient = (function () { var chan = _ref2; - _this6.channels.remove(chan); + _this7.channels.remove(chan); } // remove server - _this6.servers.remove(server); + _this7.servers.remove(server); }); }; // def login InternalClient.prototype.login = function login(email, password) { - var _this7 = this; + var _this8 = this; var client = this.client; if (!this.tokenCacher.done) { return new Promise(function (resolve, reject) { setTimeout(function () { - _this7.login(email, password).then(resolve)["catch"](reject); + _this8.login(email, password).then(resolve)["catch"](reject); }, 20); }); } else { @@ -399,7 +417,7 @@ var InternalClient = (function () { this.password = password; return this.getGateway().then(function (url) { - _this7.createWS(url); + _this8.createWS(url); return tk; }); @@ -417,23 +435,23 @@ var InternalClient = (function () { email: email, password: password }).then(function (res) { - _this7.client.emit("debug", "direct API login, cached token was unavailable"); + _this8.client.emit("debug", "direct API login, cached token was unavailable"); var token = res.token; - _this7.tokenCacher.setToken(email, password, token); - _this7.state = _ConnectionState2["default"].LOGGED_IN; - _this7.token = token; - _this7.email = email; - _this7.password = password; + _this8.tokenCacher.setToken(email, password, token); + _this8.state = _ConnectionState2["default"].LOGGED_IN; + _this8.token = token; + _this8.email = email; + _this8.password = password; - return _this7.getGateway().then(function (url) { - _this7.createWS(url); + return _this8.getGateway().then(function (url) { + _this8.createWS(url); return token; }); }, function (error) { - _this7.websocket = null; + _this8.websocket = null; throw error; })["catch"](function (error) { - _this7.state = _ConnectionState2["default"].DISCONNECTED; + _this8.state = _ConnectionState2["default"].DISCONNECTED; client.emit("disconnected"); throw error; }); @@ -442,28 +460,28 @@ var InternalClient = (function () { // def logout InternalClient.prototype.logout = function logout() { - var _this8 = this; + var _this9 = this; if (this.state === _ConnectionState2["default"].DISCONNECTED || this.state === _ConnectionState2["default"].IDLE) { return Promise.reject(new Error("Client is not logged in!")); } return this.apiRequest("post", _Constants.Endpoints.LOGOUT, true).then(function () { - if (_this8.websocket) { - _this8.websocket.close(); - _this8.websocket = null; + if (_this9.websocket) { + _this9.websocket.close(); + _this9.websocket = null; } - _this8.token = null; - _this8.email = null; - _this8.password = null; - _this8.state = _ConnectionState2["default"].DISCONNECTED; + _this9.token = null; + _this9.email = null; + _this9.password = null; + _this9.state = _ConnectionState2["default"].DISCONNECTED; }); }; // def startPM InternalClient.prototype.startPM = function startPM(resUser) { - var _this9 = this; + var _this10 = this; var user = this.resolver.resolveUser(resUser); if (!user) { @@ -473,7 +491,7 @@ var InternalClient = (function () { return this.apiRequest("post", _Constants.Endpoints.USER_CHANNELS(user.id), true, { recipient_id: user.id }).then(function (res) { - return _this9.private_channels.add(new _StructuresPMChannel2["default"](res, _this9.client)); + return _this10.private_channels.add(new _StructuresPMChannel2["default"](res, _this10.client)); }); }; @@ -488,19 +506,19 @@ var InternalClient = (function () { // def sendMessage InternalClient.prototype.sendMessage = function sendMessage(where, _content) { - var _this10 = this; + var _this11 = this; var options = arguments.length <= 2 || arguments[2] === undefined ? {} : arguments[2]; return this.resolver.resolveChannel(where).then(function (destination) { //var destination; - var content = _this10.resolver.resolveString(_content); + var content = _this11.resolver.resolveString(_content); - return _this10.apiRequest("post", _Constants.Endpoints.CHANNEL_MESSAGES(destination.id), true, { + return _this11.apiRequest("post", _Constants.Endpoints.CHANNEL_MESSAGES(destination.id), true, { content: content, tts: options.tts }).then(function (res) { - return destination.messages.add(new _StructuresMessage2["default"](res, destination, _this10.client)); + return destination.messages.add(new _StructuresMessage2["default"](res, destination, _this11.client)); }); }); }; @@ -508,7 +526,7 @@ var InternalClient = (function () { // def deleteMessage InternalClient.prototype.deleteMessage = function deleteMessage(_message) { - var _this11 = this; + var _this12 = this; var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1]; @@ -519,7 +537,7 @@ var InternalClient = (function () { var chain = options.wait ? delay(options.wait) : Promise.resolve(); return chain.then(function () { - return _this11.apiRequest("del", _Constants.Endpoints.CHANNEL_MESSAGE(message.channel.id, message.id), true); + return _this12.apiRequest("del", _Constants.Endpoints.CHANNEL_MESSAGE(message.channel.id, message.id), true); }).then(function () { return message.channel.messages.remove(message); }); @@ -528,7 +546,7 @@ var InternalClient = (function () { // def updateMessage InternalClient.prototype.updateMessage = function updateMessage(msg, _content) { - var _this12 = this; + var _this13 = this; var options = arguments.length <= 2 || arguments[2] === undefined ? {} : arguments[2]; @@ -544,23 +562,23 @@ var InternalClient = (function () { content: content, tts: options.tts }).then(function (res) { - return message.channel.messages.update(message, new _StructuresMessage2["default"](res, message.channel, _this12.client)); + return message.channel.messages.update(message, new _StructuresMessage2["default"](res, message.channel, _this13.client)); }); }; // def sendFile InternalClient.prototype.sendFile = function sendFile(where, _file) { - var _this13 = this; + var _this14 = this; var name = arguments.length <= 2 || arguments[2] === undefined ? "image.png" : arguments[2]; return this.resolver.resolveChannel(where).then(function (channel) { - return _this13.apiRequest("post", _Constants.Endpoints.CHANNEL_MESSAGES(channel.id), true, null, { + return _this14.apiRequest("post", _Constants.Endpoints.CHANNEL_MESSAGES(channel.id), true, null, { name: name, - file: _this13.resolver.resolveFile(_file) + file: _this14.resolver.resolveFile(_file) }).then(function (res) { - return channel.messages.add(new _StructuresMessage2["default"](res, channel, _this13.client)); + return channel.messages.add(new _StructuresMessage2["default"](res, channel, _this14.client)); }); }); }; @@ -568,7 +586,7 @@ var InternalClient = (function () { // def getChannelLogs InternalClient.prototype.getChannelLogs = function getChannelLogs(_channel) { - var _this14 = this; + var _this15 = this; var limit = arguments.length <= 1 || arguments[1] === undefined ? 500 : arguments[1]; var options = arguments.length <= 2 || arguments[2] === undefined ? {} : arguments[2]; @@ -576,21 +594,21 @@ var InternalClient = (function () { return this.resolver.resolveChannel(_channel).then(function (channel) { var qsObject = { limit: limit }; if (options.before) { - var res = _this14.resolver.resolveMessage(options.before); + var res = _this15.resolver.resolveMessage(options.before); if (res) { qsObject.before = res; } } if (options.after) { - var res = _this14.resolver.resolveMessage(options.after); + var res = _this15.resolver.resolveMessage(options.after); if (res) { qsObject.after = res; } } - return _this14.apiRequest("get", _Constants.Endpoints.CHANNEL_MESSAGES(channel.id) + "?" + _querystring2["default"].stringify(qsObject), true).then(function (res) { + return _this15.apiRequest("get", _Constants.Endpoints.CHANNEL_MESSAGES(channel.id) + "?" + _querystring2["default"].stringify(qsObject), true).then(function (res) { return res.map(function (msg) { - return channel.messages.add(new _StructuresMessage2["default"](msg, channel, _this14.client)); + return channel.messages.add(new _StructuresMessage2["default"](msg, channel, _this15.client)); }); }); }); @@ -599,13 +617,13 @@ var InternalClient = (function () { // def getBans InternalClient.prototype.getBans = function getBans(server) { - var _this15 = this; + var _this16 = this; server = this.resolver.resolveServer(server); return this.apiRequest("get", _Constants.Endpoints.SERVER_BANS(server.id), true).then(function (res) { return res.map(function (ban) { - return _this15.users.add(new _StructuresUser2["default"](ban.user, _this15.client)); + return _this16.users.add(new _StructuresUser2["default"](ban.user, _this16.client)); }); }); }; @@ -613,7 +631,7 @@ var InternalClient = (function () { // def createChannel InternalClient.prototype.createChannel = function createChannel(server, name) { - var _this16 = this; + var _this17 = this; var type = arguments.length <= 2 || arguments[2] === undefined ? "text" : arguments[2]; @@ -625,23 +643,23 @@ var InternalClient = (function () { }).then(function (res) { var channel; if (res.type === "text") { - channel = new _StructuresTextChannel2["default"](res, _this16.client, server); + channel = new _StructuresTextChannel2["default"](res, _this17.client, server); } else { - channel = new _StructuresVoiceChannel2["default"](res, _this16.client, server); + channel = new _StructuresVoiceChannel2["default"](res, _this17.client, server); } - return server.channels.add(_this16.channels.add(channel)); + return server.channels.add(_this17.channels.add(channel)); }); }; // def deleteChannel InternalClient.prototype.deleteChannel = function deleteChannel(_channel) { - var _this17 = this; + var _this18 = this; return this.resolver.resolveChannel(_channel).then(function (channel) { - return _this17.apiRequest("del", _Constants.Endpoints.CHANNEL(channel.id), true).then(function () { + return _this18.apiRequest("del", _Constants.Endpoints.CHANNEL(channel.id), true).then(function () { channel.server.channels.remove(channel); - _this17.channels.remove(channel); + _this18.channels.remove(channel); }); }); }; @@ -679,15 +697,15 @@ var InternalClient = (function () { // def createRole InternalClient.prototype.createRole = function createRole(server, data) { - var _this18 = this; + var _this19 = this; server = this.resolver.resolveServer(server); return this.apiRequest("post", _Constants.Endpoints.SERVER_ROLES(server.id), true).then(function (res) { - var role = server.roles.add(new _StructuresRole2["default"](res, server, _this18.client)); + var role = server.roles.add(new _StructuresRole2["default"](res, server, _this19.client)); if (data) { - return _this18.updateRole(role, data); + return _this19.updateRole(role, data); } return role; }); @@ -696,7 +714,7 @@ var InternalClient = (function () { // def updateRole InternalClient.prototype.updateRole = function updateRole(role, data) { - var _this19 = this; + var _this20 = this; var server = this.resolver.resolveServer(role.server); @@ -732,7 +750,7 @@ var InternalClient = (function () { } return this.apiRequest("patch", _Constants.Endpoints.SERVER_ROLES(server.id) + "/" + role.id, true, newData).then(function (res) { - return server.roles.update(role, new _StructuresRole2["default"](res, server, _this19.client)); + return server.roles.update(role, new _StructuresRole2["default"](res, server, _this20.client)); }); }; @@ -871,7 +889,7 @@ var InternalClient = (function () { // def createInvite InternalClient.prototype.createInvite = function createInvite(chanServ, options) { - var _this20 = this; + var _this21 = this; if (chanServ instanceof _StructuresChannel2["default"]) { // do something @@ -904,7 +922,7 @@ var InternalClient = (function () { } return this.apiRequest("post", epoint, true, options).then(function (res) { - return new _StructuresInvite2["default"](res, _this20.channels.get("id", res.channel.id), _this20.client); + return new _StructuresInvite2["default"](res, _this21.channels.get("id", res.channel.id), _this21.client); }); }; @@ -921,7 +939,7 @@ var InternalClient = (function () { //def getInvite InternalClient.prototype.getInvite = function getInvite(invite) { - var _this21 = this; + var _this22 = this; invite = this.resolver.resolveInviteID(invite); if (!invite) { @@ -929,11 +947,11 @@ var InternalClient = (function () { } return this.apiRequest("get", _Constants.Endpoints.INVITE(invite), true).then(function (res) { - if (!_this21.channels.has("id", res.channel.id)) { - return new _StructuresInvite2["default"](res, null, _this21.client); + if (!_this22.channels.has("id", res.channel.id)) { + return new _StructuresInvite2["default"](res, null, _this22.client); } - return _this21.apiRequest("post", _Constants.Endpoints.CHANNEL_INVITES(res.channel.id), true, { validate: invite }).then(function (res2) { - return new _StructuresInvite2["default"](res2, _this21.channels.get("id", res.channel.id), _this21.client); + return _this22.apiRequest("post", _Constants.Endpoints.CHANNEL_INVITES(res.channel.id), true, { validate: invite }).then(function (res2) { + return new _StructuresInvite2["default"](res2, _this22.channels.get("id", res.channel.id), _this22.client); }); }); }; @@ -941,7 +959,7 @@ var InternalClient = (function () { //def overwritePermissions InternalClient.prototype.overwritePermissions = function overwritePermissions(channel, role, updated) { - var _this22 = this; + var _this23 = this; return this.resolver.resolveChannel(channel).then(function (channel) { var user; @@ -982,7 +1000,7 @@ var InternalClient = (function () { } } - return _this22.apiRequest("put", _Constants.Endpoints.CHANNEL_PERMISSIONS(channel.id) + "/" + data.id, true, data); + return _this23.apiRequest("put", _Constants.Endpoints.CHANNEL_PERMISSIONS(channel.id) + "/" + data.id, true, data); }); }; @@ -1018,49 +1036,49 @@ var InternalClient = (function () { //def sendTyping InternalClient.prototype.sendTyping = function sendTyping(channel) { - var _this23 = this; + var _this24 = this; return this.resolver.resolveChannel(channel).then(function (channel) { - return _this23.apiRequest("post", _Constants.Endpoints.CHANNEL(channel.id) + "/typing", true); + return _this24.apiRequest("post", _Constants.Endpoints.CHANNEL(channel.id) + "/typing", true); }); }; //def startTyping InternalClient.prototype.startTyping = function startTyping(channel) { - var _this24 = this; + var _this25 = this; return this.resolver.resolveChannel(channel).then(function (channel) { - if (_this24.intervals.typing[channel.id]) { + if (_this25.intervals.typing[channel.id]) { // typing interval already exists, leave it alone throw new Error("Already typing in that channel"); } - _this24.intervals.typing[channel.id] = setInterval(function () { - return _this24.sendTyping(channel)["catch"](function (error) { - return _this24.emit("error", error); + _this25.intervals.typing[channel.id] = setInterval(function () { + return _this25.sendTyping(channel)["catch"](function (error) { + return _this25.emit("error", error); }); }, 4000); - return _this24.sendTyping(channel); + return _this25.sendTyping(channel); }); }; //def stopTyping InternalClient.prototype.stopTyping = function stopTyping(channel) { - var _this25 = this; + var _this26 = this; return this.resolver.resolveChannel(channel).then(function (channel) { - if (!_this25.intervals.typing[channel.id]) { + if (!_this26.intervals.typing[channel.id]) { // typing interval doesn"t exist throw new Error("Not typing in that channel"); } - clearInterval(_this25.intervals.typing[channel.id]); - _this25.intervals.typing[channel.id] = false; + clearInterval(_this26.intervals.typing[channel.id]); + _this26.intervals.typing[channel.id] = false; }); }; @@ -1091,12 +1109,12 @@ var InternalClient = (function () { //def setChannelTopic InternalClient.prototype.setChannelTopic = function setChannelTopic(chann) { - var _this26 = this; + var _this27 = this; var topic = arguments.length <= 1 || arguments[1] === undefined ? "" : arguments[1]; return this.resolver.resolveChannel(chann).then(function (channel) { - return _this26.apiRequest("patch", _Constants.Endpoints.CHANNEL(channel.id), true, { + return _this27.apiRequest("patch", _Constants.Endpoints.CHANNEL(channel.id), true, { name: channel.name, position: channel.position, topic: topic @@ -1109,12 +1127,12 @@ var InternalClient = (function () { //def setChannelName InternalClient.prototype.setChannelName = function setChannelName(chann) { - var _this27 = this; + var _this28 = this; var name = arguments.length <= 1 || arguments[1] === undefined ? "discordjs_is_the_best" : arguments[1]; return this.resolver.resolveChannel(chann).then(function (channel) { - return _this27.apiRequest("patch", _Constants.Endpoints.CHANNEL(channel.id), true, { + return _this28.apiRequest("patch", _Constants.Endpoints.CHANNEL(channel.id), true, { name: name, position: channel.position, topic: channel.topic @@ -1127,13 +1145,13 @@ var InternalClient = (function () { //def setChannelNameAndTopic InternalClient.prototype.setChannelNameAndTopic = function setChannelNameAndTopic(chann) { - var _this28 = this; + var _this29 = this; var name = arguments.length <= 1 || arguments[1] === undefined ? "discordjs_is_the_best" : arguments[1]; var topic = arguments.length <= 2 || arguments[2] === undefined ? "" : arguments[2]; return this.resolver.resolveChannel(chann).then(function (channel) { - return _this28.apiRequest("patch", _Constants.Endpoints.CHANNEL(channel.id), true, { + return _this29.apiRequest("patch", _Constants.Endpoints.CHANNEL(channel.id), true, { name: name, position: channel.position, topic: topic @@ -1147,12 +1165,12 @@ var InternalClient = (function () { //def setTopic InternalClient.prototype.setChannelPosition = function setChannelPosition(chann) { - var _this29 = this; + var _this30 = this; var position = arguments.length <= 1 || arguments[1] === undefined ? 0 : arguments[1]; return this.resolver.resolveChannel(chann).then(function (channel) { - return _this29.apiRequest("patch", _Constants.Endpoints.CHANNEL(channel.id), true, { + return _this30.apiRequest("patch", _Constants.Endpoints.CHANNEL(channel.id), true, { name: channel.name, position: position, topic: channel.topic @@ -1280,7 +1298,6 @@ var InternalClient = (function () { } else { client.emit("message", msg); } - self.ack(msg); } else { client.emit("warn", "message created but channel is not cached"); } diff --git a/lib/Structures/User.js b/lib/Structures/User.js index 3dc1ee0b8..12938b90f 100644 --- a/lib/Structures/User.js +++ b/lib/Structures/User.js @@ -48,7 +48,7 @@ var User = (function (_Equality) { }; User.prototype.equalsStrict = function equalsStrict(obj) { - if (obj instanceof User) return this.id === obj.id && this.username === obj.username && this.discriminator === obj.discriminator && this.avatar === obj.avatar && this.status === obj.status && this.game && obj.game && this.game.name === obj.game.name;else return false; + if (obj instanceof User) return this.id === obj.id && this.username === obj.username && this.discriminator === obj.discriminator && this.avatar === obj.avatar && this.status === obj.status && (this.game === obj.game || this.game && obj.game && this.game.name === obj.game.name);else return false; }; User.prototype.equals = function equals(obj) {