From 1d3c61333cec6ac6c66596274c39631c132f8874 Mon Sep 17 00:00:00 2001 From: hydrabolt Date: Mon, 26 Oct 2015 15:41:56 +0000 Subject: [PATCH] fixed add member to role --- lib/Client.js | 47 ++++++++++++++++++++++++----------------------- lib/server.js | 2 +- src/Client.js | 16 ++++++++-------- src/server.js | 2 +- test/bot.1.js | 17 ++++++++++------- 5 files changed, 44 insertions(+), 40 deletions(-) diff --git a/lib/Client.js b/lib/Client.js index 75d3d4220..78c8eeead 100644 --- a/lib/Client.js +++ b/lib/Client.js @@ -739,7 +739,6 @@ var Client = (function () { var perms = server.addRole(res.body); self.guildRoleCreateIgnoreList[res.body.id] = function () { - self.updateRole(server, moddedPerm).then(function (perm) { cb(null, perm); resolve(perm); @@ -781,32 +780,34 @@ var Client = (function () { }); }; - Client.prototype.addMemberToRole = function addMemberToRole(server, role, member) { - var callback = arguments.length <= 3 || arguments[3] === undefined ? function (err) {} : arguments[3]; + Client.prototype.addMemberToRole = function addMemberToRole(member, role) { + var callback = arguments.length <= 2 || arguments[2] === undefined ? function (err) {} : arguments[2]; var self = this; return new Promise(function (resolve, reject) { + try { + var serverId = self.resolveServerID(member.server); + var memberId = self.resolveUserID(member); - var serverId = self.resolveServerID(server); - var memberId = self.resolveUserID(member); + var acServer = self.getServer("id", serverId); + var acMember = acServer.getMember("id", memberId); - 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) - }).end(function (err) { - - if (err) { - reject(err); - callback(err); - } else { - acMember.addRole(role); - resolve(); - callback(); - } - }); + request.patch("https://discordapp.com/api/guilds/" + serverId + "/members/" + memberId).set("authorization", self.token).send({ + roles: acMember.rawRoles.concat(role.id) + }).end(function (err) { + if (err) { + reject(err); + callback(err); + } else { + acMember.addRole(role); + resolve(); + callback(); + } + }); + } catch (e) { + reject(e); + } }); }; @@ -1479,7 +1480,7 @@ var Client = (function () { if (resource instanceof Server) { return resource.id; - } else if (!isNaN(resource) && resource.length && resource.length === 17) { + } else { return resource; } }; @@ -1488,7 +1489,7 @@ var Client = (function () { if (resource instanceof User) { // also accounts for Member return resource.id; - } else if (!isNaN(resource) && resource.length && resource.length === 17) { + } else { return resource; } }; diff --git a/lib/server.js b/lib/server.js index 1508a9b47..743e6780e 100644 --- a/lib/server.js +++ b/lib/server.js @@ -111,7 +111,7 @@ var Server = (function () { if (oldRole) { var index = this.roles.indexOf(oldRole); - this.roles[index] = new ServerPermissions(data); + this.roles[index] = new ServerPermissions(data, this); return this.roles[index]; } else { diff --git a/src/Client.js b/src/Client.js index 539d0b3c1..5696eb969 100644 --- a/src/Client.js +++ b/src/Client.js @@ -786,7 +786,6 @@ class Client { var perms = server.addRole(res.body); self.guildRoleCreateIgnoreList[res.body.id] = function () { - self.updateRole(server, moddedPerm) .then((perm) => { cb(null, perm); @@ -842,12 +841,12 @@ class Client { } - addMemberToRole(server, role, member, callback = function (err) { }) { + addMemberToRole(member, role, callback = function (err) { }) { var self = this; return new Promise(function (resolve, reject) { - - var serverId = self.resolveServerID(server); + try{ + var serverId = self.resolveServerID(member.server); var memberId = self.resolveUserID(member); var acServer = self.getServer("id", serverId); @@ -860,7 +859,6 @@ class Client { roles: acMember.rawRoles.concat(role.id) }) .end(function (err) { - if (err) { reject(err); callback(err); @@ -871,7 +869,9 @@ class Client { } }); - + }catch(e){ + reject(e); + } }); } @@ -1420,7 +1420,7 @@ class Client { if (resource instanceof Server) { return resource.id; - } else if (!isNaN(resource) && resource.length && resource.length === 17) { + } else { return resource; } @@ -1429,7 +1429,7 @@ class Client { resolveUserID(resource) { if (resource instanceof User) { // also accounts for Member return resource.id; - } else if (!isNaN(resource) && resource.length && resource.length === 17) { + } else { return resource; } } diff --git a/src/server.js b/src/server.js index 2be58568c..4e32157e2 100644 --- a/src/server.js +++ b/src/server.js @@ -101,7 +101,7 @@ class Server { if(oldRole){ var index = this.roles.indexOf(oldRole); - this.roles[index] = new ServerPermissions(data); + this.roles[index] = new ServerPermissions(data, this); return this.roles[index]; diff --git a/test/bot.1.js b/test/bot.1.js index 50e5d2d92..c54414fc2 100644 --- a/test/bot.1.js +++ b/test/bot.1.js @@ -1,4 +1,5 @@ var Discord = require("../"); +var Member = require("../lib/Member.js"); var mybot = new Discord.Client(); var fs = require("fs"); var request = require("request").defaults({ encoding: null }); @@ -25,16 +26,18 @@ mybot.on("message", function (message) { user = message.sender; } - console.log(mybot.getUser("username", "meew0")); - var perms = JSON.stringify(message.channel.permissionsOf(user).serialise(), null, 4); perms = JSON.parse(perms); - mybot.createRole(message.channel.server, { - color : Discord.Colors.GREEN + mybot.createRole( + message.channel.server, { + color : Discord.Colors.BLUE, + manageRoles : true }).then((perm) => { - mybot.addMemberToRole(message.channel.server, perm, message.sender).then(console.log).catch(error); - }).catch(error); + mybot.reply(message, message.sender.server.id) + mybot.addMemberToRole(message.sender, perm).then(console.log).catch(error); + mybot.reply(message, "done! " + JSON.stringify(perm.server)); + }); }); @@ -67,7 +70,7 @@ function dump(msg) { } function error(err) { - console.log("error", err); + console.log(err); } mybot.login(process.env["ds_email"], process.env["ds_password"]).catch(error); \ No newline at end of file