package Ġio . ar ct . ar ct core . commands Ċ Ċ import Ġio . ar ct . ar ct lib . extensions . unary Plus Ċ import Ġio . ar ct . ar ct lib . plugin . commands . Command Ċ import Ġio . ar ct . ar ct lib . plugin . commands . Run Ċ import Ġorg . bukkit . command . Command Sender Ċ import Ġjavax . script . Script Engine Manager Ċ Ċ class ĠCommand Script Ġ: ĠCommand (" script ") Ġ{ ĊĠĠĠ Ġoverride Ġval Ġpermissions Ġ= ĠlistOf (" ar ct core . script ") ĊĊĠĠĠ Ġprivate Ġval Ġdata : ĠMutable Map < Command Sender , ĠList < String >> Ġ= Ġmutable Map Of () ĊĊĠĠĠ Ġ@ Run ĊĠĠĠ Ġfun Ġrun ( sender : ĠCommand Sender , Ġargs : ĠList < String >) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( args . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsender . sendMessage ( +" & 4 Error : Ġ& c Invalid Ġarguments ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġwhen Ġ( args [ 0 ]) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" start " Ġ-> Ġstart ( sender ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" reset " Ġ-> Ġreset ( sender ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" remove " Ġ-> Ġremove ( sender , Ġargs . drop ( 1 )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" run ", Ġ" execute " Ġ-> Ġexecute ( sender ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġadd ( sender , Ġargs . drop ( 1 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġstart ( sender : ĠCommand Sender ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( sender Ġin Ġdata ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsender . sendMessage ( +" & 4 Error : Ġ& c Script Ġhas Ġalready Ġstarted ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġdata [ sender ] Ġ= ĠlistOf () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġreset ( sender : ĠCommand Sender ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( sender Ġ! in Ġdata ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsender . sendMessage ( +" & 4 Error : Ġ& c Script Ġdoes Ġnot Ġexist ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġdata [ sender ] Ġ= ĠlistOf () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġadd ( sender : ĠCommand Sender , Ġargs : ĠList < String >) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( sender Ġ! in Ġdata ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsender . sendMessage ( +" & 4 Error : Ġ& c Script Ġdoes Ġnot Ġexist ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġdata [ sender ] Ġ= Ġdata [ sender ] !! Ġ+ ĠlistOf ( args . join ToString (" Ġ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġremove ( sender : ĠCommand Sender , Ġargs : ĠList < String >) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( sender Ġ! in Ġdata ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsender . sendMessage ( +" & 4 Error : Ġ& c Script Ġdoes Ġnot Ġexist ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġvar Ġcount : ĠInt Ġ= Ġif Ġ( args . isEmpty ()) Ġ 1 Ġelse Ġargs [ 0 ]. toInt OrNull () Ġ?: Ġ 1 ĊĊĠĠĠĠĠĠĠ Ġif Ġ( count Ġ> Ġdata [ sender ] !!. size ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcount Ġ= Ġdata [ sender ] !!. size ĊĊĠĠĠĠĠĠĠ Ġdata [ sender ] Ġ= Ġdata [ sender ] !!. drop Last ( count ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġexecute ( sender : ĠCommand Sender ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( sender Ġ! in Ġdata ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsender . sendMessage ( +" & 4 Error : Ġ& c Script Ġdoes Ġnot Ġexist ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġsender . sendMessage ( +" Evalu ating ĠScript :") ĊĠĠĠĠĠĠĠ Ġfor Ġ(( index , Ġline ) Ġin Ġdata [ sender ] !!. with Index ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsender . sendMessage ( +" & 7 $ index Ġ| & r " Ġ+ Ġline ) ĊĊĠĠĠĠĠĠĠ Ġval Ġlines Ġ= Ġdata [ sender ] !!. join ToString ("\ n ") ĊĊĠĠĠĠĠĠĠ Ġsender . sendMessage ( +" Result :") ĊĊĠĠĠĠĠĠĠ Ġwith Ġ( Script Engine Manager (). get Engine By Extension (" k ts ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġeval ( lines ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result Ġ== Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsender . sendMessage (" null ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsender . sendMessage ( result . toString ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }