geforkt von Mirrors/Paper
d089acb3bd
ForgeFlower is better than Spigots FernFlower at decompiling the source. However, in order to maintain the CraftBukkit patches, we must keep using spigots for the primary. However, for any file that we import on top of Spigots imported files there is nothing stopping us from using better decompiled files. So these changes will use ForgeFlower to maintain a better set of decomped files, so anything we add on top of Paper can start off in a better spot.
44 Zeilen
2.2 KiB
Diff
44 Zeilen
2.2 KiB
Diff
From f35437d281706ae7e892fd454f2bd8035bbafde9 Mon Sep 17 00:00:00 2001
|
|
From: Aikar <aikar@aikar.co>
|
|
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 a8b070ed32..452da80f11 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 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)) {
|
|
@@ -93,6 +94,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 acd76e13bb..1a87480f09 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.18.0
|
|
|