const { SlashCommandBuilder } = require('@discordjs/builders'); const { MessageEmbed } = require('discord.js'); module.exports = { data: new SlashCommandBuilder() .setName('user') .setDescription('Get information about a user or yourself.') .addSubcommand(subcommand => subcommand .setName('info') .setDescription(`Get information about a user or yourself.`) .addUserOption(option => option.setName('user').setDescription("The user who's information you want."))), async execute(interaction, client) { await interaction.deferReply(); let infUser = interaction.options.getUser('user') || interaction.user; let infoUser = interaction.guild.members.cache.get(infUser.id); let badges = infUser.flags.toArray(); let nu = new MessageEmbed() .setDescription("<:smike_x_mark:1009474223657463888> The user mentioned is no longer within the server!") .setColor('#ff0000'); if (!infoUser) return interaction.followUp({ embeds: [nu]} ); let embeduserinfo = new MessageEmbed() .setAuthor({ name: `User info`, iconURL: `${infUser.displayAvatarURL({ dynamic: true})}`}) .setThumbnail(infUser.displayAvatarURL({ dynamic: true})) .setFooter({ text: `User ID: ${infUser.id}`}) .addFields( { name: `Discord username`, value: `${infUser.username}`, inline: true}, { name: `Server nickname`, value: `${infoUser.nickname || "None"}`, inline: true}, { name: `User tag`, value: `#${infUser.discriminator}`, inline: true}, { name: `Badges`, value: `\`${badges.join(', ') || "None"}\``, inline: true}, { name: `Server roles`, value: `${infoUser.roles.cache.map(r => r).join(" ").replace("@everyone", "") || "None"}`}, { name: `Joined server on`, value: new Date(infoUser.joinedTimestamp).toLocaleDateString(), inline: true}, { name: `Account created on`, value: new Date(infUser.createdTimestamp).toLocaleDateString(), inline: true}, ) .setColor('#088f8f'); await interaction.followUp({ embeds: [embeduserinfo]}).catch(err => { return interaction.followUp({ content: `An error occured while executing this command!`}) }); }, };