#javascript #discord #discord.js
#javascript #Discord #discord.js
Вопрос:
Я пытался получить имена пользователей всех участников на моем сервере discord
, однако он просто вернул 8-9 / 25 участников, включая 6 ботов
Вот мой код
const list = client.guilds.cache.get(msg.guildId);
list.members.cache.each(r => {
console.log(r.user.username)
})
Кроме того, я также пробовал эти способы
const list = client.guilds.cache.get(msg.guildId);
list.members.cache.array().forEach(r => {
console.log(r.user.username)
})
const user = client.users.cache.find(u => u.username == '//The Given username')
const user = msg.guild.roles.cache.get('//The Main Role in my Server')
.members.map(m => m.user.username == '//The given username')
let user = client.users.cache.get('username', '//The given username');
Но иногда он просто возвращал мое и моего БОТА имя пользователя или undefined.
Я пытаюсь получить всех участников на сервере, и из этого я могу узнать, что у пользователя одно и то же имя пользователя с заданным именем пользователя, а не тегами или идентификаторами
Я включил намерения шлюза, но это не помогло
Пожалуйста, помогите с моим проектом, мне действительно нужны все ваши предложения
Комментарии:
1. Итак, вы пытаетесь получить имена пользователей всех пользователей гильдии или конкретного пользователя по их имени пользователя?
Ответ №1:
Используется .fetch()
для кэширования всех участников и их возврата. Убедитесь, что у вас есть GUILD_MEMBERS
намерение:
list.members.fetch().then(m => {
let members = m.map(u => u.user.username)
console.log(members) //array of all members
//you can also use "m.each(u => console.log(u.user.username))" to log each one individually
})
Или используйте async-await
const m = await list.members.fetch()
let members = m.map(u => u.user.username)
console.log(members)
Комментарии:
1. после того, как я удалю .cache, это работает!! Большое спасибо