#discord #discord.js
#Discord #discord.js
Вопрос:
У меня проблема с выборкой данных всех пользователей на сервере. В настоящее время, когда я попробовал первый метод, я получил только 21 человек (модов, администраторов и ботов онлайн) вместо всех 546 человек на нем. Я нашел второй метод с .fetch()
помощью, но он возвращает мне 0 пользователей, поэтому я думаю, что я использую его неправильно (но он не дает мне никаких ошибок, например, когда я пытался использовать await и forEach() после). Цель этого бота — ежедневно обновлять рейтинг для каждого пользователя, rankUpAll()
работает просто отлично.
const job = new CronJob('29 18 * * *', function () {
const guild = client.guilds.cache.get(serverId);
let Embed = new Discord.MessageEmbed()
.setColor('#FFC900')
.setFooter('~~~ qbeczek', 'https://i.imgur.com/xutibOg.png')
.setTitle('Cześć!');
let seenUser = 0;
let listOfUsers;
guild.members.cache.forEach(member => {
seenUser ;
// if (member.id == myid) {
// rankUpAll(member, guild, Embed);
// }
});
console.log(`Fetched: ${seenUser}`);
seenUser = 0;
const wait = new Promise(() => { listOfUsers = guild.members.fetch() });
Promise.all([wait]).then((values) => {
listOfUsers.forEach(member => {
//console.log(member.displayName);
seenUser ;
// if (member.id.match(myid)) {
// rankUpAll(member, guild, Embed);
// }
})
});
console.log(`Fetched: ${seenUser}`);
}, null, true, 'Poland');
job.start();
})
Ответ №1:
Вам необходимо включить намерение участников сервера: «Если ваш бот отслеживает участников сервера или загружает весь список участников, вам может понадобиться намерение участников сервера для получения событий участников и списка участников».
Вы можете прочитать некоторую информацию о намерениях здесь: https://discordjs.guide/popular-topics/intents.html
Комментарии:
1. Мне нужно переключаться только
SERVER MEMBERS INTENT
внутри портала разработчиков discord или мне нужно снова запустить и добавить бота на сервер?2. Переключите НАМЕРЕНИЕ УЧАСТНИКА СЕРВЕРА внутри панели.
3. По-прежнему ничего не меняется, результаты первого зависят от онлайн-администраторов, а второй по-прежнему дает мне 0 онлайн