def recv_a2s_player(self, server_response, (host, port)): packet = Packet(server_response) packet.get_long() packet.get_byte() num_players = packet.get_byte() self.server_dict[(str(host) + ":" + str(port))]['players'] = [] try: for _ in xrange(num_players): player = dict() player['index'] = packet.get_byte() player['name'] = packet.get_string() player['kills'] = packet.get_long() player['time'] = packet.get_float() self.server_dict[(str(host) + ":" + str(port))]['players'].append(player) except struct.error: if self.logger.isEnabledFor(logging.DEBUG): self.logger.debug("malformed packet received: \n" + server_response) def send_a2s_challenge(self, host, port): packet = Packet() packet.put_long(self.whole_packet) packet.put_byte(self.a2s_player_query_byte) packet.put_long(self.a2s_challenge_query_byte) self.transport.write(packet.getvalue(), (host, port)) def recv_a2s_challenge(self, server_response, (host, port)): packet = Packet(server_response) packet.get_long()