Discord.js bot 无法读取未定义的属性“发送”

时间:2021-07-16 10:08:38

标签: javascript discord discord.js

我正在尝试为我的 Discord 服务器和我的 Discord 机器人实现向许多用户发送 PM 消息的可能性。

我创建了这样的东西:

client.on("message", message => {
  
  mentiondm = message.mentions.users.first();
  mentionMessage = message.content.slice(22)
  mentiondm.send(mentionMessage);
  console.log('Message Sent!')
  
})

它适用于第一个提到的用户,正在发送消息,但存在几个问题:

  • 发送第一条消息后,机器人崩溃并出现此错误 Cannot read property 'send' of undefined
  • 我尝试将 message.mentions.users 更改为 message.mentions.roles,但没有发送消息。

有没有办法更好地完成我的功能,或者至少升级我这里的功能以使其正常工作?

1 个答案:

答案 0 :(得分:3)

这是因为它也试图从机器人的消息中获取第一个提到的用户。检查消息作者是否是机器人,如果是,则不要发送消息。

另外,尝试检查是否有人提及,如果没有,只需返回。

client.on('message', (message) => {
  if (message.author.bot) return;

  let mentionDM = message.mentions.users.first();

  if (!mentionDM)
    return console.log('No mentioned user');

  let mentionMessage = message.content.slice(22);

  mentionDM.send(mentionMessage);
  console.log('Message Sent!');
});