Баг майна что ли...

1,015
9
102
Кр, спасите) Если я запускаю майн в debug mode и с точками остановок в методах записи и чтения NBT, то у меня всё записывается и читается, а если я уберу эти точки остановок, то запись и чтение не будет работать. У кого-нибудь такое было? Что это вообще за хрень?
 
Вот код:
Код:
    private void readFromNBT()
    {
        if(!storage.hasTagCompound()){storage.setTagCompound(new NBTTagCompound());}
        else
        {
            NBTTagList list = storage.getTagCompound().getTagList("Items", 10);
            for(int i = 0; i < list.tagCount(); i++)
            {
                NBTTagCompound tag = list.getCompoundTagAt(i);
                int j = tag.getByte("Slot") & 255;
                if (j >= 0 && j < this.inventory.length)
                {
                    this.inventory[j] = ItemStack.loadItemStackFromNBT(tag);
                }
            }
        }
    }
    
    private void writeToNBT()
    {
        NBTTagList list = new NBTTagList();
        for(int i = 0; i < inventory.length; i++)
        {
            if(getStackInSlot(i) != null)
            {
                NBTTagCompound tag = new NBTTagCompound();
                tag.setByte("Slot",(byte) i);
                getStackInSlot(i).writeToNBT(tag);
                list.appendTag(tag);
            }
        }
        storage.getTagCompound().setTag("Items", list);
    }
Но я я проверял, он работает, но только если я установлю точки остановки в debug mode, если их нету, то он не работает, очень странно.
 
Я решил проблему. У кого так же будет, просто в некоторых местах усыпите поток на 10 ms
 
Ну а что ты тогда предлагаешь? Я даже не знаю в чем проблема. Скорее всего что то не успевает инициализироватся...
[merge_posts_bbcode]Добавлено: 13.03.2016 23:06:21[/merge_posts_bbcode]

И не говори что дебажить не умею. Я как раз из за дебага нашел проблему. И что бы найти причину, нужно просмотреть почти все трасировки, ибо какой-то поток что-то не успевает
 
Говнокод иногда - хорошо. Ибо искать я буду не один день
[merge_posts_bbcode]Добавлено: 13.03.2016 23:13:24[/merge_posts_bbcode]

Хотя, нет, ты прав. Я ща попробовал по открывать контейнер много раз, и если часто кликать, то всё равно не успевает. Так что лучше разобраться в чем проблема
 
Залей весь код. Так будет ясно, ошибся ты, либо это баг-невидимка
 
Вот я дебил) Когда дебажил, не пропускал один кое-какой поток, а когда прекратил дебажить я заглушку не убрал. Вот из за неё был баг. Так что я её убрал, и всё заработало
 
Назад
Сверху