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

Discord机器人富嵌入用户提及显示异常,需呈现样式但无实际Ping

解决Discord Rich Embed中用户提及显示异常的问题

我来帮你搞定这个Discord机器人的Embed提及问题!你想要的「显示用户提及样式但不触发Ping」其实刚好是Discord Embed的默认特性,只要用对格式就能实现。

为什么你的尝试没生效?

  • 你用的@${author.tag}是纯文本字符串,Discord不会把它识别为用户提及,自然只会显示成普通文字;
  • 虽然你试过<@${author.id}>,但可能没意识到这个格式本身是正确的——只是你之前的写法没让Discord正确解析,而且Embed里的提及默认就不会触发Ping!

正确的实现方法

在Embed中使用<@${用户ID}>格式,Discord会自动将其渲染成带样式的用户昵称/用户名(就是你想要的那种@样式),并且不会发送Ping通知给该用户,完全匹配你的需求。

修正后的代码示例

把你代码里的setFooter行替换成下面这行,其他部分保持不变:

.setFooter(`Requested by <@${author.id}>`, author.avatarURL)

完整的修正后代码如下:

const Discord = require('discord.js'); // 确保正确引入discord.js
const serv = message.guild;
const author = message.author;
const myInfo = new Discord.RichEmbed()
  .setAuthor(`${serv.name}'s roles`, message.guild.iconURL)
  .addField(`Roles`, serv.roles.map(r => `${r}`).join(' | '), true)
  .setColor(0xffd000)
  .setFooter(`Requested by <@${author.id}>`, author.avatarURL); // 关键修改处
message.channel.sendEmbed(myInfo);

补充说明

  • 关于Ping的问题:Discord的Embed中所有用户/角色提及都不会触发通知,只有普通消息(非Embed)里的提及才会Ping用户,所以你完全不需要额外处理;
  • 如果你的discord.js版本是v12及以上,RichEmbed已经被替换为MessageEmbed,只需要把new Discord.RichEmbed()改成new Discord.MessageEmbed()即可,用法完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 09:13:17