Помощь по NBT

Да, кидаю item.getTagCompound(). Но он не null, ибо в конструкторе он присваивается этому предмету если его нету. Присваивается только один раз, при первом открытии
 
Задебажил. Почему-то эта конструкция не работает:
Код:
if (!i.hasTagCompound()) {i.setTagCompound(new NBTTagCompound()); System.out.println("NEW TAG FOR ITEM IS SET");}
Предмет один и тот же в руках держал. Но почему то hasTagCompound() всегда дает false. Почему? Я ж его устанавливал
 
Да, потоки разные. Их 3 - 5 вызывается за раз. Только что это меняет? И еще я заметил что запись и чтение происходит до того, как в конструкторе я присвою предмету таг
 
Ну, я тоже очень долго парился с этим. Пробуй в onUpdate предмета тег делать
 
Да, таг устанавливается. Ток всё равно не работает запись/чтение. Все строчки вроде норм прорабатывают. Может данные в тегах не те или что-то еще. Ща буду еще дебажить
[merge_posts_bbcode]Добавлено: 12.03.2016 17:05:25[/merge_posts_bbcode]

Задебажил. Проблема в setInventorySlotContents, он не работает у меня. Я даж не знаю как его реализовывать. Вот как у меня он реализован (написал его, просто подумав что он делает):
Код:
    @Override
    public void setInventorySlotContents(int index, ItemStack stack) {
        if (stack != null && stack.stackSize > getInventoryStackLimit())
            stack.stackSize = getInventoryStackLimit();
        inventory[index] = stack;

        markDirty();
    }
Не знаю что за markDirty. Но эт вроде ток для блоков :/ Поэтому он у меня пустой
 
Он помечает грязным, т.е. сигнал к сохранению. Я тебе код в лс кинул
 
Я посмотрел, переписал markDirty и ничего всё равно не работает. Ладн, нафиг этот NBT) Потом весь Inventory перепишу
 
Назад
Сверху