diff --git a/Spigot-Server-Patches/Add-config-to-disable-ender-dragon-legacy-check.patch b/Spigot-Server-Patches/Add-config-to-disable-ender-dragon-legacy-check.patch index 358f765f82..60d676358c 100644 --- a/Spigot-Server-Patches/Add-config-to-disable-ender-dragon-legacy-check.patch +++ b/Spigot-Server-Patches/Add-config-to-disable-ender-dragon-legacy-check.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Add config to disable ender dragon legacy check diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index c0eccc22b7..e5e5d2447d 100644 +index bd4cca26c7..85296e48db 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java @@ -0,0 +0,0 @@ public class PaperWorldConfig { diff --git a/Spigot-Server-Patches/Allow-disabling-armour-stand-ticking.patch b/Spigot-Server-Patches/Allow-disabling-armour-stand-ticking.patch index 6acff79414..88aebf5a51 100644 --- a/Spigot-Server-Patches/Allow-disabling-armour-stand-ticking.patch +++ b/Spigot-Server-Patches/Allow-disabling-armour-stand-ticking.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Allow disabling armour stand ticking diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index 4a89d8bedb..b412d02ada 100644 +index 4fbafb5bf2..31b2c71960 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java @@ -0,0 +0,0 @@ public class PaperWorldConfig { diff --git a/Spigot-Server-Patches/Anti-Xray.patch b/Spigot-Server-Patches/Anti-Xray.patch index 39cc5b6ff7..bbb9e39cf4 100644 --- a/Spigot-Server-Patches/Anti-Xray.patch +++ b/Spigot-Server-Patches/Anti-Xray.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Anti-Xray diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index cfeba61a32..fec0a7cc36 100644 +index d818d39039..cc8fdedd5b 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java @@ -0,0 +0,0 @@ diff --git a/Spigot-Server-Patches/Configurable-Bed-Search-Radius.patch b/Spigot-Server-Patches/Configurable-Bed-Search-Radius.patch index afc2d4443f..392636e1e3 100644 --- a/Spigot-Server-Patches/Configurable-Bed-Search-Radius.patch +++ b/Spigot-Server-Patches/Configurable-Bed-Search-Radius.patch @@ -10,7 +10,7 @@ player at their bed should it of became obstructed. Defaults to vanilla 1. diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index e5e5d2447d..99986bac97 100644 +index 85296e48db..deb0d4f053 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java @@ -0,0 +0,0 @@ public class PaperWorldConfig { diff --git a/Spigot-Server-Patches/Configurable-Villages-loading-chunks-for-door-checks.patch b/Spigot-Server-Patches/Configurable-Villages-loading-chunks-for-door-checks.patch new file mode 100644 index 0000000000..5953496bd0 --- /dev/null +++ b/Spigot-Server-Patches/Configurable-Villages-loading-chunks-for-door-checks.patch @@ -0,0 +1,71 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Aikar +Date: Tue, 5 Jun 2018 00:32:22 -0400 +Subject: [PATCH] Configurable Villages loading chunks for door checks + +This avoids villages spam loading chunks sync. + +diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +index af6b97708a..a005c8c4ec 100644 +--- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java ++++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +@@ -0,0 +0,0 @@ public class PaperWorldConfig { + disableEnderpearlExploit = getBoolean("game-mechanics.disable-unloaded-chunk-enderpearl-exploit", disableEnderpearlExploit); + log("Disable Unloaded Chunk Enderpearl Exploit: " + (disableEnderpearlExploit ? "enabled" : "disabled")); + } ++ ++ public boolean villagesLoadChunks = false; ++ private void villagesLoadChunks() { ++ villagesLoadChunks = getBoolean("game-mechanics.villages-load-chunks", false); ++ if (villagesLoadChunks) { ++ log("Villages can load chunks - Warning this can cause intense TPS loss. Strongly consider disabling this."); ++ } ++ } + } +diff --git a/src/main/java/net/minecraft/server/PersistentVillage.java b/src/main/java/net/minecraft/server/PersistentVillage.java +index d14a9e3a3e..0be1bf0d99 100644 +--- a/src/main/java/net/minecraft/server/PersistentVillage.java ++++ b/src/main/java/net/minecraft/server/PersistentVillage.java +@@ -0,0 +0,0 @@ public class PersistentVillage extends PersistentBase { + for(int j = -4; j < 4; ++j) { + for(int k = -16; k < 16; ++k) { + blockposition$mutableblockposition.g(blockposition).d(i, j, k); +- IBlockData iblockdata = this.world.getType(blockposition$mutableblockposition); ++ IBlockData iblockdata = this.world.paperConfig.villagesLoadChunks ? this.world.getType(blockposition$mutableblockposition) : this.world.getTypeIfLoaded(blockposition$mutableblockposition); // Paper + if (this.a(iblockdata)) { + VillageDoor villagedoor = this.c(blockposition$mutableblockposition); + if (villagedoor == null) { +@@ -0,0 +0,0 @@ public class PersistentVillage extends PersistentBase { + } + + private boolean a(IBlockData iblockdata) { +- return iblockdata.getBlock() instanceof BlockDoor && iblockdata.getMaterial() == Material.WOOD; ++ return iblockdata != null && iblockdata.getBlock() instanceof BlockDoor && iblockdata.getMaterial() == Material.WOOD; // Paper + } + + public void a(NBTTagCompound nbttagcompound) { +diff --git a/src/main/java/net/minecraft/server/Village.java b/src/main/java/net/minecraft/server/Village.java +index bda67faefe..1cc9096f01 100644 +--- a/src/main/java/net/minecraft/server/Village.java ++++ b/src/main/java/net/minecraft/server/Village.java +@@ -0,0 +0,0 @@ public class Village { + villagedoor.a(); + } + +- if (!this.g(villagedoor.d()) || Math.abs(this.g - villagedoor.h()) > 1200) { ++ if ((!this.g(villagedoor.d()) || Math.abs(this.g - villagedoor.h()) > 1200) && this.a.isLoaded(villagedoor.getPosition())) { // Paper - don't expire doors unless the chunk is loaded + this.c = this.c.b(villagedoor.d()); + flag = true; + villagedoor.a(true); +@@ -0,0 +0,0 @@ public class Village { + } + + private boolean g(BlockPosition blockposition) { +- IBlockData iblockdata = this.a.getType(blockposition); ++ IBlockData iblockdata = this.a.paperConfig.villagesLoadChunks ? this.a.getType(blockposition) : this.a.getTypeIfLoaded(blockposition); // Paper ++ if (iblockdata == null) return false; // Paper ++ + Block block = iblockdata.getBlock(); + + return block instanceof BlockDoor ? iblockdata.getMaterial() == Material.WOOD : false; +-- \ No newline at end of file diff --git a/Spigot-Server-Patches/Configurable-speed-for-water-flowing-over-lava.patch b/Spigot-Server-Patches/Configurable-speed-for-water-flowing-over-lava.patch index 9b9cf31c02..987ec8fb6b 100644 --- a/Spigot-Server-Patches/Configurable-speed-for-water-flowing-over-lava.patch +++ b/Spigot-Server-Patches/Configurable-speed-for-water-flowing-over-lava.patch @@ -5,7 +5,7 @@ Subject: [PATCH] Configurable speed for water flowing over lava diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index fec0a7cc36..4b4223a9fa 100644 +index cc8fdedd5b..5bab0018da 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java @@ -0,0 +0,0 @@ public class PaperWorldConfig { diff --git a/Spigot-Server-Patches/Don-t-load-chunks-for-villager-door-checks.patch b/Spigot-Server-Patches/Don-t-load-chunks-for-villager-door-checks.patch deleted file mode 100644 index 8456a6de32..0000000000 --- a/Spigot-Server-Patches/Don-t-load-chunks-for-villager-door-checks.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Aikar -Date: Tue, 5 Jun 2018 00:32:22 -0400 -Subject: [PATCH] Don't load chunks for villager door checks - -This avoids villages spam loading chunks sync - -diff --git a/src/main/java/net/minecraft/server/Village.java b/src/main/java/net/minecraft/server/Village.java -index bda67faefe..955041e266 100644 ---- a/src/main/java/net/minecraft/server/Village.java -+++ b/src/main/java/net/minecraft/server/Village.java -@@ -0,0 +0,0 @@ public class Village { - - private boolean g(BlockPosition blockposition) { - IBlockData iblockdata = this.a.getType(blockposition); -+ // Paper start -+ if (!this.a.isChunkLoaded(blockposition.getX() >> 4, blockposition.getZ() >> 4, true )) { -+ return false; -+ } -+ // Paper end -+ - Block block = iblockdata.getBlock(); - - return block instanceof BlockDoor ? iblockdata.getMaterial() == Material.WOOD : false; --- \ No newline at end of file diff --git a/Spigot-Server-Patches/Duplicate-UUID-Resolve-Option.patch b/Spigot-Server-Patches/Duplicate-UUID-Resolve-Option.patch index db1eb7c2af..e14c90f7c5 100644 --- a/Spigot-Server-Patches/Duplicate-UUID-Resolve-Option.patch +++ b/Spigot-Server-Patches/Duplicate-UUID-Resolve-Option.patch @@ -33,7 +33,7 @@ But for those who are ok with leaving this inconsistent behavior, you may use WA It is recommended you regenerate the entities, as these were legit entities, and deserve your love. diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index 99986bac97..1bfa9ad567 100644 +index deb0d4f053..249af8b4c6 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java @@ -0,0 +0,0 @@ public class PaperWorldConfig { diff --git a/Spigot-Server-Patches/Make-shield-blocking-delay-configurable.patch b/Spigot-Server-Patches/Make-shield-blocking-delay-configurable.patch index d6746166ad..3e706d5db8 100644 --- a/Spigot-Server-Patches/Make-shield-blocking-delay-configurable.patch +++ b/Spigot-Server-Patches/Make-shield-blocking-delay-configurable.patch @@ -5,12 +5,12 @@ Subject: [PATCH] Make shield blocking delay configurable diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java -index af6b97708a..c0eccc22b7 100644 +index a005c8c4ec..bd4cca26c7 100644 --- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java +++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java @@ -0,0 +0,0 @@ public class PaperWorldConfig { - disableEnderpearlExploit = getBoolean("game-mechanics.disable-unloaded-chunk-enderpearl-exploit", disableEnderpearlExploit); - log("Disable Unloaded Chunk Enderpearl Exploit: " + (disableEnderpearlExploit ? "enabled" : "disabled")); + log("Villages can load chunks - Warning this can cause intense TPS loss. Strongly consider disabling this."); + } } + + public int shieldBlockingDelay = 5;