aboutsummaryrefslogtreecommitdiffhomepage
path: root/Spigot-Server-Patches/0152-Prevent-Pathfinding-out-of-World-Border.patch
diff options
context:
space:
mode:
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.patch44
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
+