Discord 如何获得会员所在的所有公会?

Discord 如何获得会员所在的所有公会?,discord,discord.js,Discord,Discord.js,我知道如何从公会获取所有成员,但我需要执行相反的操作:获取指定成员注册所在的所有公会(ID) 当像这样获取用户时,client.users.cache.get(memberID)我在结果中没有看到任何可以让我看到所有会员协会的内容: User { id: '706498754712807398', system: null, locale: null, flags: UserFlags { bitfield: 0 }, username: 'johndoe', bo

我知道如何从公会获取所有成员,但我需要执行相反的操作:获取指定成员注册所在的所有公会(ID)

当像这样获取用户时,
client.users.cache.get(memberID)我在结果中没有看到任何可以让我看到所有会员协会的内容:

User {
  id: '706498754712807398',
   system: null,
   locale: null,
 flags: UserFlags { bitfield: 0 },
   username: 'johndoe',
   bot: false,
  discriminator: '1023',
   avatar: null,
   lastMessageID: null,
   lastMessageChannelID: null
 }

有什么建议吗?

您可以使用以下代码执行此操作:

constuserid='3383083830389';//用户的ID
const guilds=client.guilds.cache.filter((guild)=>guild.members.cache.has(userID));
guilds
是用户所在行会的
集合。这有两个限制:

  • 你只能得到机器人所在的行会
  • 如果成员未被缓存,这将不起作用(这可以通过尝试在每个公会中获取成员来解决)

您无法查看用户所在的服务器,因为您无权访问该帐户。这是一个不和谐的限制,属于隐私类别,你无论如何都不想这样做,因为它可能被恶意使用

如果您是以该帐户登录的,那么您可以访问用户所在的协会的唯一方法是,否则,如果不登录该帐户,您将无法看到他们所在的服务器类型

但是,如果您想检查bot所使用的服务器类型,代码非常简单

const allGuilds = (client.guilds.cache)
console.log(allGuilds)
我自己没有测试过,但它应该为您指出正确的方向