diff --git a/paper-server/patches/sources/net/minecraft/world/level/dimension/end/EndDragonFight.java.patch b/paper-server/patches/sources/net/minecraft/world/level/dimension/end/EndDragonFight.java.patch index 5b405ca4a..56f782320 100644 --- a/paper-server/patches/sources/net/minecraft/world/level/dimension/end/EndDragonFight.java.patch +++ b/paper-server/patches/sources/net/minecraft/world/level/dimension/end/EndDragonFight.java.patch @@ -142,7 +142,7 @@ blockPos = this.portalLocation; } + // Paper start - Perf: Do crystal-portal proximity check before entity lookup -+ if (placedEndCrystalPos != null) { ++ if (placedEndCrystalPos != null && !level.paperConfig().misc.allowRemoteEnderDragonRespawning) { + // The end crystal must be 0 or 1 higher than the portal origin + int dy = placedEndCrystalPos.getY() - blockPos.getY(); + if (dy != 0 && dy != 1) { diff --git a/paper-server/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java b/paper-server/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java index a457584fc..4a9740269 100644 --- a/paper-server/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java +++ b/paper-server/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java @@ -574,6 +574,7 @@ public class WorldConfiguration extends ConfigurationPart { public int shieldBlockingDelay = 5; public boolean disableRelativeProjectileVelocity = false; public boolean legacyEnderPearlBehavior = false; + public boolean allowRemoteEnderDragonRespawning = false; public enum RedstoneImplementation { VANILLA, EIGENCRAFT, ALTERNATE_CURRENT