Javascript discord.js包含提及的嵌入配置文件图片命令

Javascript discord.js包含提及的嵌入配置文件图片命令,javascript,node.js,discord.js,Javascript,Node.js,Discord.js,我正在使用Visual Studio代码应用程序在discord.js中创建一个机器人。我正在尝试为个人资料图片创建一个命令,这样当您键入-pfp时,它将显示您的个人资料图片,当您键入-pfp@user时,它将显示您提到的个人资料图片。(-是前缀)。虽然bot只发送消息,但没有嵌入图片的部分。当我提到其他人时,它会做同样的事情,但提到我而不是用户 这就是我所拥有的: if (!message.content.startsWith(prefix) || message.author.bot

我正在使用Visual Studio代码应用程序在discord.js中创建一个机器人。我正在尝试为个人资料图片创建一个命令,这样当您键入-pfp时,它将显示您的个人资料图片,当您键入-pfp@user时,它将显示您提到的个人资料图片。(-是前缀)。虽然bot只发送消息,但没有嵌入图片的部分。当我提到其他人时,它会做同样的事情,但提到我而不是用户

这就是我所拥有的:

    if (!message.content.startsWith(prefix) || message.author.bot) return;
        if (message.content.startsWith(prefix + 'pfp')) {
            message.channel.send('Here is <@'+ message.author.id+ ">'s pfp :)")
            const avatarEmbed = new Discord.MessageEmbed()
                .setColor('#446580')
                .setAuthor('user.username')
                .setImage(message.author.displayAvatarURL());
        } else if (message.content.startsWith(prefix+ 'pfp'+ message.mentions.users)) {
            message.channel.send('Here is <@'+ message.user.id+ ">'s pfp :)")
            const avatarEmbed = new Discord.MessageEmbed()
                .setColor('#446580')
                .setAuthor('user.username')
                .setImage(message.user.displayAvatarURL());
        }
});
if(!message.content.startsWith(prefix)| | message.author.bot)返回;
if(message.content.startsWith(前缀+'pfp')){
message.channel.send('s pfp:'))
const avatarEmbed=new Discord.MessageEmbed()
.setColor(“#446580”)
.setAuthor('user.username')
.setImage(message.user.displayAvatarURL());
}
});

这里有两个部分

首先,bot只发送消息而不发送嵌入,因为您只发送消息。您需要一行单独的代码来发送嵌入

message.channel.send(avatarEmbed);
其次,bot只会因为这个
message.content.startsWith(prefix+'pfp')
而标记您。您在作者和其他人之间的划分方式意味着它将始终匹配第一种情况,这意味着消息始终以
prefix+pfp
开头,无论您是否在之后标记某人

现在你有一些方法来解决这个问题,但我会这样做

首先定义一个新变量,让我们调用
pfpMember
,然后将其分配给标记的第一个人或消息作者

var pfpMember = message.mentions.members.first() || message.member;
现在我们有了一个固定的成员,即被标记的人或作者,我们可以将
displayAvatarURL
函数分配给该成员

.setImage(pfpMember.user.displayAvatarURL());
所以你的整个命令应该看起来像这样

if (message.content.startsWith(prefix + 'pfp')) {
    var pfpMember = message.mentions.members.first() || message.member;
    // we can just put the member object into the string here, that will tag the person
    message.channel.send(`Here is ${pfpMember}'s pfp :)`);

    const avatarEmbed = new Discord.MessageEmbed()
        .setColor('#446580')
        .setAuthor(pfpMemer.user.username)
        .setImage(pfpMember.user.displayAvatarURL());
    
    message.channel.send(avatarEmbed);
}
非常感谢!(我刚刚意识到.setAuthor('user.username')现在应该是.setAuthor(pfpMember.user.username))。但是,是的,谢谢!