From 868fed172ef973312d3ecc4fa92ffba6b421687c Mon Sep 17 00:00:00 2001 From: onebeastchris Date: Thu, 26 Jun 2025 00:34:46 +0200 Subject: [PATCH] Only enable the locator bar when we're certain the Java server wants us to --- .../main/java/org/geysermc/geyser/session/GeyserSession.java | 4 ++++ .../geyser/session/cache/waypoint/WaypointCache.java | 5 +++++ .../geyser/translator/protocol/java/JavaLoginTranslator.java | 3 +++ 3 files changed, 12 insertions(+) diff --git a/core/src/main/java/org/geysermc/geyser/session/GeyserSession.java b/core/src/main/java/org/geysermc/geyser/session/GeyserSession.java index 6f9864151..ec40ddeb3 100644 --- a/core/src/main/java/org/geysermc/geyser/session/GeyserSession.java +++ b/core/src/main/java/org/geysermc/geyser/session/GeyserSession.java @@ -867,6 +867,10 @@ public class GeyserSession implements GeyserConnection, GeyserCommandSource { gamerulePacket.getGameRules().add(new GameRuleData<>("spawnradius", 0)); // Recipe unlocking gamerulePacket.getGameRules().add(new GameRuleData<>("recipesunlock", true)); + // We disable the locator bar until we are certain that the server wants us to enable it + // See WaypointCache for details + gamerulePacket.getGameRules().add(new GameRuleData<>("locatorBar", false)); + upstream.sendPacket(gamerulePacket); } diff --git a/core/src/main/java/org/geysermc/geyser/session/cache/waypoint/WaypointCache.java b/core/src/main/java/org/geysermc/geyser/session/cache/waypoint/WaypointCache.java index e80d14753..1a0c07230 100644 --- a/core/src/main/java/org/geysermc/geyser/session/cache/waypoint/WaypointCache.java +++ b/core/src/main/java/org/geysermc/geyser/session/cache/waypoint/WaypointCache.java @@ -175,4 +175,9 @@ public final class WaypointCache { addPacket.getEntries().add(entry); session.sendUpstreamPacket(addPacket); } + + public void clear() { + waypoints.clear(); + session.sendGameRule("locatorBar", false); + } } diff --git a/core/src/main/java/org/geysermc/geyser/translator/protocol/java/JavaLoginTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/protocol/java/JavaLoginTranslator.java index 14e1aca87..622b2d23b 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/protocol/java/JavaLoginTranslator.java +++ b/core/src/main/java/org/geysermc/geyser/translator/protocol/java/JavaLoginTranslator.java @@ -83,6 +83,9 @@ public class JavaLoginTranslator extends PacketTranslator