用户为空最后一条消息为空

时间:2020-09-01 17:08:27

标签: javascript node.js discord discord.js bots

我正在尝试获取discord.js命令以说出用户的最后一条消息,但它返回了该消息 用户为空最后一条消息为空。

代码:

switch (args[0]) {
  case 'lastmessage':
    let user = msg.mentions.members.first();
    console.log(msg.author.username);
    msg.channel.send(`User ${user.nickname}s last message was ${user.lastMessage}`);
}

1 个答案:

答案 0 :(得分:0)

这是因为.lastMessage不是user的属性,而是msg.guild.member(user)的属性

因此,要纠正您的错误:

case 'lastmessage' :
  let user = msg.mentions.members.first();
  console.log(msg.author.username)
  msg.channel.send("User ${user.nickname}s last message was ${msg.guild.member(user).lastMessage}")

但是,这只会发送该机器程序收到的最后一条消息,因此,如果您重新启动该机器程序,并且您提到的人在重新启动该程序后未发送消息,则该消息仍然为空。为防止这种情况,您可以检查属性是否为空

let lastMsg = msg.guild.member(user).lastMessage
if (!lastMsg) return msg.channel.send("That user hasn't sent a message since the last tim the bot restarted!")
//and then the rest