import DiscordEvent from "../../util/DiscordEvent"; import { DiscordInteractionCommands } from "../../index"; import { Client, Interaction } from "discord.js"; export default class InteractionCreate extends DiscordEvent { constructor(client: Client) { super("interactionCreate", client); } public async execute(interaction: Interaction): Promise { if (!interaction.isChatInputCommand()) return; const command = DiscordInteractionCommands.get(interaction.commandName); if (!command) return console.error(`No command matching ${interaction.commandName} was found.`); try { await command.execute(interaction); console.info(`[Info - Discord] Command '${interaction.commandName}' executed by '${interaction.user.username}'`); } catch (error) { console.error(`Error executing command '${interaction.commandName}': by '${interaction.user.username}'\n${error}`); if (interaction.replied || interaction.deferred) { await interaction.followUp({ content: 'There was an error while executing this command!', ephemeral: true }); } else { await interaction.reply({ content: 'There was an error while executing this command!', ephemeral: true }); } } } }