package Ġio . github . lun ar watcher . chat bot . bot . commands . meta Ċ Ċ 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 . command . Command Center Ċ import Ġio . github . lun ar watcher . chat bot . bot . commands . Abstract Command Ċ import Ġio . github . lun ar watcher . chat bot . utils . Utils Ċ Ċ class ĠChange Command Status ( val Ġcenter : ĠCommand Center ) Ġ: ĠAbstract Command (" declare ", ĠlistOf (), Ġ" Changes Ġa Ġcommands Ġstatus . ĠOnly Ġcommands Ġavailable Ġon Ġthe Ġsite Ġcan Ġbe Ġedited "){ ĊĠĠĠ Ġoverride Ġfun Ġhandle Command ( message : ĠMessage ): ĠList < Reply Message >? Ġ{ ĊĠĠĠĠĠĠĠ Ġif ( Utils . get Rank ( message . user . userID , Ġmessage . chat . config ) Ġ< Ġ 7 ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠlistOf ( Reply Message (" I 'm Ġaf raid ĠI Ġcan 't Ġlet Ġyou Ġdo Ġthat , ĠUser ", Ġtrue )); ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontent Ġ= Ġsplit Command ( message . content )[" content "] Ġ?: Ġreturn ĠlistOf ( Reply Message (" Which Ġcommand Ġdo Ġyou Ġwant Ġto Ġchange , Ġand Ġwhat 's Ġthe Ġnew Ġstate ?", Ġtrue )) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġargs Ġ= Ġcontent . split (" Ġ"); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( args . size Ġ!= Ġ 2 ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠlistOf ( Reply Message (" Usage : Ġ${ Command Center . TRIGGER } declare Ġcommand name Ġ( n ) sf w ", Ġtrue )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcommand Ġ= Ġargs [ 0 ]; ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠnewState : ĠString Ġ= Ġargs [ 1 ]; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġactual : ĠBoolean ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactual Ġ= Ġwhen Ġ( newState ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" sf w " Ġ-> Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" ns fw " Ġ-> Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠnewState . to Boolean () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}; ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( center . is BuiltIn ( command , Ġmessage . chat )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSystem . out . println ( command ); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠlistOf ( Reply Message (" You Ġcan 't Ġchange Ġthe Ġstatus Ġof Ġincluded Ġcommands .", Ġtrue )); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Command Center . tc . does Command Exist ( command )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCommand Center . tc . commands . forEach { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( it . name Ġ== Ġcommand ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( it . ns fw Ġ== Ġactual ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠlistOf ( Reply Message (" The Ġstatus Ġwas Ġalready Ġset Ġto Ġ" Ġ+ Ġ( if Ġ( actual ) Ġ" NS FW " Ġelse Ġ" S FW "), Ġtrue )); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . ns fw Ġ= Ġactual ; ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠlistOf ( Reply Message (" IC ommand Ġstatus Ġchanged Ġto Ġ" Ġ+ Ġ( if Ġ( actual ) Ġ" NS FW " Ġelse Ġ" S FW "), Ġtrue )); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠlistOf ( Reply Message (" The Ġcommand Ġdoesn 't Ġexist .", Ġtrue )); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} catch ( e : Class CastException ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠlistOf ( Reply Message (" Something Ġjust Ġwent Ġter rib ly Ġwrong . ĠSorry Ġ' b out Ġthat ", Ġtrue )); ĊĠĠĠĠĠĠĠ Ġ} catch ( e : ĠIndex OutOfBoundsException ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠlistOf ( Reply Message (" Not Ġenough Ġarguments . ĠI Ġneed Ġthe Ġcommand Ġname Ġand Ġnew Ġstate ", Ġtrue )); ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠlistOf ( Reply Message (" This Ġis Ġin Ġtheory Ġunreachable Ġcode . ĠIf Ġyou Ġread Ġthis Ġmessage Ġsomething Ġbad Ġhappened ", Ġtrue )); ĊĠĠĠ Ġ} Ċ } Ċ