From 3884a4b3215d805b73f6370afbe0bacc580dfd3c Mon Sep 17 00:00:00 2001 From: William Blake Galbreath Date: Fri, 12 Jul 2019 18:15:33 -0500 Subject: [PATCH] isLoaded calls should NOT load chunks... --- ...sLoaded-calls-should-NOT-load-chunks.patch | 53 +++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 patches/server/0051-isLoaded-calls-should-NOT-load-chunks.patch diff --git a/patches/server/0051-isLoaded-calls-should-NOT-load-chunks.patch b/patches/server/0051-isLoaded-calls-should-NOT-load-chunks.patch new file mode 100644 index 000000000..a39302ca1 --- /dev/null +++ b/patches/server/0051-isLoaded-calls-should-NOT-load-chunks.patch @@ -0,0 +1,53 @@ +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 +