Example #1
0
    def _parse_packet(self, packet):
        packet_io = io.BytesIO(packet)
        channel_name_bytes = read_cstring(packet_io)
        password_bytes = read_cstring(packet_io)

        self.channel_name = channel_name_bytes.decode("utf8")
        self.password = password_bytes.decode("utf8")
Example #2
0
    def _parse_packet(self, packet):
        packet_io = io.BytesIO(packet)
        channel_name_bytes = read_cstring(packet_io, 0)
        password_bytes = read_cstring(packet_io, packet_io.tell())

        self.channel_name = channel_name_bytes.decode("utf8")
        self.password = password_bytes.decode("utf8")
Example #3
0
    def from_client(data):
        message = ClientChatMessage()
        data_io = io.BytesIO(data)

        header_data = read_struct(data_io, ClientChatMessage.HEADER_BIN)
        message.message_type = ChatMessageType(header_data[0])
        message.language = Language(header_data[1])

        if message.message_type == ChatMessageType.CHANNEL:
            channel_name = read_cstring(data_io, data_io.tell())
            message.channel_name = channel_name.decode("utf8")

        content = read_cstring(data_io, data_io.tell())
        message.content = content.decode("utf8")

        return message
Example #4
0
    def from_client(data):
        message = ClientChatMessage()
        data_io = io.BytesIO(data)

        header_data = read_struct(data_io, ClientChatMessage.HEADER_BIN)
        message.message_type = ChatMessageType(header_data[0])
        message.language = Language(header_data[1])

        if message.message_type == ChatMessageType.CHANNEL:
            channel_name = read_cstring(data_io)
            message.channel_name = channel_name.decode("utf8")

        content = read_cstring(data_io)
        message.content = content.decode("utf8")

        return message
Example #5
0
    def _load_name_and_data(self, tpf_file):
        current_position = tpf_file.tell()

        tpf_file.seek(self.name_position)
        self.name = read_cstring(tpf_file).decode("utf8")

        tpf_file.seek(self.position)
        self.data = tpf_file.read(self.size)

        tpf_file.seek(current_position)
Example #6
0
    def _parse_packet(self, packet):
        packet_io = io.BytesIO(packet)
        char_name_bytes = read_cstring(packet_io, 0)
        self.char_name = char_name_bytes.decode("utf8")
        char_data = read_struct(packet_io, self.PACKET_CHAR_BIN)

        self.char_race = CharacterRace(char_data[0])
        self.char_class = CharacterClass(char_data[1])
        self.char_gender = CharacterGender(char_data[2])
        self.char_features = char_data[3:8]
        self.unk_value = char_data[8]
Example #7
0
    def _parse_packet(self, packet):
        packet_io = io.BytesIO(packet)
        char_name_bytes = read_cstring(packet_io)
        self.char_name = char_name_bytes.decode("utf8")
        char_data = read_struct(packet_io, self.PACKET_CHAR_BIN)

        self.char_race = CharacterRace(char_data[0])
        self.char_class = CharacterClass(char_data[1])
        self.char_gender = CharacterGender(char_data[2])
        self.char_features = char_data[3:8]
        self.unk_value = char_data[8]
Example #8
0
    def _parse_packet(self, packet):
        packet_io = io.BytesIO(packet)
        part1_data = read_struct(packet_io, self.PACKET_PART1_BIN)
        self.build = part1_data[0]
        self.unk = part1_data[1]

        account_name_bytes = read_cstring(packet_io)
        self.account_name = account_name_bytes.decode("ascii")

        part2_data = read_struct(packet_io, self.PACKET_PART2_BIN)
        self.client_seed = part2_data[0]
        self.client_hash = part2_data[1]
Example #9
0
    def _parse_packet(self, packet):
        packet_io = io.BytesIO(packet)
        part1_data = read_struct(packet_io, self.PACKET_PART1_BIN)
        self.build = part1_data[0]
        self.unk = part1_data[1]

        account_name_bytes = read_cstring(packet_io, packet_io.tell())
        self.account_name = account_name_bytes.decode("ascii")

        part2_data = read_struct(packet_io, self.PACKET_PART2_BIN)
        self.client_seed = part2_data[0]
        self.client_hash = part2_data[1]
Example #10
0
    def _load_name_and_data(self, bnd_file):
        current_position = bnd_file.tell()

        bnd_file.seek(self.path_position)
        encoded_path = read_cstring(bnd_file)
        self.decoded_path = encoded_path.decode("shift_jis")
        self.set_has_absolute_path()

        bnd_file.seek(self.data_position)
        self.data = bnd_file.read(self.data_size)

        bnd_file.seek(current_position)
Example #11
0
 def _parse_realm_info_packet(self, packet):
     """ Parse that realm packet and grab the realm name. """
     packet_io = io.BytesIO(packet)
     self.realm_name = read_cstring(packet_io, 5).decode("ascii")
Example #12
0
 def _parse_realm_info_packet(self, packet):
     """ Parse that realm packet and grab the realm name. """
     packet_io = io.BytesIO(packet)
     packet_io.seek(5)  # skip some data, we only grab name for now
     self.realm_name = read_cstring(packet_io).decode("ascii")