Files
Saber-Factions/src/main/java/com/massivecraft/factions/util/timer/GlobalTimer.java
2020-04-07 22:24:07 -04:00

75 lines
1.7 KiB
Java

package com.massivecraft.factions.util.timer;
import com.massivecraft.factions.util.Config;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Set;
import java.util.UUID;
/**
* Factions - Developed by Driftay.
* All rights reserved 2020.
* Creation Date: 4/7/2020
*/
public abstract class GlobalTimer extends Timer {
private TimerRunnable runnable;
public GlobalTimer(String name, long defaultCooldown) {
super(name, defaultCooldown);
}
public boolean clearCooldown() {
if (this.runnable != null) {
this.runnable.cancel();
this.runnable = null;
return true;
}
return false;
}
public boolean isPaused() {
return (this.runnable != null) && (this.runnable.isPaused());
}
public void setPaused(boolean paused) {
if ((this.runnable != null) && (this.runnable.isPaused() != paused)) {
this.runnable.setPaused(paused);
}
}
public long getRemaining() {
return this.runnable == null ? 0L : this.runnable.getRemaining();
}
public long getRemaining(long now) {
return this.runnable == null ? 0L : this.runnable.getRemaining(now);
}
public boolean setRemaining() {
return setRemaining(this.defaultCooldown, false);
}
public boolean setRemaining(long duration, boolean overwrite) {
boolean hadCooldown = false;
if (this.runnable != null) {
if (!overwrite) {
return false;
}
hadCooldown = this.runnable.getRemaining() > 0L;
this.runnable.setRemaining(duration);
} else {
this.runnable = new TimerRunnable(this, duration);
}
return !hadCooldown;
}
}