예제 #1
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())
예제 #2
0
 def write(stream, packet):
     StreamIO.write_double(stream, packet.get_x())
     StreamIO.write_double(stream, packet.get_y())
     StreamIO.write_double(stream, packet.get_z())
     StreamIO.write_float(stream, packet.get_yaw())
     StreamIO.write_float(stream, packet.get_pitch())
     StreamIO.write_byte(stream, packet.get_flags())
     StreamIO.write_varint(stream, packet.get_teleport_id())
예제 #3
0
 def write(stream, packet):
     StreamIO.write_ubyte(stream, packet.get_window_id())
     StreamIO.write_short(stream, packet.get_slot())
     StreamIO.write_byte(stream, packet.get_button())
     StreamIO.write_short(stream, packet.get_transaction_id())
     StreamIO.write_varint(stream, packet.get_mode())
     StreamIO.write_short(stream, packet.get_slot_data().get_id())
     if not packet.get_slot_data().is_empty():
         StreamIO.write_byte(stream, packet.get_slot_data().get_count())
         StreamIO.write_short(stream, packet.get_slot_data().get_damage())
         NBTSerializer.write(stream, packet.get_slot_data().get_tag())
예제 #4
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)
예제 #5
0
 def write(stream, packet):
     StreamIO.write_varint(stream, packet.get_hand_type())
예제 #6
0
 def write(stream, packet):
     StreamIO.write_varint(stream, packet.get_action())
예제 #7
0
 def write(stream, packet):
     StreamIO.write_varint(stream, packet.get_id())
예제 #8
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())
예제 #9
0
 def write(stream, packet):
     StreamIO.write_varint(stream, packet.get_threshold())