Discord 嵌入消息无法正常工作

Discord embed message not working correctly

我的 discord 机器人发送了错误的嵌入消息。这是一个拥抱命令,如果有人没有提及某人,机器人会在频道中发送一条错误消息,内容如下:请提及有效用户! 我想将此消息作为嵌入,但它不能正常工作。每次我在不提及某人的情况下使用该命令时,我的控制台都不会出现错误。当我提到某人时,它会起作用,但它也会发送错误消息。 截图如下: https://i.imgur.com/bcnS1Yb.png

我的代码:

const Discord = require('discord.js');
const prefix = require('../config.json');
const hugGif = require('./Huggifs.json');

module.exports = {
    name: "hug",
    description: "Posts a hug gif.",
    aliases: ['hug'],
    execute(client, message, args) {

        if (!message.mentions.users.first())
        return message.channel.send();
        const aembed = new Discord.MessageEmbed()
        .setColor('BLUE')
        .setTitle(`**Please mention a valid user!**`)
        message.channel.send(aembed);

    const gif = hugGif[Math.floor(Math.random() * hugGif.length)];
        const embed = new Discord.MessageEmbed()
        .setColor('BLUE')
        .setTitle(`${message.author.username} hugs ${message.mentions.users.first().username}!`)
        .setImage(gif)
        .setFooter( `Requested by ${message.author.username}`)
        .setTimestamp()
        message.channel.send(embed);
    },
};

请帮帮我,谢谢!

你的问题是这一行:

return message.channel.send();

有两个问题:

  1. 如果消息中没有mentions,您立即调用return。 return 语句下面的任何内容都不会被执行
  2. 您正在调用 .send()

您应该先创建您的嵌入,然后 return message.channel.send(<embed>)

你的if statement看起来也很奇怪,你应该这样做:

const mentionedMember = message.mentions.users.first();

if(!metionedMember) {
   // create you embed here
   return message.channel.send("your embed here");
}

// do things if there is a mention inside the message