Хостинг серверов Minecraft playvds.com
  1. Вы находитесь в русском сообществе Bukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на русский язык плагины наших собратьев из других стран.
    Скрыть объявление

Помогите Черная магия.. При установке ItemStack в инвентарь, у него очищается DATA...

Тема в разделе "Разработка плагинов для новичков", создана пользователем Mr_RoboMan, 7 окт 2016.

Статус темы:
Закрыта.
  1. Автор темы
    Mr_RoboMan

    Mr_RoboMan Старожил Пользователь

    Баллы:
    123
    Я серьезно не могу найти другого объяснения кроме как черная магия.
    Есть ItemStack (ну например тонкая стеклянная панель), у нее есть DATA (т.е. ее цвет (0-15)), проверяю эту самую дату ДО установки в инвентарь - дата есть.
    Проверяю дату ПОСЛЕ установки в инвентарь - дата пропала..
    Ну и соответственно панели бесцветные...
    Чего я не понимаю в этом мире?
    Код:
            for (int i = 0; i < 10; i++) {
    
                ItemStack item = item_iterator.next();
                System.out.println("ITEM TYPE = " + item.getType().name() + ", DATA = " + item.getData().getData());
                inventory.setItem(i, item);
                ItemStack setted_item = inventory.getItem(i);
                System.out.println("SETTED ITEM = " + setted_item.getType().name() + ", DATA = " + setted_item.getData().getData());
            }
    [​IMG]
     
  2. Хостинг MineCraft
    <
  3. slavik123123123

    slavik123123123 Старожил Пользователь

    Баллы:
    143
    Имя в Minecraft:
    Leymooooooooooo
    Ну а если новый итемстак создавать?
    new ItemStack(item.getType(), item.getAmout(), (short) item.getData())
     
  4. Автор темы
    Mr_RoboMan

    Mr_RoboMan Старожил Пользователь

    Баллы:
    123
    Попробую, но это еще и ИтемМету прийдется вручную переносить, и флаги..
     
  5. slavik123123123

    slavik123123123 Старожил Пользователь

    Баллы:
    143
    Имя в Minecraft:
    Leymooooooooooo
    Ну а если ItemStack it = item.clone;
    it.setDurability(item.getData);
     
  6. Автор темы
    Mr_RoboMan

    Mr_RoboMan Старожил Пользователь

    Баллы:
    123
    Не помогло...
    Это реально черная магия..
    Код:
            for (int i = 0; i < 10; i++) {
                ItemStack item = item_iterator.next();
                ItemStack clone = item.clone();
                clone.setData(item.getData());
                System.out.println("ITEM TYPE = " + clone.getType().name() + ", DATA = " + clone.getData().getData());
                inventory.setItem(i, clone);
                ItemStack setted_item = inventory.getItem(i);
                System.out.println("SETTED ITEM = " + setted_item.getType().name() + ", DATA = " + setted_item.getData().getData());
            }
    
    Вывод в консоли тот что и в шапке, сначало в предмете DATA есть, а вот в том предметы который в инвентаре - ее уже нет...[DOUBLEPOST=1475828736,1475828591][/DOUBLEPOST]При чем, такой прикол, очищается только DATA, например DISPLAY_NAME остается, все спокойно...[DOUBLEPOST=1475828766][/DOUBLEPOST]Может главных колдунов позвать? :D[DOUBLEPOST=1475829043][/DOUBLEPOST]@Shevchik
    @Dereku
    @Reality_SC
    @CoolBoy
    @alexandrage

    Это... Драсти :D
     
  7. CoolBoy

    CoolBoy Активный участник Пользователь

    Баллы:
    96
    Skype:
    thecoolboy2070
    Имя в Minecraft:
    CoolBoy
    Приеду домой - проверю, если кто-то раньше в этом не разберётся.
    Под какую версию пишешь?

    У тебя в цикле ещё и итератор? К чему он там? И можно весь кусок кода, который хоть как-либо взаимодействует с панелями?
     
  8. Автор темы
    Mr_RoboMan

    Mr_RoboMan Старожил Пользователь

    Баллы:
    123
    1.10.2[DOUBLEPOST=1475830645,1475830374][/DOUBLEPOST]
    Ну, итератор там для удобства типо..
    И вроде как с этими предметами я больше негде не взаимодействую (только через какое-то время просто убираю их из инвентаря),
    Ну а полный код туто..[DOUBLEPOST=1475830768][/DOUBLEPOST]Ну и с итератором и прочим там все нормально, я там очень глубоко "копал", аж до самого момента когда ItemStack создается (по параметрам из файла), и DATA везде правильная, но вот именно при установке в инвентарь DATA теряется...
     
  9. slavik123123123

    slavik123123123 Старожил Пользователь

    Баллы:
    143
    Имя в Minecraft:
    Leymooooooooooo
    Так ты setDurability делай а не setData
     
  10. Автор темы
    Mr_RoboMan

    Mr_RoboMan Старожил Пользователь

    Баллы:
    123
    А при чем тут Durability то? Это же прочность..
     
  11. GoodCoder

    GoodCoder Активный участник Пользователь

    Баллы:
    76
    Это одно и то же. У одних предметов это значение используется для прочности, у других - для цвета и т.д.
    getData() - устаревший метод. Используй getDurability() для получения прочности.
     
  12. Автор темы
    Mr_RoboMan

    Mr_RoboMan Старожил Пользователь

    Баллы:
    123
    Ммм... Ясненько... Буду пытаться шаманить...
     
  13. Shevchik

    Shevchik Старожил Пользователь

    Баллы:
    173
    Имя в Minecraft:
    _Shevchik_
    Чтото происходит при конвертации баккитовского итемстака в нативный. Для начала удали все остальные плагины.
     
  14. Автор темы
    Mr_RoboMan

    Mr_RoboMan Старожил Пользователь

    Баллы:
    123
    Так других плагинов и не стоит, кроме моих..
    Ну я уже решил впринципе тем что вместо getData/setData использую getDurability/setDurability
     
  15. CoolBoy

    CoolBoy Активный участник Пользователь

    Баллы:
    96
    Skype:
    thecoolboy2070
    Имя в Minecraft:
    CoolBoy
    И работает?
     
  16. Автор темы
    Mr_RoboMan

    Mr_RoboMan Старожил Пользователь

    Баллы:
    123
    В том то и прикол, что да..
     
  17. CoolBoy

    CoolBoy Активный участник Пользователь

    Баллы:
    96
    Skype:
    thecoolboy2070
    Имя в Minecraft:
    CoolBoy
    Закрывай тогда :)
     
  18. Автор темы
    Mr_RoboMan

    Mr_RoboMan Старожил Пользователь

    Баллы:
    123
    Ой, ну ладно, уговорил :3
     
Статус темы:
Закрыта.

Поделиться этой страницей