|
|
@ -45,17 +45,28 @@ public class MobRespawnThread implements Runnable { |
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
@Override |
|
|
|
public void run() { |
|
|
|
public void run() { |
|
|
|
|
|
|
|
|
|
|
|
while (true) { |
|
|
|
while (true) { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
try { |
|
|
|
for (Zone zone : ZoneManager.getAllZones()) { |
|
|
|
for (Zone zone : ZoneManager.getAllZones()) { |
|
|
|
|
|
|
|
|
|
|
|
if (zone.respawnQue.isEmpty() == false && zone.lastRespawn + 100 < System.currentTimeMillis()) { |
|
|
|
if (zone.respawnQue.isEmpty() == false && zone.lastRespawn + 100 < System.currentTimeMillis()) { |
|
|
|
if (zone.respawnQue.iterator().next() != null) { |
|
|
|
|
|
|
|
Mob respawner = zone.respawnQue.iterator().next(); |
|
|
|
Mob respawner = zone.respawnQue.iterator().next(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (respawner == null) |
|
|
|
|
|
|
|
continue; |
|
|
|
|
|
|
|
|
|
|
|
respawner.respawn(); |
|
|
|
respawner.respawn(); |
|
|
|
zone.respawnQue.remove(respawner); |
|
|
|
zone.respawnQue.remove(respawner); |
|
|
|
zone.lastRespawn = System.currentTimeMillis(); |
|
|
|
zone.lastRespawn = System.currentTimeMillis(); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
} catch (Exception e) { |
|
|
|
|
|
|
|
Logger.error(e); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
public static void startRespawnThread() { |
|
|
|
public static void startRespawnThread() { |
|
|
|