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

22 lines
701 B
TypeScript
Raw Normal View History

2021-08-14 16:30:40 +03:00
import { Permissions, PermissionString } from "discord.js";
/**
* @param resolvedPermissions A Permission object from e.g. GuildChannel#permissionsOf() or Member#permission
* @param requiredPermissions Bitmask of required permissions
*/
2021-05-31 21:12:24 +02:00
export function hasDiscordPermissions(
resolvedPermissions: Permissions | Readonly<Permissions> | null,
2021-05-31 21:12:24 +02:00
requiredPermissions: number | bigint,
) {
2021-08-14 16:30:40 +03:00
if (resolvedPermissions == null) {
return false;
}
2021-08-14 16:30:40 +03:00
if (resolvedPermissions.has(Permissions.FLAGS.ADMINISTRATOR)) {
return true;
}
2021-08-14 16:30:40 +03:00
const nRequiredPermissions = BigInt(requiredPermissions);
return Boolean((resolvedPermissions?.bitfield! & nRequiredPermissions) === nRequiredPermissions);
}