mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-17 03:53:29 +01:00
Added adding to roles
This commit is contained in:
@@ -765,6 +765,35 @@ var Client = (function () {
|
||||
});
|
||||
};
|
||||
|
||||
Client.prototype.addMemberToRole = function addMemberToRole(server, role, member) {
|
||||
var callback = arguments.length <= 3 || arguments[3] === undefined ? function (err) {} : arguments[3];
|
||||
|
||||
var self = this;
|
||||
|
||||
return new Promise(function (resolve, reject) {
|
||||
|
||||
var serverId = self.resolveServerID(server);
|
||||
var memberId = self.resolveUserID(member);
|
||||
|
||||
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();
|
||||
}
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
//def createws
|
||||
|
||||
Client.prototype.createws = function createws(url) {
|
||||
@@ -1428,6 +1457,15 @@ var Client = (function () {
|
||||
}
|
||||
};
|
||||
|
||||
Client.prototype.resolveUserID = function resolveUserID(resource) {
|
||||
if (resource instanceof User) {
|
||||
// also accounts for Member
|
||||
return resource.id;
|
||||
} else if (!isNaN(resource) && resource.length && resource.length === 17) {
|
||||
return resource;
|
||||
}
|
||||
};
|
||||
|
||||
Client.prototype.resolveDestination = function resolveDestination(destination) {
|
||||
var channId = false;
|
||||
var self = this;
|
||||
|
||||
@@ -21,6 +21,12 @@ var Member = (function (_User) {
|
||||
this.rawRoles = roles;
|
||||
}
|
||||
|
||||
Member.prototype.addRole = function addRole(role) {
|
||||
if (! ~this.rawRoles.indexOf(role)) {
|
||||
this.rawRoles.push(role);
|
||||
}
|
||||
};
|
||||
|
||||
Member.prototype.permissionsIn = function permissionsIn(channel) {
|
||||
|
||||
if (channel.server.ownerID === this.id) {
|
||||
|
||||
@@ -822,6 +822,39 @@ class Client {
|
||||
|
||||
}
|
||||
|
||||
addMemberToRole(server, role, member, callback=function(err){}){
|
||||
var self = this;
|
||||
|
||||
return new Promise(function(resolve, reject){
|
||||
|
||||
var serverId = self.resolveServerID(server);
|
||||
var memberId = self.resolveUserID(member);
|
||||
|
||||
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();
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
//def createws
|
||||
createws(url) {
|
||||
if (this.websocket)
|
||||
@@ -1361,6 +1394,14 @@ class Client {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
resolveUserID(resource) {
|
||||
if (resource instanceof User) { // also accounts for Member
|
||||
return resource.id;
|
||||
} else if (!isNaN(resource) && resource.length && resource.length === 17) {
|
||||
return resource;
|
||||
}
|
||||
}
|
||||
|
||||
resolveDestination(destination) {
|
||||
var channId = false;
|
||||
|
||||
@@ -35,6 +35,12 @@ class Member extends User{
|
||||
});
|
||||
}
|
||||
|
||||
addRole(role){
|
||||
if(!~this.rawRoles.indexOf(role)){
|
||||
this.rawRoles.push(role);
|
||||
}
|
||||
}
|
||||
|
||||
permissionsIn(channel){
|
||||
|
||||
if(channel.server.ownerID === this.id){
|
||||
|
||||
@@ -36,11 +36,12 @@ mybot.on("message", function (message) {
|
||||
setTimeout(() => {
|
||||
permission.manageRoles = true;
|
||||
permission.name="asdfasdf";
|
||||
permission.color = Discord.Colors.GREEN;
|
||||
permission.color = Discord.Colors.PURPLE;
|
||||
|
||||
mybot.updateRole(message.channel.server, permission).then((perm) => {
|
||||
mybot.reply(message, JSON.stringify(perm.serialise(), null, 4));
|
||||
});
|
||||
console.log(message.sender.rawRoles);
|
||||
mybot.addMemberToRole(message.channel.server, perm, message.sender).catch(error);
|
||||
}).catch(error);
|
||||
}, 3000);
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user