aboutsummaryrefslogtreecommitdiffhomepage
path: root/Spigot-Server-Patches-Unmapped/0052-Add-configurable-portal-search-radius.patch
diff options
context:
space:
mode:
Diffstat (limited to 'Spigot-Server-Patches-Unmapped/0052-Add-configurable-portal-search-radius.patch')
-rw-r--r--Spigot-Server-Patches-Unmapped/0052-Add-configurable-portal-search-radius.patch56
1 files changed, 56 insertions, 0 deletions
diff --git a/Spigot-Server-Patches-Unmapped/0052-Add-configurable-portal-search-radius.patch b/Spigot-Server-Patches-Unmapped/0052-Add-configurable-portal-search-radius.patch
new file mode 100644
index 0000000000..7c478fce6a
--- /dev/null
+++ b/Spigot-Server-Patches-Unmapped/0052-Add-configurable-portal-search-radius.patch
@@ -0,0 +1,56 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Joseph Hirschfeld <[email protected]>
+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
+index 416a6760883cb40367535c7c5acd779742bb8af5..670efbe53241a0ae32d618c83da601ccc1f26e37 100644
+--- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
++++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
+@@ -196,4 +196,13 @@ public class PaperWorldConfig {
+ private void allChunksAreSlimeChunks() {
+ allChunksAreSlimeChunks = getBoolean("all-chunks-are-slime-chunks", false);
+ }
++
++ public int portalSearchRadius;
++ public int portalCreateRadius;
++ public boolean portalSearchVanillaDimensionScaling;
++ private void portalSearchRadius() {
++ portalSearchRadius = getInt("portal-search-radius", 128);
++ portalCreateRadius = getInt("portal-create-radius", 16);
++ portalSearchVanillaDimensionScaling = getBoolean("portal-search-vanilla-dimension-scaling", true);
++ }
+ }
+diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
+index 10cbf66f06b31c9a4cae2359b3fbb9988abb9278..40eb6bae8ca4e2b57d4f91547808eb00ac1fd455 100644
+--- a/src/main/java/net/minecraft/world/entity/Entity.java
++++ b/src/main/java/net/minecraft/world/entity/Entity.java
+@@ -2613,7 +2613,13 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, ne
+ double d4 = DimensionManager.a(this.world.getDimensionManager(), worldserver.getDimensionManager());
+ BlockPosition blockposition = new BlockPosition(MathHelper.a(this.locX() * d4, d0, d2), this.locY(), MathHelper.a(this.locZ() * d4, d1, d3));
+ // CraftBukkit start
+- CraftPortalEvent event = callPortalEvent(this, worldserver, blockposition, PlayerTeleportEvent.TeleportCause.NETHER_PORTAL, flag2 ? 16 : 128, 16);
++ // Paper start
++ int portalSearchRadius = worldserver.paperConfig.portalSearchRadius;
++ if (world.paperConfig.portalSearchVanillaDimensionScaling && flag2) { // == THE_NETHER
++ portalSearchRadius = (int) (portalSearchRadius / worldserver.getDimensionManager().getCoordinateScale());
++ }
++ // Paper end
++ CraftPortalEvent event = callPortalEvent(this, worldserver, blockposition, PlayerTeleportEvent.TeleportCause.NETHER_PORTAL, portalSearchRadius, worldserver.paperConfig.portalCreateRadius); // Paper start - configurable portal radius
+ if (event == null) {
+ return null;
+ }
+diff --git a/src/main/java/net/minecraft/world/level/portal/PortalTravelAgent.java b/src/main/java/net/minecraft/world/level/portal/PortalTravelAgent.java
+index 7b8e8a7dae47ecc42a57e3f9444caa2ee5b1ef3b..77dfa7eaf178baa55041a829c9dec4851efeedfc 100644
+--- a/src/main/java/net/minecraft/world/level/portal/PortalTravelAgent.java
++++ b/src/main/java/net/minecraft/world/level/portal/PortalTravelAgent.java
+@@ -31,7 +31,7 @@ public class PortalTravelAgent {
+
+ public Optional<BlockUtil.Rectangle> findPortal(BlockPosition blockposition, boolean flag) {
+ // CraftBukkit start
+- return findPortal(blockposition, flag ? 16 : 128); // Search Radius
++ return findPortal(blockposition, flag ? world.paperConfig.portalCreateRadius : world.paperConfig.portalSearchRadius); // Paper - search Radius
+ }
+
+ public Optional<BlockUtil.Rectangle> findPortal(BlockPosition blockposition, int i) {