def read(stream, packet_size): protocol = StreamIO.read_varint(stream) hostname = StreamIO.read_string(stream).decode("utf8") port = StreamIO.read_ushort(stream) next_state = StreamIO.read_varint(stream) return HandshakePacket(protocol, hostname, port, next_state)
def read(stream): compound_id = StreamIO.read_ubyte(stream) if compound_id == 0x00: return None if compound_id != NBTTagCompound.TYPE_ID: raise IOError("invalid magic number") name_len = StreamIO.read_ushort(stream) name = u"" if name_len > 0: name = StreamIO.read(stream, name_len) return NBTTagCompound.read(stream)
def read(stream): values = {} entry_type_id = StreamIO.read_ubyte(stream) while entry_type_id != NBTTagEnd.TYPE_ID: entry_name_len = StreamIO.read_ushort(stream) entry_name = u"" if entry_name_len > 0: entry_name = StreamIO.read(stream, entry_name_len).decode("utf8") entry_type = NBTProvider.get_tag_class(entry_type_id) values[entry_name] = entry_type.read(stream) entry_type_id = StreamIO.read_ubyte(stream) return NBTTagCompound(values)
def read(stream): len = StreamIO.read_ushort(stream) value = StreamIO.read(stream, len).decode("utf8") return NBTTagString(value)