【问题标题】:Check if user with a specific ID exists检查是否存在具有特定 ID 的用户
【发布时间】:2021-12-21 03:55:15
【问题描述】:

我知道您可以使用let user = guild.members.cache.get('ID') 获取服务器成员,然后使用if(!user) return 检查成员是否存在,但是如果我的机器人不共享,我如何获取具有特定 ID 的用户并检查该用户是否存在有服务器吗?

【问题讨论】:

  • 我不相信这是可能的。出于安全原因,客户端只能访问与其关联的用户和公会
  • @Elitezen 我之所以问这个问题的主要原因是因为我找到了一个网站,如果你有他们的 ID,你可以在其中获取有关某些用户的信息
  • @Elitezen 实际上是有可能的,目前的答案之一是正确的!
  • 有趣,我想很多人都不知道这个

标签: javascript node.js discord discord.js


【解决方案1】:

这更适合作为对另一个答案的评论,但我还不能添加它们;

我引用的答案中的第二种方法是最好的方法,但是不正确。 client.users.fetch() 不返回 undefined。如果没有用户存在,它会出错,所以你必须这样做

let user;
try {
    user = await client.users.fetch("id", { force: true, cache: true }); // force skips cache checking so they don't need to be cached by the bot, cache will cache the user
} catch(err) {
    user = undefined;
}

// or
client.users.fetch("id", { force: true, cache: true })
.then(user => {
    // do something
})
.catch(err => {
    // user doesn't exist or another error occurred 
})

【讨论】:

  • const 变量必须在定义时初始化,并且不能重新分配,另外user 如果promise拒绝,则已经未定义,无需手动分配它
  • 不知何故设法使用 const 而不是 let 是的,现在已修复,是的,我知道当它已经为空时没有必要将其设置为 undefined,我只是这样做,因为它更好地查看 imo 跨度>
  • 还只包括了必要的选项,因为我刚刚意识到我完全忘记了写它们
  • 我开始相信这是不可能的,但突然间,你的答案是正确的!谢谢!
猜你喜欢
  • 2023-03-03
  • 1970-01-01
  • 2010-12-22
  • 2019-06-16
  • 2014-08-02
  • 2021-10-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多