diff --git a/packages/commandkit/src/app/middlewares/permissions.ts b/packages/commandkit/src/app/middlewares/permissions.ts index e7aac3f6..18583e43 100644 --- a/packages/commandkit/src/app/middlewares/permissions.ts +++ b/packages/commandkit/src/app/middlewares/permissions.ts @@ -21,6 +21,22 @@ export async function beforeExecute(ctx: MiddlewareContext) { return; } + let userPermissionsRequired = command.metadata?.userPermissions ?? []; + let botPermissionsRequired = command.metadata?.botPermissions ?? []; + + if (typeof userPermissionsRequired === 'string') { + userPermissionsRequired = [userPermissionsRequired]; + } + + if (typeof botPermissionsRequired === 'string') { + botPermissionsRequired = [botPermissionsRequired]; + } + + // Only perform permission validation if required + if (!userPermissionsRequired.length && !botPermissionsRequired.length) { + return; + } + if ( (interaction && interaction.channel?.isDMBased()) || (message && message.channel?.isDMBased()) @@ -52,27 +68,13 @@ export async function beforeExecute(ctx: MiddlewareContext) { const userPermissions = interaction?.memberPermissions ?? message?.member?.permissions; - let userPermissionsRequired = command.metadata?.userPermissions ?? []; let missingUserPermissions: string[] = []; - if (typeof userPermissionsRequired === 'string') { - userPermissionsRequired = [userPermissionsRequired]; - } - const botPermissions = interaction?.guild?.members.me?.permissions ?? message?.guild?.members.me?.permissions; - let botPermissionsRequired = command.metadata?.botPermissions ?? []; let missingBotPermissions: string[] = []; - if (typeof botPermissionsRequired === 'string') { - botPermissionsRequired = [botPermissionsRequired]; - } - - if (!userPermissionsRequired.length && !botPermissionsRequired.length) { - return; - } - if (userPermissionsRequired.length) { for (const permission of userPermissionsRequired) { const hasPermission = userPermissions?.has(permission);