Currently, the timer runs using a separate timer thread that sleeps repeatedly. However, this basically amounts to busy-waiting, however efficient it is, and it would be better to delegate the timing logic to the scheduler instead. Let's rewrite the timer code to instead use the BukkitScheduler and take advantage of its timing functionalities.