Discord.js v12 Love Affinity command - 不能提及你自己

Discord.js v12 Love Affinity command - cannot mention yourself

所以我在使用命令 $love @me 时遇到了问题,它仍然是 "calculates" 百分比,我希望它 return 带有 "You cannot check your love percentage..." 之类的消息,如何我可以那样做吗? 也有没有可能如果你多次使用该命令,它仍然在成员之间输出相同的数字,例如:$love @myfriend,输出74%。然后我再次编写命令,它输入相同的百分比..

这是我的代码:

client.on("message", message => {
    if (message.content.startsWith(prefix + "love")) {
        if(!message.mentions.members.first()) return message.channel.send(`Please mention someone to calculate the love percentage`).then(message.react('❌'));
        let args = message.content.slice(prefix.length).split(/ +/)
        let person = message.mentions.members.first(message, args[0]);

        const love = Math.round(Math.random() * 100);
        const loveIndex = Math.floor(love / 10);
        const loveLevel = "".repeat(loveIndex) + "".repeat(10 - loveIndex);
        
        let loveEmbed = new Discord.MessageEmbed()
        .setTitle("Love percentage")
        .setDescription(`${message.author} loves ${person} this much: ${love}%\n\n${loveLevel}`)
        message.channel.send(loveEmbed)
    }
})

希望有人能帮忙,谢谢!

只需添加一个 if 语句并检查 ID

if(person.id === msg.author.id) return msg.channel.send("Can't mention yourself");

所以:

let args = message.content.slice(prefix.length).split(/ +/)
let person = message.mentions.members.first(message, args[0]);
if(person.id === msg.author.id) return msg.channel.send("Can't mention yourself");

也有点不相关,但是这里的参数没用:

message.mentions.members.first(message, args[0]);

唯一的参数是数量,所以传入消息和args[0]没有影响。除非你使用了一个与集合 class

调和的库