mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-21 05:53:30 +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
|
//def createws
|
||||||
|
|
||||||
Client.prototype.createws = function createws(url) {
|
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) {
|
Client.prototype.resolveDestination = function resolveDestination(destination) {
|
||||||
var channId = false;
|
var channId = false;
|
||||||
var self = this;
|
var self = this;
|
||||||
|
|||||||
@@ -21,6 +21,12 @@ var Member = (function (_User) {
|
|||||||
this.rawRoles = roles;
|
this.rawRoles = roles;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Member.prototype.addRole = function addRole(role) {
|
||||||
|
if (! ~this.rawRoles.indexOf(role)) {
|
||||||
|
this.rawRoles.push(role);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
Member.prototype.permissionsIn = function permissionsIn(channel) {
|
Member.prototype.permissionsIn = function permissionsIn(channel) {
|
||||||
|
|
||||||
if (channel.server.ownerID === this.id) {
|
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
|
//def createws
|
||||||
createws(url) {
|
createws(url) {
|
||||||
if (this.websocket)
|
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) {
|
resolveDestination(destination) {
|
||||||
var channId = false;
|
var channId = false;
|
||||||
|
|||||||
@@ -35,6 +35,12 @@ class Member extends User{
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
addRole(role){
|
||||||
|
if(!~this.rawRoles.indexOf(role)){
|
||||||
|
this.rawRoles.push(role);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
permissionsIn(channel){
|
permissionsIn(channel){
|
||||||
|
|
||||||
if(channel.server.ownerID === this.id){
|
if(channel.server.ownerID === this.id){
|
||||||
|
|||||||
@@ -36,11 +36,12 @@ mybot.on("message", function (message) {
|
|||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
permission.manageRoles = true;
|
permission.manageRoles = true;
|
||||||
permission.name="asdfasdf";
|
permission.name="asdfasdf";
|
||||||
permission.color = Discord.Colors.GREEN;
|
permission.color = Discord.Colors.PURPLE;
|
||||||
|
|
||||||
mybot.updateRole(message.channel.server, permission).then((perm) => {
|
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);
|
}, 3000);
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user