Discord.js发送Embed出现DiscordAPIError: Cannot send an empty message如何解决
错误产生原因
你当前使用的是discord.js v13及以上版本,该版本对消息发送接口做了不兼容调整:不再支持直接将Embed实例作为channel.send()方法的入参,必须将Embed实例放入配置对象的embeds数组字段中传递。你原代码直接传入Embed实例时,框架无法识别为有效消息内容,会判定消息为空,因此抛出code为50006的Cannot send an empty message错误。
修复方案
仅需要修改message.channel.send()的传参格式即可,修改后的完整代码如下:
module.exports = { name: 'tiktok', description: "sends tiktok link", execute(message, args, Discord) { const newEmbed = new Discord.MessageEmbed() .setColor('#228B22') .setTitle('Tiktok') .setURL('https://www.tiktok.com/@elcattuccino?lang=en') .setDescription('tiktok link for the discord server') .addFields( {name: 'Tiktok', value:'heres the tiktok link'}, ) .setImage('https://cdn.discordapp.com/avatars/752212130870329384/6a16609eafc28f95ad8f64e80ffcc24e.png?size=80') .setFooter('check out the tiktok'); message.channel.send({ embeds: [newEmbed] }); } }
如果你使用的是discord.js v14及以上版本,还需要将Discord.MessageEmbed替换为Discord.EmbedBuilder,其余逻辑无需改动。
内容的提问来源于stack exchange,提问作者White byte
相关产品推荐
相关产品推荐

