Paper/Spigot-Server-Patches/0051-Add-configurable-portal-search-radius.patch

59 lines
3.1 KiB
Diff
Raw Normal View History

From 12feca284a4a8426cad2ba6fb721e7090cd5f875 Mon Sep 17 00:00:00 2001
2019-04-26 03:24:00 +02:00
From: Joseph Hirschfeld <joe@ibj.io>
Date: Thu, 3 Mar 2016 02:46:17 -0600
Subject: [PATCH] Add configurable portal search radius
diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
2019-12-11 01:56:03 +01:00
index 62e793b71..5de4ec052 100644
2019-04-26 03:24:00 +02:00
--- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
+++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
@@ -191,4 +191,9 @@ public class PaperWorldConfig {
2019-04-26 03:24:00 +02:00
private void allChunksAreSlimeChunks() {
allChunksAreSlimeChunks = getBoolean("all-chunks-are-slime-chunks", false);
}
+
+ public int portalSearchRadius;
+ private void portalSearchRadius() {
+ portalSearchRadius = getInt("portal-search-radius", 128);
+ }
}
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index 2ed5ff412..909f446c6 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -2533,7 +2533,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
// CraftBukkit start - EntityPortalEvent
// SPIGOT-5136 - don't fire event for CraftEntity.teleport
- int searchRadius = 128;
+ int searchRadius = world.paperConfig.portalSearchRadius; // Paper - use portal search radius as default
if (location == null) {
Location enter = this.getBukkitEntity().getLocation();
Location exit = new Location(worldserver1.getWorld(), blockposition.getX(), blockposition.getY(), blockposition.getZ());
2019-04-26 03:24:00 +02:00
diff --git a/src/main/java/net/minecraft/server/PortalTravelAgent.java b/src/main/java/net/minecraft/server/PortalTravelAgent.java
index 503e3016a..b5f224e3b 100644
2019-04-26 03:24:00 +02:00
--- a/src/main/java/net/minecraft/server/PortalTravelAgent.java
+++ b/src/main/java/net/minecraft/server/PortalTravelAgent.java
@@ -45,7 +45,7 @@ public class PortalTravelAgent {
@Nullable
public ShapeDetector.Shape a(BlockPosition blockposition, Vec3D vec3d, EnumDirection enumdirection, double d0, double d1, boolean flag) { // PAIL: rename to findPortal, d0 = portal offset x, d1 = portal offset z, flag = instanceof EntityHuman
// CraftBukkit start
- return findPortal(blockposition, vec3d, enumdirection, d0, d1, flag, 128);
+ return findPortal(blockposition, vec3d, enumdirection, d0, d1, flag, world.paperConfig.portalSearchRadius); // Paper
}
@Nullable
@@ -53,7 +53,7 @@ public class PortalTravelAgent {
// CraftBukkit end
2019-12-11 01:56:03 +01:00
VillagePlace villageplace = this.world.B();
2019-04-26 03:24:00 +02:00
2019-12-11 01:56:03 +01:00
- villageplace.a(this.world, blockposition, 128);
+ villageplace.a(this.world, blockposition, searchRadius); // Paper - This impacts the # of chunks searched for entries
2019-12-11 01:56:03 +01:00
List<VillagePlaceRecord> list = (List) villageplace.b((villageplacetype) -> {
return villageplacetype == VillagePlaceType.u;
}, blockposition, searchRadius, VillagePlace.Occupancy.ANY).collect(Collectors.toList()); // CraftBukkit - searchRadius
2019-04-26 03:24:00 +02:00
--
2.24.1
2019-04-26 03:24:00 +02:00