Javascript Discord bot无法获取所有用户
我已经使用discord.js编写了一个discord bot,它曾经获得discord服务器的所有用户(我只在一个discord服务器中拥有该bot),但现在它只获得59个成员。我在服务器中有300多个discord用户Javascript Discord bot无法获取所有用户,javascript,node.js,discord.js,Javascript,Node.js,Discord.js,我已经使用discord.js编写了一个discord bot,它曾经获得discord服务器的所有用户(我只在一个discord服务器中拥有该bot),但现在它只获得59个成员。我在服务器中有300多个discord用户 var Discord = require('discord.js'); var bot = new Discord.Client(); function getUsers() { let users = bot.users.array(); for (let i
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}`);
}
}
var Discord=require('Discord.js');
var bot=new Discord.Client();
函数getUsers(){
让users=bot.users.array();
for(设i=0;i
您必须对bot所在的每个不协调服务器使用该方法
请尝试使用以下代码:
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}`);
});
});
}
}
函数getUsers(){
让guilds=bot.guilds.array();
for(设i=0;i这里的聚会迟到了一点,但是
.users
只返回当时缓存的用户。Discord.js在成员发送消息或您获取该特定成员时缓存该成员。您必须使用.fetchMembers()
检查帮会的每个成员,该命令返回每个成员的成员对象。如果您使用的是discord.js v12,则应该是guild.members.fetch()
,它将缓存所有成员
var usersCount = client.guilds.cache.reduce((a, g) => a + g.memberCount, 0)
这对我很有用…这里可能有一个不和谐的方面
如果bot跟踪服务器成员或下载整个成员列表,则可能需要服务器成员来接收成员事件和成员列表
转到并选择您的Discord应用程序,转到Bot设置,并在“专用网关意图”下启用“服务器成员意图”
来源:Ar返回的59个成员与另一个成员之间有什么区别吗?不仅没有总数,我认为在服务器中达到250多个成员后,它停止获取总数,只有59-64个。我使用的是版本12,我有类似的问题。缓存未容纳服务器中的所有用户。我不知道如何将用户加载到缓存。我出错了。(节点:4657)未处理PromiserEjectionWarning:TypeError:bot.guilds.get(…).fetchMembers(…).array不是getUsers(/home/sexyexploits/Documents/discord bot/Versions/0.0.11/le.js:98:69)上的函数(/home/sexyexploits/Documents/discord bot/Versions/0.0.11/le.js:21:3)我更新了答案,你能试试新代码吗?:-)我也有同样的问题。但不幸的是,这对我不起作用。我收到一条错误消息,说成员没有及时到达。
于是机器人崩溃了。