import { ChatInputCommandInteraction, Collection, Events, SlashCommandBuilder } from "discord.js"; import * as notification from "./notification"; import * as blocklist from "./blocklist"; import * as info from "./info"; import * as preserveSettings from "./preserveSettings"; import client from "../client"; import getDefaultEmbed from "../tools/defaultEmbeds"; const commands = new Collection Promise }>(); commands.set(notification.builder.name, notification); commands.set(blocklist.builder.name, blocklist); commands.set(info.builder.name, info); commands.set(preserveSettings.builder.name, preserveSettings); client.on(Events.InteractionCreate, async (interaction) => { if (!interaction.isChatInputCommand()) return; const command = commands.get(interaction.commandName); if (!command) { console.error(`No command matching ${interaction.commandName} was found`); return; } try { await command.execute(interaction); } catch (e) { if (e instanceof Error && "stack" in e) { console.error(e.stack); } else { console.error(e) } const embed = getDefaultEmbed(); embed.setTitle("Something went wrong"); embed.setDescription("An unexpected error occurred while processing your command. Please contact support if the problem persists"); embed.setColor(0xD01B15); await interaction.reply({ embeds: [embed], ephemeral: true }).catch(); } });