3
0
Fork 0
mirror of https://github.com/ZeppelinBot/Zeppelin.git synced 2025-03-19 07:20:00 +00:00
zeppelin/backend/src/utils/hasDiscordPermissions.ts

17 lines
658 B
TypeScript
Raw Normal View History

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