Discord.js v14如何实现角色@提及并通知全体成员?
解决Discord.js角色提及通知不生效的问题
你的代码结构本身没问题,但可以通过优化和排查来解决通知不生效的问题:
修正后的代码
await interaction.reply({ content: `<@&${team.id}>`, embeds: [embed], components: [row], allowed_mentions: { roles: [team.id], // 直接传入角色ID即可,无需模板字符串 parse: [] // 禁用默认提及解析,避免意外触发其他类型提及 } });
关键排查点
- 验证角色ID有效性:用
console.log(team.id)确认拿到的是目标角色的正确ID,确保team是有效的GuildRole实例,而非undefined或错误对象。 - 检查角色提及权限:在服务器角色设置中,确认目标角色的「允许任何人提及此角色」选项已开启,且机器人的角色权限层级高于目标角色(避免权限不足)。
- 确认机器人频道权限:确保机器人在当前频道拥有
SEND_MESSAGES权限,未被频道权限限制发送消息。 - 排除角色静音状态:如果目标角色被设置为「静音」(Muted),该角色成员不会收到提及通知,需取消静音设置。
- 核对提及格式:确保
content中的角色提及格式正确,必须是<@&角色ID>,少了&会变成用户提及格式,无法触发角色通知。
内容的提问来源于stack exchange,提问作者Evileoo
相关产品推荐
相关产品推荐

