38 lines
		
	
	
	
		
			3 KiB
			
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
	
		
			3 KiB
			
		
	
	
	
		
			Diff
		
	
	
	
	
	
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
 | 
						|
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/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
 | 
						|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
 | 
						|
--- a/src/main/java/net/minecraft/world/entity/Entity.java
 | 
						|
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
 | 
						|
@@ -0,0 +0,0 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
 | 
						|
                 double d0 = DimensionType.getTeleportationScale(this.level.dimensionType(), destination.dimensionType());
 | 
						|
                 BlockPos blockposition = worldborder.clampToBounds(this.getX() * d0, this.getY(), this.getZ() * d0);
 | 
						|
                 // CraftBukkit start
 | 
						|
-                CraftPortalEvent event = this.callPortalEvent(this, destination, new PositionImpl(blockposition.getX(), blockposition.getY(), blockposition.getZ()), PlayerTeleportEvent.TeleportCause.NETHER_PORTAL, flag2 ? 16 : 128, 16);
 | 
						|
+                // Paper start
 | 
						|
+                int portalSearchRadius = destination.paperConfig().environment.portalSearchRadius;
 | 
						|
+                if (level.paperConfig().environment.portalSearchVanillaDimensionScaling && flag2) { // == THE_NETHER
 | 
						|
+                    portalSearchRadius = (int) (portalSearchRadius / destination.dimensionType().coordinateScale());
 | 
						|
+                }
 | 
						|
+                // Paper end
 | 
						|
+                CraftPortalEvent event = this.callPortalEvent(this, destination, new PositionImpl(blockposition.getX(), blockposition.getY(), blockposition.getZ()), PlayerTeleportEvent.TeleportCause.NETHER_PORTAL, portalSearchRadius, destination.paperConfig().environment.portalCreateRadius); // Paper start - configurable portal radius
 | 
						|
                 if (event == null) {
 | 
						|
                     return null;
 | 
						|
                 }
 | 
						|
diff --git a/src/main/java/net/minecraft/world/level/portal/PortalForcer.java b/src/main/java/net/minecraft/world/level/portal/PortalForcer.java
 | 
						|
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
 | 
						|
--- a/src/main/java/net/minecraft/world/level/portal/PortalForcer.java
 | 
						|
+++ b/src/main/java/net/minecraft/world/level/portal/PortalForcer.java
 | 
						|
@@ -0,0 +0,0 @@ public class PortalForcer {
 | 
						|
 
 | 
						|
     public Optional<BlockUtil.FoundRectangle> findPortalAround(BlockPos pos, boolean destIsNether, WorldBorder worldBorder) {
 | 
						|
         // CraftBukkit start
 | 
						|
-        return this.findPortalAround(pos, worldBorder, destIsNether ? 16 : 128); // Search Radius
 | 
						|
+        return this.findPortalAround(pos, worldBorder, destIsNether ? level.paperConfig().environment.portalCreateRadius : level.paperConfig().environment.portalSearchRadius); // Search Radius // Paper - search Radius
 | 
						|
     }
 | 
						|
 
 | 
						|
     public Optional<BlockUtil.FoundRectangle> findPortalAround(BlockPos blockposition, WorldBorder worldborder, int i) {
 |