diff --git a/src/engine/server/world/WorldServer.java b/src/engine/server/world/WorldServer.java index 0b70d0f4..940329c6 100644 --- a/src/engine/server/world/WorldServer.java +++ b/src/engine/server/world/WorldServer.java @@ -209,6 +209,7 @@ public class WorldServer { LocalDateTime nextHourlyJobTime = LocalDateTime.now().withMinute(0).withSecond(0).plusHours(0); LocalDateTime nextWareHousePushTime = LocalDateTime.now(); LocalDateTime nextDiscSpawn = LocalDateTime.now().withMinute(0).withSecond(0).plusHours(1); + LocalDateTime nextMinePulse = LocalDateTime.now().withMinute(0).withSecond(0); // Begin execution of main game loop @@ -265,6 +266,13 @@ public class WorldServer { } nextDiscSpawn = nextDiscSpawn.plusHours(1); } + + if (LocalDateTime.now().isAfter(nextMinePulse)) { + Thread mineThread = new Thread(new MineThread()); + mineThread.setName("mineThread"); + mineThread.start(); + nextMinePulse = nextMinePulse.plusMinutes(30); + } ThreadUtils.sleep(50); } } @@ -544,10 +552,10 @@ public class WorldServer { Logger.info("Running garbage collection..."); System.gc(); - Logger.info("Starting Mine Thread..."); - Thread mineThread = new Thread(new MineThread()); - mineThread.setName("mine thread"); - mineThread.start(); + //Logger.info("Starting Mine Thread..."); + //Thread mineThread = new Thread(new MineThread()); + //mineThread.setName("mine thread"); + //mineThread.start(); //Logger.info("Starting Power Thread..."); //Thread powerThread = new Thread(new PowersThread()); diff --git a/src/engine/workthreads/MineThread.java b/src/engine/workthreads/MineThread.java index 9da1bfd5..3a2303a4 100644 --- a/src/engine/workthreads/MineThread.java +++ b/src/engine/workthreads/MineThread.java @@ -16,18 +16,12 @@ import org.pmw.tinylog.Logger; import java.time.LocalDateTime; public class MineThread implements Runnable { - public static LocalDateTime nextPulse; public MineThread(){ } @Override public void run() { - nextPulse = LocalDateTime.now().withMinute(0).withSecond(0).withNano(0); - while (true) { - if(LocalDateTime.now().isAfter(nextPulse)) { - processMineWindows(nextPulse); - } - } + processMineWindows(); } public static void mineWindowOpen(Mine mine) { @@ -104,7 +98,8 @@ public class MineThread implements Runnable { return true; } - public static void processMineWindows(LocalDateTime currentTime){ + public static void processMineWindows(){ + LocalDateTime currentTime = LocalDateTime.now(); for (Mine mine : Mine.getMines()) { Building tower = BuildingManager.getBuildingFromCache(mine.getBuildingID()); //if the tower comes back null, skip this mine @@ -139,6 +134,5 @@ public class MineThread implements Runnable { } } - nextPulse = nextPulse.plusMinutes(30); } }