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 Invite = require("./invite.js");
var PMChannel = require("./PMChannel.js");
var ServerPermissions = require("./ServerPermissions.js");
var gameMap = require("../ref/gameMap.json");
//node modules
@@ -712,23 +712,52 @@ var Client = (function () {
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 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) {
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) {
cb(err);
reject(err);
} else {
var data = self.getServer("id", server).addRole(res.body);
var data = self.getServer("id", server).updateRole(res.body);
resolve(data);
cb(null, data);
}
@@ -1120,8 +1149,6 @@ var Client = (function () {
self.trigger("serverRoleCreate", server, server.addRole(role));
server.removeRole(role.id);
break;
case "GUILD_ROLE_DELETE":

View File

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

View File

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

View File

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

View File

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