mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-18 20:53:09 +01:00
da9d110d5b
This patch does not appear to be doing anything useful, and may hide errors. Currently, the save logic does not run through this path either so it did not do anything. Additionally, properly implement support for handling RegionFileSizeException in Moonrise.
27 lines
1.8 KiB
Diff
27 lines
1.8 KiB
Diff
From 0000000000000000000000000000000000000000 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
|
|
|
|
TODO: This doesn't prevent the pathfinder from using blocks outside the world border as nodes. We can fix this
|
|
by adding code to all overrides in:
|
|
NodeEvaluator:
|
|
public abstract BlockPathTypes getBlockPathType(BlockGetter world, int x, int y, int z);
|
|
|
|
to return BLOCKED if it is outside the world border.
|
|
|
|
diff --git a/src/main/java/net/minecraft/world/entity/ai/navigation/PathNavigation.java b/src/main/java/net/minecraft/world/entity/ai/navigation/PathNavigation.java
|
|
index 1d5ce4caf99a3fb376b350968a6bd1ac8471ffec..436812c3bfe53358b4d76bb72d777d6661bb6d60 100644
|
|
--- a/src/main/java/net/minecraft/world/entity/ai/navigation/PathNavigation.java
|
|
+++ b/src/main/java/net/minecraft/world/entity/ai/navigation/PathNavigation.java
|
|
@@ -174,7 +174,7 @@ public abstract class PathNavigation {
|
|
// Paper start - EntityPathfindEvent
|
|
boolean copiedSet = false;
|
|
for (BlockPos possibleTarget : positions) {
|
|
- if (!new com.destroystokyo.paper.event.entity.EntityPathfindEvent(this.mob.getBukkitEntity(),
|
|
+ if (!this.mob.getCommandSenderWorld().getWorldBorder().isWithinBounds(possibleTarget) || !new com.destroystokyo.paper.event.entity.EntityPathfindEvent(this.mob.getBukkitEntity(), // Paper - don't path out of world border
|
|
io.papermc.paper.util.MCUtil.toLocation(this.mob.level(), possibleTarget), target == null ? null : target.getBukkitEntity()).callEvent()) {
|
|
if (!copiedSet) {
|
|
copiedSet = true;
|