Exemplo n.º 1
0
    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()