1 回答
TA贡献1898条经验 获得超8个赞
这里有两个部分。
首先,机器人仅发送消息而不是嵌入,因为您只发送消息。您需要一行单独的代码来发送嵌入内容。
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')) {
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);
}
添加回答
举报