package in.twizmwaz.cardinal.module.modules.matchTimer;
import in.twizmwaz.cardinal.GameHandler;
import in.twizmwaz.cardinal.event.MatchEndEvent;
import in.twizmwaz.cardinal.event.MatchStartEvent;
import in.twizmwaz.cardinal.match.Match;
import in.twizmwaz.cardinal.match.MatchState;
import in.twizmwaz.cardinal.module.Module;
import org.bukkit.event.EventHandler;
import org.bukkit.event.HandlerList;
public class MatchTimer implements Module {
private long startTime;
private double endTime;
protected MatchTimer() {
this.endTime = 0;
}
@Override
public void unload() {
HandlerList.unregisterAll(this);
}
@EventHandler
public void onMatchStart(MatchStartEvent event) {
this.startTime = System.currentTimeMillis();
}
@EventHandler
public void onMatchEnd(MatchEndEvent event) {
this.endTime = ((double) System.currentTimeMillis() - (GameHandler.getGameHandler().getMatch().getModules().getModule(MatchTimer.class)).getTime()) / 1000.0;
}
/**
* @return The current time stored in the module.
*/
public long getTime() {
return startTime;
}
public double getEndTime() {
return endTime;
}
public static double getTimeInSeconds() {
Match match = GameHandler.getGameHandler().getMatch();
if (match.isRunning()) {
return ((double) System.currentTimeMillis() - (GameHandler.getGameHandler().getMatch().getModules().getModule(MatchTimer.class)).getTime()) / 1000.0;
}
if (match.getState().equals(MatchState.ENDED) || match.getState().equals(MatchState.CYCLING)) {
return GameHandler.getGameHandler().getMatch().getModules().getModule(MatchTimer.class).getEndTime();
}
return 0;
}
}