Проблема Discord.js / javascript с ошибкой. if (command ===’очистить’). Ошибка ссылки: команда не определена

#javascript #node.js #discord.js

#javascript #node.js #discord.js

Вопрос:

Каждый раз, когда появляется сообщение об ошибке if(command ===’очистить’) Ошибка ссылки: команда не определена, хотя бот подключается к Сети, но не отвечает ни на какие инструкции в discord bot. Заранее спасибо за помощь! я попытался удалить if (command ===’очистить’) весь раздел, но затем он показал ту же ошибку в следующей команде воспроизведения, которая является одной из основных команд для музыкального бота. я также связал видео с YouTube, которое я использовал в качестве ссылки для этого кода, и я попытался сделать именно то, что он сказал, чтобы закодировать моего бота discord. https://www.youtube.com/watch?v=3wJJDM7jUskamp;list=RDCMUC08G-UJT58SbkdmcOYyOQVwamp;index=2

     const Discord = require('discord.js');

const client =  new Discord.Client();

const prefix = '!';

const fs = require('fs');
 
client.commands = new Discord.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.name, command);
}


client.once('ready',() =>{
    console.log('Tihadi.io is online!');

} );
client.on('guildMemberAdd', guildMember => {
    let welcomeRole = guildMember.guild.roles.cache.find(role => role.name ==='member');
    guildMember.roles.add(welcomeRole);
    guildMember.guild.channels.cache.get('783308287571132417').send(`Welcome <@

lt;{guildMember.user.id}> malik, To our server!`)
});

client.on('message', message => {
if (!message.content.startsWith(prefix) || message.author.bot) return;
const args = message.content.slice(prefix.length).split(/ /);
const commands = args.shift().toLowerCase();
if (command === 'clear') {
client.commands.get('clear').execute(message ,args);
}else if (command==='play') {
client.commands.get('play').execute(message ,args);
}else if (command==='leave') {
client.command.get('leave').execute(messsage ,args);
}

});

client.login('token');

Комментарии:

1. Это commands ( const commands = ... ) не command

Ответ №1:

В вашем коде вы определяете commands как переменную, но затем пытаетесь проверить command некоторые строки. У вас также отсутствует s на одном из ваших client.commands.get() .

Чтобы исправить эту ошибку, вы можете сделать:

 if (commands == 'clear') {
    client.commands.get('clear').execute(message ,args);
}else if (commands == 'play') {
    client.commands.get('play').execute(message ,args);
}else if (commands == 'leave') {
    client.commands.get('leave').execute(messsage ,args);
}
 

Ответ №2:

это может вам помочь!

 client.commands = new Collection()

const commandFiles = fs.readdirSync('./commands').filter(file => file.endsWith('.js'))
for(const file of commandFiles){
 const commands = require(`./commands/${file}`)
 client.commands.set(commands.name, commands)
}