userinfo.js (3188B)
1 const { Client, CommandInteraction, EmbedBuilder } = require("discord.js"); 2 const Utils = require("../../util/functions/function"); 3 module.exports = { 4 name: "userinfo", 5 description: "Check the info of a user", 6 usage: "{User}", 7 category: "Information", 8 options: [ 9 { 10 type: 6, 11 name: "user", 12 description: "The user you want to see", 13 required: false, 14 }, 15 ], 16 /** 17 * 18 * @param {Client} client 19 * @param {CommandInteraction} interaction 20 * @param {String[]} args 21 * @param {Utils} utils 22 */ 23 run: async (client, interaction, args, utils) => { 24 const member = 25 interaction.guild.members.cache.get(args[0]) || interaction.member; 26 27 const x = Date.now() - member.user.createdAt; 28 const y = 29 Date.now() - interaction.guild.members.cache.get(member.id).joinedAt; 30 const created = Math.floor(x / 86400000); 31 const joined = Math.floor(y / 86400000); 32 const nickname = member.nickname || "None"; 33 const roles = member.roles.cache 34 .filter(r => r.id != interaction.guild.id) 35 .sort((a, b) => b.position - a.position) 36 .map(role => role.toString()); 37 const createDateFormatted = utils.parseDate( 38 new Date(member.user.createdAt) 39 ); 40 const joinDateFormatted = utils.parseDate(new Date(member.joinedAt)); 41 const embed = new EmbedBuilder() 42 .setAuthor({ 43 name: member.user.tag, 44 iconURL: member.user.displayAvatarURL({ dynamic: true, size: 4096 }), 45 }) 46 .setTimestamp() 47 .setColor(member.displayHexColor || client.color) 48 .setURL(client.web) 49 .setFooter({ 50 text: `Made by ${client.author}`, 51 iconURL: client.user.displayAvatarURL({ dynamic: true, size: 4096 }), 52 }) 53 .setThumbnail(member.user.displayAvatarURL({ dynamic: true, size: 4096 })) 54 .addFields([ 55 { 56 name: "User", 57 value: `**❯ User Tag:** ${member.user.tag} ${client.owners.includes(member.id) ? client.dev : ""} 58 **❯ Username:** ${member.user.username} 59 **❯ Discriminator:** ${member.user.discriminator} 60 **❯ Nickname:** ${nickname} 61 **❯ User ID:** ${member.id} 62 **❯ Avatar:** [Link to avatar](${member.user.displayAvatarURL({ 63 dynamic: true, 64 size: 2048, 65 })}) 66 **❯ Time Created:** ${createDateFormatted} \nSince ${created} day${created <= 1 ? "" : "s"} ago 67 \u200b`, 68 }, 69 { 70 name: "Member", 71 value: `**❯ Highest Role:** ${ 72 member.roles.highest.id === interaction.guild.id 73 ? "None" 74 : member.roles.highest.name 75 } 76 **❯ Server Join Date:** ${joinDateFormatted} \nSince ${joined} day${joined <= 1 ? "" : "s"} ago 77 **❯ Roles [${roles.length}]:** ${ 78 roles.length < 10 && roles.length > 0 79 ? roles.join(" **|** ") 80 : roles.length > 0 81 ? utils.trimArray(roles) 82 : "None" 83 } 84 \u200b`, 85 }, 86 ]); 87 interaction.followUp({ embeds: [embed] }); 88 }, 89 };