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) {