mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-16 11:33:30 +01:00
Account everyone overwrite when resolving permissions
This commit is contained in:
@@ -66,7 +66,14 @@ class Member extends User{
|
|||||||
|
|
||||||
var affectingOverwrites = [];
|
var affectingOverwrites = [];
|
||||||
var affectingMemberOverwrites = [];
|
var affectingMemberOverwrites = [];
|
||||||
|
|
||||||
|
for(var overwrite of channel.roles) {
|
||||||
|
if(overwrite.id == this.serverID) { // @everyone for channel
|
||||||
|
affectingOverwrites.push(overwrite);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
for(var overwrite of channel.roles){
|
for(var overwrite of channel.roles){
|
||||||
if(overwrite.id === this.id && overwrite.type === "member"){
|
if(overwrite.id === this.id && overwrite.type === "member"){
|
||||||
affectingMemberOverwrites.push(overwrite);
|
affectingMemberOverwrites.push(overwrite);
|
||||||
@@ -74,14 +81,13 @@ class Member extends User{
|
|||||||
affectingOverwrites.push(overwrite);
|
affectingOverwrites.push(overwrite);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if(affectingOverwrites.length === 0 && affectingMemberOverwrites.length === 0){
|
if(affectingOverwrites.length === 0 && affectingMemberOverwrites.length === 0){
|
||||||
return this.evalPerms;
|
return this.evalPerms;
|
||||||
}
|
}
|
||||||
|
|
||||||
var finalPacked = (affectingOverwrites.length !== 0 ? affectingOverwrites[0].packed : affectingMemberOverwrites[0].packed);
|
var finalPacked = (affectingOverwrites.length !== 0 ? affectingOverwrites[0].packed : affectingMemberOverwrites[0].packed);
|
||||||
|
|
||||||
for(var overwrite of affectingOverwrites){
|
for(var overwrite of affectingOverwrites){
|
||||||
finalPacked = finalPacked & ~overwrite.deny;
|
finalPacked = finalPacked & ~overwrite.deny;
|
||||||
finalPacked = finalPacked | overwrite.allow;
|
finalPacked = finalPacked | overwrite.allow;
|
||||||
|
|||||||
Reference in New Issue
Block a user