aboutsummaryrefslogtreecommitdiffhomepage
path: root/Spigot-Server-Patches/0180-Prevent-Pathfinding-out-of-World-Border.patch
diff options
context:
space:
mode:
Diffstat (limited to 'Spigot-Server-Patches/0180-Prevent-Pathfinding-out-of-World-Border.patch')
-rw-r--r--Spigot-Server-Patches/0180-Prevent-Pathfinding-out-of-World-Border.patch43
1 files changed, 43 insertions, 0 deletions
diff --git a/Spigot-Server-Patches/0180-Prevent-Pathfinding-out-of-World-Border.patch b/Spigot-Server-Patches/0180-Prevent-Pathfinding-out-of-World-Border.patch
new file mode 100644
index 0000000000..4667ab0441
--- /dev/null
+++ b/Spigot-Server-Patches/0180-Prevent-Pathfinding-out-of-World-Border.patch
@@ -0,0 +1,43 @@
+From 7292ba902909ac5284a165b4fc2c422bf503486a 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 c0ef2400b..74d1fd6b2 100644
+--- a/src/main/java/net/minecraft/server/NavigationAbstract.java
++++ b/src/main/java/net/minecraft/server/NavigationAbstract.java
+@@ -69,6 +69,7 @@ public abstract class NavigationAbstract {
+
+ @Nullable
+ public PathEntity a(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)) {
+@@ -95,6 +96,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;
+diff --git a/src/main/java/net/minecraft/server/WorldBorder.java b/src/main/java/net/minecraft/server/WorldBorder.java
+index 9038d52eb..632eb1c9d 100644
+--- a/src/main/java/net/minecraft/server/WorldBorder.java
++++ b/src/main/java/net/minecraft/server/WorldBorder.java
+@@ -29,7 +29,7 @@ public class WorldBorder {
+ this.l = 5;
+ }
+
+- 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.12.2.windows.2
+