【问题标题】:List all members in a guild (djs v12)列出公会中的所有成员 (djs v12)
【发布时间】:2021-09-22 04:16:52
【问题描述】:

列出公会中的每个用户,无论他们是否存在 Discord。

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 中列出用户,机器人在服务器中。是不是我做错了什么?

【问题讨论】:

    标签: dictionary discord discord.js


    【解决方案1】:

    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})`);
            });
        }
    });
    

    【讨论】:

    • 我试过了,它只给了大约 4 个用户。
    • 这是不可能的,因为我测试了这段代码,它对我来说没有问题。我将编辑我的答案以获得另一个解决方案。
    • @ignshifts 更新了答案。请检查一下好吗?
    猜你喜欢
    • 2021-06-26
    • 2020-07-07
    • 1970-01-01
    • 1970-01-01
    • 2021-09-26
    • 1970-01-01
    • 2021-11-07
    • 2020-11-11
    • 2021-12-03
    相关资源
    最近更新 更多