diff options
Diffstat (limited to 'Spigot-Server-Patches/0152-Prevent-Pathfinding-out-of-World-Border.patch')
-rw-r--r-- | Spigot-Server-Patches/0152-Prevent-Pathfinding-out-of-World-Border.patch | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/Spigot-Server-Patches/0152-Prevent-Pathfinding-out-of-World-Border.patch b/Spigot-Server-Patches/0152-Prevent-Pathfinding-out-of-World-Border.patch new file mode 100644 index 0000000000..1777f1c5a5 --- /dev/null +++ b/Spigot-Server-Patches/0152-Prevent-Pathfinding-out-of-World-Border.patch @@ -0,0 +1,44 @@ +From 2ffd8e341776fa64537f3474cdd35f18ee5ca681 Mon Sep 17 00:00:00 2001 +From: Aikar <[email protected]> +Date: Mon, 19 Dec 2016 23:07:42 -0500 +Subject: [PATCH] Prevent Pathfinding out of World Border + +This prevents Entities from trying to run outside of the World Border + +diff --git a/src/main/java/net/minecraft/server/NavigationAbstract.java b/src/main/java/net/minecraft/server/NavigationAbstract.java +index 716d00afb1..c55aadb536 100644 +--- a/src/main/java/net/minecraft/server/NavigationAbstract.java ++++ b/src/main/java/net/minecraft/server/NavigationAbstract.java +@@ -75,6 +75,7 @@ public abstract class NavigationAbstract { + + @Nullable + public PathEntity b(BlockPosition blockposition) { ++ if (!getEntity().getWorld().getWorldBorder().isInBounds(blockposition)) return null; // Paper - don't path out of world border + if (!this.b()) { + return null; + } else if (this.c != null && !this.c.b() && blockposition.equals(this.q)) { +@@ -101,7 +102,7 @@ public abstract class NavigationAbstract { + return null; + } else { + BlockPosition blockposition = new BlockPosition(entity); +- ++ if (!getEntity().getWorld().getWorldBorder().isInBounds(blockposition)) return null; // Paper - don't path out of world border + if (this.c != null && !this.c.b() && blockposition.equals(this.q)) { + return this.c; + } else { +diff --git a/src/main/java/net/minecraft/server/WorldBorder.java b/src/main/java/net/minecraft/server/WorldBorder.java +index beac8ac0b9..86ada40a10 100644 +--- a/src/main/java/net/minecraft/server/WorldBorder.java ++++ b/src/main/java/net/minecraft/server/WorldBorder.java +@@ -19,7 +19,7 @@ public class WorldBorder { + + public WorldBorder() {} + +- public boolean a(BlockPosition blockposition) { ++ public boolean isInBounds(BlockPosition blockposition) { return a(blockposition); }public boolean a(BlockPosition blockposition) { // Paper - OBFHELPER + return (double) (blockposition.getX() + 1) > this.b() && (double) blockposition.getX() < this.d() && (double) (blockposition.getZ() + 1) > this.c() && (double) blockposition.getZ() < this.e(); + } + +-- +2.21.0 + |