#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)
}