discord.js v13发送Embed消息报错Cannot send an empty message如何解决
问题原因
- 核心原因是discord.js v13调整了消息 payload 的结构规范:v12及更早版本支持单Embed用
embed字段传递,v13开始所有Embed必须放入embeds数组字段中传递。你当前代码使用了旧版本的{embed: aembed}传参格式,discord服务端无法识别到有效消息内容,因此判定为空消息,抛出错误码50006的Cannot send an empty message异常。 - 额外注意:你代码中
setThumbnail('png')传入的是无效图片链接,后续运行可能出现缩略图加载失败的问题,建议替换为合法的图片直链地址。
修复方案
只需要修改发送消息的代码行,把旧的传参格式替换为v13要求的格式即可:
原代码行:
message.channel.send({embed: aembed})
修改为:
message.channel.send({embeds: [aembed]})
修改后完整代码片段
case 'a': case 'A': let part = message.content.split(" "); if(!message.member.permissions.has(Discord.Permissions.FLAGS.MANAGE_ROLES)) return; if(!part[1]) return; var text = message.content.split(" ").slice(1).join(" "); message.delete(); const aembed = new Discord.MessageEmbed() .setColor('RED') // 建议将下方的'png'替换为有效的图片直链 .setThumbnail('png') .addField('Our newest announcement: ', text, true) .setTimestamp() .setFooter('This is an announcement' + 'from' + message.member.displayName + '!') // 修改为v13要求的embeds数组格式 message.channel.send({embeds: [aembed]})
内容的提问来源于stack exchange,提问作者I need Help
相关产品推荐
相关产品推荐

