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
调和的库
所以我在使用命令 $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
调和的库