package game.packet; import java.io.IOException; import java.util.Collection; import java.util.Map; import java.util.Map.Entry; import game.collect.Maps; import game.network.NetHandlerPlayClient; import game.network.NetHandlerPlayServer; import game.network.Packet; import game.network.PacketBuffer; public class S38PacketPlayerListItem implements Packet { private final Map players = Maps.newHashMap(); public S38PacketPlayerListItem() { } public S38PacketPlayerListItem(boolean remove, NetHandlerPlayServer... conns) { for(NetHandlerPlayServer conn : conns) { this.players.put(conn.getUser(), remove ? -1 : conn.getLatency()); } } public S38PacketPlayerListItem(Iterable conns) { for(NetHandlerPlayServer conn : conns) { this.players.put(conn.getUser(), conn.getLatency()); } } public void readPacketData(PacketBuffer buf) throws IOException { int n = buf.readVarIntFromBuffer(); for(int z = 0; z < n; z++) { this.players.put(buf.readStringFromBuffer(16), buf.readVarIntFromBuffer()); } } public void writePacketData(PacketBuffer buf) throws IOException { buf.writeVarIntToBuffer(this.players.size()); for(Entry data : this.players.entrySet()) { buf.writeString(data.getKey()); buf.writeVarIntToBuffer(data.getValue()); } } public void processPacket(NetHandlerPlayClient handler) { handler.handlePlayerListItem(this); } public Collection> getEntries() { return this.players.entrySet(); } }