1
0

SnuviTask.java 759 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. package me.km.scheduler;
  2. public class SnuviTask
  3. {
  4. private final long rtimer;
  5. private final Runnable r;
  6. private long timer;
  7. public SnuviTask(Runnable r, long delay, long rtimer)
  8. {
  9. this.rtimer = rtimer << 1; // server ticks seems to be 1/40 of a second
  10. this.timer = delay << 1;
  11. this.r = r;
  12. }
  13. public long getRepeatTimer()
  14. {
  15. return rtimer;
  16. }
  17. public boolean isRepeating()
  18. {
  19. return rtimer > 0;
  20. }
  21. public boolean tick()
  22. {
  23. timer -= 1;
  24. if(timer <= 0)
  25. {
  26. r.run();
  27. if(rtimer <= 0)
  28. {
  29. return true;
  30. }
  31. timer = rtimer;
  32. }
  33. return false;
  34. }
  35. }