package Ġcom . w yn n lab . base Ċ Ċ import Ġcom . w yn n lab . W yn n Lab API Ċ import Ġorg . bukkit . Bu kkit Ċ Ċ abstract Ġclass ĠBase Spell ( private Ġval Ġmax Tick : ĠInt ) Ġ: ĠRunnable Ġ{ ĊĠĠĠ Ġvar Ġt Ġ= Ġ- 1 ĊĊĠĠĠ Ġprivate Ġvar ĠtaskId Ġ= Ġ- 1 ĊĊĠĠĠ Ġopen Ġfun Ġon Cast () Ġ{} ĊĊĠĠĠ Ġopen Ġfun Ġon Tick () Ġ{} ĊĊĠĠĠ Ġopen Ġfun Ġon Cancel () Ġ{} ĊĊĠĠĠ Ġoverride Ġfun Ġrun () Ġ{ ĊĠĠĠĠĠĠĠ Ġ++ t ĊĊĠĠĠĠĠĠĠ Ġon Tick () ĊĊĠĠĠĠĠĠĠ Ġif Ġ( t Ġ>= Ġmax Tick ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcancel () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġfun Ġdelay () Ġ{ ĊĠĠĠĠĠĠĠ Ġ-- t ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġfun Ġcancel () Ġ{ ĊĠĠĠĠĠĠĠ Ġon Cancel () ĊĠĠĠĠĠĠĠ ĠBu kkit . get Scheduler (). cancel Task ( taskId ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġschedule ( delay : ĠLong Ġ= Ġ 0 L , Ġperiod : ĠLong Ġ= Ġ 1 L ) Ġ{ ĊĠĠĠĠĠĠĠ ĠtaskId Ġ= ĠBu kkit . get Scheduler (). run Task Timer ( W yn n Lab API , Ġthis , Ġdelay , Ġperiod ). taskId ĊĠĠĠĠĠĠĠ Ġon Cast () ĊĠĠĠ Ġ} Ċ }