diff --git a/lib/Client.js b/lib/Client.js index b52eec40b..73aa4435c 100644 --- a/lib/Client.js +++ b/lib/Client.js @@ -134,17 +134,20 @@ var Client = (function (_EventEmitter) { if (self.websocket) { self.websocket.close(); } + self.debug("error logging in - " + err); callback(err); reject(err); } else { self.state = 2; //set state to logged in (not yet ready) self.token = res.body.token; //set our token - + self.debug("client logged in w/ token " + self.token); self.getGateway().then(function (url) { + self.debug("gateway response successful"); self.createws(url); callback(null, self.token); resolve(self.token); })["catch"](function (err) { + self.debug("unable to connect to gateways - " + err); callback(err); reject(err); }); diff --git a/lib/Member.js b/lib/Member.js index 5cd826f3e..faf409442 100644 --- a/lib/Member.js +++ b/lib/Member.js @@ -17,7 +17,8 @@ var Member = (function (_User) { _classCallCheck(this, Member); _User.call(this, user); // should work, we are basically creating a Member that has the same properties as user and a few more - this.server = server; + this.serverID = server.id; + this.client = server.client; this.rawRoles = roles; } @@ -102,10 +103,9 @@ var Member = (function (_User) { var overwrite = _ref3; finalPacked = finalPacked & ~overwrite.deny; - finalPacked = finalPacked | overwrite.allow; } - for (var _iterator4 = affectingMemberOverwrites, _isArray4 = Array.isArray(_iterator4), _i4 = 0, _iterator4 = _isArray4 ? _iterator4 : _iterator4[Symbol.iterator]();;) { + for (var _iterator4 = affectingOverwrites, _isArray4 = Array.isArray(_iterator4), _i4 = 0, _iterator4 = _isArray4 ? _iterator4 : _iterator4[Symbol.iterator]();;) { var _ref4; if (_isArray4) { @@ -119,7 +119,40 @@ var Member = (function (_User) { var overwrite = _ref4; + finalPacked = finalPacked | overwrite.allow; + } + + for (var _iterator5 = affectingMemberOverwrites, _isArray5 = Array.isArray(_iterator5), _i5 = 0, _iterator5 = _isArray5 ? _iterator5 : _iterator5[Symbol.iterator]();;) { + var _ref5; + + if (_isArray5) { + if (_i5 >= _iterator5.length) break; + _ref5 = _iterator5[_i5++]; + } else { + _i5 = _iterator5.next(); + if (_i5.done) break; + _ref5 = _i5.value; + } + + var overwrite = _ref5; + finalPacked = finalPacked & ~overwrite.deny; + } + + for (var _iterator6 = affectingMemberOverwrites, _isArray6 = Array.isArray(_iterator6), _i6 = 0, _iterator6 = _isArray6 ? _iterator6 : _iterator6[Symbol.iterator]();;) { + var _ref6; + + if (_isArray6) { + if (_i6 >= _iterator6.length) break; + _ref6 = _iterator6[_i6++]; + } else { + _i6 = _iterator6.next(); + if (_i6.done) break; + _ref6 = _i6.value; + } + + var overwrite = _ref6; + finalPacked = finalPacked | overwrite.allow; } @@ -127,24 +160,29 @@ var Member = (function (_User) { }; _createClass(Member, [{ + key: "server", + get: function get() { + return this.client.getServer("id", this.serverID); + } + }, { key: "roles", get: function get() { var ufRoles = [this.server.getRole("id", this.server.id)]; - for (var _iterator5 = this.rawRoles, _isArray5 = Array.isArray(_iterator5), _i5 = 0, _iterator5 = _isArray5 ? _iterator5 : _iterator5[Symbol.iterator]();;) { - var _ref5; + for (var _iterator7 = this.rawRoles, _isArray7 = Array.isArray(_iterator7), _i7 = 0, _iterator7 = _isArray7 ? _iterator7 : _iterator7[Symbol.iterator]();;) { + var _ref7; - if (_isArray5) { - if (_i5 >= _iterator5.length) break; - _ref5 = _iterator5[_i5++]; + if (_isArray7) { + if (_i7 >= _iterator7.length) break; + _ref7 = _iterator7[_i7++]; } else { - _i5 = _iterator5.next(); - if (_i5.done) break; - _ref5 = _i5.value; + _i7 = _iterator7.next(); + if (_i7.done) break; + _ref7 = _i7.value; } - var rawRole = _ref5; + var rawRole = _ref7; ufRoles.push(this.server.getRole("id", rawRole)); } @@ -159,19 +197,19 @@ var Member = (function (_User) { basePerm = basePerms[0].packed; basePerms = basePerms || []; - for (var _iterator6 = basePerms, _isArray6 = Array.isArray(_iterator6), _i6 = 0, _iterator6 = _isArray6 ? _iterator6 : _iterator6[Symbol.iterator]();;) { - var _ref6; + for (var _iterator8 = basePerms, _isArray8 = Array.isArray(_iterator8), _i8 = 0, _iterator8 = _isArray8 ? _iterator8 : _iterator8[Symbol.iterator]();;) { + var _ref8; - if (_isArray6) { - if (_i6 >= _iterator6.length) break; - _ref6 = _iterator6[_i6++]; + if (_isArray8) { + if (_i8 >= _iterator8.length) break; + _ref8 = _iterator8[_i8++]; } else { - _i6 = _iterator6.next(); - if (_i6.done) break; - _ref6 = _i6.value; + _i8 = _iterator8.next(); + if (_i8.done) break; + _ref8 = _i8.value; } - var perm = _ref6; + var perm = _ref8; basePerm = basePerm | perm.packed; } diff --git a/lib/channel.js b/lib/channel.js index 7b8b1c027..aa168d512 100644 --- a/lib/channel.js +++ b/lib/channel.js @@ -10,7 +10,8 @@ var Channel = (function () { function Channel(data, server) { _classCallCheck(this, Channel); - this.server = server; + this.serverID = server.id; + this.client = server.client; this.name = data.name; this.type = data.type; this.topic = data.topic; @@ -93,6 +94,11 @@ var Channel = (function () { }; _createClass(Channel, [{ + key: "server", + get: function get() { + return this.client.getServer("id", this.serverID); + } + }, { key: "permissionOverwrites", get: function get() { return this.roles; @@ -102,11 +108,6 @@ var Channel = (function () { get: function get() { return this.roles; } - }, { - key: "client", - get: function get() { - return this.server.client; - } }, { key: "isPrivate", get: function get() { diff --git a/src/Client.js b/src/Client.js index e167927da..a43a75d4c 100644 --- a/src/Client.js +++ b/src/Client.js @@ -154,17 +154,20 @@ class Client extends EventEmitter { if (self.websocket) { self.websocket.close(); } + self.debug("error logging in - " + err); callback(err); reject(err); } else { self.state = 2; //set state to logged in (not yet ready) self.token = res.body.token; //set our token - + self.debug("client logged in w/ token " + self.token); self.getGateway().then(function (url) { + self.debug("gateway response successful"); self.createws(url); callback(null, self.token); resolve(self.token); }).catch(function (err) { + self.debug("unable to connect to gateways - " + err); callback(err); reject(err); }); diff --git a/src/Member.js b/src/Member.js index 875521568..bb1e269c2 100644 --- a/src/Member.js +++ b/src/Member.js @@ -6,10 +6,15 @@ class Member extends User{ constructor(user, server, roles){ super(user); // should work, we are basically creating a Member that has the same properties as user and a few more - this.server = server; + this.serverID = server.id; + this.client = server.client; this.rawRoles = roles; } + get server(){ + return this.client.getServer("id", this.serverID); + } + get roles(){ var ufRoles = [ this.server.getRole("id", this.server.id) ]; @@ -80,11 +85,17 @@ class Member extends User{ for(var overwrite of affectingOverwrites){ finalPacked = finalPacked & ~overwrite.deny; + } + + for(var overwrite of affectingOverwrites){ finalPacked = finalPacked | overwrite.allow; } for(var overwrite of affectingMemberOverwrites){ finalPacked = finalPacked & ~overwrite.deny; + } + + for(var overwrite of affectingMemberOverwrites){ finalPacked = finalPacked | overwrite.allow; } diff --git a/src/channel.js b/src/channel.js index e5bef86e2..b203f2df0 100644 --- a/src/channel.js +++ b/src/channel.js @@ -3,7 +3,8 @@ var ChannelPermissions = require("./ChannelPermissions.js"); class Channel { constructor(data, server) { - this.server = server; + this.serverID = server.id; + this.client = server.client; this.name = data.name; this.type = data.type; this.topic = data.topic; @@ -18,6 +19,10 @@ class Channel { //this.isPrivate = isPrivate; //not sure about the implementation of this... } + + get server(){ + return this.client.getServer("id", this.serverID); + } get permissionOverwrites() { return this.roles; @@ -27,10 +32,6 @@ class Channel { return this.roles; } - get client() { - return this.server.client; - } - permissionsOf(member){ var mem = this.server.getMember("id", member.id); diff --git a/test/bot.1.js b/test/bot.1.js index 59ad62acb..f1a97dad9 100644 --- a/test/bot.1.js +++ b/test/bot.1.js @@ -10,8 +10,6 @@ Discord.patchStrings(); var server, channel, message, sentMessage = false; -counter = 1; - mybot.on("message", function (message) { console.log("Everyone mentioned? " + message.everyoneMentioned); @@ -28,8 +26,7 @@ mybot.on("message", function (message) { user = message.sender; } - mybot.reply(message, "this is tts", {tts:true}).catch(error); - + mybot.reply(message, JSON.stringify(message.sender.permissionsIn(message.channel), null, 4)); }); mybot.once("ready", function () {