Fix AdvancementsManager

(cherry picked from commit c221989f9c6128f55e84bb260a9b319193934edf)
This commit is contained in:
2026-06-12 15:45:42 +02:00
parent a20ec8c93d
commit 6e919d9148
@@ -22,7 +22,9 @@ package de.steamwar.velocitycore.advancements;
import com.velocitypowered.api.event.Subscribe; import com.velocitypowered.api.event.Subscribe;
import com.velocitypowered.api.event.connection.DisconnectEvent; import com.velocitypowered.api.event.connection.DisconnectEvent;
import com.velocitypowered.api.event.connection.PostLoginEvent; import com.velocitypowered.api.event.connection.PostLoginEvent;
import com.velocitypowered.api.event.player.ServerPostConnectEvent;
import com.velocitypowered.api.network.ProtocolVersion; import com.velocitypowered.api.network.ProtocolVersion;
import com.velocitypowered.api.proxy.Player;
import com.velocitypowered.proxy.connection.client.ConnectedPlayer; import com.velocitypowered.proxy.connection.client.ConnectedPlayer;
import com.velocitypowered.proxy.protocol.MinecraftPacket; import com.velocitypowered.proxy.protocol.MinecraftPacket;
import com.velocitypowered.proxy.protocol.ProtocolUtils; import com.velocitypowered.proxy.protocol.ProtocolUtils;
@@ -65,15 +67,24 @@ public class AdvancementsManager extends BasicListener {
@Subscribe(priority = -1000) @Subscribe(priority = -1000)
public void onPostLogin(PostLoginEvent event) { 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 // 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; return;
} }
((ConnectedPlayer) event.getPlayer()).getConnection().write(selectAdvancementTabPacket); ((ConnectedPlayer) player).getConnection().write(selectAdvancementTabPacket);
SteamwarUser user = SteamwarUser.get(event.getPlayer().getUniqueId()); SteamwarUser user = SteamwarUser.get(player.getUniqueId());
for (Advancement advancement : Advancements.getAll()) { for (Advancement advancement : Advancements.getAll()) {
advancement.get(user); advancement.get(user).update();
} }
} }