fixed add member to role

This commit is contained in:
hydrabolt
2015-10-26 15:41:56 +00:00
parent b5263aae0c
commit 1d3c61333c
5 changed files with 44 additions and 40 deletions

View File

@@ -739,7 +739,6 @@ var Client = (function () {
var perms = server.addRole(res.body); var perms = server.addRole(res.body);
self.guildRoleCreateIgnoreList[res.body.id] = function () { self.guildRoleCreateIgnoreList[res.body.id] = function () {
self.updateRole(server, moddedPerm).then(function (perm) { self.updateRole(server, moddedPerm).then(function (perm) {
cb(null, perm); cb(null, perm);
resolve(perm); resolve(perm);
@@ -781,32 +780,34 @@ var Client = (function () {
}); });
}; };
Client.prototype.addMemberToRole = function addMemberToRole(server, role, member) { Client.prototype.addMemberToRole = function addMemberToRole(member, role) {
var callback = arguments.length <= 3 || arguments[3] === undefined ? function (err) {} : arguments[3]; var callback = arguments.length <= 2 || arguments[2] === undefined ? function (err) {} : arguments[2];
var self = this; var self = this;
return new Promise(function (resolve, reject) { return new Promise(function (resolve, reject) {
try {
var serverId = self.resolveServerID(member.server);
var memberId = self.resolveUserID(member);
var serverId = self.resolveServerID(server); var acServer = self.getServer("id", serverId);
var memberId = self.resolveUserID(member); var acMember = acServer.getMember("id", memberId);
var acServer = self.getServer("id", serverId); request.patch("https://discordapp.com/api/guilds/" + serverId + "/members/" + memberId).set("authorization", self.token).send({
var acMember = acServer.getMember("id", memberId); roles: acMember.rawRoles.concat(role.id)
}).end(function (err) {
request.patch("https://discordapp.com/api/guilds/" + serverId + "/members/" + memberId).set("authorization", self.token).send({ if (err) {
roles: acMember.rawRoles.concat(role.id) reject(err);
}).end(function (err) { callback(err);
} else {
if (err) { acMember.addRole(role);
reject(err); resolve();
callback(err); callback();
} else { }
acMember.addRole(role); });
resolve(); } catch (e) {
callback(); reject(e);
} }
});
}); });
}; };
@@ -1479,7 +1480,7 @@ var Client = (function () {
if (resource instanceof Server) { if (resource instanceof Server) {
return resource.id; return resource.id;
} else if (!isNaN(resource) && resource.length && resource.length === 17) { } else {
return resource; return resource;
} }
}; };
@@ -1488,7 +1489,7 @@ var Client = (function () {
if (resource instanceof User) { if (resource instanceof User) {
// also accounts for Member // also accounts for Member
return resource.id; return resource.id;
} else if (!isNaN(resource) && resource.length && resource.length === 17) { } else {
return resource; return resource;
} }
}; };

View File

@@ -111,7 +111,7 @@ var Server = (function () {
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, this);
return this.roles[index]; return this.roles[index];
} else { } else {

View File

@@ -786,7 +786,6 @@ class Client {
var perms = server.addRole(res.body); var perms = server.addRole(res.body);
self.guildRoleCreateIgnoreList[res.body.id] = function () { self.guildRoleCreateIgnoreList[res.body.id] = function () {
self.updateRole(server, moddedPerm) self.updateRole(server, moddedPerm)
.then((perm) => { .then((perm) => {
cb(null, 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; var self = this;
return new Promise(function (resolve, reject) { return new Promise(function (resolve, reject) {
try{
var serverId = self.resolveServerID(server); var serverId = self.resolveServerID(member.server);
var memberId = self.resolveUserID(member); var memberId = self.resolveUserID(member);
var acServer = self.getServer("id", serverId); var acServer = self.getServer("id", serverId);
@@ -860,7 +859,6 @@ class Client {
roles: acMember.rawRoles.concat(role.id) roles: acMember.rawRoles.concat(role.id)
}) })
.end(function (err) { .end(function (err) {
if (err) { if (err) {
reject(err); reject(err);
callback(err); callback(err);
@@ -871,7 +869,9 @@ class Client {
} }
}); });
}catch(e){
reject(e);
}
}); });
} }
@@ -1420,7 +1420,7 @@ class Client {
if (resource instanceof Server) { if (resource instanceof Server) {
return resource.id; return resource.id;
} else if (!isNaN(resource) && resource.length && resource.length === 17) { } else {
return resource; return resource;
} }
@@ -1429,7 +1429,7 @@ class Client {
resolveUserID(resource) { resolveUserID(resource) {
if (resource instanceof User) { // also accounts for Member if (resource instanceof User) { // also accounts for Member
return resource.id; return resource.id;
} else if (!isNaN(resource) && resource.length && resource.length === 17) { } else {
return resource; return resource;
} }
} }

View File

@@ -101,7 +101,7 @@ class Server {
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, this);
return this.roles[index]; return this.roles[index];

View File

@@ -1,4 +1,5 @@
var Discord = require("../"); var Discord = require("../");
var Member = require("../lib/Member.js");
var mybot = new Discord.Client(); var mybot = new Discord.Client();
var fs = require("fs"); var fs = require("fs");
var request = require("request").defaults({ encoding: null }); var request = require("request").defaults({ encoding: null });
@@ -25,16 +26,18 @@ mybot.on("message", function (message) {
user = message.sender; user = message.sender;
} }
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);
mybot.createRole(message.channel.server, { mybot.createRole(
color : Discord.Colors.GREEN message.channel.server, {
color : Discord.Colors.BLUE,
manageRoles : true
}).then((perm) => { }).then((perm) => {
mybot.addMemberToRole(message.channel.server, perm, message.sender).then(console.log).catch(error); mybot.reply(message, message.sender.server.id)
}).catch(error); 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) { function error(err) {
console.log("error", err); console.log(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);