如何使用 discord.js 获取特定的会员用户名

2022-01-10 00:00:00 node.js javascript discord.js

我想在嵌入消息中添加一个特定的成员信息(用户名 + 头像).有人知道怎么做吗?

I would like to add one specific member information (username + avatar) into an embed message. Does someone know how to do that?

const feedback = new discord.RichEmbed()
.setColor([0, 0, 255])
.setFooter("Bot created by : " + message.author.username, message.author.avatarURL)
.setDescription("The text I want to be sent")

在上面的代码中,我想通过特定的不和谐成员标识 id 更改message.author.username"和message.author.avatarUrl",例如:436577130583949315.

On the code above, I would like to change "message.author.username" and "message.author.avatarUrl" by a specific discord member identification id such as : 436577130583949315 for example.

但是我不知道从那个不和谐的识别号中能够显示用户名和头像的方式是什么.

However I don't know what is the way from that discord identification number to be able to show the username and the avatar.

提前感谢您的帮助:)

推荐答案

由于管理器的实现,必须修改以下代码以使用最新版本的 Discord.js(本次编辑时为 v12).

您可以通过用户的 ID 从客户端的用户缓存中检索用户,Client#users.但是,不能保证每个用户都始终被缓存,因此您可以使用 Client#fetchUser().请记住,它返回一个 Promise.如果用户在在缓存中,该方法将返回它.

You can retrieve a user by their ID from the client's cache of users, Client#users. However, every user isn't guaranteed to be cached at all times, so you can fetch a user from Discord using Client#fetchUser(). Keep in mind, it returns a Promise. If the user is in the cache, the method will return it.

例子:

// Async context needed for 'await'

try {
  const devID = '436577130583949315';
  const dev = await client.fetchUser(devID);

  const feedback = new discord.RichEmbed()
    .setColor([0, 0, 255])
    .setFooter(`Bot created by ${dev.tag}.`, dev.displayAvatarURL)
    .setDescription('Your text here.');

  await message.channel.send(feedback);
} catch(err) {
  console.error(err);
}

相关文章