diff --git a/lib/Client.js b/lib/Client.js index 6ff83fec1..40803a1b6 100644 --- a/lib/Client.js +++ b/lib/Client.js @@ -39,6 +39,7 @@ var Client = (function () { this.events = new Map(); this.user = null; this.alreadySentData = false; + this.serverCreateListener = new Map(); /* State values: 0 - idle @@ -179,9 +180,13 @@ var Client = (function () { callback(err); reject(err); } else { - var srv = self.addServer(res.body); - callback(null, srv); - resolve(srv); + // potentially redundant in future + // creating here does NOT give us the channels of the server + // so we must wait for the guild_create event. + self.serverCreateListener.set(res.body.id, [resolve, callback]); + /*var srv = self.addServer(res.body); + callback(null, srv); + resolve(srv);*/ } }); }); @@ -495,36 +500,21 @@ var Client = (function () { if (!server) { //if server doesn't already exist because duh - var serv = self.addServer(data); - } else if (server.channels.length === 0) { + server = self.addServer(data); + } /*else if(server.channels.length === 0){ + + var srv = new Server(data, self); + for(channel of data.channels){ + srv.channels.push(new Channel(channel, data.id)); + } + self.serverCache[self.serverCache.indexOf(server)] = srv; + + }*/ - var srv = new Server(data, self); - var _iteratorNormalCompletion4 = true; - var _didIteratorError4 = false; - var _iteratorError4 = undefined; - - try { - for (var _iterator4 = data.channels[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) { - channel = _step4.value; - - srv.channels.push(new Channel(channel, data.id)); - } - } catch (err) { - _didIteratorError4 = true; - _iteratorError4 = err; - } finally { - try { - if (!_iteratorNormalCompletion4 && _iterator4["return"]) { - _iterator4["return"](); - } - } finally { - if (_didIteratorError4) { - throw _iteratorError4; - } - } - } - - self.serverCache[self.serverCache.indexOf(server)] = srv; + if (self.serverCreateListener.get(data.id)) { + var cbs = self.serverCreateListener.get(data.id); + cbs[0](server); //promise then callback + cbs[1](null, server); //legacy callback } self.trigger("serverCreate", server); @@ -661,27 +651,27 @@ var Client = (function () { if (!server) { server = new Server(data, this); if (data.channels) { - var _iteratorNormalCompletion5 = true; - var _didIteratorError5 = false; - var _iteratorError5 = undefined; + var _iteratorNormalCompletion4 = true; + var _didIteratorError4 = false; + var _iteratorError4 = undefined; try { - for (var _iterator5 = data.channels[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) { - var channel = _step5.value; + for (var _iterator4 = data.channels[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) { + var channel = _step4.value; server.channels.push(this.addChannel(channel, server.id)); } } catch (err) { - _didIteratorError5 = true; - _iteratorError5 = err; + _didIteratorError4 = true; + _iteratorError4 = err; } finally { try { - if (!_iteratorNormalCompletion5 && _iterator5["return"]) { - _iterator5["return"](); + if (!_iteratorNormalCompletion4 && _iterator4["return"]) { + _iterator4["return"](); } } finally { - if (_didIteratorError5) { - throw _iteratorError5; + if (_didIteratorError4) { + throw _iteratorError4; } } } @@ -696,16 +686,50 @@ var Client = (function () { }, { key: "getUser", value: function getUser(key, value) { + var _iteratorNormalCompletion5 = true; + var _didIteratorError5 = false; + var _iteratorError5 = undefined; + + try { + for (var _iterator5 = this.userCache[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) { + var user = _step5.value; + + if (user[key] === value) { + return user; + } + } + } catch (err) { + _didIteratorError5 = true; + _iteratorError5 = err; + } finally { + try { + if (!_iteratorNormalCompletion5 && _iterator5["return"]) { + _iterator5["return"](); + } + } finally { + if (_didIteratorError5) { + throw _iteratorError5; + } + } + } + + return null; + } + + //def getChannel + }, { + key: "getChannel", + value: function getChannel(key, value) { var _iteratorNormalCompletion6 = true; var _didIteratorError6 = false; var _iteratorError6 = undefined; try { - for (var _iterator6 = this.userCache[Symbol.iterator](), _step6; !(_iteratorNormalCompletion6 = (_step6 = _iterator6.next()).done); _iteratorNormalCompletion6 = true) { - var user = _step6.value; + for (var _iterator6 = this.channelCache[Symbol.iterator](), _step6; !(_iteratorNormalCompletion6 = (_step6 = _iterator6.next()).done); _iteratorNormalCompletion6 = true) { + var channel = _step6.value; - if (user[key] === value) { - return user; + if (channel[key] === value) { + return channel; } } } catch (err) { @@ -726,20 +750,20 @@ var Client = (function () { return null; } - //def getChannel + //def getServer }, { - key: "getChannel", - value: function getChannel(key, value) { + key: "getServer", + value: function getServer(key, value) { var _iteratorNormalCompletion7 = true; var _didIteratorError7 = false; var _iteratorError7 = undefined; try { - for (var _iterator7 = this.channelCache[Symbol.iterator](), _step7; !(_iteratorNormalCompletion7 = (_step7 = _iterator7.next()).done); _iteratorNormalCompletion7 = true) { - var channel = _step7.value; + for (var _iterator7 = this.serverCache[Symbol.iterator](), _step7; !(_iteratorNormalCompletion7 = (_step7 = _iterator7.next()).done); _iteratorNormalCompletion7 = true) { + var server = _step7.value; - if (channel[key] === value) { - return channel; + if (server[key] === value) { + return server; } } } catch (err) { @@ -760,40 +784,6 @@ var Client = (function () { return null; } - //def getServer - }, { - key: "getServer", - value: function getServer(key, value) { - var _iteratorNormalCompletion8 = true; - var _didIteratorError8 = false; - var _iteratorError8 = undefined; - - try { - for (var _iterator8 = this.serverCache[Symbol.iterator](), _step8; !(_iteratorNormalCompletion8 = (_step8 = _iterator8.next()).done); _iteratorNormalCompletion8 = true) { - var server = _step8.value; - - if (server[key] === value) { - return server; - } - } - } catch (err) { - _didIteratorError8 = true; - _iteratorError8 = err; - } finally { - try { - if (!_iteratorNormalCompletion8 && _iterator8["return"]) { - _iterator8["return"](); - } - } finally { - if (_didIteratorError8) { - throw _iteratorError8; - } - } - } - - return null; - } - //def trySendConnData }, { key: "trySendConnData", @@ -861,27 +851,27 @@ var Client = (function () { get: function get() { var msgs = []; - var _iteratorNormalCompletion9 = true; - var _didIteratorError9 = false; - var _iteratorError9 = undefined; + var _iteratorNormalCompletion8 = true; + var _didIteratorError8 = false; + var _iteratorError8 = undefined; try { - for (var _iterator9 = this.channelCache[Symbol.iterator](), _step9; !(_iteratorNormalCompletion9 = (_step9 = _iterator9.next()).done); _iteratorNormalCompletion9 = true) { - var channel = _step9.value; + for (var _iterator8 = this.channelCache[Symbol.iterator](), _step8; !(_iteratorNormalCompletion8 = (_step8 = _iterator8.next()).done); _iteratorNormalCompletion8 = true) { + var channel = _step8.value; msgs = msgs.concat(channel.messages); } } catch (err) { - _didIteratorError9 = true; - _iteratorError9 = err; + _didIteratorError8 = true; + _iteratorError8 = err; } finally { try { - if (!_iteratorNormalCompletion9 && _iterator9["return"]) { - _iterator9["return"](); + if (!_iteratorNormalCompletion8 && _iterator8["return"]) { + _iterator8["return"](); } } finally { - if (_didIteratorError9) { - throw _iteratorError9; + if (_didIteratorError8) { + throw _iteratorError8; } } } diff --git a/lib/invite.js b/lib/invite.js index cb8594af1..6ce06bd04 100644 --- a/lib/invite.js +++ b/lib/invite.js @@ -24,7 +24,7 @@ var Invite = (function () { } _createClass(Invite, [{ - key: "inviteURL", + key: "URL", get: function get() { var code = this.xkcd ? this.xkcdpass : this.code; return "https://discord.gg/" + code; diff --git a/src/Client.js b/src/Client.js index f59ff9dab..156279419 100644 --- a/src/Client.js +++ b/src/Client.js @@ -29,6 +29,7 @@ class Client { this.events = new Map(); this.user = null; this.alreadySentData = false; + this.serverCreateListener = new Map(); /* State values: 0 - idle @@ -196,9 +197,13 @@ class Client { callback(err); reject(err); } else { - var srv = self.addServer(res.body); + // potentially redundant in future + // creating here does NOT give us the channels of the server + // so we must wait for the guild_create event. + self.serverCreateListener.set(res.body.id, [resolve, callback]); + /*var srv = self.addServer(res.body); callback(null, srv); - resolve(srv); + resolve(srv);*/ } }); @@ -464,8 +469,8 @@ class Client { if (!server) { //if server doesn't already exist because duh - var serv = self.addServer(data); - }else if(server.channels.length === 0){ + server = self.addServer(data); + }/*else if(server.channels.length === 0){ var srv = new Server(data, self); for(channel of data.channels){ @@ -473,6 +478,12 @@ class Client { } self.serverCache[self.serverCache.indexOf(server)] = srv; + }*/ + + if(self.serverCreateListener.get(data.id)){ + var cbs = self.serverCreateListener.get(data.id); + cbs[0](server); //promise then callback + cbs[1](null, server); //legacy callback } self.trigger("serverCreate", server); diff --git a/src/invite.js b/src/invite.js index 08d414062..6880a834f 100644 --- a/src/invite.js +++ b/src/invite.js @@ -15,7 +15,7 @@ class Invite { this.channel = client.getChannel("id", data.channel.id); } - get inviteURL() { + get URL() { var code = (this.xkcd ? this.xkcdpass : this.code); return "https://discord.gg/" + code; }