From 7744d3dce0a6e297de2d97c864923184b8383110 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Out?= <38955258+bjorn-out@users.noreply.github.com> Date: Sat, 2 May 2026 16:59:17 +0200 Subject: [PATCH] Improve safe teleportation location finding --- .../realty/command/util/SafeLocationFinder.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/realty-paper/src/main/java/io/github/md5sha256/realty/command/util/SafeLocationFinder.java b/realty-paper/src/main/java/io/github/md5sha256/realty/command/util/SafeLocationFinder.java index 6c95e28..8756864 100644 --- a/realty-paper/src/main/java/io/github/md5sha256/realty/command/util/SafeLocationFinder.java +++ b/realty-paper/src/main/java/io/github/md5sha256/realty/command/util/SafeLocationFinder.java @@ -228,9 +228,16 @@ private static boolean defaultIsSafe(@NotNull Block feetBlock) { BlockVector3 max = region.getMaximumPoint(); int startX = (min.x() + max.x()) / 2; - int startY = (min.y() + max.y()) / 2; + int startY; int startZ = (min.z() + max.z()) / 2; + // Start searching around ground level for tall plots + if (max.y() - min.y() >= 100 && 80 <= max.y() && 80 >= min.y()) { + startY = 80; + } else { + startY = (min.y() + max.y()) / 2; + } + // Load center chunk and check center first return world.getChunkAtAsync(Math.floorDiv(startX, 16), Math.floorDiv(startZ, 16)) .thenCompose(chunk -> {