Exemplo n.º 1
0
    def read(stream, packet_size):
        entity_id = StreamIO.read_int(stream)
        gamemode = StreamIO.read_ubyte(stream)
        dimension = StreamIO.read_int(stream)
        difficulty = StreamIO.read_ubyte(stream)
        max_players = StreamIO.read_ubyte(stream)
        level_type = StreamIO.read_string(stream).decode("utf8")
        debug_info = StreamIO.read_bool(stream)

        return JoinGamePacket(entity_id, gamemode, dimension, difficulty, max_players, level_type, debug_info)
Exemplo n.º 2
0
    def read(stream, packet_size):
        window_id = StreamIO.read_ubyte(stream)
        window_type = StreamIO.read_string(stream).decode("utf8")
        window_title = json.loads(StreamIO.read_string(stream).decode("utf8"))
        slots_number = StreamIO.read_ubyte(stream)
        entity_id = None
        if window_type == "EntityHorse":
            entity_id = StreamIO.read_int(stream)

        return OpenWindowPacket(window_id, window_type, window_title,
                                slots_number, entity_id)
Exemplo n.º 3
0
    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)
Exemplo n.º 4
0
    def read(stream, packet_size):
        locale = StreamIO.read_string(stream)
        view_distance = StreamIO.read_byte(stream)
        chat_mode = StreamIO.read_varint(stream)
        chat_colors = StreamIO.read_bool(stream)
        skin_parts = StreamIO.read_ubyte(stream)

        return ClientSettingsPacket(locale, view_distance, chat_mode,
                                    chat_colors, skin_parts)
Exemplo n.º 5
0
    def read(stream):
        tag_type_id = StreamIO.read_ubyte(stream)
        tag_type = NBTProvider.get_tag_class(tag_type_id)
        values = []
        len = StreamIO.read_int(stream)

        for i in xrange(len):
            values.append(tag_type.read(stream))

        return NBTTagList(tag_type, values)
Exemplo n.º 6
0
    def read(stream, packet_size):
        window_id = StreamIO.read_ubyte(stream)
        slot = StreamIO.read_short(stream)
        button = StreamIO.read_byte(stream)
        transaction_id = StreamIO.read_short(stream)
        mode = StreamIO.read_byte(stream)
        slot_data = SlotData(StreamIO.read_short(stream))
        if not slot_data.is_empty():
            slot_data.set_count(StreamIO.read_byte(stream))
            slot_data.set_damage(StreamIO.read_short(stream))
            slot_data.set_tag(NBTSerializer.read(stream))

        return ClickWindowPacket(window_id, slot, button, transaction_id, mode,
                                 slot_data)
Exemplo n.º 7
0
    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)
Exemplo n.º 8
0
    def read(stream, packet_size):
        window_id = StreamIO.read_ubyte(stream)
        slots_len = StreamIO.read_short(stream)
        slots = []

        for i in xrange(slots_len):
            slot_data = SlotData(StreamIO.read_short(stream))
            if not slot_data.is_empty():
                slot_data.set_count(StreamIO.read_byte(stream))
                slot_data.set_damage(StreamIO.read_short(stream))
                slot_data.set_tag(NBTSerializer.read(stream))

            slots.append(slot_data)

        return WindowItemsPacket(window_id, slots)
Exemplo n.º 9
0
    def read(stream, packet_size):
        window_id = StreamIO.read_ubyte(stream)

        return CloseWindowServerPacket(window_id)