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

Discord角色Ping问题:发送消息后无法提及指定角色且报错

解决Discord角色Ping无效及代码报错问题

嘿,我来帮你搞定这个角色Ping的问题!先拆解下你原来代码里的核心问题,再给你靠谱的修复方案。

原代码的致命错误

你之前的写法完全不符合Discord的角色提及规则,还存在语法问题:

message.channel.send('The roles within The Virgina Empire are as follows: 

<@&ID>'+727232200138817557+'>Engineer`

这里有两个关键问题:

  1. 角色提及格式完全错误:Discord能识别的角色Ping格式是严格的 <@&角色ID>,你把它拆成了<@&ID> + 数字 + >Engineer,实际发送的内容会变成 <@&ID>727232200138817557>Engineer,这根本不是有效的角色提及,自然没法触发Ping。
  2. 语法不匹配:代码开头用了单引号,结尾却用了反引号,这会直接导致JavaScript解析报错,也是你后续修复时出问题的原因之一。

正确的实现方式

针对你的需求,有两种简单可靠的写法:

1. 固定角色ID的写法(适合不需要动态切换角色的场景)

直接在消息字符串里使用标准的角色提及格式即可:

message.channel.send('The roles within The Virginia Empire are as follows: 

<@&727232200138817557> Engineer');

2. 动态插入角色ID的写法(适合需要灵活切换角色的场景)

用ES6模板字符串(反引号)来动态拼接角色ID,可读性和灵活性都更好:

const engineerRoleId = '727232200138817557';
message.channel.send(`The roles within The Virginia Empire are as follows: 

<@&${engineerRoleId}> Engineer`);

额外注意事项

  • 权限检查:确保你的机器人在服务器里有发送消息的权限,同时目标角色没有设置「禁止被提及」的服务器权限。
  • 验证方法:发送消息后,如果角色变成蓝色可点击的链接,且@该角色时成员能收到通知,就说明格式完全正确了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 12:42:30