package me.km.scheduler; public class SnuviTask { private final long rtimer; private final Runnable r; private long timer; public SnuviTask(Runnable r, long delay, long rtimer) { this.rtimer = rtimer << 1; // server ticks seems to be 1/40 of a second this.timer = delay << 1; this.r = r; } public long getRepeatTimer() { return rtimer; } public boolean isRepeating() { return rtimer > 0; } public boolean tick() { timer -= 1; if(timer <= 0) { r.run(); if(rtimer <= 0) { return true; } timer = rtimer; } return false; } }