You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Discord音乐队列普通消息代码修改为embed嵌入消息格式

Discord音乐队列Embed格式修改方案

完整修改后代码(适配discord.js v13版本)

const { MessageEmbed } = require('discord.js');

module.exports = {
    name: 'queue',
    aliases: ['q'],
    category: 'Music',
    utilisation: '{prefix}queue',

    execute(client, message) {
        // 无活跃队列时返回提示
        if (!client.player.getQueue(message)) return message.channel.send('当前没有正在运行的音乐队列');
        const queue = client.player.getQueue(message);

        // 生成队列列表文本
        const trackList = queue.tracks.map((track, i) => {
            return `**${i + 1})** ${track.author} - ${track.title} | ${track.requestedBy.username}`
        }).slice(0, 10).join('\n');
        const footerTip = queue.tracks.length > 10 ? `还有 ${queue.tracks.length - 10} 首歌曲未列出` : '已经到队列末尾啦';

        // 构造Embed实例
        const queueEmbed = new MessageEmbed()
            .setColor('#1DB954') // 可自定义侧边栏颜色,此处为Spotify绿
            .setTitle(`播放队列 ${queue.loopMode ? '(循环已开启)' : ''}`)
            .setDescription(`**当前播放:**\n${queue.playing.author} | ${queue.playing.title}`)
            .addField('待播放列表', trackList)
            .setFooter({ text: footerTip });

        // 发送Embed消息
        message.channel.send({ embeds: [queueEmbed] });
    },
};

v14版本适配修改说明

  • 导入类替换为const { EmbedBuilder } = require('discord.js')
  • 实例化embed时改为new EmbedBuilder(),其余配置方法保持一致

注意事项

  • 发送embed必须使用{ embeds: [实例对象] }的参数格式,直接传递embed实例会导致发送失败,这是修改时最常见的报错原因
  • 单条embed字段内容上限为1024字符,此处限制最多显示10首歌曲,刚好规避长度超限报错
  • 可按需扩展embed属性:例如调用.setThumbnail(queue.playing.thumbnail)添加当前播放歌曲封面、.setTimestamp()添加发送时间戳等

内容的提问来源于stack exchange,提问作者El Meron

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 22:42:03