2025-03-11 00:23:54 +01:00
|
|
|
package game.packet;
|
|
|
|
|
|
|
|
import java.io.IOException;
|
|
|
|
import java.util.Collection;
|
|
|
|
import java.util.Map;
|
|
|
|
import java.util.Map.Entry;
|
|
|
|
|
2025-03-16 17:40:47 +01:00
|
|
|
import com.google.common.collect.Maps;
|
|
|
|
|
2025-03-11 00:23:54 +01:00
|
|
|
import game.network.NetHandlerPlayClient;
|
|
|
|
import game.network.NetHandlerPlayServer;
|
|
|
|
import game.network.Packet;
|
|
|
|
import game.network.PacketBuffer;
|
|
|
|
|
|
|
|
public class S38PacketPlayerListItem implements Packet<NetHandlerPlayClient> {
|
|
|
|
private final Map<String, Integer> 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<NetHandlerPlayServer> 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<String, Integer> data : this.players.entrySet()) {
|
|
|
|
buf.writeString(data.getKey());
|
|
|
|
buf.writeVarIntToBuffer(data.getValue());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
public void processPacket(NetHandlerPlayClient handler) {
|
|
|
|
handler.handlePlayerListItem(this);
|
|
|
|
}
|
|
|
|
|
|
|
|
public Collection<Entry<String, Integer>> getEntries() {
|
|
|
|
return this.players.entrySet();
|
|
|
|
}
|
|
|
|
}
|