From d6781016ff23f11691bcd390bea96c120ff2e38a Mon Sep 17 00:00:00 2001 From: Skillz Date: Fri, 12 Jun 2020 07:59:37 -0400 Subject: [PATCH] edit channel permissions optimizing --- handlers/channel.ts | 17 ++++++++++++++++- utils/permissions.ts | 2 +- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/handlers/channel.ts b/handlers/channel.ts index 234598d8c..b43011cfb 100644 --- a/handlers/channel.ts +++ b/handlers/channel.ts @@ -281,8 +281,23 @@ export function editChannel(channel: Channel, options: ChannelEditOptions) { } } + const payload = { + ...options, + permission_overwrites: options.permission_overwrites?.map( + (overwrite) => { + return { + ...overwrite, + allow: overwrite.allow.reduce((bits, perm) => + bits |= Permissions[perm], 0), + deny: overwrite.deny.reduce((bits, perm) => + bits |= Permissions[perm], 0), + }; + }, + ) + } + return RequestManager.patch( endpoints.GUILD_CHANNEL(channel.id), - options, + payload, ); } diff --git a/utils/permissions.ts b/utils/permissions.ts index 7f3bd4db3..cccc7a4f0 100644 --- a/utils/permissions.ts +++ b/utils/permissions.ts @@ -51,7 +51,7 @@ export function botHasPermission(guildID: string, permissions: Permissions[]) { export function calculatePermissions(permissionBits: number) { return Object.keys(Permissions).filter((perm) => { return permissionBits & Permissions[perm as Permission]; - }); + }) as Permission[]; } export function highestRole(guildID: string, memberID: string) {