检查 client.users() / 用户 ID 是不是有特定的角色名称

Posted

技术标签:

【中文标题】检查 client.users() / 用户 ID 是不是有特定的角色名称【英文标题】:Check if client.users() / User ID has specific role name检查 client.users() / 用户 ID 是否有特定的角色名称 【发布时间】:2019-10-29 14:14:05 【问题描述】:

我想检查 client.users() 是否有特定的角色名。我不是在寻找像 msg.member.roles.find() 这样的解决方案,我需要一个可以使用 client.users() 或插入用户 ID 的解决方案

if (client.users().role.find("name", "rolename"))

  //something

【问题讨论】:

【参考方案1】:

没有这种方法Client.users()。但是,有一个属性Client.users。但是,后者是Users 中的Collection,并且只有GuildMembers 有角色。

您必须iterate through 客户的每个公会 (Client.guilds),然后通过每个成员 (Guild.members),并尝试找到您正在寻找的角色 (Collection.find)。

例子:

for ([guildID, guild] of client.guilds) 
  for ([memberID, member] of guild.members) 
    if (member.roles.find(role => role.name === 'name')) 
      // Do something to this member.
    
  

如果您只寻找一个成员,则不必遍历成员。

for ([guildID, guild] of client.guilds) 
  const member = guild.members.get('someID');
  if (!member) continue;

  // Do something to this member.

【讨论】:

以上是关于检查 client.users() / 用户 ID 是不是有特定的角色名称的主要内容,如果未能解决你的问题,请参考以下文章

即使在分配 sitecore\Sitecore Client Users 角色时,广告用户也无法登录

DiscordJS 获取用户不正确

TypeError:client.users.get 不是函数 discord.js V12 [重复]

向一组用户发送私人消息(Discord.js)

如何从所有分片中获取 users.cache 并将它们放入集合中,就像集合 client.user.cache 返回一样?

Intercom.io API list/listBy/find 在响应正文中仅返回 50 个用户