我正在尝试创建一个命令,向服务器中的每个成员发送一个 DM。我得到的错误是这样的:
(node:4741) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'members' of undefined
代码如下:
bot.guild.members.cache.fetch().then(membersfetch => {
membersfetch.forEach((member) => member.send("Hello"));
})
答案 0 :(得分:1)
客户端/机器人上没有 .guild
属性,只有 .guilds
包含客户端当前正在处理的所有公会。
如果您的机器人仅在一台服务器上使用,您可以像这样安全地获取 .first()
一个,然后获取成员并向他们发送 DM:
bot.on('ready', async () => {
console.log('Bot is connected...');
const guild = await bot.guilds.cache.first();
const members = await guild.members.fetch();
members.each((member) => member.send('Hello'));
});
如果它在多个服务器上,您需要获取公会 ID 并通过该 ID 获取公会:
bot.guilds.fetch('222078108977594368');