#javascript #node.js #discord #discord.js
#javascript #node.js #Discord #discord.js
Вопрос:
Вот соответствующий фрагмент кода, над которым я работал:
message.client.guilds.fetch('ID Here', false).then(guild => message.channel.send(guild.name))
Согласно discord.js
документам, эта функция GuildManager#fetch()
теоретически должна работать. Тем не менее, я продолжаю получать эту ошибку:
message.client.guilds.fetch is not a function
Я даже попытался напрямую скопировать и вставить пример из документации по функциям, но он все равно выдал мне ту же ошибку.
Я довольно озадачен, буду признателен за любую помощь!
Редактировать: я должен упомянуть, что все другие discord.js
fetch
методы работают нормально, такие как:
message.channel.messages.fetch()
Редактировать # 2: моя предыдущая проблема была решена, я использовал неправильную версию discord.js
. Однако теперь я получаю новую ошибку:
DiscordAPIError: Missing Access
При ее запуске.
Комментарии:
1. Пожалуйста, используйте
client.guilds.cache.get("GuildID")
вместо этого.2. @Jakye Функциональность не эквивалентна.
fetch
сfalse
в качестве второго аргумента должна быть получена гильдия из REST.3. @Jakye я хотел бы использовать
.fetch()
, чтобы я мог запросить API Discord4. @user4642212 (из
discord.js
документов): Все гильдии, которые в данный момент обрабатывает клиент, отображаются по их идентификаторам — пока не используется сегментирование, это будет каждая гильдия, членом которой является бот.
Ответ №1:
Скорее всего, вы используете устаревшую discord.js
версию. client.guilds
был создан GuildManager
начиная с версии 12.0.0, а метод client.guilds.fetch
был добавлен только в последней версии 12.3.0. Для использования этого метода у вас должна быть discord.js
версия>= 12.3.0.
Попробуйте npm ls discord.js
проверить активную версию в ваших зависимостях.
Попробуйте npm i discord.js@latest
выполнить принудительное обновление до последней версии.
Комментарии:
1. В настоящее время я использую последнюю
discord.js
версию2. @Lioness100 Можете ли вы поделиться выводом
message.client.guilds.constructor.name
в приведенном выше контексте кода?3. @Lioness100 Я отредактировал ответ с некоторыми дополнительными деталями, обнаружив, что
fetch
метод был фактически добавлен только в этой самой последней версии v12.3. Пожалуйста, убедитесь, что у вас действительно последняя версия, а не просто какая-то другая версия v12.4. Это сделало бы это. Я преждевременно прокомментировал, что использовал последнюю версию перед проверкой, извините. Я использовал
12.2
версию. Теперь он возвращаетDiscordAPIError: Missing Access
ошибку, какие разрешения требуются?5. @Lioness100
Missing Access
— это не ошибка разрешения, это просто означает, что ресурс не виден вашему боту. Это означает, что вы не делитесь с ним ресурсом, т. Е. ваш бот не входит в гильдию, которую вы запрашиваете.