Exemplo n.º 1
0
    def write(self, stream, packet):
        assert packet.__class__.PACKET_DIRECTION == PacketDirection.SERVERBOUND \
            if self._mode == PacketSerializer.Mode.CLIENT else \
            packet.__class__.PACKET_DIRECTION == PacketDirection.CLIENTBOUND, \
            "packet has invalid direction for this serializer"

        buf = StringIO()
        StreamIO.write_varint(buf, packet.__class__.PACKET_ID)
        packet.__class__.write(buf, packet)
        data = buf.getvalue()
        buf.close()

        if self.is_compression_enabled():
            buf = StringIO()

            if len(data) >= self.get_threshold():
                StreamIO.write_varint(buf, len(data))
                data = zlib.compress(data)
            else:
                StreamIO.write_varint(buf, 0)

            StreamIO.write(buf, data)
            data = buf.getvalue()
            buf.close()

        buf = StringIO()
        StreamIO.write_string(buf, data)
        data = buf.getvalue()
        buf.close()

        StreamIO.write(stream, data)
Exemplo n.º 2
0
 def write(stream, packet):
     StreamIO.write_string(stream, packet.get_locale())
     StreamIO.write_byte(stream, packet.get_view_distance())
     StreamIO.write_varint(stream, packet.get_chat_mode())
     StreamIO.write_bool(stream, packet.is_chat_colors())
     StreamIO.write_ubyte(stream, packet.get_skin_parts())
     StreamIO.write_varint(stream, packet.get_main_hand())
Exemplo n.º 3
0
 def write(stream, packet):
     StreamIO.write_int(stream, packet.get_entity_id())
     StreamIO.write_ubyte(stream, packet.get_gamemode())
     StreamIO.write_byte(stream, packet.get_dimension())
     StreamIO.write_ubyte(stream, packet.get_difficulty())
     StreamIO.write_ubyte(stream, packet.get_max_players())
     StreamIO.write_string(stream, packet.get_level_type().encode("utf8"))
     StreamIO.write_bool(stream, packet.is_debug_info())
Exemplo n.º 4
0
 def write(stream, packet):
     StreamIO.write_ubyte(stream, packet.get_window_id())
     StreamIO.write_string(stream, packet.get_window_type().encode("utf8"))
     StreamIO.write_string(
         stream,
         json.dumps(packet.get_window_title()).encode("utf8"))
     StreamIO.write_ubyte(stream, packet.get_slots_number())
     if packet.get_window_type() == "EntityHorse":
         StreamIO.write_int(stream, packet.get_entity_id())
Exemplo n.º 5
0
 def write(stream, packet):
     StreamIO.write_string(stream,
                           json.dumps(packet.get_chat()).encode("utf8"))
     StreamIO.write_byte(stream, packet.get_position())
Exemplo n.º 6
0
 def write(stream, packet):
     StreamIO.write_string(stream, packet.get_shared_secret())
     StreamIO.write_string(stream, packet.get_verify_token())
Exemplo n.º 7
0
 def write(stream, packet):
     StreamIO.write_varint(stream, packet.get_protocol())
     StreamIO.write_string(stream, packet.get_hostname().encode("utf8"))
     StreamIO.write_ushort(stream, packet.get_port())
     StreamIO.write_varint(stream, packet.get_next_state())
Exemplo n.º 8
0
 def write(stream, packet):
     StreamIO.write_string(stream, packet.get_message().encode("utf8"))
Exemplo n.º 9
0
 def write(stream, packet):
     StreamIO.write_string(stream, json.dumps(packet.get_description()).encode("utf8"))
Exemplo n.º 10
0
 def write(stream, packet):
     StreamIO.write_string(stream, packet.get_uuid().encode("utf8"))
     StreamIO.write_string(stream, packet.get_username().encode("utf8"))
Exemplo n.º 11
0
 def write(stream, packet):
     StreamIO.write_string(stream, packet.get_channel().encode("utf8"))
     StreamIO.write(stream, packet.get_bytes())
Exemplo n.º 12
0
 def write(stream, packet):
     StreamIO.write_string(stream, packet.get_server_id().encode("utf8"))
     StreamIO.write_string(stream, packet.get_public_key())
     StreamIO.write_string(stream, packet.get_verify_token())