A pretty crappy example and a load of bug fixes

Much more stable permission management
This commit is contained in:
hydrabolt
2015-10-26 18:43:49 +00:00
parent af18e833f9
commit 7dea4b9e9c
5 changed files with 209 additions and 60 deletions

View File

@@ -881,6 +881,11 @@ class Client {
var acServer = self.getServer("id", serverId);
var acMember = acServer.getMember("id", memberId);
if(acMember.rawRoles.indexOf(role.id) !== -1){
// user already has role
return;
}
request
.patch(`https://discordapp.com/api/guilds/${serverId}/members/${memberId}`)
@@ -916,12 +921,12 @@ class Client {
var acServer = self.getServer("id", serverId);
var acMember = acServer.getMember("id", memberId);
for(var safeRole in acMember.rawRoles){
if(acMember.rawRoles[safeRole] == role.id){
acMember.rawRoles.splice(safeRole, 1);
}
if(~acMember.rawRoles.indexOf(role.id)){
acMember.removeRole(role);
}
console.log("remainder: ",acMember.rawRoles, "wanting", role.id);
request
.patch(`https://discordapp.com/api/guilds/${serverId}/members/${memberId}`)
.set("authorization", self.token)

View File

@@ -36,12 +36,25 @@ class Member extends User{
});
}
removeRole(role){
this.rawRoles.splice(this.rawRoles.indexOf(role.id), 1);
}
addRole(role){
if(!~this.rawRoles.indexOf(role)){
this.rawRoles.push(role);
if(this.rawRoles.indexOf(role.id) == -1){
console.log("wanted to add", role.id, this.rawRoles.indexOf(role.id));
this.rawRoles.push(role.id);
}
}
hasRole(role){
for(var _role of this.roles){
if(role.id === _role.id)
return true;
}
return false;
}
permissionsIn(channel){
if(channel.server.ownerID === this.id){