2020-07-01 12:26:58 +00:00
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 , {
2020-07-01 13:35:37 +00:00
aliases : [ 'user' , 'ui' ] ,
category : 'Information'
2020-07-01 12:26:58 +00:00
} ) ;
}
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 ) ;
}
} ;