Reputation: 41
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
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