所以当我使用命令$love @me
时遇到麻烦,它仍然“计算”百分比,我希望它返回一条消息,例如“您无法检查自己的恋爱率...”,我该怎么办?去做?
如果您多次使用该命令,也可能在成员之间仍然输出相同的数字,例如:$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)
}
})
希望有人可以提供帮助,谢谢!
答案 0 :(得分:0)
只需添加一个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]);
唯一的参数是数量,因此传递message和args [0]没有影响。除非您使用的是根据集合类调整的库