mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-12 01:23:31 +01:00
Fixed PermissionOverwrites
This commit is contained in:
70
src/Structures/PermissionOverwrite.js
Normal file
70
src/Structures/PermissionOverwrite.js
Normal file
@@ -0,0 +1,70 @@
|
||||
"use strict";
|
||||
|
||||
var Permissions = require("../Constants.js").Permissions;
|
||||
|
||||
class PermissionOverwrite {
|
||||
|
||||
constructor(data) {
|
||||
this.id = data.id;
|
||||
this.type = data.type; // member or role
|
||||
this.deny = data.deny;
|
||||
this.allow = data.allow;
|
||||
}
|
||||
|
||||
// returns an array of allowed permissions
|
||||
get allowed(){
|
||||
var allowed = [];
|
||||
for( var permName in Permissions ){
|
||||
if(permName === "manageRoles" || permName === "manageChannels"){
|
||||
// these permissions do not exist in overwrites.
|
||||
continue;
|
||||
}
|
||||
|
||||
if(!!(this.allow & Permissions[permName])){
|
||||
allowed.push(permName);
|
||||
}
|
||||
}
|
||||
return allowed;
|
||||
}
|
||||
|
||||
// returns an array of denied permissions
|
||||
get denied(){
|
||||
var denied = [];
|
||||
for( var permName in Permissions ){
|
||||
if(permName === "manageRoles" || permName === "manageChannels"){
|
||||
// these permissions do not exist in overwrites.
|
||||
continue;
|
||||
}
|
||||
|
||||
if(!!(this.deny & Permissions[permName])){
|
||||
denied.push(permName);
|
||||
}
|
||||
}
|
||||
return denied;
|
||||
}
|
||||
|
||||
setAllowed(allowedArray){
|
||||
allowedArray.forEach( (permission) => {
|
||||
if(permission instanceof String || typeof permission === "string"){
|
||||
permission = Permissions[permission];
|
||||
}
|
||||
if(permission){
|
||||
this.allow |= (1 << permission);
|
||||
}
|
||||
} );
|
||||
}
|
||||
|
||||
setDenied(deniedArray){
|
||||
deniedArray.forEach( (permission) => {
|
||||
if(permission instanceof String || typeof permission === "string"){
|
||||
permission = Permissions[permission];
|
||||
}
|
||||
if(permission){
|
||||
this.deny |= (1 << permission);
|
||||
}
|
||||
} );
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
module.exports = PermissionOverwrite;
|
||||
Reference in New Issue
Block a user