mirror of
https://github.com/ZeppelinBot/Zeppelin.git
synced 2025-05-11 12:55:01 +00:00
Improve permission utils, make them bigint-aware
This commit is contained in:
parent
a404c7a97f
commit
8af64a6944
11 changed files with 97 additions and 34 deletions
16
backend/src/utils/hasDiscordPermissions.ts
Normal file
16
backend/src/utils/hasDiscordPermissions.ts
Normal file
|
@ -0,0 +1,16 @@
|
|||
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);
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue