// • ▌ ▄ ·. ▄▄▄· ▄▄ • ▪ ▄▄· ▄▄▄▄· ▄▄▄· ▐▄▄▄ ▄▄▄ . // ·██ ▐███▪▐█ ▀█ ▐█ ▀ ▪██ ▐█ ▌▪▐█ ▀█▪▐█ ▀█ •█▌ ▐█▐▌· // ▐█ ▌▐▌▐█·▄█▀▀█ ▄█ ▀█▄▐█·██ ▄▄▐█▀▀█▄▄█▀▀█ ▐█▐ ▐▌▐▀▀▀ // ██ ██▌▐█▌▐█ ▪▐▌▐█▄▪▐█▐█▌▐███▌██▄▪▐█▐█ ▪▐▌██▐ █▌▐█▄▄▌ // ▀▀ █▪▀▀▀ ▀ ▀ ·▀▀▀▀ ▀▀▀·▀▀▀ ·▀▀▀▀ ▀ ▀ ▀▀ █▪ ▀▀▀ // Magicbane Emulator Project © 2013 - 2022 // www.magicbane.com package engine.job; public class JobContainer implements Comparable { final AbstractJob job; final long timeOfExecution; final boolean noTimer; JobContainer(AbstractJob job, long timeOfExecution) { if (job == null) { throw new IllegalArgumentException("No 'null' jobs allowed."); } this.job = job; this.timeOfExecution = timeOfExecution; this.noTimer = false; } public JobContainer(AbstractJob job) { if (job == null) { throw new IllegalArgumentException("No 'null' jobs allowed."); } this.job = job; this.timeOfExecution = Long.MAX_VALUE; this.noTimer = true; } public AbstractJob getJob() { return job; } public boolean noTimer() { return noTimer; } public long timeOfExection() { return this.timeOfExecution; } public int timeToExecutionLeft() { if (JobScheduler.getInstance().isAlive()) { int timeLeft = (int) (timeOfExecution - System.currentTimeMillis()); if (timeLeft < 0) timeLeft = 0; return timeLeft; } else return (int) (timeOfExecution - JobScheduler.getInstance().getTimeOfKill()); } @Override public int compareTo(JobContainer compared) { if (timeOfExecution < compared.timeOfExecution) { return -1; } if (timeOfExecution > compared.timeOfExecution) { return 1; } return 0; } @Override public boolean equals(Object obj) { return job.equals(((JobContainer) obj).job); } @Override public int hashCode() { return job.hashCode(); } public void cancelJob() { if (job != null && job instanceof AbstractScheduleJob) ((AbstractScheduleJob)job).cancelJob(); } }