/* Ċ Copyright Ġ( c ) Ġ 2 0 1 8 Ġr us kon ert Ċ Permission Ġis Ġhereby Ġgranted , Ġfree Ġof Ġcharge , Ġto Ġany Ġperson Ġobtaining Ġa Ġcopy Ċ of Ġthis Ġsoftware Ġand Ġassociated Ġdocumentation Ġfiles Ġ( the Ġ" Software "), Ġto Ġdeal Ċ in Ġthe ĠSoftware Ġwithout Ġrestriction , Ġincluding Ġwithout Ġlimitation Ġthe Ġrights Ċ to Ġuse , Ġcopy , Ġmodify , Ġmerge , Ġpublish , Ġdistribute , Ġsublicense , Ġand / or Ġsell Ċ copies Ġof Ġthe ĠSoftware , Ġand Ġto Ġpermit Ġpersons Ġto Ġwhom Ġthe ĠSoftware Ġis Ċ furnished Ġto Ġdo Ġso , Ġsubject Ġto Ġthe Ġfollowing Ġconditions : Ċ The Ġabove Ġcopyright Ġnotice Ġand Ġthis Ġpermission Ġnotice Ġshall Ġbe Ġincluded Ġin Ġall Ċ copies Ġor Ġsubstantial Ġportions Ġof Ġthe ĠSoftware . Ċ THE ĠSOFTWARE ĠIS ĠPROVIDED Ġ" AS ĠIS ", ĠWITHOUT ĠWARRANTY ĠOF ĠANY ĠKIND , ĠEXPRESS ĠOR Ċ IMPLIED , ĠINCLUDING ĠBUT ĠNOT ĠLIMITED ĠTO ĠTHE ĠWARRANTIES ĠOF ĠMERCHANTABILITY , Ċ FITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE ĠAND ĠNONINFRINGEMENT . ĠIN ĠNO ĠEVENT ĠSHALL ĠTHE Ċ AUTHORS ĠOR ĠCOPYRIGHT ĠHOLDERS ĠBE ĠLIABLE ĠFOR ĠANY ĠCLAIM , ĠDAMAGES ĠOR ĠOTHER Ċ LIABILITY , ĠWHETHER ĠIN ĠAN ĠACTION ĠOF ĠCONTRACT , ĠTORT ĠOR ĠOTHERWISE , ĠARISING ĠFROM , Ċ OUT ĠOF ĠOR ĠIN ĠCONNECTION ĠWITH ĠTHE ĠSOFTWARE ĠOR ĠTHE ĠUSE ĠOR ĠOTHER ĠDEALINGS ĠIN ĠTHE Ċ SOFTWARE . Ċ */ Ċ @ file : Suppress (" Member Visibility Can Be Private ") Ċ Ċ package Ġio . github . rus kon ert . rus kit . util Ċ Ċ import Ġorg . bukkit . Chat Color Ċ import Ġjava . awt . Dimension Ċ import Ġjava . awt . Toolkit Ċ import Ġjava . util .* Ċ import Ġjava . util . regex . Pattern Ċ Ċ object ĠString Utility Ċ { ĊĠĠĠ Ġfun Ġcolor ( str Ġ: ĠString ) Ġ: ĠString Ġ= ĠChat Color . translate Alternate Color Codes ('& ', Ġstr ) ĊĠĠĠ Ġfun Ġcolor ( str Ġ: ĠMutable List < String >) Ġ: ĠMutable List < String > Ġ{ ĊĠĠĠĠĠĠĠ Ġfor (( index , Ġst ) Ġin Ġstr . with Index ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstr [ index ] Ġ= Ġthis . color ( st ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġstr ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Screen Resolution Size () Ġ: ĠDimension ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsize Ġ: ĠDimension ? Ġ= Ġ ĠToolkit . getDefault Toolkit (). screen Size ĊĠĠĠĠĠĠĠ Ġreturn Ġsize !! ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠWith Index String ( format 0 Ġ: ĠString , Ġargs Ġ: ĠMap < String , ĠAny ?> ) Ġ: ĠString ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġformat Ġ= Ġformat 0 ĊĠĠĠĠĠĠĠ Ġif ( args . isEmpty ()) Ġreturn Ġformat ĊĠĠĠĠĠĠĠ Ġif ( format . matches (" .* \\ { [ a - zA - Z 0 - 9 ! @ #$ %^ & * () _- ]+ } .* ". to Regex ())) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor (( select , Ġvalue ) Ġin Ġargs ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( format . contains (" {$ select } ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠNumber Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġformat Ġ= Ġformat . replace (" {$ select }", Ġvalue . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠString Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġformat Ġ= Ġformat . replace (" {$ select }", Ġvalue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠBoolean Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġformat Ġ= Ġformat . replace (" {$ select }", Ġvalue . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġformat ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠWith Index ( format 0 Ġ: ĠString , Ġvar arg Ġargs Ġ: ĠAny ?) Ġ: ĠString ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġformat Ġ= Ġformat 0 ĊĠĠĠĠĠĠĠ Ġif ( args . isEmpty ()) Ġreturn Ġformat ĊĠĠĠĠĠĠĠ Ġvar Ġi Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġwhile ( format . matches (" .* \\ { [ 0 - 9 ]+ } .* ". to Regex ())) ĊĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen ( args [ i ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠNumber Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġformat Ġ= Ġformat . replace (" {$ i }", Ġargs [ i ]. toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠString Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġformat Ġ= Ġformat . replace (" {$ i }", Ġargs [ i ] Ġas ĠString ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠBoolean Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġformat Ġ= Ġformat . replace (" {$ i }", Ġ( args [ i ] Ġas ĠBoolean ). toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠList < *> Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor (( index , Ġs ) Ġin Ġ( args [ i ] Ġas ĠList < String >). with Index ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġformat Ġ= Ġformat . replace (" {$ index }", Ġs ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcatch ( e Ġ: ĠType CastException ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġi ++ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġformat ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġ< E > ĠtoString ( v Ġ: ĠE ) Ġ: ĠString Ġ= Ġv . toString () ĊĊĠĠĠ Ġ/* ĠReturns Ġscreen Ġsize Ġfrom Ġexternal Ġlibs Ġmodule . ĠNot ĠImplemented . Ġ*/ ĊĠĠĠ Ġprivate Ġexternal Ġfun Ġget Screen Resolution Size 0 (): ĠNothing ĊĊĠĠĠ Ġinternal Ġfun Ġ< R > Ġvalue Assert ( x Ġ: ĠR , Ġfunc Ġ: Ġ( R ) Ġ-> ĠAny ?) Ġ: ĠBoolean Ġ= Ġ Ġfunc ( x ) Ġas ĠBoolean ĊĊĠĠĠ Ġfun Ġis Argument Option ( argument : ĠString ): ĠBoolean Ġ= Ġargument . startsWith ("- ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ|| Ġargument . startsWith ("-- ") ĊĊĠĠĠ Ġfun Ġget Argument Option Name ( option : ĠString ): ĠString ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġif (! Ġthis . is Argument Option ( option )) ĊĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠNullPointerException (" not Ġargument Ġoption ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġoption . replace ("- ", Ġ"") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġindex Argument Position ( format Ġ: ĠString ) Ġ: ĠInt Array ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlist Ġ= ĠArrayList < String >() ĊĠĠĠĠĠĠĠ Ġval Ġarray String Ġ= Ġformat . split ("\\ { [ 0 - 9 ]* }". to Regex ()) ĊĠĠĠĠĠĠĠ Ġvar Ġtarget Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġfor (( i , v ) Ġin Ġarray String . with Index ()) ĊĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtarget Ġ+= Ġv . length ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġsb Ġ= Ġv ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġindex Sub Str Ġ: ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( array String . size Ġ!= Ġi Ġ+ Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġindex Sub Str Ġ= Ġformat . substring ( target , Ġtarget Ġ+ Ġ 3 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( sb Ġ== Ġ"" Ġ|| Ġsb . length Ġ< Ġ 0 x 0 F ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb Ġ+= Ġrandom String () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist . add ( sb ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( index Sub Str Ġ!= Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist . add ( index Sub Str ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtarget Ġ+= Ġ 3 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġindex Argument Position 0 ( append Array ( list )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġappend Array ( format Ġ: ĠList < String >) Ġ: ĠString ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġstr Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġfor ( s Ġin Ġformat ) ĊĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstr Ġ+= Ġs ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġstr ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġrandom String ( length Ġ: ĠInt Ġ= Ġ 1 0 ) Ġ: ĠString ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtemp Ġ= ĠStringBuffer () ĊĠĠĠĠĠĠĠ Ġval Ġrnd Ġ= ĠRandom () ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 .. length ) ĊĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġr Index Ġ= Ġrnd . nextInt ( 3 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( r Index ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 Ġ-> Ġtemp . append (( rnd . nextInt ( 2 6 ) Ġ+ Ġ 9 7 ). to Char ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> Ġtemp . append (( rnd . nextInt ( 2 6 ) Ġ+ Ġ 6 5 ). to Char ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 Ġ-> Ġtemp . append ( rnd . nextInt ( 1 0 )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtemp . toString () ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġindex Argument Position 0 ( format Ġ: ĠString ) Ġ: ĠInt Array ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlist Ġ= ĠArrayList < Int >() ĊĠĠĠĠĠĠĠ Ġval Ġarray String Ġ= Ġformat . split ("\\ { [ 0 - 9 ]* }". to Regex ()) ĊĠĠĠĠĠĠĠ Ġfor ( index Ġin Ġ 0 Ġuntil Ġarray String . size ) ĊĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( index Ġ== Ġarray String . size Ġ- Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbreak ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġps 1 Ġ= Ġarray String [ index ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġps 2 Ġ= Ġarray String [ index Ġ+ Ġ 1 ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġp Ġ= ĠPattern . compile (" (? i ) ($ ps 1 )( \\ { [ 0 - 9 ]* }) (? i ) ($ ps 2 )") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġm Ġ= Ġp . matcher ( format ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( m . find ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġstr Ġ= Ġm . group ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstr Ġ= Ġstr . replace ( ps 1 , Ġ"") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstr Ġ= Ġstr . replace ( ps 2 , Ġ"") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstr Ġ= Ġstr . substring ( 1 , Ġstr . length Ġ- Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist . add ( Integer . parseInt ( str )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġlist . to IntArray () ĊĠĠĠ Ġ} Ċ }