55 lines
1.7 KiB
JavaScript
55 lines
1.7 KiB
JavaScript
const Discord = require('discord.js');
|
|
const Command = require('../../base/Command.js');
|
|
|
|
class Avatar extends Command {
|
|
constructor (client) {
|
|
super(client, {
|
|
description: 'View a full-sized image of a person\'s profile picture.',
|
|
usage: 'avatar <user>',
|
|
examples: '`avatar` - Gets your avatar.\n`avatar emily` - Gets the avatar of the user "emily"',
|
|
aliases: ['pfp'],
|
|
botPerms: ['EMBED_LINKS']
|
|
});
|
|
}
|
|
|
|
async run (message, args, data) { // eslint-disable-line no-unused-vars
|
|
if (!args[0]) {
|
|
const embed = this.createEmbed(message.author);
|
|
return message.channel.send(embed);
|
|
}
|
|
|
|
let user = message.mentions.users.first();
|
|
|
|
if (!user && message.guild) {
|
|
user = this.client.functions.searchForMembers(message.guild, args[0]);
|
|
if (user.length > 1) {
|
|
return message.channel.send(
|
|
'Found multiple users, please be more specific or @mention the user instead.'
|
|
);
|
|
}
|
|
|
|
if (user.length < 1) {
|
|
return message.channel.send(
|
|
'Specified user couldn\'t be found, check for typing errors.'
|
|
);
|
|
}
|
|
}
|
|
|
|
user = user[0].user;
|
|
|
|
const embed = this.createEmbed(user);
|
|
return message.channel.send(embed);
|
|
}
|
|
|
|
createEmbed (user) {
|
|
const URL = user.avatarURL({format: 'png', dynamic: true, size: 2048});
|
|
const embed = new Discord.MessageEmbed()
|
|
.setTitle(user.tag)
|
|
.setDescription(`**[Avatar URL](${URL})**`)
|
|
.setImage(URL);
|
|
|
|
return embed;
|
|
}
|
|
}
|
|
|
|
module.exports = Avatar;
|