discord.js如何将funnyrate命令的机器人回复设置为嵌入消息
解决方案
以下代码适配discord.js v14 版本,若你使用v12/v13版本,只需将代码中的
EmbedBuilder替换为MessageEmbed即可正常运行。
修改后完整代码
// 顶部先导入Embed构建工具 const { EmbedBuilder } = require('discord.js'); module.exports.run = async (bot, message, args) => { const rating = Math.floor(Math.random() * 100) + 1; const mentionedMember = message.mentions.members.first(); // 构建Embed实例 const funnyRateEmbed = new EmbedBuilder() .setColor('#FFE66D') // 自定义Embed侧边颜色,这里用的亮黄色,可自行修改 .setTitle('😂 搞笑指数测评') .setDescription(mentionedMember ? `根据我的测算,${mentionedMember} 的搞笑指数是 ${rating}%!` : `根据我的测算,你的搞笑指数是 ${rating}%!` ) .setFooter({ text: '测评结果仅供娱乐' }); // 可选添加页脚说明 // 发送嵌入消息 return message.channel.send({ embeds: [funnyRateEmbed] }); } module.exports.help = { name: "funnyrate" }
核心改动说明
- 导入discord.js内置的
EmbedBuilder工具类,用来规范构建嵌入消息 - 把两种业务场景的返回内容都整合到Embed的描述字段中,不用分开写两套回复逻辑
- 你可以根据自己的需求调整Embed的颜色、标题、追加用户头像、添加时间戳等属性,进一步自定义展示效果
- 发送消息时通过
embeds参数传入构建好的Embed数组即可,支持同时发送多个嵌入消息
内容的提问来源于stack exchange,提问作者khaled motasem
相关产品推荐
相关产品推荐

