尝试执行命令时无法读取未定义的属性“ members”

时间:2020-06-16 17:42:26

标签: bots discord discord.js

代码:

message.guild.members.cache.forEach(member => {
  if (member.id !== bot.user.id && !member.user.bot);
  member.send(message);
});

如果有人知道问题出在哪里,知道它会有所帮助

错误:

(node:2076) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'members' of undefined

1 个答案:

答案 0 :(得分:0)

错误可能是它在公会之外接收消息,例如在dm通道中。

大多数人在编写机器人代码时都不允许dm消息,如果您想这样做,则只能在开始时返回

client.on("message", async message => {
  if(message.channel.type === "dm") return;
});

否则,将代码包装在if语句周围

if(message.guild) {
  message.guild.members.cache.forEach(member => {
    if (member.id !== bot.user.id && !member.user.bot);
    member.send(message);
  });
}

可能是更好的方法,具体取决于您的其他代码。