From ca0747196e808263004c7afc76876fdfbf334486 Mon Sep 17 00:00:00 2001 From: Michael Burgess Date: Sun, 9 Aug 2026 12:35:39 -0400 Subject: [PATCH] Show structure re-scan status in /sg list Chevron lighting and iris updates both silently no-op when RuntimeGate.getStructure() is null (a failed re-scan), which is easy to mistake for a chevron-specific bug when a gate that used to work stops updating after a restart or /sg reload - the block appearance just freezes at whatever it last was instead of erroring visibly. /sg list now flags local gates with a null structure as "[structure error - relink it]" in red, instead of only surfacing this via a console warning nobody's watching. --- .../stargate/paper/command/StargateCommand.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/stargate-paper/src/main/java/dev/skywalker3200/stargate/paper/command/StargateCommand.java b/stargate-paper/src/main/java/dev/skywalker3200/stargate/paper/command/StargateCommand.java index c01d3f0..e5da1f6 100644 --- a/stargate-paper/src/main/java/dev/skywalker3200/stargate/paper/command/StargateCommand.java +++ b/stargate-paper/src/main/java/dev/skywalker3200/stargate/paper/command/StargateCommand.java @@ -57,8 +57,11 @@ public class StargateCommand implements CommandExecutor, TabCompleter { List gates = gateManager.getNetwork(network); sender.sendMessage(Component.text("Network '" + network + "' (" + gates.size() + " gate(s)):", NamedTextColor.AQUA)); for (RuntimeGate rg : gates) { + boolean local = rg.getGate().getServerId().equals(plugin.getServerId()); + String status = !local ? "" : rg.getStructure() != null ? " [ok]" : " [structure error - relink it]"; + NamedTextColor color = !local || rg.getStructure() != null ? NamedTextColor.GRAY : NamedTextColor.RED; sender.sendMessage(Component.text(" - " + rg.getGate().getName() + " @ " + rg.getGate().getServerId() - + "/" + rg.getGate().getWorld(), NamedTextColor.GRAY)); + + "/" + rg.getGate().getWorld() + status, color)); } } case "destroy" -> {