diff --git a/Spigot-Server-Patches/0262-Configurable-Villages-loading-chunks-for-door-checks.patch b/Spigot-Server-Patches/0262-Configurable-Villages-loading-chunks-for-door-checks.patch new file mode 100644 index 0000000000..8ef1928dc8 --- /dev/null +++ b/Spigot-Server-Patches/0262-Configurable-Villages-loading-chunks-for-door-checks.patch @@ -0,0 +1,73 @@ +From 4845bcc6753c152c5e32d4257e64204cfa31b4db 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 +@@ -420,4 +420,12 @@ 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 +@@ -123,7 +123,7 @@ 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) { +@@ -193,7 +193,7 @@ 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 +@@ -297,7 +297,7 @@ 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); +@@ -312,7 +312,9 @@ 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; +-- +2.19.0 + diff --git a/Spigot-Server-Patches/0262-Don-t-load-chunks-for-villager-door-checks.patch b/Spigot-Server-Patches/0262-Don-t-load-chunks-for-villager-door-checks.patch deleted file mode 100644 index cd20fa4e3a..0000000000 --- a/Spigot-Server-Patches/0262-Don-t-load-chunks-for-villager-door-checks.patch +++ /dev/null @@ -1,27 +0,0 @@ -From ce89171a068d36aadae71218295a109b6c1130c1 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 -@@ -313,6 +313,12 @@ 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; --- -2.19.0 - diff --git a/Spigot-Server-Patches/0271-Make-shield-blocking-delay-configurable.patch b/Spigot-Server-Patches/0271-Make-shield-blocking-delay-configurable.patch index a1b3237e26..b601e76fdd 100644 --- a/Spigot-Server-Patches/0271-Make-shield-blocking-delay-configurable.patch +++ b/Spigot-Server-Patches/0271-Make-shield-blocking-delay-configurable.patch @@ -1,16 +1,16 @@ -From c78f97b134af174507a4cb659970615d89100000 Mon Sep 17 00:00:00 2001 +From b9ab361fdf72abfa18a4bf1d59ff06d654c97dfb Mon Sep 17 00:00:00 2001 From: BillyGalbreath Date: Sat, 16 Jun 2018 01:18:16 -0500 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 -@@ -420,4 +420,9 @@ public class PaperWorldConfig { - disableEnderpearlExploit = getBoolean("game-mechanics.disable-unloaded-chunk-enderpearl-exploit", disableEnderpearlExploit); - log("Disable Unloaded Chunk Enderpearl Exploit: " + (disableEnderpearlExploit ? "enabled" : "disabled")); +@@ -428,4 +428,9 @@ public class PaperWorldConfig { + log("Villages can load chunks - Warning this can cause intense TPS loss. Strongly consider disabling this."); + } } + + public int shieldBlockingDelay = 5; diff --git a/Spigot-Server-Patches/0281-Add-config-to-disable-ender-dragon-legacy-check.patch b/Spigot-Server-Patches/0281-Add-config-to-disable-ender-dragon-legacy-check.patch index d0c584750c..14370f46bd 100644 --- a/Spigot-Server-Patches/0281-Add-config-to-disable-ender-dragon-legacy-check.patch +++ b/Spigot-Server-Patches/0281-Add-config-to-disable-ender-dragon-legacy-check.patch @@ -1,14 +1,14 @@ -From 8569f8f147058e487d661fa5a4daae699a155bcd Mon Sep 17 00:00:00 2001 +From 274b492a435a173f8fb6e7a94480a8326e3d421d Mon Sep 17 00:00:00 2001 From: BillyGalbreath Date: Fri, 22 Jun 2018 10:38:31 -0500 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 -@@ -425,4 +425,9 @@ public class PaperWorldConfig { +@@ -433,4 +433,9 @@ public class PaperWorldConfig { private void shieldBlockingDelay() { shieldBlockingDelay = getInt("game-mechanics.shield-blocking-delay", 5); } diff --git a/Spigot-Server-Patches/0285-Configurable-Bed-Search-Radius.patch b/Spigot-Server-Patches/0285-Configurable-Bed-Search-Radius.patch index 46f7000cf1..500d94599c 100644 --- a/Spigot-Server-Patches/0285-Configurable-Bed-Search-Radius.patch +++ b/Spigot-Server-Patches/0285-Configurable-Bed-Search-Radius.patch @@ -1,4 +1,4 @@ -From b02b8e33cdaf1d11a1a89f8c515cb4cdd8bddea8 Mon Sep 17 00:00:00 2001 +From 5f218bd95d6d89e8e06ca7c2e882336bff075021 Mon Sep 17 00:00:00 2001 From: Aikar Date: Wed, 4 Jul 2018 15:22:06 -0400 Subject: [PATCH] Configurable Bed Search Radius @@ -10,10 +10,10 @@ 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 -@@ -430,4 +430,15 @@ public class PaperWorldConfig { +@@ -438,4 +438,15 @@ public class PaperWorldConfig { private void scanForLegacyEnderDragon() { scanForLegacyEnderDragon = getBoolean("game-mechanics.scan-for-legacy-ender-dragon", true); } diff --git a/Spigot-Server-Patches/0298-Duplicate-UUID-Resolve-Option.patch b/Spigot-Server-Patches/0298-Duplicate-UUID-Resolve-Option.patch index 8768343c0d..08002fe97c 100644 --- a/Spigot-Server-Patches/0298-Duplicate-UUID-Resolve-Option.patch +++ b/Spigot-Server-Patches/0298-Duplicate-UUID-Resolve-Option.patch @@ -1,4 +1,4 @@ -From 3d237c508504201a1ea5a957115422891600bb96 Mon Sep 17 00:00:00 2001 +From fd4f9ec55426776628f3b5b415f2310988d46435 Mon Sep 17 00:00:00 2001 From: Aikar Date: Sat, 21 Jul 2018 14:27:34 -0400 Subject: [PATCH] Duplicate UUID Resolve Option @@ -33,10 +33,10 @@ 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 -@@ -441,4 +441,47 @@ public class PaperWorldConfig { +@@ -449,4 +449,47 @@ public class PaperWorldConfig { log("Bed Search Radius: " + bedSearchRadius); } } diff --git a/Spigot-Server-Patches/0331-Allow-disabling-armour-stand-ticking.patch b/Spigot-Server-Patches/0331-Allow-disabling-armour-stand-ticking.patch index 532fe57648..f95f0ea1cd 100644 --- a/Spigot-Server-Patches/0331-Allow-disabling-armour-stand-ticking.patch +++ b/Spigot-Server-Patches/0331-Allow-disabling-armour-stand-ticking.patch @@ -1,14 +1,14 @@ -From ae7f77a162d760cc7b724fcc9df73c7955b0d838 Mon Sep 17 00:00:00 2001 +From 1b717bb84d8f34e7a18f4880d2c0ff5210a08bb7 Mon Sep 17 00:00:00 2001 From: kashike Date: Wed, 15 Aug 2018 01:26:09 -0700 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 -@@ -489,4 +489,10 @@ public class PaperWorldConfig { +@@ -497,4 +497,10 @@ public class PaperWorldConfig { break; } } diff --git a/Spigot-Server-Patches/0341-Anti-Xray.patch b/Spigot-Server-Patches/0341-Anti-Xray.patch index 78629ceb7f..00ec379c51 100644 --- a/Spigot-Server-Patches/0341-Anti-Xray.patch +++ b/Spigot-Server-Patches/0341-Anti-Xray.patch @@ -1,11 +1,11 @@ -From 2346990844cd6dc58d010ecc5387e773d3c772b4 Mon Sep 17 00:00:00 2001 +From 7849249a2aa766c3b1d3e35b7cf3c5f21dd2a9a1 Mon Sep 17 00:00:00 2001 From: stonar96 Date: Mon, 20 Aug 2018 03:03:58 +0200 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 @@ -1,7 +1,10 @@ @@ -19,7 +19,7 @@ index cfeba61a32..fec0a7cc36 100644 import net.minecraft.server.MinecraftServer; import org.bukkit.Bukkit; import org.bukkit.configuration.file.YamlConfiguration; -@@ -504,4 +507,27 @@ public class PaperWorldConfig { +@@ -512,4 +515,27 @@ public class PaperWorldConfig { this.armorStandTick = this.getBoolean("armor-stands-tick", this.armorStandTick); log("ArmorStand ticking is " + (this.armorStandTick ? "enabled" : "disabled") + " by default"); } diff --git a/Spigot-Server-Patches/0342-Configurable-speed-for-water-flowing-over-lava.patch b/Spigot-Server-Patches/0342-Configurable-speed-for-water-flowing-over-lava.patch index a78fdf70c9..babe750437 100644 --- a/Spigot-Server-Patches/0342-Configurable-speed-for-water-flowing-over-lava.patch +++ b/Spigot-Server-Patches/0342-Configurable-speed-for-water-flowing-over-lava.patch @@ -1,14 +1,14 @@ -From 58d72c67a7c9a72473d5e2bb9d58f40b95e804e0 Mon Sep 17 00:00:00 2001 +From bc6aa0160941037d2193cfb5386289723418492a Mon Sep 17 00:00:00 2001 From: Byteflux Date: Wed, 8 Aug 2018 16:33:21 -0600 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 -@@ -459,6 +459,12 @@ public class PaperWorldConfig { +@@ -467,6 +467,12 @@ public class PaperWorldConfig { } }