diff --git a/Spigot-Server-Patches/0460-Don-t-load-chunks-when-attempting-to-unload-a-chunk.patch b/Spigot-Server-Patches/0460-Don-t-load-chunks-when-attempting-to-unload-a-chunk.patch new file mode 100644 index 000000000..6d7f616fa --- /dev/null +++ b/Spigot-Server-Patches/0460-Don-t-load-chunks-when-attempting-to-unload-a-chunk.patch @@ -0,0 +1,32 @@ +From 26c14df6c071265aaf95a7cb16fdecc0fb8caddc Mon Sep 17 00:00:00 2001 +From: Aikar +Date: Wed, 8 Apr 2020 21:07:08 -0400 +Subject: [PATCH] Don't load chunks when attempting to unload a chunk + +Big Brain Logic + +diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +index 630d6470a4..1fbb1344fc 100644 +--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java ++++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java +@@ -471,7 +471,7 @@ public class CraftWorld implements World { + @Override + public boolean unloadChunkRequest(int x, int z) { + org.spigotmc.AsyncCatcher.catchOp("chunk unload"); // Spigot +- net.minecraft.server.IChunkAccess chunk = world.getChunkProvider().getChunkAt(x, z, ChunkStatus.FULL, false); ++ net.minecraft.server.IChunkAccess chunk = world.getChunkProvider().getChunkAtIfLoadedImmediately(x, z); // Paper + if (chunk != null) { + world.getChunkProvider().removeTicket(TicketType.PLUGIN, chunk.getPos(), 1, Unit.INSTANCE); + } +@@ -481,7 +481,7 @@ public class CraftWorld implements World { + + private boolean unloadChunk0(int x, int z, boolean save) { + org.spigotmc.AsyncCatcher.catchOp("chunk unload"); // Spigot +- net.minecraft.server.Chunk chunk = (net.minecraft.server.Chunk) world.getChunkProvider().getChunkAt(x, z, ChunkStatus.FULL, false); ++ net.minecraft.server.Chunk chunk = world.getChunkProvider().getChunkAtIfLoadedImmediately(x, z); // Paper + if (chunk == null) { + return true; + } +-- +2.25.1 +