From 1c3d017e01ea0779b7c86cf772bc89dfd6628f88 Mon Sep 17 00:00:00 2001 From: gnembon Date: Thu, 4 Jun 2020 12:52:36 -0300 Subject: [PATCH] keeping versions of connected clients --- .../java/carpet/network/ServerNetworkHandler.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/main/java/carpet/network/ServerNetworkHandler.java b/src/main/java/carpet/network/ServerNetworkHandler.java index b609dd7d..ba6d1db0 100644 --- a/src/main/java/carpet/network/ServerNetworkHandler.java +++ b/src/main/java/carpet/network/ServerNetworkHandler.java @@ -11,12 +11,14 @@ import net.minecraft.network.packet.s2c.play.CustomPayloadS2CPacket; import net.minecraft.server.network.ServerPlayerEntity; import net.minecraft.util.PacketByteBuf; +import java.util.HashMap; import java.util.HashSet; +import java.util.Map; import java.util.Set; public class ServerNetworkHandler { - public static Set remoteCarpetPlayers = new HashSet<>(); + public static Map remoteCarpetPlayers = new HashMap<>(); public static Set validCarpetPlayers = new HashSet<>(); public static void handleData(PacketByteBuf data, ServerPlayerEntity player) @@ -46,9 +48,10 @@ public class ServerNetworkHandler public static void onHello(ServerPlayerEntity playerEntity, PacketByteBuf packetData) { - remoteCarpetPlayers.add(playerEntity); + validCarpetPlayers.add(playerEntity); String clientVersion = packetData.readString(64); + remoteCarpetPlayers.put(playerEntity, clientVersion); if (clientVersion.equals(CarpetSettings.carpetVersion)) CarpetSettings.LOG.info("Player "+playerEntity.getName().getString()+" joined with a matching carpet client"); else @@ -60,7 +63,7 @@ public class ServerNetworkHandler public static void updateRuleWithConnectedClients(ParsedRule rule) { - for (ServerPlayerEntity player : remoteCarpetPlayers) + for (ServerPlayerEntity player : remoteCarpetPlayers.keySet()) { player.networkHandler.sendPacket(new CustomPayloadS2CPacket( CarpetClient.CARPET_CHANNEL, @@ -71,7 +74,7 @@ public class ServerNetworkHandler public static void updateTickSpeedToConnectedPlayers() { - for (ServerPlayerEntity player : remoteCarpetPlayers) + for (ServerPlayerEntity player : remoteCarpetPlayers.keySet()) { player.networkHandler.sendPacket(new CustomPayloadS2CPacket( CarpetClient.CARPET_CHANNEL, @@ -80,7 +83,7 @@ public class ServerNetworkHandler } } - public static void sendCustomCommand(String command, Tag data) + public static void broadcastCustomCommand(String command, Tag data) { for (ServerPlayerEntity player : validCarpetPlayers) {