diff --git a/events/client/interactionCreate.js b/events/client/interactionCreate.js index 87aa312..9fd8c88 100644 --- a/events/client/interactionCreate.js +++ b/events/client/interactionCreate.js @@ -1,3 +1,4 @@ +import { Permissions } from 'discord.js'; import db from '../../models/index.js'; const ratelimit = {}; @@ -30,10 +31,26 @@ export default { console.log(`\x1b[33m${userTag} (${userID})\x1b[0m launched command \x1b[33m${commandName}\x1b[0m`); + // Owner only check if (command.ownerOnly && interaction.user.id !== ownerId) { return interaction.reply({ content: '❌ This command is reserved for the owner!', ephemeral: true }); } + // Check if the bot has the needed permissions + if (command.clientPermissions) { + const clientMember = await interaction.guild.members.fetch(client.user.id); + if (!clientMember.permissions.has(command.clientPermissions)) { + return interaction.reply({ content: `❌ I am missing one of the following permission(s): \`${new Permissions(command.clientPermissions).toArray()}\``, ephemeral: true }); + } + } + + // Check if the user has the needed permissions + if (command.userPermissions) { + if (!interaction.member.permissions.has(command.userPermissions)) { + return interaction.reply({ content: `❌ You are missing one of the following permission(s): \`${new Permissions(command.userPermissions).toArray()}\``, ephemeral: true }); + } + } + try { const date = new Date(); if (ratelimit[userID]) {