замена для guild.roles.find () в более новых версиях discord. js - PullRequest
0 голосов
/ 24 апреля 2020

Я кодировал бот-диск в разногласиях. js, и мне нужен способ узнать роль по ее имени, поэтому я посмотрел, как это сделать, в документации, но не смог точно найти, что именно Я искал (я очень новичок в javascript, поэтому я мог видеть то, что искал, но просто не понял этого. Вот почему код, скорее всего, заставит вас съежиться.) Я посмотрел, как это сделать. онлайн, и все говорили, что используют функцию guild.roles.find (), поэтому я вставил ее в свой код, и когда он не работал. Затем я посмотрел на функцию guild.roles.find () в документации, и ее там не было вообще, что привело меня к мысли, что она была удалена. Если кто-нибудь знает решение этой проблемы, оно будет высоко оценено.

let role = message.guild.roles.find(role => role.name === stringSplit[i]);

(stringSplit[i] - это имя роли, введенной пользователем.)

Ответы [ 2 ]

0 голосов
/ 24 апреля 2020

Вы можете получить доступ к коллекции roles, используя cache.

Ваше решение будет:

let role = message.guild.roles.cache.find(role => role.name === stringSplit[i]);
0 голосов
/ 24 апреля 2020

Если вы хотите получить все роли определенной гильдии, вы можете выполнить

const roles = message.guild.roles.cache.array();

Теперь вы можете отфильтровать эти роли, чтобы получить ту, которая вам нужна, со свойством name.

message.guild.roles.cache возвращает коллекцию: вы можете посмотреть здесь все доступные методы: https://discord.js.org/# / docs / collection / master / class / Collection? ScrollTo = find

...