discord.js如何同时发送embed嵌入消息和普通文本内容?
问题原因
你使用的是discord.js v12及更早版本的消息发送传参逻辑,在v13及以上版本中,send方法仅接受一个配置对象作为参数,文本内容、embed等配置都需要统一放到该对象内,分开传文本和配置对象的写法会导致配置被忽略,就会出现只发送@everyone不显示embed的问题。
修复后代码
let Embed = new Discord.MessageEmbed() .setColor('#FF0000') .setTitle(event.name + " (Starting Now)") .setDescription(getFormatDescription(event.format) + "\n" + event.date + " @ " + event.time) .setThumbnail('https://i.imgur.com/UmwJYKP.png') .setFooter('Dont miss out!', 'https://static.wikia.nocookie.net/shivaxis-rlcraft/images/e/ea/Diamond.png/revision/latest?cb=20210527212751'); client.channels.cache.get('890259780436914196').send({ content: '@everyone', embeds: [Embed] }).then(message => { message.crosspost(); });
额外校验项
- 如果你后续升级到discord.js v14+版本,需要把
Discord.MessageEmbed替换为Discord.EmbedBuilder,其余配置逻辑保持一致即可。 - 确认机器人在目标频道拥有
嵌入链接权限,你当前单独发embed可以正常显示,说明权限配置没有问题。
内容的提问来源于stack exchange,提问作者GomezStriker
相关产品推荐
相关产品推荐

