如何在Discord机器人转发消息时显示发言用户名?
修改方案
你可以通过调用Discord.js提供的用户属性,轻松给转发内容添加原发言用户的标识,以下是几种实用的修改方式:
方式一:显示用户完整标签+消息内容
这种方式会直接展示用户的用户名#四位数字格式标签,清晰标识发言来源:
client.on('messageCreate', message => { if(message.author.bot) return; if(message.channel.id === "1012047542462185572"){ const forwardedContent = `**${message.author.tag}** 说:\n${message.content}`; client.channels.cache.get('1012048291111903292').send(forwardedContent); } });
方式二:可点击的用户提及+消息内容
如果需要在转发消息里直接跳转原用户的资料,用用户ID生成Discord的提及格式即可:
client.on('messageCreate', message => { if(message.author.bot) return; if(message.channel.id === "1012047542462185572"){ const forwardedContent = `<@${message.author.id}> 说:\n${message.content}`; client.channels.cache.get('1012048291111903292').send(forwardedContent); } });
进阶:用嵌入消息优化展示效果
想要更美观的转发样式,可以使用MessageEmbed构建带用户头像和格式的消息:
const { MessageEmbed } = require('discord.js'); client.on('messageCreate', message => { if(message.author.bot) return; if(message.channel.id === "1012047542462185572"){ const embed = new MessageEmbed() .setAuthor({ name: message.author.tag, iconURL: message.author.displayAvatarURL() }) .setDescription(message.content) .setColor('#0099ff'); client.channels.cache.get('1012048291111903292').send({ embeds: [embed] }); } });
内容的提问来源于stack exchange,提问作者Skaro
相关产品推荐
相关产品推荐

