SnuviTask.java 964 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package me.km.scheduler;
  2. public class SnuviTask {
  3. private final long rtimer;
  4. private final Runnable r;
  5. private long timer;
  6. private String name;
  7. private boolean killable;
  8. public SnuviTask(String name, boolean killable, Runnable r, long delay, long rtimer) {
  9. this.killable = killable;
  10. this.name = name;
  11. this.rtimer = rtimer;
  12. this.timer = delay;
  13. this.r = r;
  14. }
  15. public long getRepeatTimer() {
  16. return rtimer;
  17. }
  18. public boolean isRepeating() {
  19. return rtimer > 0;
  20. }
  21. public String getName() {
  22. return name;
  23. }
  24. public boolean isKillable() {
  25. return killable;
  26. }
  27. public boolean tick(int ticks, boolean noRepeat) {
  28. timer -= ticks;
  29. if(timer <= 0) {
  30. r.run();
  31. if(rtimer <= 0 || noRepeat) {
  32. return true;
  33. }
  34. timer = rtimer;
  35. }
  36. return false;
  37. }
  38. }