mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-11 17:13:31 +01:00
Fixed permission resolution
This commit is contained in:
@@ -31,14 +31,14 @@ class Member extends User{
|
||||
var basePerms = this.roles, //cache roles as it can be slightly expensive
|
||||
basePerm = basePerms[0].packed;
|
||||
|
||||
|
||||
basePerms = basePerms || [];
|
||||
for(var perm of basePerms){
|
||||
basePerm = basePerm | perm.packed;
|
||||
console.log(perm.name +" - "+perm.mentionEveryone);
|
||||
}
|
||||
|
||||
return new ServerPermissions({
|
||||
permissions : basePerm
|
||||
});
|
||||
return new EvaluatedPermissions(basePerm);
|
||||
}
|
||||
|
||||
removeRole(role){
|
||||
@@ -78,24 +78,22 @@ class Member extends User{
|
||||
|
||||
|
||||
if(affectingOverwrites.length === 0 && affectingMemberOverwrites.length === 0){
|
||||
return new EvaluatedPermissions(this.evalPerms.packed);
|
||||
return this.evalPerms;
|
||||
}
|
||||
|
||||
var finalPacked = (affectingOverwrites.length !== 0 ? affectingOverwrites[0].packed : affectingMemberOverwrites[0].packed);
|
||||
|
||||
for(var overwrite of affectingOverwrites){
|
||||
finalPacked = finalPacked & ~overwrite.deny;
|
||||
}
|
||||
console.log(affectingOverwrites);
|
||||
console.log("\n\n\n");
|
||||
console.log(affectingMemberOverwrites);
|
||||
|
||||
for(var overwrite of affectingOverwrites){
|
||||
finalPacked = finalPacked & ~overwrite.deny;
|
||||
finalPacked = finalPacked | overwrite.allow;
|
||||
}
|
||||
|
||||
for(var overwrite of affectingMemberOverwrites){
|
||||
finalPacked = finalPacked & ~overwrite.deny;
|
||||
}
|
||||
|
||||
for(var overwrite of affectingMemberOverwrites){
|
||||
finalPacked = finalPacked | overwrite.allow;
|
||||
}
|
||||
|
||||
|
||||
@@ -12,7 +12,7 @@ class ServerPermissions {
|
||||
this.position = data.position || 1;
|
||||
this.hoist = data.hoist || false;
|
||||
this.color = data.color || 0;
|
||||
this.packed = data.permissions || 36953089;
|
||||
this.packed = data.permissions || (data.name === "@everyone" ? 36953089 : 0));
|
||||
this.name = data.name || "new role";
|
||||
this.id = data.id || null;
|
||||
this.server = server;
|
||||
|
||||
Reference in New Issue
Block a user