Cryopt
Cryopt

Reputation: 41

Avatar command in discord.js

Hello I am creating a discord bot and I'm making the avatar command. When I make on myself (without mention), it works. But when I mention someone nothing happens

const Discord = require("discord.js");


module.exports = {
    name : 'avatar',
    description : "commande pp",
    execute(message, args) {


        const Discord = require("discord.js");
        let user = message.mentions.users.first() || message.author;
        let avatar = user.displayAvatarURL({size: 4096, dynamic: true});


    
        let embed = new Discord.MessageEmbed()
        .setTitle(`Avatar de ${user.tag}` )
        .setURL(avatar)
        .setImage(avatar)
        .setColor('RANDOM')
        .setDescription('Ton avatar :')
        message.channel.send(embed)

    }
}

Upvotes: 0

Views: 2598

Answers (1)

Christoph Blüm
Christoph Blüm

Reputation: 975

This should do the trick. Usage:

avatar sends the iamge of the author of the message

avatar @user sends image of mentioned user

var discord = require('discord.js');

module.exports = {
    name : 'avatar',
    description : "commande pp",
    execute(client, message, args) {

       let user = message.author;
       let avatar;

       //when args are given, set user to mentioned user
       if (args.length > 0) {
           let userID = args[0].slice(3, -1)
           user = message.guild.members.cache.get(userID).user;
       }

       avatar = getUserAvatar(user);


       let embed = new discord.MessageEmbed()
           .setTitle(`Avatar de ${user.tag}`)
           .setURL(avatar)
           .setImage(avatar)
           .setColor('RANDOM')
           .setDescription('Ton avatar :')
       message.channel.send(embed)
   }
}


//This returns the AvatarURL of the user
function getUserAvatar(user) {
    let avatar = user.avatarURL()

    return avatar;
}

Upvotes: 1

Related Questions