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

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

Discussion in 'Разработка плагинов для новичков' started by JustBlender, Jan 7, 2014.

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

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

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

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

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

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

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

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

    Trophy Points:
    123
    Skype:
    justblender
    Имя в Minecraft:
    JustBlender
    Очень у тебя там все хитро и запутанно ;) Я так полагаю, главное в коде это?:
    Code:
                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 Старожил Девелопер Пользователь

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

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

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

    player.getInventory().removeItem(new ItemStack(Material.FLINT, 1));
     
    Bars likes this.
  8. Автор темы
    JustBlender

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

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

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

    Trophy Points:
    88
    Имя в Minecraft:
    StealerSlain
    ах да, забыл.
    player.updateInventory();
    хоть метод и deprecated, но будет работать.
     
  10. Автор темы
    JustBlender

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

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

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

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

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

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

Share This Page