From b5d7e2969f0f0f17be04e73408a2a3e983321cca Mon Sep 17 00:00:00 2001 From: cyberpwn Date: Tue, 31 Aug 2021 17:14:11 -0400 Subject: [PATCH] V+ --- .../iris/core/pregenerator/methods/AsyncPregenMethod.java | 1 + .../java/com/volmit/iris/engine/IrisEngineEffects.java | 5 +++-- .../java/com/volmit/iris/engine/IrisWorldManager.java | 8 ++++++++ 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/volmit/iris/core/pregenerator/methods/AsyncPregenMethod.java b/src/main/java/com/volmit/iris/core/pregenerator/methods/AsyncPregenMethod.java index 6ab401be7..bc844d97a 100644 --- a/src/main/java/com/volmit/iris/core/pregenerator/methods/AsyncPregenMethod.java +++ b/src/main/java/com/volmit/iris/core/pregenerator/methods/AsyncPregenMethod.java @@ -69,6 +69,7 @@ public class AsyncPregenMethod implements PregeneratorMethod { PaperLib.getChunkAtAsync(world, x, z, true).get(); listener.onChunkGenerated(x, z); } catch (Throwable e) { + e.printStackTrace(); J.sleep(5); future.add(burst.complete(() -> completeChunk(x, z, listener))); } diff --git a/src/main/java/com/volmit/iris/engine/IrisEngineEffects.java b/src/main/java/com/volmit/iris/engine/IrisEngineEffects.java index b156b9fdb..a3b45b28b 100644 --- a/src/main/java/com/volmit/iris/engine/IrisEngineEffects.java +++ b/src/main/java/com/volmit/iris/engine/IrisEngineEffects.java @@ -46,10 +46,11 @@ public class IrisEngineEffects extends EngineAssignedComponent implements Engine public void updatePlayerMap() { List pr = getEngine().getWorld().getPlayers(); - if (pr == null) return; //Fix for paper returning a world with a null playerlist + if (pr == null) { + return; + } for (Player i : pr) { - Location l = i.getLocation(); boolean pcc = players.containsKey(i.getUniqueId()); if (!pcc) { players.put(i.getUniqueId(), new EnginePlayer(getEngine(), i)); diff --git a/src/main/java/com/volmit/iris/engine/IrisWorldManager.java b/src/main/java/com/volmit/iris/engine/IrisWorldManager.java index 27f0d1bc9..1ac4030ec 100644 --- a/src/main/java/com/volmit/iris/engine/IrisWorldManager.java +++ b/src/main/java/com/volmit/iris/engine/IrisWorldManager.java @@ -67,6 +67,7 @@ public class IrisWorldManager extends EngineAssignedWorldManager { private double energy = 25; private int entityCount = 0; private final ChronoLatch cl; + private final ChronoLatch clw; private final ChronoLatch ecl; private final ChronoLatch cln; private final ChronoLatch chunkUpdater; @@ -80,6 +81,7 @@ public class IrisWorldManager extends EngineAssignedWorldManager { cl = null; ecl = null; cln = null; + clw = null; chunkCooldowns = null; looper = null; chunkUpdater = null; @@ -92,6 +94,7 @@ public class IrisWorldManager extends EngineAssignedWorldManager { cln = new ChronoLatch(60000); cl = new ChronoLatch(3000); ecl = new ChronoLatch(250); + clw = new ChronoLatch(1000, true); chunkCooldowns = new KMap<>(); id = engine.getCacheID(); energy = 25; @@ -102,6 +105,11 @@ public class IrisWorldManager extends EngineAssignedWorldManager { interrupt(); } + if(!getEngine().getWorld().hasRealWorld() && clw.flip()) + { + getEngine().getWorld().tryGetRealWorld(); + } + if (getEngine().getWorld().hasRealWorld()) { if (chunkUpdater.flip()) { updateChunks();