/** * @copyright nhcarrigan * @license Naomi's Public License * @author Naomi Carrigan */ import { about } from "../commands/about.js"; import { dm } from "../commands/dm.js"; import type { Command } from "../interfaces/command.js"; import type { ChatInputCommandInteraction, Client } from "discord.js"; const handlers: { _default: Command } & Record = { _default: async(_, interaction): Promise => { await interaction.reply({ content: `Unknown command: ${interaction.commandName}`, ephemeral: true, }); }, about: about, dm: dm, }; /** * Processes a slash command. * @param hikari - Hikari's Discord instance. * @param interaction - The command interaction payload from Discord. */ const chatInputInteractionCreate = async( hikari: Client, interaction: ChatInputCommandInteraction, ): Promise => { const name = interaction.commandName; // eslint-disable-next-line no-underscore-dangle -- We use _default as a fallback handler. const handler = handlers[name] ?? handlers._default; await handler(hikari, interaction); }; export { chatInputInteractionCreate };