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);
}
添加回答
舉報