diff --git a/src/helpers/channels/clone_channel.ts b/src/helpers/channels/clone_channel.ts index 76ca0a7b0..e84e039e0 100644 --- a/src/helpers/channels/clone_channel.ts +++ b/src/helpers/channels/clone_channel.ts @@ -29,8 +29,8 @@ export async function cloneChannel(channelId: string, reason?: string) { ) => ({ id: overwrite.id, type: overwrite.type, - allow: calculatePermissions(BigInt(overwrite.allow)), - deny: calculatePermissions(BigInt(overwrite.deny)), + allow: calculatePermissions(overwrite.allow), + deny: calculatePermissions(overwrite.deny), })), }; diff --git a/src/util/permissions.ts b/src/util/permissions.ts index 1eb5b65a9..90e187562 100644 --- a/src/util/permissions.ts +++ b/src/util/permissions.ts @@ -268,13 +268,13 @@ export function requireBotChannelPermissions( } /** This function converts a bitwise string to permission strings */ -export function calculatePermissions(permissionBits: bigint) { +export function calculatePermissions(permissionBits: string) { return Object.keys(DiscordBitwisePermissionFlags).filter((permission) => { // Since Object.keys() not only returns the permission names but also the bit values we need to return false if it is a Number if (Number(permission)) return false; // Check if permissionBits has this permission return ( - permissionBits & + BigInt(permissionBits) & BigInt(DiscordBitwisePermissionFlags[permission as PermissionStrings]) ); }) as PermissionStrings[];