3
0
Fork 0
mirror of https://github.com/ZeppelinBot/Zeppelin.git synced 2025-05-22 01:05:02 +00:00

More work on permission utils and eager permission checks

This commit is contained in:
Dragory 2020-08-07 01:21:31 +03:00
parent 5a3be1ab03
commit 8e1d39f26b
11 changed files with 189 additions and 79 deletions

View file

@ -0,0 +1,17 @@
import { Constants, Permission } from "eris";
/**
* @param resolvedPermissions A Permission object from e.g. GuildChannel#permissionsOf() or Member#permission
* @param requiredPermissions Bitmask of required permissions
* @return Bitmask of missing permissions
*/
export function getMissingPermissions(resolvedPermissions: Permission, requiredPermissions: number | bigint): bigint {
const allowedPermissions = BigInt(resolvedPermissions.allow);
const nRequiredPermissions = BigInt(requiredPermissions);
if (Boolean(allowedPermissions & BigInt(Constants.Permissions.administrator))) {
return BigInt(0);
}
return nRequiredPermissions & ~allowedPermissions;
}