zappyzep/backend/src/utils/hasDiscordPermissions.ts
2021-05-31 21:12:24 +02:00

19 lines
676 B
TypeScript

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