javascript - Discord 机器人没有获得所有用户

标签 javascript node.js discord.js

我使用 Discord.js 编写了一个 discord 机器人,它曾经获取 discord 服务器的所有用户(我只在一个 discord 服务器中拥有该机器人),但现在它只有 59 个成员。我在服务器中有 300 多个不和谐用户。

var Discord = require('discord.js');
var bot = new Discord.Client();

function getUsers() {
  let users = bot.users.array();

  for (let i = 0; i < users.length; i++) {
    let username = `${users[i].username}#${users[i].discriminator}`;
    console.log(`[${i}] ${username}`);
  }
}

最佳答案

你必须使用方法 .fetchMembers()对于机器人所在的每个不和谐服务器。

尝试使用以下代码:

function getUsers() {
  let guilds = bot.guilds.array();

  for (let i = 0; i < guilds.length; i++) {
    bot.guilds.get(guilds[i].id).fetchMembers().then(r => {
      r.members.array().forEach(r => {
        let username = `${r.user.username}#${r.user.discriminator}`;
        console.log(`${username}`);
      });
    });
  }
}

关于javascript - Discord 机器人没有获得所有用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51691932/

相关文章:

javascript - 类型错误 : Cannot read property 'map' of undefined in react-redux

javascript - 跨源 AJAX 请求 'withCredentials' 如何确定要使用哪些 cookie?

node.js - Webpack 2 与 Multipage Express Web 应用程序

javascript - 防止我的 node.js 应用程序被操作系统杀死

javascript - while条件中有0时while循环会执行吗?

javascript - 不影响其他元素的抖动效果

mysql - 我是sequelize的新手,如何将mysql查询转换为sequelize

javascript - 如何在 setInterval 循环中按 1 计数?

discord - 有没有办法对使用discord.js发送的每条消息使用react

javascript set - 将值添加到集合内对象的数组中