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)
def write(stream, tag): for i in tag.keys(): StreamIO.write_ubyte(stream, tag[i].__class__.TYPE_ID) StreamIO.write_ushort(stream, len(i.encode("utf8"))) StreamIO.write(stream, i.encode("utf8")) tag[i].__class__.write(stream, tag[i]) StreamIO.write_ubyte(stream, NBTTagEnd.TYPE_ID)
def write(stream, tag): StreamIO.write_ushort(stream, len(tag.get().encode("utf8"))) StreamIO.write(stream, tag.get().encode("utf8"))
def write(stream, packet): StreamIO.write_string(stream, packet.get_channel().encode("utf8")) StreamIO.write(stream, packet.get_bytes())