package Ġworld . ce pi . momentum . co old own Ċ Ċ import Ġnet . min est om . server . entity . Player Ċ Ċ /** Ċ Ġ* ĠA Ġcool down Ġfor Ġabilities . Ċ Ġ*/ Ċ sealed Ġinterface ĠCool down Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠGets Ġthe Ġdefault Ġcool down . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return Ġthe Ġdefault Ġcool down ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġdefault (): ĠCool down Ġ= ĠNo Op Cooldown ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠChecks Ġif Ġthe Ġaction Ġcan Ġrun Ġ( i . e . Ġthe Ġcool down Ġhas Ġexpired ). ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġplayer Ġthe Ġplayer Ġto Ġcheck Ġfor ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġcan Run ( player : ĠPlayer ): ĠBoolean ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRuns Ġthe Ġprovided Ġcode Ġfor Ġthe Ġgiven Ġplayer Ġif Ġthe Ġcool down Ġhas Ġexpired , Ġtriggering Ġthe Ġ[ on Run ] Ġmethod Ġif Ġneeded . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġplayer Ġthe Ġplayer ĊĠĠĠĠ Ġ* Ġ@ param Ġaction Ġthe Ġaction Ġthat Ġwill Ġbe Ġrun ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġrun If Expired ( player : ĠPlayer , Ġaction : Ġ( Player ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this . can Run ( player )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaction . invoke ( player ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }