added updating roles

This commit is contained in:
hydrabolt
2015-10-26 13:29:01 +00:00
parent a3b2f9c2d4
commit 08ffd473e4
5 changed files with 113 additions and 49 deletions

View File

@@ -12,7 +12,7 @@ var Channel = require("./channel.js");
var Message = require("./message.js"); var Message = require("./message.js");
var Invite = require("./invite.js"); var Invite = require("./invite.js");
var PMChannel = require("./PMChannel.js"); var PMChannel = require("./PMChannel.js");
var ServerPermissions = require("./ServerPermissions.js");
var gameMap = require("../ref/gameMap.json"); var gameMap = require("../ref/gameMap.json");
//node modules //node modules
@@ -712,23 +712,52 @@ var Client = (function () {
return prom; return prom;
}; };
Client.prototype.createRole = function createRole(server) { Client.prototype.createRole = function createRole(dest) {
var cb = arguments.length <= 1 || arguments[1] === undefined ? function (err, perm) {} : arguments[1]; var cb = arguments.length <= 1 || arguments[1] === undefined ? function (err, perm) {} : arguments[1];
var self = this; var self = this;
return new Promise(function (resolve, reject) {
var ddest = self.resolveServerID(dest);
request.post(Endpoints.SERVERS + "/" + ddest + "/roles").set("authorization", self.token).end(function (err, res) {
if (err) {
cb(err);
reject(err);
} else {
var perms = self.getServer("id", ddest).addRole(res.body);
resolve(perms);
cb(null, perms);
}
});
});
};
Client.prototype.updateRole = function updateRole(server, role) {
var cb = arguments.length <= 2 || arguments[2] === undefined ? function (err, perm) {} : arguments[2];
var self = this;
return new Promise(function (resolve, reject) { return new Promise(function (resolve, reject) {
server = self.resolveServerID(server); server = self.resolveServerID(server);
request.post(Endpoints.SERVERS + "/" + server + "/roles").set("authorization", self.token).end(function (err, res) { 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
}).end(function (err, res) {
if (err) { if (err) {
cb(err); cb(err);
reject(err); reject(err);
} else { } else {
var data = self.getServer("id", server).addRole(res.body); var data = self.getServer("id", server).updateRole(res.body);
resolve(data); resolve(data);
cb(null, data); cb(null, data);
} }
@@ -1120,8 +1149,6 @@ var Client = (function () {
self.trigger("serverRoleCreate", server, server.addRole(role)); self.trigger("serverRoleCreate", server, server.addRole(role));
server.removeRole(role.id);
break; break;
case "GUILD_ROLE_DELETE": case "GUILD_ROLE_DELETE":

View File

@@ -86,7 +86,7 @@ var Server = (function () {
var role = _ref3; var role = _ref3;
if (role.id === id) { if (role.id == id) {
return role; return role;
} }
} }
@@ -110,7 +110,6 @@ var Server = (function () {
var oldRole = this.getRole(data.id); var oldRole = this.getRole(data.id);
if (oldRole) { if (oldRole) {
var index = this.roles.indexOf(oldRole); var index = this.roles.indexOf(oldRole);
this.roles[index] = new ServerPermissions(data); this.roles[index] = new ServerPermissions(data);

View File

@@ -6,7 +6,7 @@ var Channel = require("./channel.js");
var Message = require("./message.js"); var Message = require("./message.js");
var Invite = require("./invite.js"); var Invite = require("./invite.js");
var PMChannel = require("./PMChannel.js"); var PMChannel = require("./PMChannel.js");
var ServerPermissions = require("./ServerPermissions.js");
var gameMap = require("../ref/gameMap.json"); var gameMap = require("../ref/gameMap.json");
//node modules //node modules
@@ -757,16 +757,16 @@ class Client {
return prom; return prom;
} }
createRole(server, cb = function (err, perm) { }) { createRole(dest, cb = function (err, perm) { }) {
var self = this; var self = this;
return new Promise(function (resolve, reject) { return new Promise(function (resolve, reject) {
server = self.resolveServerID(server); var ddest = self.resolveServerID(dest);
request request
.post(`${Endpoints.SERVERS}/${server}/roles`) .post(`${Endpoints.SERVERS}/${ddest}/roles`)
.set("authorization", self.token) .set("authorization", self.token)
.end(function (err, res) { .end(function (err, res) {
@@ -775,9 +775,10 @@ class Client {
reject(err); reject(err);
} else { } else {
var data = self.getServer("id", server).addRole(res.body); var perms = self.getServer("id", ddest).addRole(res.body);
resolve(data);
cb(null, data); resolve(perms);
cb(null, perms);
} }
@@ -787,6 +788,40 @@ class Client {
} }
updateRole(server, role, cb=function(err,perm){}){
var self = this;
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
})
.end(function(err, res){
if (err) {
cb(err);
reject(err);
} else {
var data = self.getServer("id", server).updateRole(res.body);
resolve(data);
cb(null, data);
}
});
});
}
//def createws //def createws
createws(url) { createws(url) {
if (this.websocket) if (this.websocket)
@@ -1125,8 +1160,6 @@ class Client {
self.trigger("serverRoleCreate", server, server.addRole(role)); self.trigger("serverRoleCreate", server, server.addRole(role));
server.removeRole(role.id);
break; break;
case "GUILD_ROLE_DELETE": case "GUILD_ROLE_DELETE":

View File

@@ -75,11 +75,11 @@ class Server {
getRole(id){ getRole(id){
for (var role of this.roles) { for (var role of this.roles) {
if (role.id === id) { if (role.id == id) {
return role; return role;
} }
} }
return null; return null;
} }
@@ -96,15 +96,13 @@ class Server {
} }
updateRole(data){ updateRole(data){
var oldRole = this.getRole(data.id); var oldRole = this.getRole(data.id);
if(oldRole){ if(oldRole){
var index = this.roles.indexOf(oldRole); var index = this.roles.indexOf(oldRole);
this.roles[index] = new ServerPermissions(data); this.roles[index] = new ServerPermissions(data);
return this.roles[index]; return this.roles[index];
}else{ }else{

View File

@@ -10,66 +10,73 @@ var server, channel, message, sentMessage = false;
counter = 1; counter = 1;
mybot.on("message", function (message) { mybot.on("message", function (message) {
console.log("Everyone mentioned? " + message.everyoneMentioned); console.log("Everyone mentioned? " + message.everyoneMentioned);
if (message.content.substr(0,3) !== "$$$") { if (message.content.substr(0, 3) !== "$$$") {
return; return;
} }
// we can go ahead :) // we can go ahead :)
var user; var user;
if(message.mentions.length > 0){ if (message.mentions.length > 0) {
user = message.mentions[0]; user = message.mentions[0];
}else{ } else {
user = message.sender; user = message.sender;
} }
console.log( mybot.getUser("username", "meew0") ); console.log(mybot.getUser("username", "meew0"));
var perms = JSON.stringify(message.channel.permissionsOf(user).serialise(), null, 4); var perms = JSON.stringify(message.channel.permissionsOf(user).serialise(), null, 4);
perms = JSON.parse(perms); perms = JSON.parse(perms);
this.createRole(message.channel.server).catch(error).then((data) => { this.createRole(message.channel.server).catch(error).then((permission) => {
data.manageRoles = true; mybot.reply(message, JSON.stringify(permission.serialise(), null, 4));
mybot.reply(message, JSON.stringify(data.serialise(), null, 4));
setTimeout(() => {
mybot.updateRole(message.channel.server, data).catch(error).then(console.log) permission.manageRoles = true;
permission.name="asdfasdf";
mybot.updateRole(message.channel.server, permission).then((perm) => {
mybot.reply(message, JSON.stringify(perm.serialise(), null, 4));
});
}, 3000);
}); });
}); });
mybot.on("ready", function () { mybot.on("ready", function () {
console.log("im ready"); console.log("im ready");
for(var server of mybot.servers){ for (var server of mybot.servers) {
if(server.name === "test-server"){ if (server.name === "test-server") {
mybot.leaveServer(server); mybot.leaveServer(server);
} }
} }
}); });
mybot.on("debug", function(info){ mybot.on("debug", function (info) {
}) })
mybot.on("unknown", function(info){ mybot.on("unknown", function (info) {
console.log("warning!", info); console.log("warning!", info);
}) })
mybot.on("channelUpdate", function(oldChan, newChan){ mybot.on("channelUpdate", function (oldChan, newChan) {
}); });
function dump(msg) { function dump(msg) {
console.log(msg); console.log("dump", msg);
} }
function error(err) { function error(err) {
console.log(err); console.log("error", err);
} }
mybot.login(process.env["ds_email"], process.env["ds_password"]).catch(error); mybot.login(process.env["ds_email"], process.env["ds_password"]).catch(error);