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

Discord.js how can i get user nickname using the user's id

我正在使用 client.on('voiceStateUpdate...) to check when a user has left or joined a voice channel, and it sends a message of the user as an '@<\id>' 来 ping 它们。

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');
  }
});

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');
  }
});