mirror of
https://github.com/danbulant/discord.js
synced 2026-06-08 09:13:22 +00:00
Added adding to roles
This commit is contained in:
parent
1de2c5e5be
commit
6a18740927
5 changed files with 95 additions and 3 deletions
|
|
@ -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);
|
||||
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue