nyx

The first CODM discrod bot -- cath.exe Template
git clone https://codeberg.org/night0721/nyx
Log | Files | Refs | LICENSE

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 };