discord.js v13机器人斜杠命令回复提及角色无法触发@提醒怎么办
问题核心原因
discord.js v13及以上版本默认关闭了交互回复的角色提及权限,避免机器人滥用提及功能,所以即便你写对了<@&角色ID>的格式,也只会显示普通角色名,不会触发对应角色的提醒。
修复方案
在interaction.reply参数中添加allowedMentions配置项,明确放开角色提及权限即可,修改后的代码如下:
async execute(interaction, client) { interaction.reply({ content: "This is the role mention : <@&roleid>", // 新增提及权限配置 allowedMentions: { parse: ["roles"] } }) },
如果仅需要允许单个/指定几个角色被提及,更安全的写法是直接指定允许的角色ID列表:
async execute(interaction, client) { // 替换为你要@的实际角色ID const targetRoleId = "123456789xxxxxx"; interaction.reply({ content: `This is the role mention : <@&${targetRoleId}>`, allowedMentions: { // 仅列表内的角色ID可以被提及,不会放开所有角色的提及权限 roles: [targetRoleId] } }) },
注意事项
- 机器人需要在对应服务器拥有
提及@everyone、这里和所有角色的权限,否则即便代码配置正确也无法触发提醒 - 你要@的角色需要开启
允许任何人@提及此角色的设置,否则也无法触发提醒
内容的提问来源于stack exchange,提问作者hugo13
相关产品推荐
相关产品推荐

