From 4316e8f59d8bb92a1bfa214610bedb66d2b78bec Mon Sep 17 00:00:00 2001 From: Aikar Date: Sun, 22 Apr 2018 10:40:49 -0400 Subject: [PATCH] Configurable Allowance of Permanent Chunk Loaders This disables the behavior that allows players to keep chunks permanently loaded by default and allows server operators to enable it if they wish. --- ...Allowance-of-Permanent-Chunk-Loaders.patch | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 Spigot-Server-Patches/0290-Configurable-Allowance-of-Permanent-Chunk-Loaders.patch diff --git a/Spigot-Server-Patches/0290-Configurable-Allowance-of-Permanent-Chunk-Loaders.patch b/Spigot-Server-Patches/0290-Configurable-Allowance-of-Permanent-Chunk-Loaders.patch new file mode 100644 index 000000000..25bcc45f7 --- /dev/null +++ b/Spigot-Server-Patches/0290-Configurable-Allowance-of-Permanent-Chunk-Loaders.patch @@ -0,0 +1,39 @@ +From 21f33d68a9d7e7836c15002ba8e08beef5dbad7a Mon Sep 17 00:00:00 2001 +From: Aikar +Date: Sat, 21 Apr 2018 11:21:48 -0400 +Subject: [PATCH] Configurable Allowance of Permanent Chunk Loaders + +This disables the behavior that allows players to keep chunks permanently loaded +by default and allows server operators to enable it if they wish. + +diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +index c903c89cf..e1ed267a2 100644 +--- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java ++++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +@@ -500,4 +500,10 @@ public class PaperWorldConfig { + private void disableSprintInterruptionOnAttack() { + disableSprintInterruptionOnAttack = getBoolean("game-mechanics.disable-sprint-interruption-on-attack", false); + } ++ ++ public boolean allowPermaChunkLoaders = false; ++ private void allowPermaChunkLoaders() { ++ allowPermaChunkLoaders = getBoolean("game-mechanics.allow-permanent-chunk-loaders", allowPermaChunkLoaders); ++ log("Allow Perma Chunk Loaders: " + (allowPermaChunkLoaders ? "enabled" : "disabled")); ++ } + } +diff --git a/src/main/java/net/minecraft/server/ChunkProviderServer.java b/src/main/java/net/minecraft/server/ChunkProviderServer.java +index 55dada668..0eba3df57 100644 +--- a/src/main/java/net/minecraft/server/ChunkProviderServer.java ++++ b/src/main/java/net/minecraft/server/ChunkProviderServer.java +@@ -148,7 +148,7 @@ public class ChunkProviderServer implements IChunkProvider { + } + + public Chunk getChunkAt(int i, int j, Runnable runnable, boolean generate) { +- Chunk chunk = getLoadedChunkAt(i, j); ++ Chunk chunk = world.paperConfig.allowPermaChunkLoaders ? getLoadedChunkAt(i, j) : getChunkIfLoaded(i, j); // Paper - Configurable perma chunk loaders + ChunkRegionLoader loader = null; + + if (this.chunkLoader instanceof ChunkRegionLoader) { +-- +2.17.0 +