Discord.js 嵌入个人资料图片命令并提及

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


这就是我所拥有的:


    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());

        }

});


红糖糍粑
浏览 111回答 1
1回答

汪汪一只猫

这里有两个部分。首先,机器人仅发送消息而不是嵌入,因为您只发送消息。您需要一行单独的代码来发送嵌入内容。message.channel.send(avatarEmbed);其次,机器人只会因此而标记您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')) {&nbsp; &nbsp; var pfpMember = message.mentions.members.first() || message.member;&nbsp; &nbsp; // we can just put the member object into the string here, that will tag the person&nbsp; &nbsp; message.channel.send(`Here is ${pfpMember}'s pfp :)`);&nbsp; &nbsp; const avatarEmbed = new Discord.MessageEmbed()&nbsp; &nbsp; &nbsp; &nbsp; .setColor('#446580')&nbsp; &nbsp; &nbsp; &nbsp; .setAuthor(pfpMemer.user.username)&nbsp; &nbsp; &nbsp; &nbsp; .setImage(pfpMember.user.displayAvatarURL());&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; message.channel.send(avatarEmbed);}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript