我正在尝试获取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}`);
}
答案 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