package Ġink . pt ms . z aph k iel . item . ke ther . internal Ċ Ċ import Ġink . pt ms . z aph k iel . item . getItem In Cooldown Ċ import Ġink . pt ms . z aph k iel . item . is Item In Cooldown Ċ import Ġink . pt ms . z aph k iel . item . ke ther . item Stream Ċ import Ġink . pt ms . z aph k iel . item . setItem In Cooldown Ċ import Ġorg . bukkit . entity . Player Ċ import Ġtab ool ib . common 5 . Co erce Ċ import Ġtab ool ib . library . ke ther . Arg Types Ċ import Ġtab ool ib . library . ke ther . Parsed Action Ċ import Ġtab ool ib . module . ke ther .* Ċ import Ġjava . util . concurrent . Comp letableFuture Ċ Ċ /** Ċ Ġ* ĠZ aph k iel Ċ Ġ* Ġink . pt ms . z aph k iel . module . ke ther . Action Cooldown Ċ Ġ* Ċ Ġ* Ġ@ author Ġsky Ċ Ġ* Ġ@ since Ġ 2 0 2 1 / 3 / 1 6 Ġ 2 : 5 6 Ġä¸ĭåįĪ Ċ Ġ*/ Ċ class ĠAction Cooldown Ġ{ ĊĊĠĠĠ Ġclass ĠCheck ( val Ġby Player : ĠBoolean ) Ġ: ĠScript Action < Boolean >() Ġ{ ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġrun ( frame : ĠScript Frame ): ĠCompletableFuture < Boolean > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġviewer Ġ= Ġframe . script (). sender ?. cast S af ely < Player >() Ġ?: Ġerror (" No Ġplayer Ġselected .") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( by Player ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCompletableFuture . completed Future ( frame . item Stream (). is Item In Cooldown ( viewer )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCompletableFuture . completed Future ( frame . item Stream (). is Item In Cooldown ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġclass ĠTime ( val Ġby Player : ĠBoolean ) Ġ: ĠScript Action < Long >() Ġ{ ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġrun ( frame : ĠScript Frame ): ĠCompletableFuture < Long > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġviewer Ġ= Ġframe . script (). sender ?. cast S af ely < Player >() Ġ?: Ġerror (" No Ġplayer Ġselected .") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( by Player ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCompletableFuture . completed Future ( frame . item Stream (). getItem In Cooldown ( viewer )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCompletableFuture . completed Future ( frame . item Stream (). getItem In Cooldown ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠSet ( val Ġgame Tick : ĠParsed Action <* >, Ġval Ġby Player : ĠBoolean ) Ġ: ĠScript Action < Void >() Ġ{ ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġrun ( frame : ĠScript Frame ): ĠCompletableFuture < Void > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġviewer Ġ= Ġframe . script (). sender ?. cast S af ely < Player >() Ġ?: Ġerror (" No Ġplayer Ġselected .") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġframe . new Frame ( game Tick ). run < Any >(). then Accept Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( by Player ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCompletableFuture . completed Future ( frame . item Stream (). setItem In Cooldown ( Co erce . to Integer ( it ), Ġviewer )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCompletableFuture . completed Future ( frame . item Stream (). setItem In Cooldown ( Co erce . to Integer ( it ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠCompletableFuture . completed Future ( null ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġcool down Ġcheck Ġfor Ġitem ĊĠĠĠĠĠĠĠĠ Ġ* Ġcool down Ġcheck Ġfor Ġplayer ĊĠĠĠĠĠĠĠĠ Ġ* Ġcool down Ġset Ġ 1 0 0 ĊĠĠĠĠĠĠĠĠ Ġ* Ġcool down Ġset Ġ 1 0 0 Ġfor Ġplayer ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Ke ther Parser ([" co old own "], Ġnamespace Ġ= Ġ" z aph k iel ", Ġshared Ġ= Ġtrue ) ĊĠĠĠĠĠĠĠ Ġfun Ġparser () Ġ= Ġscript Parser Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . switch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcase (" check ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . mark () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . expects (" by ", Ġ" at ", Ġ" for ", Ġ" with ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCheck ( it . expects (" player ", Ġ" item ") Ġ== Ġ" player ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ignored : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . reset () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCheck ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcase (" time ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . mark () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . expects (" by ", Ġ" at ", Ġ" for ", Ġ" with ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTime ( it . expects (" player ", Ġ" item ") Ġ== Ġ" player ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ignored : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . reset () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTime ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcase (" set ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgame Tick Ġ= Ġit . next ( Arg Types . ACTION ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . mark () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . expects (" by ", Ġ" at ", Ġ" for ", Ġ" with ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSet ( game Tick , Ġit . expects (" player ", Ġ" item ") Ġ== Ġ" player ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ignored : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . reset () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSet ( game Tick , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }