Помогите Номер слота предмета в PlayerItemDamageEvent

posix

Активный участник
Баллы
61
Есть необходимость заменить один предмет на другой в PlayerItemDamageEvent, думаю это будет так:
Код:
player.getInventory().setItem(номер_слота, item);
Как узнать номер слота для event.getItem() в PlayerItemDamageEvent?

Заранее благодарен за любую помощь.
 
20180214141522%21Items_slot_number.png
 
Это я знаю. Мне нужен метод, которому я скормлю ItemStack и Player, а на выходе получу номер слота.

Причем мне нужен конкретный предмет, который тикнул в ивенте. В инвентаре пользователя могут быть несколько таких же предметов, а мне нужен тот самый.
 
Код:
    public int getSlot(Player player, ItemStack item) {
        for (int i = 0; i < player.getInventory().getSize(); i++) {

            if (player.getInventory().getItem(i).equals(item)) {
                return i;
                // player.getInventory().setItem(i, itemStack);
            }
        }
        return -1;
    }
Так? Есть мысль что при наличии двух одинаковых айтемов в инвентаре, выстрелит первый из них.
 
Есть необходимость заменить один предмет на другой в PlayerItemDamageEvent, думаю это будет так:
Код:
player.getInventory().setItem(номер_слота, item);
Как узнать номер слота для event.getItem() в PlayerItemDamageEvent?

Заранее благодарен за любую помощь.
Ради интереса, для чего ты меняешь предмет при изменении прочности? Думаю, есть ещё варианты решения.
 
Cool_boy, при износе я обновляю кстомный nbt на предмете, а на определенном проценте износа предмет должен меняться на предмет другого типа.

Zнамя Юности, а это как? Видимо я что-то не знаю...

Еще хотел заметить, что предмет также может быть броней, одетой в соответствующие слоты.
 
Cool_boy, при износе я обновляю кстомный nbt на предмете, а на определенном проценте износа предмет должен меняться на предмет другого типа.

Zнамя Юности, а это как? Видимо я что-то не знаю...

Еще хотел заметить, что предмет также может быть броней, одетой в соответствующие слоты.
ну берешь ItemStack item = e.getItem();
и делаешь updateNBT(item); или типа того смотря какой у тебя там для этого метод.
проверяешь на нужное тебе условие и делаешь item.setType() если требуется.
 
Назад
Верх