discord.js v13中如何实现示例图所示的Embed字段效果
discord.js v13 实现对应Embed样式的代码写法
- 前置依赖:确认本地安装的是discord.js v13版本,安装命令为
npm i discord.js@13,同时机器人在目标频道需要持有EMBED_LINKS、SEND_MESSAGES权限,否则嵌入消息无法正常发送。 - v13版本构造嵌入消息统一使用
MessageEmbed类,发送时需要将实例放入embeds数组中传入send/reply方法,不兼容v12及更早版本的传参格式。
完整代码示例
const { MessageEmbed } = require('discord.js'); // 构造Embed实例,逐一对齐示例样式 const targetEmbed = new MessageEmbed() // 设置侧边栏颜色,可替换为示例对应的色值 .setColor('#5865F2') // 设置标题区域 .setTitle('你的Embed标题') // 设置正文描述 .setDescription('Embed正文描述内容,支持Discord原生Markdown语法') // 添加字段,inline为true时字段会横向并排展示,和示例字段布局一致 .addFields( { name: '第一个字段标题', value: '第一个字段的内容', inline: true }, { name: '第二个字段标题', value: '第二个字段的内容', inline: true }, { name: '第三个字段标题', value: '第三个字段的内容', inline: false } ) // 设置页脚 .setFooter({ text: '页脚显示的文字' }) // 追加时间戳,会自动显示在页脚右侧 .setTimestamp() // 普通消息场景下发送(放在message事件回调内使用) // message.channel.send({ embeds: [targetEmbed] }) // 斜杠命令场景下回复(放在interactionCreate事件回调内使用) // interaction.reply({ embeds: [targetEmbed] })
常见踩坑点
- 所有字段的
name和value不能为空,需要留白占位时填入\u200B零宽空格即可。 - 单个Embed最多支持25个字段,标题、描述、字段值、页脚文本均有官方长度限制,超出会直接抛出API错误。
- 旧版单字段添加方法
.addField()在v13中仍可运行,但推荐使用.addFields()批量添加,代码可读性更高。 - 如果需要添加作者栏、右上角缩略图、底部主图,对应调用
.setAuthor()、.setThumbnail()、.setImage()方法传入对应资源地址即可,参数结构和setFooter一致。
内容的提问来源于stack exchange,提问作者Lachy
相关产品推荐
相关产品推荐

