Discord.js如何使用用户ID获取用户昵称

Posted

技术标签:

【中文标题】Discord.js如何使用用户ID获取用户昵称【英文标题】:Discord.js how can i get user nickname using the user's id 【发布时间】:2018-08-21 16:36:51 【问题描述】:

我正在使用 client.on('voiceStateUpdate...) 来检查用户何时离开或加入语音频道,并将用户的消息作为 '@' 发送给他们.

ping 让他们感到不安,我正在尝试找到一种方法,在没有 @ 的情况下发送昵称消息(msg.replace('@','') 不起作用)。

如果我已经有了用户的ID,如何获取用户的昵称?

我的代码现在看起来像这样:

client.on('voiceStateUpdate', (oldMember, newMember) => 
  let newUserChannel = newMember.voiceChannel;
  let oldUserChannel = oldMember.voiceChannel;
  var channel = client.channels.get('385344314362036224');
  if(oldUserChannel === undefined && newUserChannel !== undefined) 
    channel.sendMessage(newMember + ' has joined a voice channel');
   else if(newUserChannel === undefined)
    channel.sendMessage(oldMember + ' has left a voice channel');
  
);

【问题讨论】:

【参考方案1】:

oldMember 和 newMember 属于“GuildMember”类型。你可以在这里找到使用 GuildMember 可以做的所有事情:https://discord.js.org/#/docs/main/stable/class/GuildMember

所以你使用昵称的代码应该是这样的:

client.on('voiceStateUpdate', (oldMember, newMember) => 
  let newUserChannel = newMember.voiceChannel;
  let oldUserChannel = oldMember.voiceChannel;
  var channel = client.channels.get('385344314362036224');
  if(oldUserChannel === undefined && newUserChannel !== undefined) 
    channel.sendMessage(newMember.displayName + ' has joined a voice channel');
   else if(newUserChannel === undefined)
    channel.sendMessage(oldMember.displayName + ' has left a voice channel');
  
);

【讨论】:

newMember.nickname 如果没有昵称,将返回 null 感谢您的提示。我将它更改为 displayName 如果没有找到昵称,它将默认为用户名。 不知道 displayName。我已经删除了我的答案

以上是关于Discord.js如何使用用户ID获取用户昵称的主要内容,如果未能解决你的问题,请参考以下文章

Discord.js 将数组中的 ID 替换为与该 ID 匹配的用户的昵称?

discord.js 如何从用户 ID 获取 Discord 用户名

在 discord.js 中更改关注者的昵称

更改用户昵称(discord.js)[重复]

如何获取对特定消息做出反应的用户的不和谐 ID discord.js

如何从 Discord.js 中的用户名中查找用户 ID?