tcr/java/src/game/packet/S38PacketPlayerListItem.java

56 lines
1.4 KiB
Java
Raw Normal View History

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;
import game.collect.Maps;
2025-03-16 17:40:47 +01:00
import game.network.ClientPlayer;
import game.network.Player;
2025-03-11 00:23:54 +01:00
import game.network.Packet;
import game.network.PacketBuffer;
public class S38PacketPlayerListItem implements Packet<ClientPlayer> {
2025-03-11 00:23:54 +01:00
private final Map<String, Integer> players = Maps.newHashMap();
public S38PacketPlayerListItem() {
}
public S38PacketPlayerListItem(boolean remove, Player... conns) {
for(Player conn : conns) {
2025-03-11 00:23:54 +01:00
this.players.put(conn.getUser(), remove ? -1 : conn.getLatency());
}
}
public S38PacketPlayerListItem(Iterable<Player> conns) {
for(Player conn : conns) {
2025-03-11 00:23:54 +01:00
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(ClientPlayer handler) {
2025-03-11 00:23:54 +01:00
handler.handlePlayerListItem(this);
}
public Collection<Entry<String, Integer>> getEntries() {
return this.players.entrySet();
}
}