mirror of
https://github.com/danbulant/discord.js
synced 2026-05-25 13:02:38 +00:00
37 lines
913 B
JavaScript
37 lines
913 B
JavaScript
const Constants = require('../util/Constants');
|
|
|
|
class EvaluatedPermissions {
|
|
constructor(member, permissions) {
|
|
this.member = member;
|
|
this.permissions = permissions;
|
|
}
|
|
|
|
serialize() {
|
|
const serializedPermissions = {};
|
|
for (const permissionName in Constants.PermissionFlags) {
|
|
serializedPermissions[permissionName] = this.hasPermission(permissionName);
|
|
}
|
|
|
|
return serializedPermissions;
|
|
}
|
|
|
|
hasPermission(permission, explicit) {
|
|
if (permission instanceof String || typeof permission === 'string') {
|
|
permission = Constants.PermissionFlags[permission];
|
|
}
|
|
|
|
if (!permission) {
|
|
throw Constants.Errors.NOT_A_PERMISSION;
|
|
}
|
|
|
|
if (!explicit) {
|
|
if ((this.permissions & Constants.PermissionFlags.ADMINISTRATOR) > 0) {
|
|
return true;
|
|
}
|
|
}
|
|
|
|
return ((this.permissions & permission) > 0);
|
|
}
|
|
}
|
|
|
|
module.exports = EvaluatedPermissions;
|