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

discord.js技术疑问:如何获取用户个人资料中的昵称(非服务器昵称)

在discord.js中获取用户个人资料名称而非服务器昵称的方法

要获取用户个人资料里的名称(不受服务器昵称设置影响),你需要直接访问消息发起者的User对象,而非代表服务器成员的GuildMember对象,常用的属性有以下两种:

  • 全局显示名称:用户在个人资料中设置的跨服务器统一显示名称,对应msg.author.globalName属性。若用户未设置全局名称,该值为null,可降级使用用户名。
  • 账号用户名:用户的核心账号标识(即@后的字符串),对应msg.author.username属性。

修改后的示例代码如下:

module.exports = {
    name: 'ping',
    execute(client, msg, args) {
        // 优先使用全局显示名称,无则回退到用户名
        const userProfileName = msg.author.globalName || msg.author.username;
        msg.reply(`Hello ${userProfileName}`);
    }
}

额外说明:

  • 若需要完整的用户标签(格式如Username#1234),可直接使用msg.author.tag属性。
  • msg.author属于User类型对象,存储的是用户的全局账号信息,与所在服务器的成员设置无关。

内容的提问来源于stack exchange,提问作者dav-devp

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 18:04:53