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

Помогите Удаление "именно" одного предмета

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

  1. Автор темы
    JustBlender

    JustBlender Старожил Девелопер Пользователь

    Баллы:
    123
    Skype:
    justblender
    Имя в Minecraft:
    JustBlender
    Приветствую вас! Я веселый нубик Bukkit-а! И господа вопрос: как совершить удаление "именно" одного предмета? getInventory().remove пробовал, но удаляет все предметы (в моем случае кремень)
     
  2. Хостинг MineCraft
    <
  3. _Rufu5_

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

    Баллы:
    48
    Имя в Minecraft:
    _Rufu5_
    перебирать весь инвентароь и сравнивать с кремне если кремень то полючать колово и вычитать а после выходить из цикла
     
  4. Автор темы
    JustBlender

    JustBlender Старожил Девелопер Пользователь

    Баллы:
    123
    Skype:
    justblender
    Имя в Minecraft:
    JustBlender
    Как мне перебрать весь инвентарь? Каким методом? Если можно, кусочек кода
     
  5. Автор темы
    JustBlender

    JustBlender Старожил Девелопер Пользователь

    Баллы:
    123
    Skype:
    justblender
    Имя в Minecraft:
    JustBlender
    Очень у тебя там все хитро и запутанно ;) Я так полагаю, главное в коде это?:
    Код:
                ItemStack slot = inv.getItem(i);
                if (slot == null) continue;
                if (!compareItemName(slot, name)) continue;
                if (id != slot.getTypeId()) continue;
                if ((data>0)&&(data!=slot.getDurability())) continue;
                int slotamount = slot.getAmount();
                if (slotamount == 0) continue;
                if (slotamount<=left) {
                    left = left - slotamount;
                    inv.setItem(i, null);
     
  6. Автор темы
    JustBlender

    JustBlender Старожил Девелопер Пользователь

    Баллы:
    123
    Skype:
    justblender
    Имя в Minecraft:
    JustBlender
    Запутали вы совсем меня:(
     
  7. StealerSlain

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

    Баллы:
    88
    Имя в Minecraft:
    StealerSlain
    Странно, а у Вас вот это не работает разве?

    player.getInventory().removeItem(new ItemStack(Material.FLINT, 1));
     
    Bars нравится это.
  8. Автор темы
    JustBlender

    JustBlender Старожил Девелопер Пользователь

    Баллы:
    123
    Skype:
    justblender
    Имя в Minecraft:
    JustBlender
    Попробую, пробовал другим вариантом, без создавания ItemStack[DOUBLEPOST=1389119669,1389119229][/DOUBLEPOST]
    Все вроде бы работает (за что спасибо), но у меня кремень работают как патроны для оружия (то есть когда я стреляют один раз из мотыги, мне нужно удалить один кремень), он удаляется, но чтобы увидеть результат нужно кликнуть правой кнопкой мыши по кремню
     
  9. StealerSlain

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

    Баллы:
    88
    Имя в Minecraft:
    StealerSlain
    ах да, забыл.
    player.updateInventory();
    хоть метод и deprecated, но будет работать.
     
    ПриветОтЛайки нравится это.
  10. Автор темы
    JustBlender

    JustBlender Старожил Девелопер Пользователь

    Баллы:
    123
    Skype:
    justblender
    Имя в Minecraft:
    JustBlender
    Ах да, спасибо тебе большое! ;)
     
  11. Автор темы
    JustBlender

    JustBlender Старожил Девелопер Пользователь

    Баллы:
    123
    Skype:
    justblender
    Имя в Minecraft:
    JustBlender
    Странно... У меня он корректно работает, даже несколько раз тестировал... Посмотрим, оставлю себе на заметку
     
  12. Den_Abr

    Den_Abr Старожил Девелопер Пользователь

    Баллы:
    173
    Skype:
    Den_Abr
    Имя в Minecraft:
    Den_Abr
    Странно. Я его активно применяю, этот метод даже пару дюпоф фиксит
     

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