/**
* Main Server Tick
*/
try {
while (!Server.shutdownServer) {
if (sleepTime >= 0)
Thread.sleep(sleepTime);
else
Thread.sleep(500);
engineTimer.reset();
itemHandler.process();
playerHandler.process();
npcHandler.process();
shopHandler.process();
objectManager.process();
fightPits.process();
pestControl.process();
cycleTime = engineTimer.elapsed();
sleepTime = cycleRate - cycleTime;
totalCycleTime += cycleTime;
cycles++;
debug();
}
} catch (Exception ex) {
ex.printStackTrace();
System.out.println("A fatal exception has been thrown!");
for (Player p : PlayerHandler.players) {
if (p == null)
continue;
PlayerSave.saveGame((Client) p);
System.out.println("Saved game for " + p.playerName + ".");
}
}
acceptor = null;
connectionHandler = null;
sac = null;
System.exit(0);
}