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

Discord机器人@提及命令触发用户的代码问题排查

Discord机器人@触发命令用户实现方案

原有代码错误原因

  • 第一版代码用单引号'包裹模板字符串,${}变量插值语法仅在反引号(`)包裹的模板字符串中生效,单引号内的内容会被作为普通文本直接输出,因此会原样打印${msg.author}字符串。
  • 第二版代码直接拼接msg.author对象与字符串时,JS默认类型转换会直接取出用户的数字ID,不会生成Discord可识别的提及标签,因此只会输出数字ID加文本;同时代码里用了中文全角引号“”,本身也存在语法错误风险。

可直接运行的正确代码

client.on("message", msg => {
  // 过滤机器人自身发送的消息,避免无限循环触发
  if (msg.author.bot) return;
  if (msg.content === ".p1") {
    // 注意外层必须用反引号包裹
    msg.channel.send(`${msg.author} Pong`);
  }
})

效果验证说明

代码运行后,discord.js会自动将插值里的msg.author转换为Discord平台识别的提及格式<@用户数字ID>,客户端收到后会自动渲染为带高亮的@用户效果,和预期的@用户 Pong交互完全一致。

注意:所有代码里用到的引号、反引号都必须是英文半角符号,不要使用中文全角标点,否则会触发语法报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 02:15:38