我知道如何从公会中获取所有成员,但我需要执行相反的操作:获取指定成员注册的所有公会 (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
}
有什么建议吗?
答案 0 :(得分:1)
您可以使用以下代码执行此操作:
const userID = '3383083830389'; // the ID of the user
const guilds = client.guilds.cache.filter((guild) => guild.members.cache.has(userID));
和 guilds
是用户所在行会的 Collection
。这有两个限制:
答案 1 :(得分:0)
您无法查看您无权访问帐户的用户所在的服务器。这是一个 Discord 限制,属于隐私类别,您无论如何都不想这样做,因为它可能会被恶意使用。
如果您以该帐户登录,您可以访问该用户所在的行会的唯一方法,否则不登录该帐户,您将看不到他们所在的服务器类型。
但是如果你想检查你的机器人在什么样的服务器上,代码很简单。
const allGuilds = (client.guilds.cache)
console.log(allGuilds)
我自己没有测试过,但它应该为您指明正确的方向。