All files / handlers/events interactionCreate.ts

100% Statements 36/36
100% Branches 7/7
100% Functions 1/1
100% Lines 36/36

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 371x 1x 1x 1x 1x 1x 1x 1x 1x 16x 1x 1x 16x 16x 15x 15x 16x 1x 1x 1x 1x 1x 1x 1x 16x 16x 14x 16x 12x 12x 12x 12x 12x 12x 16x 1x  
import { Events, MessageFlags } from "discord.js"
 
import type { BotClient } from "@/classes/Client"
import { Event } from "../../classes/Event"
import { replyWithCommandError } from "@/utils/replyWithCommandError"
 
export default new Event({
  name: Events.InteractionCreate,
  async execute(interaction) {
    if (!interaction.isChatInputCommand()) {
      return
    }
 
    const client = interaction.client as BotClient
    const command = client.commands.get(interaction.commandName)
 
    if (!command) {
      await interaction.reply({
        content: "That command is not currently available.",
        flags: MessageFlags.Ephemeral,
      })
 
      return
    }
 
    try {
      await command.execute({ interaction })
    } catch (error) {
      await replyWithCommandError({
        interaction,
        error,
        reportRuntimeError: client.reportRuntimeError,
      })
    }
  },
})