You need to enable JavaScript to run this app. Discord.JS 如何监听匹配作者指定的特定用户提及以实现用户信息查询命令
优惠活动
大模型
产品
解决方案
定价
更多

Discord.JS 如何监听匹配作者指定的特定用户提及以实现用户信息查询命令

Discord.js 用户标签查询指令匹配逻辑修正

核心故障原因

  • message.mentions.members.first() 返回Discord.js封装的GuildMember类实例对象,不是字符串格式的用户ID,直接拿对象和<@xxx>提及字符串、纯数字ID字符串做全等比较,永远无法匹配成功
  • 原代码条件判断逻辑混乱、存在语法错误,只要第一个判断不满足就直接中断逻辑,根本走不到响应分支
  • 目前硬编码单个用户的响应内容,没有设计多用户标签的存储结构,无法支持全服务器成员查询

原代码问题明细

  • 比对逻辑错误:错把GuildMember实例直接当字符串比对,正确的取数方式是读取实例的id属性(纯数字字符串格式的Discord用户ID)做匹配
  • 流程逻辑错误:if (member !== '<@772597378142306354>')return; 会在匹配失败时直接中断执行,根本不会进入后续的用户标签返回分支
  • 语法错误:原代码中else if判断后直接写return又接独立代码块,语法不合法

可直接运行的修正代码

首先定义存储全服成员游戏标签的映射结构(后续可替换为本地json文件、数据库存储),修正匹配逻辑:

// 存储用户Activision标签的映射表:key为Discord用户ID,value为对应平台标签
const activisionTagMap = {
  "772597378142306354": "WalterWhite#2396124",
  // 可继续在此处补充其他用户的ID与对应标签
}

module.exports = {
  name: 'codtag',
  execute(message, args) {
    // 获取消息中第一个被提及的服务器成员
    const mentionedMember = message.mentions.members?.first()

    // 无参数/未提及用户时返回错误提示
    if (!args.length || !mentionedMember) {
      return message.channel.send({
        embed: {
          color: '#da1801',
          title: 'Activision Gamertag: Error',
          description: 'You need to tag a user dummy.'
        }
      })
    }

    // 取被提及用户的纯ID去映射表查询
    const targetUserId = mentionedMember.id
    const recordedTag = activisionTagMap[targetUserId]

    // 未录入对应用户标签时返回提示
    if (!recordedTag) {
      return message.channel.send({
        embed: {
          color: '#ffaa00',
          title: 'Activision Gamertag: Not Found',
          description: `No Activision tag recorded for <@${targetUserId}>`
        }
      })
    }

    // 查询成功返回对应标签
    return message.channel.send({
      embed: {
        color: '#1243c6',
        title: 'Activision Gamertag',
        description: `Here is <@${targetUserId}>'s Activision tag: \n\n **${recordedTag}**`
      }
    })
  }
}

扩展说明

  • 若要实现PSN标签查询功能,只需新增psnTagMap映射表,复用上述代码逻辑即可快速生成psn指令
  • 如需支持用户自主录入标签,可将硬编码的映射表替换为本地json文件或轻量数据库存储,避免每次更新标签都要重启机器人

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.03 02:54:04