Discord.js |显示来自 ID returns 未定义的用户名

Discord.js | Displaying a username from an ID returns undefined

我目前正在更改服务器的排行榜命令以显示在 Canvas 上,而不是嵌入。我 运行 遇到的一个问题是,因为它不是嵌入,所以抓取用户 ID 然后用 <@userid> 显示他们的用户名不再有效,代码只是 returns 纯文本的 ID。我正在寻找解决此问题的解决方案。这是我现在拥有的代码:

for (var i in money) {
    let user = client.users.cache.get(`${money[i].ID.slice(25)}`);

    finalLb += `${money.indexOf(money[i])+1} ${user} \`${money[i].data} credits\`\n`;
    console.log(user)
  }

代码结果

当我控制台记录用户变量时,我得到了他们的所有信息,包括用户名。

我试过 user.username,但收到错误 Cannot read property 'username' of undefined。我有点卡在这一点上,任何帮助表示赞赏。谢谢!

如果定义了 user

user.username 会起作用。通过查看您的第一张图片,您可以看到第 9 个用户 undefined 也在那里。由于用户是 undefined,您无法获取 username 属性。

你确定你从${money[i].ID.slice(25)}得到的ID是正确的吗?如果是,也许可以尝试 fetch 用户:

for (var i in money) {
  let user = await client.users.fetch(`${money[i].ID.slice(25)}`).catch(console.error);

  finalLb += `${money.indexOf(money[i]) + 1} ${user.username} \`${
    money[i].data
  } credits\`\n`;
  console.log(user);
}