如何在 discord.js 中通过 id 查找用户

Posted

技术标签:

【中文标题】如何在 discord.js 中通过 id 查找用户【英文标题】:How to find user by their id in discord.js 【发布时间】:2020-06-25 19:24:39 【问题描述】:

我希望我的机器人能够为使用其 ID 声明的特定用户赋予特定角色。 我试过 const user = bot.users.cache.get(args[2]); user.roles.add("角色ID")

【问题讨论】:

【参考方案1】:

这里的问题是你得到一个User 对象而不是GuildMember 对象。用户不与公会关联,因此不能拥有角色。您通常希望在不涉及公会特定操作(例如直接消息传递)时使用用户。

您不能直接从 Client 对象中获取 Member,但是您可以获取 Client.guilds.cache 然后检索公会,然后使用 Guild.members.cache 从 Guild 对象中获取成员。

但是,大多数这样的权限系统实现都需要一些更高权限的用户来运行命令来向新用户授予权限。这意味着您可以直接从调用您的机器人命令的 Message 对象中使用 Message.guild.members.cache.get()

【讨论】:

【参考方案2】:

如果您已经有了用户的 ID,您可以使用以下代码获取用户对象。

const client = new Discord.Client();
let thanos = client.users.fetch('IDHERE');
thanos.then(function(result1) 
    //put your code that uses the result1 (the user object) here
    //for example, you could do var imgURL = result1.displayAvatarURL();
);

【讨论】:

以上是关于如何在 discord.js 中通过 id 查找用户的主要内容,如果未能解决你的问题,请参考以下文章

如何使用python在selenium中通过其id名称的一部分查找元素

在jQuery中通过部分ID查找元素? [复制]

使用AngularJS方式在对象数组中通过其属性查找对象

Discord.js,通过数组中的 ID 查找用户是不是具有角色

如何在WebElement中通过xpath查找子元素

有没有办法使用 AnroidUIAutomator 在 Appium 中通过部分资源 ID 查找 Android 元素?