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

如何在discord.js中获取被提及用户的用户名?

在discord.js中获取提及用户的用户名

嘿,没问题!你已经找对了方向——用message.mentions.users.first()确实能拿到第一个被提及的用户对象,从这个对象里直接获取用户名非常简单,因为Discord的用户对象自带几个现成的属性可以直接用:

  • username:返回用户的纯用户名(不带后面的#四位数字标签)
  • tag:返回用户的完整标签格式(比如JohnDoe#1234)

基础示例代码

这里给你一个完整的使用例子,还包含了没有提及用户时的错误处理,避免程序报错:

// 假设你在消息事件回调里
client.on('messageCreate', (message) => {
  // 获取第一个被提及的用户对象
  const mentionedUser = message.mentions.users.first();

  if (mentionedUser) {
    // 提取纯用户名
    const plainUsername = mentionedUser.username;
    // 提取带标签的完整用户名
    const fullUserTag = mentionedUser.tag;

    message.reply(`你提及的用户名为:${plainUsername},完整标签是:${fullUserTag}`);
  } else {
    message.reply("我没找到你提及的用户哦,请确认是否正确@了用户~");
  }
});

额外小技巧:获取所有提及的用户

如果你需要处理多个被提及的用户,可以遍历message.mentions.users集合:

client.on('messageCreate', (message) => {
  const mentionedUsers = message.mentions.users;
  
  if (!mentionedUsers.size) {
    return message.reply("没有用户被提及!");
  }

  let replyContent = "你提及的用户有:\n";
  mentionedUsers.forEach(user => {
    replyContent += `- ${user.username} (${user.tag})\n`;
  });

  message.reply(replyContent);
});

小提醒一下:你之前写的messages.mentions.first()其实有点小问题,正确的应该是message.mentions.users.first()——因为mentions对象下包含了users、roles等不同类型的提及集合,必须指定users才能拿到用户对象哦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:49:51