Бот JS discord выдает сообщение об ошибке: Не удается отправить пустое сообщение

#javascript #embed #discord #discord.js

#javascript #Внедрить #Discord #discord.js

Вопрос:

Я создаю бота discord, но получаю ошибку:

Отклонение необработанного обещания. Эта ошибка возникла либо из-за запуска внутри асинхронной функции без блока catch, либо из-за отклонения обещания, которое не было обработано с помощью .catch() . (идентификатор отклонения: 2).

Я знаю, что что-то не так, но не уверен, что именно.

 client.on('message', message => {
  if (message.content === 's!verifymsg') {
    const embed = new RichEmbed()
      .setTitle('__**VERIFICACIÓN**__')
      .setColor(0xFF0000)
      .setDescription('¡Para poder ver los demás canales, es necesario que reacciones para verificar! n- Reacciona con (✅)')
    message.channel.send(embed);
  }
});
  

Если вы введете s!verifymsg, он отправит вставку в тот же канал, содержащий некоторый текст в той же вставке.

Ответ №1:

Просматривая это руководство (https://anidiots.guide/first-bot/using-embeds-in-messages ), показывает, что есть пара причин, которые могут быть причиной этого:

1) new RichEmbed() вероятно, должно быть new Discord.RichEmbed() . Это то, что discord.js документация показывает.

2) message.channel.send(embed); вероятно, должно быть message.channel.send({embed}); .

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

1. Вероятно, вам следует расширить этот последний пример до {embed: встроить}. Я не думаю, что многие люди знакомы с неявным поведением переноса объекта в object. кроме того, во многих документах явно используется embed: …

2. @Marie Я думал об этом, но не был уверен в хорошем способе привязать его к исходному образцу кода.

3. Для этого вы должны понимать node.js , в 1) вы можете выполнить const { RichEmbed } = require('discord.js'); or const Discord = require('discord.js') , для 2) (embed) должно работать только то, что будет обработано внутри, obv {embed} также будет работать, но {embed: embed} также потому, что он переименовывает embed в embed, что в данном случае не имеет значения, но когда вы делаете, const ExampleEmbed = new RichEmbed() вы должны сделать .send('text ( optional) ', { embed: ExampleEmbed }); or .send(ExampleEmbed)

4. .send(embed) работает только в более новых версиях discord.js хотя это может сделать npm update