discord. js client.guilds.cache.get (роль) .members | Создайте массив со всеми членами гильдии - PullRequest
0 голосов
/ 05 августа 2020

Я хочу создать массив с каждым пользователем с определенной ролью c. Но я получаю следующую ошибку:

TypeError: Cannot read property 'members' of undefined

Код, который я сейчас использую:

var role = receivedMessage.guild.roles.cache.find(role => role.name === "arole");
const guild = client.guilds.cache.get(role);
if (guild == "") {
    console.log("guild not found");
} else {
    const Members = client.guilds.cache.get(role).members.cache.map(member => member.id);
}

Ответы [ 2 ]

0 голосов
/ 05 августа 2020

Этот код получает всех участников с определенной ролью на сервере, на котором было отправлено сообщение:

const guild = receivedMessage.guild;
if (!guild) return console.log("Couldn't get the guild.");

const members = guild.members.cache.filter(member => member.roles.cache.find(role => role.name === "arole")).map(member => member.id);

Если вы хотите получить всех участников с определенной ролью на определенном сервере c, вы можно указать идентификатор гильдии:

const guild = client.guilds.cache.get(/* Guild ID */);
if (!guild) return console.log("Couldn't get the guild.");

const members = guild.members.cache.filter(member => member.roles.cache.find(role => role.name === "arole")).map(member => member.id);

Для получения дополнительной информации о допустимых свойствах и методах, пожалуйста, прочтите Discord. js docs .

0 голосов
/ 05 августа 2020

Похоже, что гильдии не существует или у вашего бота нет доступа к ней, вы можете просто проверить это, выполнив что-то вроде

const guild = client.guilds.cache.get("335507048017952771");
if (!guild) return console.log("guild not found :(");

//also use the built-in array() method
console.log(guild.array());
...