Compare commits

...

2 Commits

Author SHA1 Message Date
d3d9a305d0 fix generic command name getter 2024-02-06 15:50:12 +01:00
905ee9d8a9 generalise command execution for interaction create 2024-02-06 15:49:07 +01:00

View File

@ -1,6 +1,6 @@
import { Events } from 'discord.js';
const chatInputCommand = async (interaction, command) => {
const executeCommand = async (interaction, command) => {
// Try executing command
try {
console.info(`[INFO] Command ${interaction.commandName} was executed.`);
@ -21,9 +21,9 @@ const chatInputCommand = async (interaction, command) => {
}
};
const genericExecute = async (interaction, command, name, description) => {
const genericExecute = async (interaction, command, name, description, cmdName) => {
try {
console.info(`[INFO] Command ${interaction.commandName} ${description ?? `used "${name}"`}.`);
console.info(`[INFO] Command ${(cmdName ?? interaction.commandName) ?? 'anonymous'} ${description ?? `used "${name}"`}.`);
await command[name](interaction);
} catch (error) {
console.error(error);
@ -34,9 +34,9 @@ export const name = Events.InteractionCreate;
export async function execute(interaction) {
let command = interaction.client.commands.get(interaction.commandName);
// Execute slash commands
if (interaction.isChatInputCommand()) {
await chatInputCommand(interaction, command);
// Execute slash- and context-menu-commands
if (interaction.isChatInputCommand() || interaction.isMessageContextMenuCommand()) {
await executeCommand(interaction, command);
return;
}
// Autocomplete input
@ -44,12 +44,12 @@ export async function execute(interaction) {
await genericExecute(interaction, command, 'autocomplete');
return;
}
// Modeal submit event
// Modal submit event
if (interaction.isModalSubmit()) {
const name = interaction.customId.split('-')[0];
command = interaction.client.commands.get(name);
await genericExecute(interaction, command, 'modalSubmit', 'submitted a modal');
await genericExecute(interaction, command, 'modalSubmit', 'submitted a modal', name);
return;
}