discord.js Версия 12 Отправляет сообщение каждому владельцу гильдии из сообщения

#javascript #discord.js

#javascript #discord.js

Вопрос:

Я хочу отправить сообщение каждому владельцу каждой гильдии моего бота.

Для этого я должен попробовать это :

 /**
 * @param {import('discord.js').Message} message
 * @returns {Promise<void>}
 */
module.exports = async (message) => {
    message.client.guilds.map((guild) =>{
        message.client.users.fetch(guild.owner.id).then(u =>{
            u.send('my awesome custom message')
        })
    })
}
  

Но с этим кодом у меня возникает эта ошибка :

UnhandledPromiseRejectionWarning: TypeError: message.client.guilds.map is not a function

но когда я консолью.журналы message.client.guilds У меня есть массив гильдии… Так что я действительно не знаю, как я могу паркурить в каждой гильдии. Также в моей структуре бота я могу получить доступ к client другому, который таким образом

Ответ №1:

На Discord.js в версии 12 вам нужно добавить cache свойство. Таким образом, это было бы message.client.guilds.cache.map(...)

Это вносит изменения в ваш код, чтобы:

 /**
 * @param {import('discord.js').Message} message
 * @returns {Promise<void>}
 */
module.exports = async (message) => {
    message.client.guilds.cache.map((guild) =>{
        message.client.users.fetch(guild.owner).then(u =>{
            u.send('my awesome custom message')
        })
    })
}