diff --git a/lib/Client.js b/lib/Client.js index c49ea50f0..875a0318b 100644 --- a/lib/Client.js +++ b/lib/Client.js @@ -781,6 +781,26 @@ var Client = (function () { }); }; + Client.prototype.deleteRole = function deleteRole(role) { + var callback = arguments.length <= 1 || arguments[1] === undefined ? function (err) {} : arguments[1]; + + // role is a ServerPermissions + var self = this; + + return new Promise(function (resolve, reject) { + + request.del(Endpoints.SERVERS + "/" + role.server.id + "/roles/" + role.id).set("authorization", self.token).end(function (err) { + if (err) { + reject(err); + callback(err); + } else { + resolve(); + callback(); + } + }); + }); + }; + Client.prototype.addMemberToRole = function addMemberToRole(member, role) { var callback = arguments.length <= 2 || arguments[2] === undefined ? function (err) {} : arguments[2]; diff --git a/lib/server.js b/lib/server.js index 743e6780e..0bad69c64 100644 --- a/lib/server.js +++ b/lib/server.js @@ -38,7 +38,7 @@ var Server = (function () { var permissionGroup = _ref; - this.roles.push(new ServerPermissions(permissionGroup)); + this.roles.push(new ServerPermissions(permissionGroup, this)); } if (!data.members) { diff --git a/src/Client.js b/src/Client.js index 7fa555c23..0446d5760 100644 --- a/src/Client.js +++ b/src/Client.js @@ -846,6 +846,30 @@ class Client { }); } + + deleteRole(role, callback = function(err){}){ + + // role is a ServerPermissions + var self = this; + + return new Promise(function(resolve, reject){ + + request + .del(`${Endpoints.SERVERS}/${role.server.id}/roles/${role.id}`) + .set("authorization", self.token) + .end(function(err){ + if(err){ + reject(err); + callback(err); + }else{ + resolve(); + callback(); + } + }) + + }); + + } addMemberToRole(member, role, callback = function (err) { }) { var self = this; diff --git a/src/server.js b/src/server.js index 4e32157e2..99401db65 100644 --- a/src/server.js +++ b/src/server.js @@ -17,7 +17,7 @@ class Server { this.roles = []; for(var permissionGroup of data.roles){ - this.roles.push( new ServerPermissions(permissionGroup) ); + this.roles.push( new ServerPermissions(permissionGroup, this) ); } if(!data.members){ diff --git a/test/bot.1.js b/test/bot.1.js index 5171fc1c6..52c7e7b6f 100644 --- a/test/bot.1.js +++ b/test/bot.1.js @@ -25,19 +25,15 @@ mybot.on("message", function (message) { } else { user = message.sender; } - - var typea = message.content.split(" ")[1].toUpperCase(); - - mybot.createRole( - message.channel.server, { - color : Discord.Colors[typea], - manageRoles : true - }).then((perm) => { - 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)); - }); - + try{ + for(var role of message.channel.server.roles){ + + mybot.deleteRole(role).catch(error); + + } + }catch(e){ + console.log(e); + } }); mybot.on("ready", function () {