#javascript #discord.js
#javascript #discord.js
Вопрос:
это мой код для отображения участников в роли. Но когда я вызываю эту команду для роли, в которой много участников, она возвращает только мое имя. Как я могу это исправить? V12
let role;
if(message.mentions.roles.first() || message.guild.roles.cache.get(args[0])) {
role = message.mentions.roles.first() || message.guild.roles.cache.get(args[0]);
if(!role)
return message.reply("I can't find this role!");
} else {
let choosenRole = args.slice(0).join(" ");
if(!choosenRole)
return message.reply("Please type a role name to check.");
role = message.guild.roles.cache.find(r => r.name === choosenRole);
if(!role)
return message.reply("I can't find this role!");
}
let inrole = new Discord.MessageEmbed()
.setColor("#09ba87")
.setAuthor(`${role.name}(${role.members.size})`)
.setDescription(`n・` role.members.map(m => m.user.username "#" m.user.discriminator).join("n・"))
let m = await message.channel.send(inrole);
Ответ №1:
Привет, ваша проблема заключается в том, что из-за недавних изменений шлюза Discord Api Guild
кэш пуст, вам необходимо включить намерения, вот исправление для вас -
- Перейдите на портал разработчиков Discord
- Выберите свое приложение
- Внутри
bot
раздела, если вы прокрутите немного вниз, вы увидите раздел с именемPrivileged Gateway Intents
- Включите
SERVER MEMBERS INTENT
и перезапустите бота, и вы обнаружите, что ваш кэш не ограничен небольшим количеством!
Если это все еще не работает, попробуйте выбрать всех членов гильдии - message.guild.members.fetch()
подробнее о намерениях на Discord.js