diff --git a/core/src/main/java/com/rexcantor64/triton/listeners/BungeeListener.java b/core/src/main/java/com/rexcantor64/triton/listeners/BungeeListener.java index 7eb68869..18046530 100644 --- a/core/src/main/java/com/rexcantor64/triton/listeners/BungeeListener.java +++ b/core/src/main/java/com/rexcantor64/triton/listeners/BungeeListener.java @@ -17,6 +17,7 @@ import net.md_5.bungee.event.EventHandler; import net.md_5.bungee.event.EventPriority; import net.md_5.bungee.netty.PipelineUtils; +import net.md_5.bungee.protocol.ProtocolConstants; import java.lang.reflect.Method; import java.util.ArrayList; @@ -33,6 +34,11 @@ public void onPlayerJoin(ServerConnectedEvent event) { Triton.asBungee().getBridgeManager().sendPlayerLanguage(lp, event.getServer()); + if (event.getPlayer().getPendingConnection().getVersion() >= ProtocolConstants.MINECRAFT_1_20_2) { + // On 1.20.2 and above, the join player packet starts clearing bossbars automatically, so clear them here + lp.clearCachedBossbars(); + } + if (Triton.get().getConf().isRunLanguageCommandsOnLogin()) { lp.executeCommands(event.getServer()); } diff --git a/core/src/main/java/com/rexcantor64/triton/player/BungeeLanguagePlayer.java b/core/src/main/java/com/rexcantor64/triton/player/BungeeLanguagePlayer.java index 5dc499b1..83015a12 100644 --- a/core/src/main/java/com/rexcantor64/triton/player/BungeeLanguagePlayer.java +++ b/core/src/main/java/com/rexcantor64/triton/player/BungeeLanguagePlayer.java @@ -69,6 +69,10 @@ public void removeBossbar(UUID uuid) { bossBars.remove(uuid); } + public void clearCachedBossbars() { + bossBars.clear(); + } + public void setLastTabHeader(BaseComponent lastTabHeader) { this.lastTabHeader = lastTabHeader.duplicate(); }