gaber-elsayed

user info

Jul 6th, 2021
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.26 KB | None | 0 0
  1. const { MessageEmbed } = require('discord.js')
  2. const moment = require('moment');
  3. const { trimArray } = require('../../util/util');
  4.  
  5.  
  6. exports.run = async (client, message, args) => {
  7.  
  8. let mention = await getMemberfromMention(args[0], message.guild) || message.member;
  9.  
  10. if (mention.user.presence.status === "dnd") mention.user.presence.status = "Do not disturb";
  11. if (mention.user.presence.status === "idle") mention.user.presence.status = "Idle";
  12. if (mention.user.presence.status === "offline") mention.user.presence.status = "Offline";
  13. if (mention.user.presence.status === "online") mention.user.presence.status = "Online";
  14.  
  15. function game() {
  16. let game;
  17. if (mention.user.presence.activities.length >= 1) {
  18. if (mention.user.presence.activities[0].type === "CUSTOM_STATUS") {
  19. game = "That user is displaying a custom status!"
  20. } else {
  21. game = `${mention.user.presence.activities[0].type} ${mention.user.presence.activities[0].name}`
  22. }
  23. } else if (mention.user.presence.activities.length < 1) {
  24. game = "None"
  25. }
  26. return game;
  27. };
  28. const employee = client.customEmojis.get('staff_badge');
  29. const partner = client.customEmojis.get('new_partner_badge');
  30. const bug1 = client.customEmojis.get('bug_hunter_badge1');
  31. const bug2 = client.customEmojis.get('bug_hunter_badge2');
  32. const hypesquad = client.customEmojis.get('hypesquad_badge');
  33. const bravery = client.customEmojis.get('bravery_badge');
  34. const brilliance = client.customEmojis.get('brilliance_badge');
  35. const balance = client.customEmojis.get('balance_badge');
  36. const early = client.customEmojis.get('early_supporter_badge');
  37. const verified = client.customEmojis.get('verified');
  38. const devVerified = client.customEmojis.get('verified_developer_badge');
  39.  
  40. const flags = {
  41. DISCORD_EMPLOYEE: `${employee} Discord Employee`,
  42. PARTNERED_SERVER_OWNER: `${partner} Discord Partner`,
  43. BUGHUNTER_LEVEL_1: `${bug1} Bug Hunter Level 1`,
  44. BUGHUNTER_LEVEL_2: `${bug2} Bug Hunter Level 2`,
  45. HYPESQUAD_EVENTS: `${hypesquad} HypeSquad Events`,
  46. HOUSE_BRAVERY: `${bravery} House of Bravery`,
  47. HOUSE_BRILLIANCE: `${brilliance} House of Brilliance`,
  48. HOUSE_BALANCE: `${balance} House of Balance`,
  49. EARLY_SUPPORTER: `${early} Early Supporter`,
  50. TEAM_USER: `Team User`,
  51. SYSTEM: `System`,
  52. VERIFIED_BOT: `${verified} Verified Bot`,
  53. EARLY_VERIFIED_DEVELOPER: `${devVerified} Early Verified Bot Developer`
  54. };
  55. const deprecated = ['DISCORD_PARTNER', 'VERIFIED_DEVELOPER'];
  56.  
  57. const userFlags = mention.user.flags ? mention.user.flags.toArray().filter(flag => !deprecated.includes(flag)) : [];
  58.  
  59. let x = Date.now() - mention.user.createdAt;
  60. let y = Date.now() - mention.joinedAt;
  61. let created = Math.floor(x / 86400000);
  62. let joined = Math.floor(y / 86400000);
  63.  
  64. const member = message.guild.member(mention);
  65. let highestrole = member.roles.highest !== undefined && member.roles.highest !== null ? member.roles.highest : "None";
  66. let roles = member.roles.cache
  67. .filter(role => role.id !== highestrole.id)
  68. .sort((a, b) => b.position - a.position)
  69. .map(role => role.toString());
  70. let nickname = member.nickname !== undefined && member.nickname !== null ? member.nickname : "None";
  71. let createdate = moment.utc(mention.user.createdAt).format("dddd, MMMM Do YYYY, HH:mm:ss");
  72. let joindate = moment.utc(member.joinedAt).format("dddd, MMMM Do YYYY, HH:mm:ss");
  73. let status = mention.user.presence.status;
  74. let avatar = mention.user.displayAvatarURL({size: 4096, dynamic: true});
  75. let dots;
  76. if (roles.length) {
  77. if (roles.length > 6) dots = '...';
  78. else dots = ''
  79. } else dots = '';
  80. const embed = new MessageEmbed()
  81. .setDescription(mention.user.toString())
  82. .setAuthor(mention.user.tag, avatar)
  83. .setFooter(message.member.displayName, message.author.displayAvatarURL({ dynamic: true }))
  84. .setThumbnail(avatar)
  85. .setTimestamp()
  86. .setColor(mention.displayHexColor)
  87. .addField("\`👑\` Highest role", highestrole, true)
  88. .addField("\`â„šī¸\` ID", `\`${mention.user.id}\``, true)
  89. .addField("\`đŸ’Ŧ\` Nickname", nickname, true)
  90. .addField("📅\` Account creation date", `${createdate} \nsince ${created} day(s) ago`, true)
  91. .addField("\`âžĄī¸\` Guild join date", `${joindate} \nsince ${joined} day(s) ago`, true)
  92. .addField('\`🤖\` Bot?', mention.user.bot? 'True' : 'False', true)
  93. .addField("\`👀\` Status", status, true)
  94. .addField('\`â›ŗ\` Flags', userFlags.length ? userFlags.map(flag => flags[flag]).join(', ') : 'None')
  95. .addField("\`🎮\` Activity", game(), true)
  96. .addField(`\`👤\` Roles [${roles.length}]`, roles.length ? trimArray(roles, 6).join(', ') + dots : 'None');
  97.  
  98. return message.channel.send(embed);
  99. }
  100.  
  101. exports.help = {
  102. name: "user-info",
  103. description: "fetch an user's information on the guild. if no user is given, your own information will be displayed.",
  104. usage: "user-info `[@user]`",
  105. example: "user-info `@Bell`"
  106. }
  107.  
  108. exports.conf = {
  109. aliases: ["userinfo", "whois", 'user'],
  110. cooldown: 3,
  111. guildOnly: true,
  112. channelPerms: ["EMBED_LINKS"]
  113. }
Advertisement
Add Comment
Please, Sign In to add comment