#javascript #node.js #discord.js
#javascript #node.js #discord.js
Вопрос:
В настоящее время я кодирую discord-бота с discord.js . Я пытаюсь получить определенный канал от определенной гильдии по идентификатору, чтобы затем записывать в него сообщения. Я нашел это решение на grepper, но при запуске я получаю сообщение об ошибке «Не удается прочитать свойство «кэш» неопределенного», но почему каналы не определены? The discord.js документация перечисляет канал как собственность гильдии: https://discord.js.org/#/docs/main/stable/class/Guild . Кто-нибудь знает, почему это происходит?
client.guilds.fetch(guildID).channels.cache.get(channelID)
Комментарии:
1. Какую версию Discord вы используете?
2. Discord.js версия 12.3.1
3. Когда выполняется этот фрагмент кода? (какое-либо событие или ?=)
4. Внутри client.on(«готово», () => { … }) событие
Ответ №1:
client.guilds.fetch(guildID)
это обещание, что вам нужно, это:
client.guilds.fetch(guildID).then(guild => guild.channels.cache.get(channelID).send('HI!'))
если вы хотите быть на 100% безопасным
client.guilds.fetch(guildID)
.then(guild =>
guild.channels.fetch(channelID)
.then(channel =>
channel.send('HI!')
));
Комментарии:
1. Каналы кэшируются вместе с гильдиями, поэтому выборка канала не требуется.
Ответ №2:
Самый простой и короткий способ сделать это
const channel = client.channels.cache.get("CHANNEL-ID")
channel.send("Hello")