From 4cc1b64fc3aa022cbbb806d53d2e118c9ce5a3f8 Mon Sep 17 00:00:00 2001 From: Ap_Tx <3045929398@qq.com> Date: Tue, 6 Oct 2026 20:06:37 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20HUD=E5=8E=BB=E6=97=A5=E5=BF=97+=E7=A9=BA?= =?UTF-8?q?=E5=88=97=E8=A1=A8return=EF=BC=8C=E6=9C=8D=E5=8A=A1=E7=AB=AF?= =?UTF-8?q?=E6=AF=8F5=E7=A7=92=E5=AE=9A=E6=9C=9F=E5=90=8C=E6=AD=A5?= =?UTF-8?q?=E6=A6=9C=E5=8D=95=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../carpetslsaddition/client/BoardHudElement.java | 4 +++- .../carpetslsaddition/util/BoardSyncManager.java | 11 ++++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/github/zly2006/carpetslsaddition/client/BoardHudElement.java b/src/main/java/com/github/zly2006/carpetslsaddition/client/BoardHudElement.java index 1fca32a..150e3e0 100644 --- a/src/main/java/com/github/zly2006/carpetslsaddition/client/BoardHudElement.java +++ b/src/main/java/com/github/zly2006/carpetslsaddition/client/BoardHudElement.java @@ -28,7 +28,6 @@ public class BoardHudElement implements HudElement { @Override public void extractRenderState(GuiGraphicsExtractor g, DeltaTracker delta) { String board = BoardClientState.displaying; - com.github.zly2006.carpetslsaddition.ServerMain.LOGGER.info("[SLSA-HUD] extractRenderState board={}", board); if (board == null || board.isEmpty()) { return; } @@ -37,6 +36,9 @@ public class BoardHudElement implements HudElement { return; } List list = BoardClientState.current(); + if (list.isEmpty()) { + return; + } Font font = mc.font; String title = BoardClientState.currentTitle(); diff --git a/src/main/java/com/github/zly2006/carpetslsaddition/util/BoardSyncManager.java b/src/main/java/com/github/zly2006/carpetslsaddition/util/BoardSyncManager.java index 58277d5..a3dae69 100644 --- a/src/main/java/com/github/zly2006/carpetslsaddition/util/BoardSyncManager.java +++ b/src/main/java/com/github/zly2006/carpetslsaddition/util/BoardSyncManager.java @@ -85,13 +85,22 @@ public final class BoardSyncManager { } private static volatile Boolean lastEnabled = null; + private static long lastSyncTick = 0; - /** 由轮询线程每秒调用:规则值变化时同步给所有玩家。 */ + /** 由轮询线程每秒调用:规则值变化时立即同步;否则每 5 秒定期同步一次数据。 */ public static void tick(MinecraftServer server) { boolean now = com.github.zly2006.carpetslsaddition.SLSCarpetSettings.slsBoardEnabled; if (lastEnabled == null || lastEnabled != now) { lastEnabled = now; syncToAll(server); + return; + } + if (now) { + long tick = server.getTickCount(); + if (tick - lastSyncTick >= 100) { // 每 100 tick(5秒)同步一次数据 + lastSyncTick = tick; + syncToAll(server); + } } } }