Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
robot.channels.cache.get('ID_канала').send("Сообщение");
bot.on('message', async msg => {
if (msg.author.bot) return;
if (!msg.content.startsWith(BOT_PREFIX)) return;
let args = msg.content.split(/\s+/g);
let cmd = args.shift();
...
});

Статья интересная, но примеры кода тяжело читать.
Вы использовали линтер?
Где-то const/let, а где-то var.
В одном месте увидел async/await и одновременно Promise.then.
В колбэках где-то стрелочные функции, а где-то обычные.
Не говорю, что это прямо критично. Но причесанный код читать гораздо легче и проще понять, о чем речь.
function clear(robot, mess, args) { // Создание новой функции с командой
const arggs = mess.content.split(' ').slice(1);
const amount = arggs.join(' ');
if (!amount) return mess.channel.send('Вы не указали, сколько сообщений нужно удалить!');
if (isNaN(amount)) return mess.channel.send('Это не число!');
if (amount > 100) return mess.channel.send('Вы не можете удалить 100 сообщений за раз');
if (amount < 1) return mess.channel.send('Вы должны ввести число больше чем 1');
async function delete_messages() {
await mess.channel.messages.fetch({ limit: amount }).then(messages => {
mess.channel.bulkDelete(messages)
mess.channel.send(`Удалено ${amount} сообщений!`)
})};
delete_messages();
}
var comms_list = [ // Добавление функции с командой в массив
{name: "clear", out: clear, about: "Удаление сообщений"},
}
function heads_or_tails(robot, mess, args) {
mess.channel.send('Монета подбрасывается...')
var random = Math.floor(Math.random() * 4);
if (random == 1) {
mess.channel.send(':full_moon: Орёл!')
} else if (random == 2) {
mess.channel.send(':new_moon: Решка!')
} else if (random == 3) {
mess.channel.send(':last_quarter_moon: Монета упала ребром!')
}
}
var comms_list = [
{name: "heads_or_tails", out: heads_or_tails, about: "«Орёл или Решка»"},
}
Создание Discord-бота, используя библиотеку discord.js | Часть №1