可以在标记某人和不标记某人的情况下使用的命令

Command that can work with and without tagging someone

我正在寻找一种方法来获得一个命令,该命令会根据您是否在命令中标记了某人而给出不同的响应。

这是我目前得到的结果:

module.exports = {
    name: 'attack',
    description: "uses attack embed",
    execute(message, args, Discord) {

var newEmbed = new Discord.MessageEmbed()
        .setColor('#A5775C')
        .setDescription(message.author.username + ' *attacked* '+ message.mentions.members.first().username);

var newEmbed1 = new Discord.MessageEmbed()
        .setColor('#A5775C')
        .setDescription(message.author.username + ' *attacked the enemy!*');

if (message.mentions.members.first()) {
       message.channel.send({embeds: [newEmbed]});
     }else{
       message.channel.send({embeds: [newEmbed1]});
     }
  }
} 

当我尝试这种格式时,你 ping 某人的命令有效,但当你不 ping 某人时,没有任何反应。

感谢您的帮助。

试试这个代码,它需要的代码更少,并且会检查目标。

let target
if (message.mentions.members.first() === undefined) {
    target = 'the enemy.'
} else {
    target = message.mentions.members.first().username
}
const newEmbed = new Discord.MessageEmbed()
    .setColor('#A5775C')
    .setDescription(`${message.author} attacked ${target}`)

message.channel.send({
    embeds: [newEmbed]
})