47 lines
2.0 KiB
Java
47 lines
2.0 KiB
Java
package com.massivecraft.factions.shield;
|
|
|
|
import com.massivecraft.factions.Faction;
|
|
import com.massivecraft.factions.Factions;
|
|
|
|
public class TimeFrameTask implements Runnable {
|
|
|
|
@Override
|
|
public void run() {
|
|
//remove tiem from the timeFrame
|
|
|
|
for (Faction faction : Factions.getInstance().getAllFactions()) {
|
|
|
|
if (faction.getTimeFrame() != null){
|
|
TimeFrame timeFrame = faction.getTimeFrame();
|
|
|
|
if (timeFrame.isStarting() || timeFrame.isEnding() || timeFrame.isInEffect()){
|
|
//either starting, ending, or in effect, so we have to remove 1 minute interval from the currentTime
|
|
int newTime = Math.subtractExact(timeFrame.getCurrentMinutes(), 1);
|
|
if (newTime == 0){
|
|
//time is done, do functions...
|
|
if (timeFrame.isStarting() || timeFrame.isInEffect()){
|
|
if (timeFrame.isStarting()){
|
|
//it was starting, now set to inEffect
|
|
timeFrame.setStarting(false);
|
|
timeFrame.setInEffect(true);
|
|
}
|
|
//we don't need to check for inEffect because if it is, it'll just set the time back anyways...
|
|
timeFrame.setCurrentMinutes(720);
|
|
continue; // continue to the next faction
|
|
}else if (timeFrame.isEnding()){
|
|
//it was ending, now set inEffect to false, basically remove from the faction obj
|
|
timeFrame.setEnding(false);
|
|
timeFrame.setInEffect(false);
|
|
//remove from faction object
|
|
faction.setTimeFrame(null);
|
|
continue; // continue to the next faction
|
|
}
|
|
}
|
|
timeFrame.setCurrentMinutes(newTime);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|