【问题标题】:JS discord bot is getting error: Cannot send an empty messageJS discord bot 出现错误:无法发送空消息
【发布时间】:2019-08-26 14:26:31
【问题描述】:

我正在制作一个不和谐的机器人,但我收到了错误:

未处理的承诺拒绝。此错误源于在没有 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,它会在同一频道中发送一个嵌入,其中包含同一嵌入中的一些文本。

【问题讨论】:

    标签: javascript embed discord discord.js


    【解决方案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});

    【讨论】:

    • 您可能应该将最后一个示例扩展为 {embed: embed}。我认为很多人都不熟悉将对象包装在对象中的隐式行为。加上很多文档明确使用 embed: ...
    • @Marie 我想过,但不确定将其与原始代码示例联系起来的好方法。
    • 为此,您必须了解 node.js,在 1) 您可以执行 const { RichEmbed } = require('discord.js');const Discord = require('discord.js') 2) (embed) 单独工作,因为它将在内部处理,obv @987654329 @ 也可以工作,但 {embed: embed} 也可以,因为在这种情况下它将 embed 重命名为 embed 并不重要,但是当你这样做 const ExampleEmbed = new RichEmbed() 时,你必须这样做 .send('text ( optional) ', { embed: ExampleEmbed });.send(ExampleEmbed)
    • .send(embed) 仅适用于较新版本的 discord.js,npm update 也可能如此
    猜你喜欢
    • 2022-01-23
    • 1970-01-01
    • 2021-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-06
    • 2020-08-25
    • 2019-03-05
    相关资源
    最近更新 更多