#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);
});
Убедитесь, что у вас включено Намерение Члена Гильдии