Discord.js |在嵌入中提及某人

时间:2020-07-30 11:28:01

标签: node.js discord discord.js

嘿,我试图制作一个具有拥抱命令的机器人,它的意思是说您在一个带有随机拥抱图像的嵌入文件中拥抱了您提到的用户……代码:

if (message.content === '+hug'){
    let user = message.mentions.users.first();
    let maxImageNumber = 5;
let imageNumber = Math.floor (Math.random() * (maxImageNumber - 1 + 1)) + 1;
let imageName = `${imageNumber}.gif`
let imagePath = `./hug/${imageName}`

let file = new Discord.MessageAttachment(imagePath);
let embed = new Discord.MessageEmbed();
embed.setDescription(message.author.username + ' *just hugged* '+ user.username);
    embed.setImage(`attachment://${imageName}`)
    embed.setColor(0xffe6f7)
message.channel.send({ files: [file], embed: embed });
  }

错误是我每次执行命令都不会显示

我该如何解决这个问题?

我已经提出了这样的问题,但还不够清楚,我希望这很清楚

2 个答案:

答案 0 :(得分:0)

您当前无法使用,因为您检查邮件内容是否等于+hug。因此,当您发送+hug @some-user时,消息的内容不再等于+hug。以下代码将起作用:

if (message.content.startsWith('+hug')){
    let user = message.mentions.users.first();
    let maxImageNumber = 5;
let imageNumber = Math.floor (Math.random() * (maxImageNumber - 1 + 1)) + 1;
let imageName = `${imageNumber}.gif`
let imagePath = `./hug/${imageName}`

let file = new Discord.MessageAttachment(imagePath);
let embed = new Discord.MessageEmbed();
embed.setDescription(message.author.username + ' *just hugged* '+ user.username);
    embed.setImage(`attachment://${imageName}`)
    embed.setColor(0xffe6f7)
message.channel.send({ files: [file], embed: embed });
  }

它不检查消息的内容是否等于某内容,而是它是否以某内容开头

答案 1 :(得分:0)

尝试一下 embed.setDescription(`${message.author.username} *just hugged* ${user.username}`);

如果您想提及第二个人,只需输入user而不是user.username

希望这对您有帮助