Add ClientVersionPacket

This commit is contained in:
2025-06-26 21:52:07 +02:00
parent c6ecab5aa8
commit 1fd8b3c4cb
5 changed files with 67 additions and 29 deletions
@@ -27,19 +27,27 @@ import com.velocitypowered.api.proxy.server.ServerInfo;
import com.viaversion.viaversion.api.Via;
import com.viaversion.viaversion.velocity.platform.VelocityViaConfig;
import de.steamwar.messages.Chatter;
import de.steamwar.network.packets.server.ClientVersionPacket;
import de.steamwar.persistent.Subserver;
import de.steamwar.velocitycore.network.NetworkSender;
public class VersionAnnouncer extends BasicListener {
@Subscribe
public void postConnect(ServerConnectedEvent e) {
ServerInfo server = e.getServer().getServerInfo();
if(!Subserver.isBuild(Subserver.getSubserver(server)))
return;
Player player = e.getPlayer();
int serverVersion = ((VelocityViaConfig) Via.getConfig()).getVelocityServerProtocols().get(server.getName());
if(Via.getAPI().getPlayerVersion(player) == serverVersion)
int playerVersion = Via.getAPI().getPlayerVersion(player);
String version = ProtocolVersion.getProtocolVersion(playerVersion).getVersionIntroducedIn();
// PluginChannel 'vv:proxy_details' from ViaVersion apparently does not work any longer!
NetworkSender.send(player, new ClientVersionPacket(player.getUniqueId(), Integer.parseInt(version.split("-")[0].split("\\.")[1])));
if(playerVersion == serverVersion)
return;
if(!Subserver.isBuild(Subserver.getSubserver(server)))
return;
player.sendActionBar(Chatter.of(player).parse("SERVER_VERSION", ProtocolVersion.getProtocolVersion(serverVersion).getMostRecentSupportedVersion()));