diff --git a/lib/Client.js b/lib/Client.js index 83f7f2f4b..aae7147f8 100644 --- a/lib/Client.js +++ b/lib/Client.js @@ -479,10 +479,12 @@ var Client = (function () { var mention = _ref2; - mentions.push(self.addUser(mention)); + var user = self.addUser(mention); + mentions.push(channel.server.getMember("id", user.id) || user); } - var author = self.addUser(message.author); + var authorRaw = self.addUser(message.author); + var author = channel.server.getMember("id", authorRaw.id) || authorRaw; logs.push(new Message(message, channel, mentions, author)); } @@ -886,6 +888,9 @@ var Client = (function () { var mentions = []; data.mentions = data.mentions || []; //for some reason this was not defined at some point? + + var channel = self.getChannel("id", data.channel_id); + for (var _iterator6 = data.mentions, _isArray6 = Array.isArray(_iterator6), _i6 = 0, _iterator6 = _isArray6 ? _iterator6 : _iterator6[Symbol.iterator]();;) { var _ref6; @@ -900,12 +905,12 @@ var Client = (function () { var mention = _ref6; - mentions.push(self.addUser(mention)); + var user = self.addUser(mention); + mentions.push(channel.server.getMember("id", user.id) || user); } - var channel = self.getChannel("id", data.channel_id); if (channel) { - var msg = channel.addMessage(new Message(data, channel, mentions, self.addUser(data.author))); + var msg = channel.addMessage(new Message(data, channel, mentions, channel.server.getMember("id", self.addUser(data.author).id))); self.trigger("message", msg); } @@ -943,7 +948,7 @@ var Client = (function () { } var mentions = []; - for (var _iterator7 = info.mentions, _isArray7 = Array.isArray(_iterator7), _i7 = 0, _iterator7 = _isArray7 ? _iterator7 : _iterator7[Symbol.iterator]();;) { + for (var _iterator7 = data.mentions, _isArray7 = Array.isArray(_iterator7), _i7 = 0, _iterator7 = _isArray7 ? _iterator7 : _iterator7[Symbol.iterator]();;) { var _ref7; if (_isArray7) { @@ -957,7 +962,8 @@ var Client = (function () { var mention = _ref7; - mentions.push(self.addUser(mention)); + var user = self.addUser(mention); + mentions.push(channel.server.getMember("id", user.id) || user); } var newMessage = new Message(info, channel, mentions, formerMessage.author); @@ -1533,6 +1539,8 @@ var Client = (function () { data.mentions = data.mentions || []; //for some reason this was not defined at some point? + var channel = self.getChannel("id", data.channel_id); + for (var _iterator15 = data.mentions, _isArray15 = Array.isArray(_iterator15), _i15 = 0, _iterator15 = _isArray15 ? _iterator15 : _iterator15[Symbol.iterator]();;) { var _ref15; @@ -1547,12 +1555,12 @@ var Client = (function () { var mention = _ref15; - mentions.push(self.addUser(mention)); + var user = self.addUser(mention); + mentions.push(channel.server.getMember("id", user.id) || user); } - var channel = self.getChannel("id", data.channel_id); if (channel) { - var msg = channel.addMessage(new Message(data, channel, mentions, self.addUser(data.author))); + var msg = channel.addMessage(new Message(data, channel, mentions, channel.server.getMember("id", data.author.id))); resolve(msg); } } diff --git a/src/Client.js b/src/Client.js index 31ea536f2..e0d7efb7d 100644 --- a/src/Client.js +++ b/src/Client.js @@ -518,10 +518,12 @@ class Client { var mentions = []; for (var mention of message.mentions) { - mentions.push(self.addUser(mention)); + var user = self.addUser(mention); + mentions.push(channel.server.getMember("id", user.id) || user); } - var author = self.addUser(message.author); + var authorRaw = self.addUser(message.author); + var author = channel.server.getMember("id", authorRaw.id) || authorRaw; logs.push(new Message(message, channel, mentions, author)); } @@ -776,7 +778,7 @@ class Client { } else { var perms = self.getServer("id", ddest).addRole(res.body); - + resolve(perms); cb(null, perms); @@ -787,25 +789,25 @@ class Client { }); } - - updateRole(server, role, cb=function(err,perm){}){ - + + updateRole(server, role, cb = function (err, perm) { }) { + var self = this; - - return new Promise(function(resolve, reject){ - + + return new Promise(function (resolve, reject) { + server = self.resolveServerID(server); - + request .patch(`${Endpoints.SERVERS}/${server}/roles/${role.id}`) .set("authorization", self.token) .send({ - color : role.color, - hoist : role.hoist, - name : role.name, - permissions : role.packed + color: role.color, + hoist: role.hoist, + name: role.name, + permissions: role.packed }) - .end(function(err, res){ + .end(function (err, res) { if (err) { cb(err); reject(err); @@ -817,41 +819,41 @@ class Client { } }); - + }); - + } - - addMemberToRole(server, role, member, callback=function(err){}){ + + addMemberToRole(server, role, member, callback = function (err) { }) { var self = this; - - return new Promise(function(resolve, reject){ - + + return new Promise(function (resolve, reject) { + var serverId = self.resolveServerID(server); var memberId = self.resolveUserID(member); - + var acServer = self.getServer("id", serverId); var acMember = acServer.getMember("id", memberId); - + request .patch(`https://discordapp.com/api/guilds/${serverId}/members/${memberId}`) .set("authorization", self.token) .send({ - roles : acMember.rawRoles.concat(role.id) + roles: acMember.rawRoles.concat(role.id) }) - .end(function(err){ - - if(err){ + .end(function (err) { + + if (err) { reject(err); callback(err); - }else{ + } else { acMember.addRole(role); resolve(); callback(); } - + }); - + }); } @@ -922,13 +924,16 @@ class Client { var mentions = []; data.mentions = data.mentions || []; //for some reason this was not defined at some point? - for (var mention of data.mentions) { - mentions.push(self.addUser(mention)); - } var channel = self.getChannel("id", data.channel_id); + + for (var mention of data.mentions) { + var user = self.addUser(mention); + mentions.push( channel.server.getMember("id", user.id) || user ); + } + if (channel) { - var msg = channel.addMessage(new Message(data, channel, mentions, self.addUser(data.author))); + var msg = channel.addMessage(new Message(data, channel, mentions, channel.server.getMember("id", self.addUser(data.author).id))); self.trigger("message", msg); } @@ -966,8 +971,9 @@ class Client { } var mentions = []; - for (var mention of info.mentions) { - mentions.push(self.addUser(mention)); + for (var mention of data.mentions) { + var user = self.addUser(mention); + mentions.push( channel.server.getMember("id", user.id) || user ); } var newMessage = new Message(info, channel, mentions, formerMessage.author); @@ -1394,7 +1400,7 @@ class Client { } } - + resolveUserID(resource) { if (resource instanceof User) { // also accounts for Member return resource.id; @@ -1464,14 +1470,16 @@ class Client { var mentions = []; data.mentions = data.mentions || []; //for some reason this was not defined at some point? - - for (var mention of data.mentions) { - mentions.push(self.addUser(mention)); - } var channel = self.getChannel("id", data.channel_id); + + for (var mention of data.mentions) { + var user = self.addUser(mention); + mentions.push(channel.server.getMember("id", user.id) || user); + } + if (channel) { - var msg = channel.addMessage(new Message(data, channel, mentions, self.addUser(data.author))); + var msg = channel.addMessage(new Message(data, channel, mentions, channel.server.getMember("id",data.author.id))); resolve(msg); } } diff --git a/test/bot.1.js b/test/bot.1.js index f24829dfa..06de0af2a 100644 --- a/test/bot.1.js +++ b/test/bot.1.js @@ -30,22 +30,7 @@ mybot.on("message", function (message) { var perms = JSON.stringify(message.channel.permissionsOf(user).serialise(), null, 4); perms = JSON.parse(perms); - this.createRole(message.channel.server).catch(error).then((permission) => { - mybot.reply(message, JSON.stringify(permission.serialise(), null, 4)); - - setTimeout(() => { - permission.manageRoles = true; - permission.name="asdfasdf"; - permission.color = Discord.Colors.PURPLE; - - mybot.updateRole(message.channel.server, permission).then((perm) => { - console.log(message.sender.rawRoles); - mybot.addMemberToRole(message.channel.server, perm, message.sender).catch(error); - }).catch(error); - }, 3000); - - - }); + mybot.reply(message, message.sender.server.name); });