我想向机器人的每个行会的每个所有者发送消息。
为此,我可以尝试以下方法:
/**
* @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
但是当我console.logs message.client.guilds
时,我会有一个公会的数组……所以我真的不知道如何为每个公会跑酷。同样在我的机器人结构中,我可以通过这种方式通过另一个人访问client
答案 0 :(得分:2)
在Discord.js v12上,您需要添加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')
})
})
}