package Ġcom . dong tr onic . di abot . platforms . discord . commands . n ights cout čĊč Ċ import Ġcom . dong tr onic . di abot . author Name č Ċ import Ġcom . dong tr onic . di abot . data . mongodb . N ights cout DAO č Ċ import Ġcom . dong tr onic . di abot . name Of č Ċ import Ġcom . dong tr onic . di abot . platforms . discord . commands . Discord Command č Ċ import Ġcom . dong tr onic . di abot . platforms . discord . commands . n ights cout . N ights cout Set Url Command . Companion . validate N ights cout Url č Ċ import Ġcom . dong tr onic . di abot . util . logger č Ċ import Ġcom . j ag ro sh . j da utilities . command . Command č Ċ import Ġcom . j ag ro sh . j da utilities . command . Command Event č Ċ import Ġorg . apache . commons . lang 3 . StringUtils čĊč Ċ class ĠN ights cout Admin Set Command ( category : ĠCommand . Category , Ġparent : ĠCommand ?) Ġ: ĠDiscord Command ( category , Ġparent ) Ġ{ čĊčĊĠĠĠ Ġprivate Ġval Ġlogger Ġ= Ġlogger () čĊčĊĠĠĠ Ġinit Ġ{ čĊĠĠĠĠĠĠĠ Ġthis . name Ġ= Ġ" set " čĊĠĠĠĠĠĠĠ Ġthis . help Ġ= Ġ" Set ĠN ights cout ĠURL Ġfor Ġa Ġuser " čĊĠĠĠĠĠĠĠ Ġthis . guild Only Ġ= Ġtrue čĊĠĠĠĠĠĠĠ Ġthis . owner Command Ġ= Ġtrue čĊĠĠĠĠĠĠĠ Ġthis . aliases Ġ= ĠarrayOf (" s ") čĊĠĠĠĠĠĠĠ Ġthis . category Ġ= Ġcategory čĊĠĠĠĠĠĠĠ Ġthis . examples Ġ= ĠarrayOf ( this . parent !!. name Ġ+ Ġ" Ġset Ġ< userId > Ġ< url >") čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġoverride Ġfun Ġexecute ( event : ĠCommand Event ) Ġ{ čĊĠĠĠĠĠĠĠ Ġval Ġargs Ġ= Ġevent . args . split ("\\ s +". to Regex ()). drop Last While Ġ{ Ġit . isEmpty () Ġ}. to Typed Array () čĊčĊĠĠĠĠĠĠĠ Ġ// ĠThis Ġcommand Ġmay Ġexclus ively Ġbe Ġrun Ġon Ġthe Ġofficial ĠDi abet es Ġserver . čĊĠĠĠĠĠĠĠ Ġif Ġ( event . guild . id Ġ!= ĠSystem . getenv (" HOME _ GU ILD _ ID ")) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġevent . reply Error ( System . getenv (" HOME _ GU ILD _ MESSAGE ")) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġtry Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( args . size Ġ!= Ġ 2 ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalArgumentException (" Please Ġprovide Ġthe Ġ< userId > Ġand Ġ< url > Ġparameters ") čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġuser Ġ= Ġif Ġ( event . message . mention ed Users . size Ġ== Ġ 0 ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! StringUtils . is Numeric ( args [ 0 ])) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalArgumentException (" User ĠID Ġmust Ġbe Ġvalid ") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠuserId Ġ= Ġargs [ 0 ] čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġevent . j da . getUser ById ( userId ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġthrow ĠIllegalArgumentException (" User Ġ`$ userId ` Ġis Ġnot Ġin Ġthe Ġserver ") čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġevent . message . mention ed Users [ 0 ] čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġvalidate N ights cout Url ( args [ 1 ]) čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . info (" Admin Ġsetting ĠURL Ġfor Ġuser Ġ${ args [ 0 ]} Ġto Ġ${ args [ 1 ]} ") čĊčĊĠĠĠĠĠĠĠĠĠĠĠ ĠN ights cout DAO . instance . set Url ( user . id , Ġurl ). subscribe ({ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġevent . reply (" Admin Ġset ĠN ights cout ĠURL Ġfor Ġ${ event . name Of ( user )} Ġ[ requested Ġby Ġ${ event . author Name }] ") čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmsg Ġ= Ġ" Could Ġnot Ġset ĠN ights cout ĠURL Ġfor Ġ${ event . name Of ( user )} Ġ(${ user . id })" čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . warn ( msg , Ġit ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġevent . reply Error ( msg ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) čĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠIllegalArgumentException ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġevent . reply Error ( ex . message ) čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} č Ċ } čĊ