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

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

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

Статус темы:
Закрыта.
  1. Автор темы
    DevAngel

    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;
        }
    крашит мой клиент.

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

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

    Баллы:
    66
    Имя в Minecraft:
    LifeAngel
    Выдает такую ошибку

    Код:
    [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
    
    Это результат вывода это строкой

    Код:
    System.out.println(par5Entity.getItemInUse());
    Вопрос - почему null?
     
  4. Agravaine

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

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

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

    Баллы:
    66
    Имя в Minecraft:
    LifeAngel
    Такого метода нет

    Сейчас еще поиграюсь и отпишусь
    [​IMG][DOUBLEPOST=1448113079,1448112314][/DOUBLEPOST]Все, все заработало. Спасибо
    Код:
    if(par5Entity.getCurrentEquippedItem().getItem() == Items.apple){
    
                    System.out.println("Sucsess");
    
                }
     
    Последнее редактирование: 21 ноя 2015
Статус темы:
Закрыта.

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