From 6e919d9148ee3c879a496bf5c796526199e84f9c Mon Sep 17 00:00:00 2001 From: YoyoNow Date: Fri, 12 Jun 2026 15:45:42 +0200 Subject: [PATCH] Fix AdvancementsManager (cherry picked from commit c221989f9c6128f55e84bb260a9b319193934edf) --- .../advancements/AdvancementsManager.java | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/VelocityCore/src/de/steamwar/velocitycore/advancements/AdvancementsManager.java b/VelocityCore/src/de/steamwar/velocitycore/advancements/AdvancementsManager.java index d0694e8b..14598894 100644 --- a/VelocityCore/src/de/steamwar/velocitycore/advancements/AdvancementsManager.java +++ b/VelocityCore/src/de/steamwar/velocitycore/advancements/AdvancementsManager.java @@ -22,7 +22,9 @@ package de.steamwar.velocitycore.advancements; import com.velocitypowered.api.event.Subscribe; import com.velocitypowered.api.event.connection.DisconnectEvent; import com.velocitypowered.api.event.connection.PostLoginEvent; +import com.velocitypowered.api.event.player.ServerPostConnectEvent; import com.velocitypowered.api.network.ProtocolVersion; +import com.velocitypowered.api.proxy.Player; import com.velocitypowered.proxy.connection.client.ConnectedPlayer; import com.velocitypowered.proxy.protocol.MinecraftPacket; import com.velocitypowered.proxy.protocol.ProtocolUtils; @@ -65,15 +67,24 @@ public class AdvancementsManager extends BasicListener { @Subscribe(priority = -1000) public void onPostLogin(PostLoginEvent event) { + sendAdvancements(event.getPlayer()); + } + + @Subscribe(priority = -1000) + public void onServerPostConnect(ServerPostConnectEvent event) { + sendAdvancements(event.getPlayer()); + } + + private void sendAdvancements(Player player) { // Only enable for 1.21.4 or higher - if (event.getPlayer().getProtocolVersion().lessThan(ProtocolVersion.MINECRAFT_1_21_4)) { + if (player.getProtocolVersion().lessThan(ProtocolVersion.MINECRAFT_1_21_4)) { return; } - ((ConnectedPlayer) event.getPlayer()).getConnection().write(selectAdvancementTabPacket); - SteamwarUser user = SteamwarUser.get(event.getPlayer().getUniqueId()); + ((ConnectedPlayer) player).getConnection().write(selectAdvancementTabPacket); + SteamwarUser user = SteamwarUser.get(player.getUniqueId()); for (Advancement advancement : Advancements.getAll()) { - advancement.get(user); + advancement.get(user).update(); } }