Показывать только одного человека для определенной роли, discord.js

#discord.js

Вопрос:

У меня возникли проблемы с перечислением всех на сервере discord, у которых есть определенная роль. Даже если есть несколько человек с одной и той же ролью, в нем указан только один из них, независимо от того, сколько их в одном канале.

Я довольно новичок в discord.js и у меня возникли проблемы с пониманием документов

 var CSCid = "496507412300300288";

var CSCmembers = interaction.guild.roles.cache.get(CSCid).members.map(m=>m.user.tag);

console.log(CSCmembers)

 

Вывод показывает только одного человека из многих, у кого есть эта роль.

Комментарии:

1. Вы пробовали собрать всех участников? Возможно, он возвращает только кэшированные элементы

2. как именно вы бы это сделали и в чем разница между кэшированными участниками и всеми участниками,

Ответ №1:

Попробуйте сначала собрать всех членов гильдии. Кэшированный элемент-это объект, который сохраняется в памяти и к которому можно легко получить доступ (с помощью .get() ). Некэшированный элемент-это элемент, который не хранится в памяти и требует вызова API для Discord, чтобы извлечь его и затем кэшировать (с помощью .fetch() )

 var CSCid = "496507412300300288";

interaction.guild.members.fetch().then(members => {
   var CSCmembers = interaction.guild.roles.cache
      .get(CSCid).members
      .map(m=>m.user.tag)
      .join(', ');

   console.log(CSCmembers);
});
 

Убедитесь, что у вас включено Намерение Члена Гильдии