From 7c49391b9d38373bbe0164032c8d01b41929a8c7 Mon Sep 17 00:00:00 2001 From: rtm516 Date: Mon, 28 Sep 2020 22:43:50 +0100 Subject: [PATCH] Fix gamemodes not fully applying on server switch (#1348) * Fix gamemodes not fully applying on server switch * Revert previous commit and move session flag updating to the adventure settings method --- .../org/geysermc/connector/network/session/GeyserSession.java | 4 ++++ .../translators/java/world/JavaNotifyClientTranslator.java | 2 -- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/connector/src/main/java/org/geysermc/connector/network/session/GeyserSession.java b/connector/src/main/java/org/geysermc/connector/network/session/GeyserSession.java index 0a28b11f..300877f8 100644 --- a/connector/src/main/java/org/geysermc/connector/network/session/GeyserSession.java +++ b/connector/src/main/java/org/geysermc/connector/network/session/GeyserSession.java @@ -729,6 +729,10 @@ public class GeyserSession implements CommandSender { // Required to make command blocks destroyable adventureSettingsPacket.setPlayerPermission(opPermissionLevel >= 2 ? PlayerPermission.OPERATOR : PlayerPermission.MEMBER); + // Update the noClip and worldImmutable values based on the current gamemode + noClip = gameMode == GameMode.SPECTATOR; + worldImmutable = gameMode == GameMode.ADVENTURE || gameMode == GameMode.SPECTATOR; + Set flags = new HashSet<>(); if (canFly) { flags.add(AdventureSetting.MAY_FLY); diff --git a/connector/src/main/java/org/geysermc/connector/network/translators/java/world/JavaNotifyClientTranslator.java b/connector/src/main/java/org/geysermc/connector/network/translators/java/world/JavaNotifyClientTranslator.java index a7bc7b61..493a7ca1 100644 --- a/connector/src/main/java/org/geysermc/connector/network/translators/java/world/JavaNotifyClientTranslator.java +++ b/connector/src/main/java/org/geysermc/connector/network/translators/java/world/JavaNotifyClientTranslator.java @@ -103,8 +103,6 @@ public class JavaNotifyClientTranslator extends PacketTranslator