列出公会的所有成员(djs v12)



列出公会中所有用户的不和谐状态

client.on("message", (message) => {
//   if (message.content == "hi") {
// if (message.author.id !== "ID") return;
const guild = client.guilds.cache.get('ID')
const users = client.users.cache.map((u) => u.id);
message.guild.members.cache.forEach(members => console.log(users && `Amount of users:`, users.length))

console.log(`Listing user ids from ${guild.name}:`);
console.log(users);
console.log(users.length)
//  }
});

我目前的代码没有在我提供的公会ID中列出用户,bot在服务器中。我做错了什么吗?

Map不使用length,而是使用size。所以为了列出公会中的所有人,你可以这样做:

client.on("message", async message => {
if(message.author.bot === true) return;
if(message.channel.type === "dm") return;
// Trigger with 'list all members'
if(message.content.toLowerCase() === "list all members") {
// Get the guild from Cache using the GuildID from the message
// Or manually put in the ID from the server your bot is in.
const guild = client.guilds.cache.get(message.guild.id);
// Force member cache to be cleared and renewed.
await guild.members.fetch({ force: true });
// Map all users.
console.log(`Listing ${guild.members.cache.size} members from ${guild.name}.`);
guild.members.cache.forEach(member => {
console.log(`${member.user.tag} (ID: ${member.id})`);
});
}
});