From 72375763835b492551ee6f6a3ebaba8d66e9988f Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Fri, 12 Jul 2019 17:45:16 -0500 Subject: [PATCH] isLoaded calls should NOT load chunks... --- src/main/java/net/minecraft/server/ChunkProviderServer.java | 2 +- src/main/java/net/minecraft/server/FluidTypeLava.java | 2 +- src/main/java/net/minecraft/server/World.java | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java index 539c65f855..db9113994e 100644 --- a/src/main/java/net/minecraft/server/ChunkProviderServer.java +++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java @@ -164,7 +164,7 @@ public class ChunkProviderServer extends IChunkProvider { for (int l = 0; l < 4; ++l) { if (k == this.cachePos[l] && chunkstatus == this.cacheStatus[l]) { ichunkaccess = this.cacheChunk[l]; - if (ichunkaccess != null) { // CraftBukkit - the chunk can become accessible in the meantime TODO for non-null chunks it might also make sense to check that the chunk's state hasn't changed in the meantime + if (ichunkaccess != null || !flag) { // CraftBukkit - the chunk can become accessible in the meantime TODO for non-null chunks it might also make sense to check that the chunk's state hasn't changed in the meantime // Purpur - put flag back return ichunkaccess; } } diff --git a/src/main/java/net/minecraft/server/FluidTypeLava.java b/src/main/java/net/minecraft/server/FluidTypeLava.java index 2f9578e1cf..5f404fb721 100644 --- a/src/main/java/net/minecraft/server/FluidTypeLava.java +++ b/src/main/java/net/minecraft/server/FluidTypeLava.java @@ -94,7 +94,7 @@ public abstract class FluidTypeLava extends FluidTypeFlowing { } private boolean b(IWorldReader iworldreader, BlockPosition blockposition) { - return blockposition.getY() >= 0 && blockposition.getY() < 256 && !iworldreader.isLoaded(blockposition) ? false : iworldreader.getType(blockposition).getMaterial().isBurnable(); + return blockposition.getY() >= 0 && blockposition.getY() < 256 && !((WorldServer)iworldreader).isLoaded(blockposition) ? false : iworldreader.getType(blockposition).getMaterial().isBurnable(); // Purpur } @Override diff --git a/src/main/java/net/minecraft/server/World.java b/src/main/java/net/minecraft/server/World.java index c86c9d1ecc..c80c659a38 100644 --- a/src/main/java/net/minecraft/server/World.java +++ b/src/main/java/net/minecraft/server/World.java @@ -133,7 +133,7 @@ public abstract class World implements IIBlockAccess, GeneratorAccess, AutoClose } public Chunk getChunkIfLoaded(int x, int z) { - return ((ChunkProviderServer) this.chunkProvider).getChunkAt(x, z, false); + return (Chunk) getChunkIfLoadedImmediately(x, z); // Purpur } protected World(WorldData worlddata, DimensionManager dimensionmanager, BiFunction bifunction, GameProfilerFiller gameprofilerfiller, boolean flag, org.bukkit.generator.ChunkGenerator gen, org.bukkit.World.Environment env) { -- 2.20.1