const commands = [];
const Discord = require("discord.js");
const client = new Discord.Client();
client.login("token");
client.on('message', async (message) => {
const command = commands.find(x => x[0].test(message.content));
await command[1](message);
});
const cmd = {
hear: (p, f) => {
commands.push([p, f]);
}
}
cmd.hear(/^(?:привет)$/i, async (message) => {
message.reply(`Привет`)
});
При обработке команды "привет" выходит ошибка:Cannot read property '1' of undefined Понимаю, что 1 - не найдено. А как исправить данную ошибку, понять не могу.
Бот реагирует на абсолютно ВСЕ сообщения, кем-либо отправленные. Следовательно, чтобы бот не реагировал на свои сообщения необходимо добавить незамысловатую проверку: if (message.author.bot) return;
Сама ошибка вылетает уже после отправки ответа бота, т.к. команда не найдена. Чтобы ошибка не вылезала, необходимо тоже сделать проверку: if (!command) return;
Исправленный код:
const commands = [];
const Discord = require("discord.js");
const client = new Discord.Client();
client.login("token");
client.on('message', async (message) => {
const command = commands.find(x => x[0].test(message.content));
if (message.author.bot) return;
if (!command) return;
await command[1](message);
});
const cmd = {
hear: (p, f) => {
commands.push([p, f]);
}
}
cmd.hear(/^(?:привет)$/i, async (message) => {
message.reply(`Привет`)
});
Продвижение своими сайтами как стратегия роста и независимости