package Ġnet . source bot . module . profiles . command Ċ Ċ import Ġme . hw ig gy . kom mand er . arguments . Adapter Ċ import Ġme . hw ig gy . kom mand er . arguments . Arguments Ċ import Ġme . hw ig gy . kom mand er . arguments . Group Ċ import Ġme . hw ig gy . kom mand er . arguments . Syn opsis Ċ import Ġnet . dv 8 tion . j da . api . entities . Message Ċ import Ġnet . dv 8 tion . j da . api . utils . Markdown Util Ċ import Ġnet . source bot . Source Ċ import Ġnet . source bot . api . command . argument . Source Adapter Ċ import Ġnet . source bot . api . configuration . Json Configuration Ċ import Ġnet . source bot . api . format Long Ċ import Ġnet . source bot . api . if Present OrElse Ċ import Ġnet . source bot . api . response . Response Ċ import Ġnet . source bot . api . response . Standard Info Response Ċ import Ġnet . source bot . api . response . Standard Success Response Ċ import Ġnet . source bot . api . sort Fields Ċ import Ġnet . source bot . api . wrapped Ċ import Ġnet . source bot . module . profiles . Profiles Ċ import Ġnet . source bot . module . profiles . event . Profile Render Event Ċ Ċ class ĠProfile Command Ġ: ĠRoot Command ( ĊĠĠĠ Ġ" profile ", Ġ" Manage Ġmember Ġprofiles ." Ċ ) Ġ{ ĊĠĠĠ Ġoverride Ġval Ġsyn opsis Ġ= ĠSyn opsis Ġ{ ĊĠĠĠĠĠĠĠ Ġopt Param (" target ", Ġ" The Ġmember Ġwho 's Ġprofile Ġyou Ġwish Ġto Ġview .", ĠSource Adapter . member ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġexecute ( sender : ĠMessage , Ġarguments : ĠArguments . Processed ): ĠResponse Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtarget Ġ= Ġarguments . optional (" target ", Ġsender . member !! ) ĊĠĠĠĠĠĠĠ Ġval Ġprofile Ġ= ĠPro files [ target ] ĊĠĠĠĠĠĠĠ Ġval Ġembed Ġ= ĠStandard Info Response ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ target . format Long () }' s ĠProfile " ĊĠĠĠĠĠĠĠ Ġ). also Ġ{ Ġembed Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġembed . set Thumbnail ( target . user . effective Avatar Url ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġembed . addField ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Account ĠInformation :", Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ** Nick name :** Ġ${ target . effective Name } ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ** Created ĠAt :** Ġ${ target . time Created . format ( Source . DATE _ TIME _ FORMAT )} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ** Joined ĠAt :** Ġ${ target . time Joined . format ( Source . DATE _ TIME _ FORMAT )} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ${ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprofile . optional < String >(" github ") ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"** GitHub ĠUsername :** Ġ${ Markdown Util . masked Link ( it , Ġ" https :// github . com /$ it ") }" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġ?: Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent (), Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprofile . optional < String >(" bio ") ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġembed . addField (" Bio :", Ġit , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠSource . SOURCE _ EVENTS . fire Event ( Profile Render Event ( embed , Ġtarget , Ġprofile )) ĊĠĠĠĠĠĠĠ Ġreturn Ġembed . sort Fields (). wrapped ( target ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġinner Ġclass ĠProfile Set Command Ġ: ĠCommand ( ĊĠĠĠĠĠĠĠ Ġ" set ", Ġ" Set Ġa Ġfield Ġin Ġyour Ġprofile ." ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġaliases Ġ= ĠlistOf (" update ") ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġsyn opsis Ġ= ĠSyn opsis Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreq Group (" field ", Ġ" The Ġfield Ġto Ġset Ġthe Ġvalue Ġof .", ĠGroup . Option . by Name < Profile Field >()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchoice ( Profile Field . BIO , Ġ" Sets Ġyour Ġprofile 's Ġbio graphy .") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchoice ( Profile Field . GITHUB , Ġ" Sets Ġyour Ġprofile 's ĠGitHub Ġusername .") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġexecute ( sender : ĠMessage , Ġarguments : ĠArguments . Processed ): ĠResponse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfield Ġ= Ġarguments . required < Profile Field >(" field ", Ġ" You Ġdid Ġnot Ġspecify Ġa Ġfield Ġto Ġset Ġthe Ġvalue Ġof !") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprofile Ġ= ĠPro files [ sender . member !! ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprocessed Ġ= Ġfield . syn opsis . process ( arguments . parent . slice ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalue Ġ= Ġprocessed . optional < String >(" value ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġvalue . if Present OrElse ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġfield . if Present ( profile , Ġit ) Ġ}, Ġ{ Ġfield . orElse ( profile ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġadd Children ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠProfile Set Command () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġenum Ġclass ĠProfile Field ( ĊĠĠĠĠĠĠĠ Ġoverride Ġval Ġsyn opsis Name : ĠString , ĊĠĠĠĠĠĠĠ Ġval Ġsyn opsis : ĠSyn opsis , ĊĠĠĠĠĠĠĠ Ġval Ġif Present : Ġ( Json Configuration , ĠString ) Ġ-> ĠResponse , ĊĠĠĠĠĠĠĠ Ġval Ġor Else : Ġ( Json Configuration ) Ġ-> ĠResponse ĊĠĠĠ Ġ) Ġ: ĠGroup . Option Ġ{ ĊĠĠĠĠĠĠĠ ĠG ITHUB (" github ", ĠSyn opsis Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġopt Param (" value ", Ġ" The ĠGitHub Ġusername Ġto Ġshow Ġon Ġyour Ġprofile ; Ġabsent Ġto Ġremove .", ĠAdapter . single ()) ĊĠĠĠĠĠĠĠ Ġ}, Ġ{ Ġprofile , Ġinput Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġusername Ġ= ĠG ITHUB _ USERNAME . find ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinput . replace (" https :// github . com /", Ġ"") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ?. groups ?. get ( 0 )?. value Ġ?: Ġthrow Ġme . hw ig gy . kom mand er . Invalid Syntax Exception ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" You Ġdid Ġnot Ġspecify Ġa Ġvalid ĠGitHub ĠURL Ġ/ ĠUsername !! " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġ" https :// github . com /$ username " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprofile [" github "] Ġ= Ġusername ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStandard Success Response ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Profile ĠUpdated !", Ġ" You Ġhave Ġset Ġyour ĠGitHub ĠURL Ġto : Ġ$ url " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ}, Ġ{ Ġprofile Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprofile [" github "] Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStandard Success Response ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Profile ĠUpdated !", Ġ" You Ġhave Ġremoved Ġyour ĠGitHub ĠURL !" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}), ĊĠĠĠĠĠĠĠ ĠBIO (" bio ", ĠSyn opsis Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġopt Param (" value ", Ġ" The Ġbio graphy Ġto Ġshow Ġon Ġyour Ġprofile ; Ġabsent Ġto Ġremove .", ĠAdapter . sl ur p (" Ġ")) ĊĠĠĠĠĠĠĠ Ġ}, Ġ{ Ġprofile , Ġinput Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprofile [" bio "] Ġ= Ġinput ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStandard Success Response ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Profile ĠUpdated !", Ġ" You Ġhave Ġset Ġyour Ġbio Ġto : Ġ$ input " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}, Ġ{ Ġprofile Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprofile [" bio "] Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStandard Success Response ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Profile ĠUpdated !", Ġ" You Ġhave Ġremoved Ġyour Ġbio !" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} Ċ } Ċ Ċ private Ġval ĠG ITHUB _ USERNAME Ġ= Ġ"^ [ a - z \\ d ]( ?: [ a - z \\ d ]| -( ? =[ a - z \\ d ])) { 0 , 3 8 }$ ". to Regex ( Regex Option . IGNORE _ CASE )