предмет в инвентаре и его удаление из инвентаря

Версия Minecraft
1.12.2
Всем привет. Делаю проверку на то, что определённый айтем лежит в инвентаре игрока и удаляю этот предмет

Java:
                if(player.inventory.hasItemStack(new ItemStack(ItemsRegister.ROCKETMODEL)))
                {
                    player.inventory.setItemStack(new ItemStack(ItemsRegister.ROCKETMODEL).EMPTY);
                }

как-то так, но чёт не робит. Где я допустил ошибку? скорее всего в "setItemStack"
 
Решение
А есть ещё способы удаления айтема из инвентаря игрока?
Если ты не можешь найти готовый метод, который там наверняка есть, то можешь написать свой. Всего-то надо пройтись по массиву стаков из инвентаря игрока и сравнить их с тем, что ты хочешь, если все верно, то удалить нужный стак, вызвав setInventorySlotContents(чет в этом духе) для нужного индекса.
Тогда находи нужный стак и либо заменяй его на пустой, либо меняй его размер через shrink()
Допустим я найду нужный стак, изменить его размер не получится, так как кол-во предмета 1. А shrink() вроде уменьшает кол-во до одного, но не убирает. А вот заменить его на пустой можно, только стак выдаёт ошибку, что странно...
 

Eifel

Модератор
1,623
78
608
А есть ещё способы удаления айтема из инвентаря игрока?
Если ты не можешь найти готовый метод, который там наверняка есть, то можешь написать свой. Всего-то надо пройтись по массиву стаков из инвентаря игрока и сравнить их с тем, что ты хочешь, если все верно, то удалить нужный стак, вызвав setInventorySlotContents(чет в этом духе) для нужного индекса.
 
Сверху