From 124bbfdc18a171250305aee25872a06c4154f8c7 Mon Sep 17 00:00:00 2001 From: Dragory <2606411+Dragory@users.noreply.github.com> Date: Sat, 14 Aug 2021 16:30:40 +0300 Subject: [PATCH] Tweaks to hasDiscordPermissions() --- backend/src/utils/hasDiscordPermissions.ts | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/backend/src/utils/hasDiscordPermissions.ts b/backend/src/utils/hasDiscordPermissions.ts index c8f4823a..fbf81506 100644 --- a/backend/src/utils/hasDiscordPermissions.ts +++ b/backend/src/utils/hasDiscordPermissions.ts @@ -1,4 +1,4 @@ -import { Permissions } from "discord.js"; +import { Permissions, PermissionString } from "discord.js"; /** * @param resolvedPermissions A Permission object from e.g. GuildChannel#permissionsOf() or Member#permission @@ -8,12 +8,14 @@ export function hasDiscordPermissions( resolvedPermissions: Permissions | Readonly | null, requiredPermissions: number | bigint, ) { - const allowedPermissions = resolvedPermissions; - const nRequiredPermissions = requiredPermissions; + if (resolvedPermissions == null) { + return false; + } - if (Boolean(allowedPermissions?.bitfield! & Permissions.FLAGS.ADMINISTRATOR)) { + if (resolvedPermissions.has(Permissions.FLAGS.ADMINISTRATOR)) { return true; } - return Boolean((allowedPermissions?.bitfield! & BigInt(nRequiredPermissions)) === nRequiredPermissions); + const nRequiredPermissions = BigInt(requiredPermissions); + return Boolean((resolvedPermissions?.bitfield! & nRequiredPermissions) === nRequiredPermissions); }