package Ġio . github . lun ar watcher . chat bot . bot . commands . admin Ċ Ċ import Ġio . github . lun ar watcher . chat bot . bot . chat . Message Ċ import Ġio . github . lun ar watcher . chat bot . bot . chat . Reply Message Ċ import Ġio . github . lun ar watcher . chat bot . bot . commands . Abstract Command Ċ import Ġio . github . lun ar watcher . chat bot . utils . Utils Ċ Ċ class ĠSet Rank Command Ġ: ĠAbstract Command (" set Rank ", ĠlistOf (" dem ote ", Ġ" prom ote "), Ġ" Changes Ġa Ġusers Ġrank .") { ĊĊĠĠĠ Ġoverride Ġfun Ġhandle Command ( message : ĠMessage ): ĠList < Reply Message >? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsite Ġ= Ġmessage . chat ĊĠĠĠĠĠĠĠ Ġval Ġcommand Ġ= Ġsplit Command ( message . content ); ĊĠĠĠĠĠĠĠ Ġval Ġcontent Ġ= Ġcommand [" content "] Ġ?: Ġreturn ĠlistOf ( Reply Message (" You Ġhave Ġto Ġtell Ġme Ġwho Ġto Ġchange Ġthe Ġrank Ġof , Ġand Ġto Ġwhat ", Ġtrue )) ĊĠĠĠĠĠĠĠ Ġval Ġsplit Ġ= Ġcontent . split (" Ġ") ĊĠĠĠĠĠĠĠ Ġif ( split . size Ġ!= Ġ 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠlistOf ( Reply Message (" Requires Ġ 2 Ġarguments . Ġfound Ġ${ split . size }. Ġ( Pro Ġtip : Ġusername s Ġare Ġwritten Ġwithout Ġspaces )", Ġtrue )); ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġusername Ġ= Ġsplit [ 0 ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġuid Ġ= Ġusername . to Long OrNull () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnew Rank Ġ= Ġsplit [ 1 ]. toInt OrNull () Ġ?: Ġreturn ĠlistOf ( Reply Message (" Invalid Ġrank : Ġ${ split [ 1 ] }", Ġtrue )) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( uid Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġr Ġ= Ġsite . get Uid For Username In Room ( username , Ġmessage . room ID ); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( r . isEmpty ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠlistOf ( Reply Message (" No Ġusers Ġwith Ġthe Ġusername Ġ`$ username ` Ġfound ", Ġtrue )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġif ( r . size Ġ> Ġ 1 ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠlistOf ( Reply Message (" More Ġthan Ġone Ġuser Ġwith Ġthe Ġusername Ġ`$ username ` Ġfound . ĠPlease Ġuse Ġthe ĠUID . Ġ( found : Ġ$ r )", Ġtrue )); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuid Ġ= Ġr [ 0 ] !! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( new Rank Ġ< Ġ 0 Ġ|| Ġnew Rank Ġ> Ġ 1 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠlistOf ( Reply Message (" That 's Ġnot Ġa Ġvalid Ġrank Ġwithin Ġthe Ġrange Ġ[ 0 , Ġ 1 0 ]", Ġtrue )); ĊĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcurrent Rank Ġ= ĠUtils . get Rank ( uid , Ġsite . config ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcu Rank Ġ= ĠUtils . get Rank ( message . user . userID , Ġsite . config ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( cu Rank Ġ== Ġnew Rank ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠlistOf ( Reply Message (" The Ġuser Ġalready Ġhas Ġthe Ġrank Ġ$ new Rank ", Ġtrue )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( uid Ġ== Ġmessage . user . userID ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif ( new Rank Ġ< Ġcurrent Rank ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( new Rank Ġ== Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠReply Message (" You Ġcan 't Ġban Ġyourself ", Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( command [" -- confirm "] Ġ!= Ġnull ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsite . config . add Rank ( uid , Ġnew Rank ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( Reply Message (" Successfully Ġlower ed Ġyour Ġrank Ġfrom Ġ$ cu Rank Ġto Ġ$ new Rank ", Ġtrue )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( Reply Message (" Warning : ĠYou 're Ġattempting Ġto Ġlower Ġyour Ġown Ġrank . ĠIf Ġyou Ġdo , Ġan Ġadmin Ġhas Ġto Ġpromote Ġyou Ġif Ġyou Ġwant Ġyour Ġprevious Ġrank . ĠAdd Ġ-- confirm Ġto Ġthe Ġend Ġof Ġthe Ġmessage Ġto Ġconfirm Ġthis Ġaction .", Ġtrue )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( Reply Message (" Can 't Ġincrease Ġyour Ġown Ġrank . ĠNice Ġtry Ġthough .", Ġtrue )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(( new Rank Ġ== Ġ 0 Ġ|| Ġcurrent Rank Ġ== Ġ 0 ) Ġ&& Ġcu Rank Ġ< Ġ 8 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠlistOf ( Reply Message (" You Ġcan 't Ġban Ġor Ġun ban Ġusers Ġwith Ġyour Ġcurrent Ġrank ", Ġtrue )); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( current Rank Ġ>= Ġcu Rank Ġ&& Ġ! Utils . is Hard coded Admin ( message . user . userID , Ġsite )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠlistOf ( Reply Message (" You Ġcan 't Ġchange Ġthe Ġrank Ġof Ġusers Ġwith Ġthe Ġsame Ġor Ġhigher Ġrank Ġas Ġyourself ", Ġtrue )); ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( new Rank Ġ>= Ġcu Rank Ġ&& Ġcu Rank Ġ!= Ġ 1 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠlistOf ( Reply Message (" You Ġcan 't Ġpromote Ġother Ġusers Ġto Ġthe Ġsame Ġor Ġhigher Ġrank Ġas Ġyourself ", Ġtrue )) ĊĊ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( cu Rank Ġ< Ġ 6 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠlistOf ( Reply Message (" You Ġcan 't Ġchange Ġranks Ġwith Ġyour Ġcurrent Ġrank ", Ġtrue )); ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġsite . config . add Rank ( uid , Ġnew Rank ); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠlistOf ( Reply Message (" Rank Ġfor Ġthe Ġuser Ġhas Ġsuccessfully Ġbeen Ġupdated ", Ġtrue )); ĊĠĠĠĠĠĠĠ Ġ} catch ( e : ĠIndex OutOfBoundsException ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠlistOf ( Reply Message (" Not Ġenough Ġarguments ", Ġtrue )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }