0

My code is as shown:

client.on('message', (message) => {
 if (message.content === '>pfp') {
  const embed = new Discord.MessageEmbed();
  const exampleEmbed = new Discord.MessageEmbed()
   .setImage(message.member.displayAvatarURL)
   .setColor('#0099ff');
  message.channel.send(embed);
 }
});

I'm a starter to Discord.js so an explanation would be nice!

Lioness100
  • 8,260
  • 6
  • 18
  • 49
The Cewl
  • 11
  • 4

2 Answers2

1

First of all, displayAvatarURL is a function, not a property. Second of all, message.member returns a GuildMember. However, displayAvatarURL only works on a User object (see this post for more details). Instead, use message.author:

const exampleEmbed = new Discord.MessageEmbed()
 .setImage(message.author.displayAvatarURL())
 .setColor('#0099ff');
Lioness100
  • 8,260
  • 6
  • 18
  • 49
1

Message.member is a GuildMember object, and it has no displayAvatarURL property, nor method. You're looking for Message.member.user, which is a User object, containing the displayAvatarURL method.

(I applaud you for using displayAvatarURL instead of avatarURL because it returns the default avatar instead of undefined if the user does not have an avatar.)


client.on('message', (message) => {
 if (message.content === '>pfp') {
  const embed = new Discord.MessageEmbed()
   .setImage(message.author.displayAvatarURL())
   // You can use message.author instead of message.member.user.
   .setColor('#0099ff');
  message.channel.send(embed);
 }
});
Jakye
  • 6,440
  • 3
  • 19
  • 38