1- const { EmbedBuilder, ApplicationCommandOptionType } = require ( "discord.js" ) ;
1+ const { EmbedBuilder, ApplicationCommandOptionType, ButtonBuilder , ActionRowBuilder } = require ( "discord.js" ) ;
22const SlashCommand = require ( "../../../structures/base/BaseSlashCommand" ) ;
33
44class GetUserCommand extends SlashCommand {
@@ -37,23 +37,23 @@ class GetUserCommand extends SlashCommand {
3737 if ( ! user ) return interaction . editReply ( { embeds : [ this . HackRUBot . util . errorEmbed ( "No user found with specified email." ) ] } ) ;
3838
3939 const userEmbed = new EmbedBuilder ( )
40- . setAuthor ( { name : " HackRU User Information" , iconURL : interaction . guild . iconURL ( ) } )
40+ . setAuthor ( { name : ` HackRU User Information | ${ user . _id } ` , iconURL : interaction . guild . iconURL ( ) } )
4141 . setTitle ( user . first_name + " " + user . last_name )
42- . setDescription ( `**Email:** ${ user . email } \n**Phone Number:** ${ user . phone_number } ` )
42+ . setDescription ( `**Email:** ${ user . email } \n**Phone Number:** ${ user . phone_number || "UNDEFINED" } ` )
4343 . setFields ( [
4444 { name : "Status:" , value : `\`${ user . registration_status } \`` , inline : true } ,
4545 { name : "Created At:" , value : user . created_at ? this . HackRUBot . util . createTimestamp ( user . created_at ) : "UNDEFINED" , inline : true } ,
4646 { name : "Registered At:" , value : user . registered_at ? this . HackRUBot . util . createTimestamp ( user . registered_at ) : "UNDEFINED" , inline : true } ,
4747 { name : "Role(s):" , value : Object . entries ( user . role ) . filter ( r => r [ 1 ] == true ) . map ( r => r [ 0 ] ) . join ( ", " ) || "N/A" } ,
48- { name : "Gender:" , value : user . gender , inline : true } ,
49- { name : "Ethnicity:" , value : user . ethnicity , inline : true } ,
50- { name : "DOB:" , value : user . date_of_birth , inline : true } ,
51- { name : "School:" , value : user . school } ,
52- { name : "Major:" , value : user . major , inline : true } ,
53- { name : "Grad Year:" , value : user . grad_year , inline : true } ,
54- { name : "Study Level:" , value : user . level_of_study , inline : true } ,
55- { name : "Votes:" , value : user . votes ?. toString ( ) , inline : true } ,
56- { name : "Shirt Size:" , value : user . shirt_size , inline : true } ,
48+ { name : "Gender:" , value : user . gender || "UNDEFINED" , inline : true } ,
49+ { name : "Ethnicity:" , value : user . ethnicity || "UNDEFINED" , inline : true } ,
50+ { name : "DOB:" , value : user . date_of_birth || "UNDEFINED" , inline : true } ,
51+ { name : "School:" , value : user . school || "UNDEFINED" } ,
52+ { name : "Major:" , value : user . major || "UNDEFINED" , inline : true } ,
53+ { name : "Grad Year:" , value : user . grad_year || "UNDEFINED" , inline : true } ,
54+ { name : "Study Level:" , value : user . level_of_study || "UNDEFINED" , inline : true } ,
55+ { name : "Votes:" , value : user . votes ?. toString ( ) || "UNDEFINED" , inline : true } ,
56+ { name : "Shirt Size:" , value : user . shirt_size || "UNDEFINED" , inline : true } ,
5757 { name : "GitHub:" , value : user . github || "UNDEFINED" , inline : true } ,
5858 { name : "Dietary Restrictions:" , value : user . dietary_restrictions || "N/A" , inline : true } ,
5959 { name : "Special Needs:" , value : user . special_needs || "N/A" , inline : true } ,
@@ -64,7 +64,12 @@ class GetUserCommand extends SlashCommand {
6464 . setFooter ( { text : "Data as of" } )
6565 . setTimestamp ( ) ;
6666
67- interaction . editReply ( { embeds : [ userEmbed ] } ) ;
67+ const dataButton = new ButtonBuilder ( )
68+ . setCustomId ( "download-data" )
69+ . setLabel ( "Download User Data" )
70+ . setStyle ( "Secondary" ) ;
71+
72+ interaction . editReply ( { embeds : [ userEmbed ] , components : [ new ActionRowBuilder ( ) . addComponents ( dataButton ) ] } ) ;
6873
6974 return ;
7075 }
0 commit comments