61 lines
2.4 KiB
JavaScript
61 lines
2.4 KiB
JavaScript
const Command = require('../../Structures/Command');
|
||
const { MessageEmbed } = require('discord.js');
|
||
const moment = require('moment');
|
||
|
||
const flags = {
|
||
DISCORD_EMPLOYEE: 'Discord Employee',
|
||
DISCORD_PARTNER: 'Discord Partner',
|
||
BUGHUNTER_LEVEL_1: 'Bug Hunter (Level 1)',
|
||
BUGHUNTER_LEVEL_2: 'Bug Hunter (Level 2)',
|
||
HYPESQUAD_EVENTS: 'HypeSquad Events',
|
||
HOUSE_BRAVERY: 'House of Bravery',
|
||
HOUSE_BRILLIANCE: 'House of Brilliance',
|
||
HOUSE_BALANCE: 'House of Balance',
|
||
EARLY_SUPPORTER: 'Early Supporter',
|
||
TEAM_USER: 'Team User',
|
||
SYSTEM: 'System',
|
||
VERIFIED_BOT: 'Verified Bot',
|
||
VERIFIED_DEVELOPER: 'Verified Bot Developer'
|
||
};
|
||
|
||
module.exports = class extends Command {
|
||
|
||
constructor(...args) {
|
||
super(...args, {
|
||
aliases: ['user', 'ui'],
|
||
category: 'Information'
|
||
});
|
||
}
|
||
|
||
async run(message, [target]) {
|
||
const member = message.mentions.members.last() || message.guild.members.cache.get(target) || message.member;
|
||
const roles = member.roles.cache
|
||
.sort((a, b) => b.position - a.position)
|
||
.map(role => role.toString())
|
||
.slice(0, -1);
|
||
const userFlags = member.user.flags.toArray();
|
||
|
||
const embed = new MessageEmbed()
|
||
.setThumbnail(member.user.displayAvatarURL({ dynamic: true, size: 512 }))
|
||
.setColor(member.displayHexColor || 'BLUE')
|
||
.addField('User', [
|
||
`**❯ Username:** ${member.user.username}`,
|
||
`**❯ Discriminator:** ${member.user.discriminator}`,
|
||
`**❯ ID:** ${member.id}`,
|
||
`**❯ Flags:** ${userFlags.length ? userFlags.map(flag => flags[flag]).join(', ') : 'None'}`,
|
||
`**❯ Avatar:** [Link to avatar](${member.user.displayAvatarURL({ dynamic: true })})`,
|
||
`**❯ Time Created:** ${moment(member.user.createdTimestamp).format('LT')} ${moment(member.user.createdTimestamp).format('LL')} ${moment(member.user.createdTimestamp).fromNow()}`,
|
||
`**❯ Status:** ${member.user.presence.status}`,
|
||
`**❯ Game:** ${member.user.presence.game || 'Not playing a game.'}`
|
||
])
|
||
.addField('Member', [
|
||
`**❯ Highest Role:** ${member.roles.highest.id === message.guild.id ? 'None' : member.roles.highest.name}`,
|
||
`**❯ Server Join Date:** ${moment(member.joinedAt).format('LL LTS')}`,
|
||
`**❯ Hoist Role:** ${member.roles.hoist ? member.roles.hoist.name : 'None'}`,
|
||
`**❯ Roles:** [${roles.length}]: ${roles.length < 10 ? roles.join(', ') : roles.length > 10 ? this.client.utils.trimArray(roles) : 'None'}`,
|
||
]);
|
||
return message.channel.send(embed);
|
||
}
|
||
|
||
};
|