Update from Git Manager GUI
This commit is contained in:
58
events/interactionCreate.js
Normal file
58
events/interactionCreate.js
Normal file
@@ -0,0 +1,58 @@
|
||||
export default {
|
||||
name: "interactionCreate",
|
||||
|
||||
async execute(client, interaction) {
|
||||
// Handle slash commands
|
||||
if (interaction.isChatInputCommand()) {
|
||||
const command = client.commands.get(interaction.commandName);
|
||||
if (!command) return;
|
||||
|
||||
// Build args array from slash command options
|
||||
const args = [];
|
||||
if (interaction.options) {
|
||||
for (const option of interaction.options.data) {
|
||||
if (option.type === 7 /* CHANNEL */) {
|
||||
args.push(option.channel);
|
||||
} else {
|
||||
args.push(String(option.value));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Build a ctx object compatible with prefix command handlers
|
||||
const ctx = {
|
||||
isSlash: true,
|
||||
interaction,
|
||||
guild: interaction.guild,
|
||||
author: interaction.user,
|
||||
member: interaction.member,
|
||||
channel: interaction.channel,
|
||||
mentions: { channels: { first: () => args.find(a => typeof a === "object") } },
|
||||
reply: async (opts) => {
|
||||
if (interaction.replied || interaction.deferred) {
|
||||
return interaction.followUp(opts);
|
||||
}
|
||||
return interaction.reply(opts);
|
||||
},
|
||||
};
|
||||
|
||||
try {
|
||||
await command.execute(client, ctx, args);
|
||||
} catch (e) {
|
||||
client.logger.error(e);
|
||||
const errMsg = { content: "Ein Fehler ist beim Ausführen des Befehls aufgetreten.", ephemeral: true };
|
||||
if (interaction.replied || interaction.deferred) {
|
||||
await interaction.followUp(errMsg);
|
||||
} else {
|
||||
await interaction.reply(errMsg);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Handle button interactions (e.g. from add.js confirmation)
|
||||
if (interaction.isButton()) {
|
||||
// Button collectors handle their own interactions via awaitMessageComponent
|
||||
// Nothing to do here globally
|
||||
}
|
||||
},
|
||||
};
|
||||
Reference in New Issue
Block a user