如何将Discord音乐机器人queue命令的输出消息改为代码块格式
解决方案
修改后的完整代码
module.exports = { name: 'queue', aliases: ['q'], category: 'Music', utilisation: '{prefix}queue', execute(client, message) { const queue = client.player.getQueue(message); // 组装队列列表内容 const queueList = queue.tracks.map((track, i) => { return `${i + 1}) ${track.author} - ${track.title} | ${track.requestedBy.username}` }).slice(0, 10).join('\n'); // 拼接带代码块标记的完整消息 const sendContent = `\`\`\` ${queue.loopMode ? '(looped)' : ''} Current: ${queue.playing.author} | ${queue.playing.title} ${queueList} ${queue.tracks.length > 10 ? `And ${queue.tracks.length - 10} more track(s)` : `This is the end of the queue!`} \`\`\``; message.channel.send(sendContent); }, };
修改说明
- Discord代码块需要用三个反引号```包裹全部内容,由于JS模板字符串本身用反引号声明,所以内部的反引号需要加
\转义,避免语法冲突 - 移除了原代码中的
**、__等富文本标记:代码块内不会解析Discord Markdown格式,保留这些标记会直接将符号显示在消息中,影响可读性 - 拆分了内容拼接逻辑,替换原硬编码换行符为标准
\n,避免不同环境下换行失效问题 - 如果你需要代码块带语法高亮效果,可以在开头的三个反引号后添加标识,比如
text或者diff,展示效果会更清晰
内容的提问来源于stack exchange,提问作者El Meron
相关产品推荐
相关产品推荐

