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
相关产品推荐
相关产品推荐

