From 62277a8d7bbf615c451e103eb7ca03fd8a3c9d66 Mon Sep 17 00:00:00 2001 From: Michael Burgess Date: Sun, 9 Aug 2026 10:12:52 -0400 Subject: [PATCH] Fix interior scan failing on ground-standing gates The floor a gate stands on (grass, stone, etc.) is a solid block that isn't part of the frame, so touching it during the interior flood-fill was treated as a leak and failed the whole scan. Solid non-frame blocks now act as boundaries instead of auto-failures; a real gap in the ring is still caught by the max-iris-blocks size cap. --- .../skywalker3200/stargate/paper/gate/GateStructureScanner.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stargate-paper/src/main/java/dev/skywalker3200/stargate/paper/gate/GateStructureScanner.java b/stargate-paper/src/main/java/dev/skywalker3200/stargate/paper/gate/GateStructureScanner.java index 367670e..23cdecd 100644 --- a/stargate-paper/src/main/java/dev/skywalker3200/stargate/paper/gate/GateStructureScanner.java +++ b/stargate-paper/src/main/java/dev/skywalker3200/stargate/paper/gate/GateStructureScanner.java @@ -172,8 +172,8 @@ public class GateStructureScanner { Block next = cur.getRelative(face); long k = key(next); if (visited.contains(k) || frameKeys.contains(k)) continue; - if (next.getType().isSolid()) return null; // hit solid, non-frame block: not a clean ring visited.add(k); + if (next.getType().isSolid()) continue; // ground/ceiling/wall acting as a boundary, not part of the interior queue.add(next); } }