diff options
Diffstat (limited to 'packages/interactions')
| -rw-r--r-- | packages/interactions/server.ts | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/packages/interactions/server.ts b/packages/interactions/server.ts index c840bc1..0645cfd 100644 --- a/packages/interactions/server.ts +++ b/packages/interactions/server.ts @@ -848,8 +848,12 @@ router.post("/", async (request: Request, environment: Environment) => { const member = interaction.member; const hasAdminPermission = member?.permissions && (parseInt(member.permissions) & 0x8) === 0x8; + const hasOwnerRole = member?.roles?.includes(OWNER_ROLE_ID); + const hasAdministratorRole = member?.roles?.includes( + ADMINISTRATOR_ROLE_ID, + ); - if (!hasAdminPermission) + if (!hasAdminPermission && !hasOwnerRole && !hasAdministratorRole) return new JSONResponse({ type: InteractionResponseType.CHANNEL_MESSAGE_WITH_SOURCE, data: { @@ -869,10 +873,10 @@ router.post("/", async (request: Request, environment: Environment) => { }); const targetUserID = interaction.data.options?.find( - (opt) => opt.name === "user", + (option) => option.name === "user", )?.value as string; const targetRoleID = interaction.data.options?.find( - (opt) => opt.name === "role", + (option) => option.name === "role", )?.value as string; if (!targetUserID || !targetRoleID) |