discord-avatar
Version:
A simple utility to display a member's avatar in an embedded message.
44 lines (34 loc) • 1.38 kB
JavaScript
const { MessageEmbed, MessageActionRow, MessageButton } = require("discord.js");
const avatarEmbed = (message, language = "english") => {
if (!message && !message.channel)
throw new Error(`The channel is inaccessible.`);
const validLangs = ["english", "spanish", "portuguese", "russian", "chinese", "german"];
if (!validLangs.includes(language))
throw new Error(`Invalid language. [${language}]`);
const currentLang = require(`./Languages/${language}.json`);
let target = message.mentions.users.first();
if (!target) target = message.author;
let avatarURL = target.displayAvatarURL({
size: 4096,
dynamic: true,
});
const embedTitle = currentLang.AVATAR_OF.replace("%user", target.username);
const embedFooter = currentLang.ASKED_BY.replace("%user", message.author.tag);
const Embed = new MessageEmbed()
.setTitle(embedTitle)
.setDescription(`[${currentLang.AVATAR_URL}](${avatarURL})`)
.setColor(message.guild.me.displayHexColor)
.setImage(avatarURL)
.setFooter({
text: `${embedFooter}`,
iconURL: `${avatarURL}`,
});
const link = new MessageActionRow().addComponents(
new MessageButton()
.setURL(`${avatarURL}`)
.setLabel(`${currentLang.AVATAR_URL}`)
.setStyle("LINK")
);
message.channel.send({ embeds: [Embed], components: [link] });
};
module.exports = avatarEmbed;