3
0
Fork 0
mirror of https://github.com/ZeppelinBot/Zeppelin.git synced 2025-05-10 12:25:02 +00:00
zeppelin/backend/src/utils/hasDiscordPermissions.ts
metal fda9a35f29
migrate permissions
Signed-off-by: GitHub <noreply@github.com>
2023-03-11 14:31:59 +00:00

21 lines
715 B
TypeScript

import { PermissionsBitField } 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: PermissionsBitField | Readonly<PermissionsBitField> | null,
requiredPermissions: number | bigint,
) {
if (resolvedPermissions == null) {
return false;
}
if (resolvedPermissions.has(PermissionsBitField.Flags.Administrator)) {
return true;
}
const nRequiredPermissions = BigInt(requiredPermissions);
return Boolean((resolvedPermissions?.bitfield! & nRequiredPermissions) === nRequiredPermissions);
}