Reputation: 23
The command doesn't run and I get an "interaction failed" error.
Please tell me which file is giving the error and how can I do it?
index.js:
client.commands = new Collection();
const commandFiles = fs.readdirSync('./commands').filter(file => file.endsWith('.js'));
for (const file of commandFiles) {
const command = require(`./commands/${file}`);
client.commands.set(command.data.name, command);
}
client.once('ready', () => {
console.log('봇이 준비됐습니다!');
});
client.on('interactionCreate', async interaction => {
if (!interaction.isCommand()) return interaction.reply({content: '없는 명령어입니다...', ephemeral: true });
const command = client.commands.get(interaction.commandName);
if (!command) return interaction.reply({ content: '명령을 실행하는 데 실패했습니다...', ephemeral: true });
try {
await command.execute(interaction);
} catch (error) {
console.error(error);
return interaction.reply({ content: '명령을 실행하는 데 실패했습니다...', ephemeral: true });
}
});
s();
keepAlive();
client.login(token);
commands/help.js:
async execute(interaction) {
const helpembed = new MessageEmbed()
.setColor('red')
.setTitle('명령어')
return interaction.reply({embeds: [helpembed]});
},
Upvotes: 0
Views: 2010
Reputation: 172
there are several things wrong with your code
File help.js:
const { MessageEmbed } = require('discord.js');
.setColor('red')
, you have to do .setColor('#ff0000')
File index.js:
const command = client.commands.get(interaction.commandName);
Why are you trying to fetch our interactions in commands ? Maybe you should try with const command = client.interactions.get(interaction.commandName);
(if the collection of interactions was declared)For more details about the error, maybe check on your console and provide the error if you have acces to it.
Upvotes: 1