【问题标题】:Embed: DiscordAPIError: Cannot send an empty message嵌入:DiscordAPIError:无法发送空消息
【发布时间】:2021-09-15 06:40:36
【问题描述】:

又是我..

好吧:

我正在尝试创建一个命令来警告用户他们加入了错误的服务器,但是当我运行该命令时,我得到了无法发送空味精错误..

真的,任何帮助将不胜感激!

const Discord = require("discord.js")

module.exports.run = async (client, message, args, err) => { 
const embed = new Discord.MessageEmbed().setTitle('Hey!').setDescription('We think you have our server mistaken. etc etc')
     if (!args[0]) return message.reply('Who?', { allowedMentions: { repliedUser: false } });
     const member = message.mentions.members.first() || await message.guild.members.fetch(args[0]).catch(e => {
      check = true;
      return message.reply('Can\'t find specefied member! Provide a valid ID, or mention ig lol.', { allowedMentions: { repliedUser: false } });
    });
    message.channel.send(embed).catch(err)
    message.channel.send(`${member}`)
    }

错误:

DiscordAPIError: Cannot send an empty message
    at RequestHandler.execute (C:\Users\stupk\Desktop\Holo\node_modules\discord.js\src\rest\RequestHandler.js:298:13)
    at processTicksAndRejections (internal/process/task_queues.js:93:5)
    at async RequestHandler.push (C:\Users\stupk\Desktop\Holo\node_modules\discord.js\src\rest\RequestHandler.js:50:14) {
  method: 'post',
  path: '/channels/843567563648139317/messages',
  code: 50006,
  httpStatus: 400,
  requestData: {
    json: {
      content: undefined,
      tts: false,
      nonce: undefined,
      embeds: undefined,
      components: undefined,
      username: undefined,
      avatar_url: undefined,
      allowed_mentions: undefined,
      flags: undefined,
      message_reference: undefined,
      attachments: undefined
    },
    files: []
  }
}

【问题讨论】:

  • 当您尝试发送ws 时,它的值究竟是多少?你可以试试控制台记录吗?
  • 它的嵌入,我将它重命名为 ws - 但它的背面。错误出现在我编辑的问题中
  • 试试new Discord.MessageEmbed().setTitle('title').setDescription('description')
  • 还是同样的错误..我用我当前的代码编辑问题
  • 好的,我编辑了代码

标签: javascript discord.js


【解决方案1】:

让我试着帮忙!很多用户最近遇到了同样的错误!

代替:

message.channel.send(embed)

做:

message.channel.send({ embed: embed });

【讨论】:

    【解决方案2】:

    现在 discord.js 已经更新到 v13,接受的答案有点过时了。 API 现在支持每条消息最多 10 个嵌入。

    所以,而不是:

    message.channel.send({ embed: embed })
    

    用途:

    message.channel.send({ embeds: [embed1, embed2, embed3... embed10] })
    

    当然,您也可以只插入一个嵌入:

    message.channel.send({ embeds: [embed] })
    

    更新日志: https://discordjs.guide/additional-info/changes-in-v13.html#sending-messages-embeds-files-etc

    你也可以在那里找到一些额外的东西。

    【讨论】:

    • 我正在为机器人使用 Discord.js v12.5.3,但我仍然遇到同样的问题。奇怪的是,我在一个机器人上得到了这个错误,但在其他三个机器人上却没有。 Discord.js 的所有版本都是一样的,发送机制也是一样的,唯一不同的是嵌入的内容。没有异步/等待,所以我不确定发生了什么。
    • 其实没关系,我把embed的名字拼错了:P
    猜你喜欢
    • 2021-12-01
    • 2021-12-28
    • 2020-04-07
    • 2021-12-15
    • 2022-01-01
    • 2021-11-02
    • 2022-01-23
    • 1970-01-01
    相关资源
    最近更新 更多