Помогите Может не в тот раздел.. Проблема с getItemInUse

Статус
Закрыто для дальнейших ответов.

DevAngel

Активный участник
Пользователь
Баллы
66
Имя в Minecraft
LifeAngel
Пишу мод. Часть моего кода, а именно,
Код:
public boolean onBlockActivated(World par1World, int par2X, int par3Y, int par4Z, EntityPlayer par5Entity, int par6, float par7, float par8, float par9)
    {
            if (par5Entity.getItemInUse().getItem().equals(Items.apple)) {
                par1World.setBlock(par2X, par3Y, par4Z, Blocks.cake);
            }
        return true;
    }
крашит мой клиент.

В чем суть - игрок кликает правой кнопкой мыши на мой блок и если он кликнул яблоком - блок заменяется на торт.
Что я делаю не так?
 
Выдает такую ошибку

Код:
[14:48:35] [Client thread/INFO] [STDOUT]: [com.angel.angelfly.block.BasicBlock:onBlockActivated:42]: 1   java.lang.NullPointerException
[14:48:35] [Client thread/INFO] [STDOUT]: [com.angel.angelfly.block.BasicBlock:onBlockActivated:44]: null

[com.angel.angelfly.block.BasicBlock:onBlockActivated:44]: null

Это результат вывода это строкой

Код:
System.out.println(par5Entity.getItemInUse());

Вопрос - почему null?
 
А потому что par5Entity.getItemInUse() возвращает предмет, который ИСПОЛЬЗУЕТСЯ в данный момент. То бишь когда зажимаешь ПКМ и что-то происходит(например, лук).
А тебе нужно par5Entity.getCurrentItem(). И не надо сравнивать через equals, == отлично подходит.
 
А потому что par5Entity.getItemInUse() возвращает предмет, который ИСПОЛЬЗУЕТСЯ в данный момент. То бишь когда зажимаешь ПКМ и что-то происходит(например, лук).
А тебе нужно par5Entity.getCurrentItem(). И не надо сравнивать через equals, == отлично подходит.
Такого метода нет

Сейчас еще поиграюсь и отпишусь
6eo1ih5iojvf.png

Все, все заработало. Спасибо
Код:
if(par5Entity.getCurrentEquippedItem().getItem() == Items.apple){

                System.out.println("Sucsess");

            }
 
Последнее редактирование:
Статус
Закрыто для дальнейших ответов.
Назад
Верх