Отмена эвента съедания еды

Сообщения
48
Лучшие ответы
0
Реакции
7
Версия Minecraft
1.12.2
Можно отменить эвент съедания еды (не ванильной)?
В ItemFood нашел это:
Java:
    public ItemStack onItemUseFinish(ItemStack stack, World worldIn, EntityLivingBase entityLiving)
    {
        if (entityLiving instanceof EntityPlayer)
        {
            EntityPlayer entityplayer = (EntityPlayer)entityLiving;
            entityplayer.getFoodStats().addStats(this, stack);
            worldIn.playSound((EntityPlayer)null, entityplayer.posX, entityplayer.posY, entityplayer.posZ, SoundEvents.ENTITY_PLAYER_BURP, SoundCategory.PLAYERS, 0.5F, worldIn.rand.nextFloat() * 0.1F + 0.9F);
            this.onFoodEaten(stack, worldIn, entityplayer);
            entityplayer.addStat(StatList.getObjectUseStats(this));

            if (entityplayer instanceof EntityPlayerMP)
            {
                CriteriaTriggers.CONSUME_ITEM.trigger((EntityPlayerMP)entityplayer, stack);
            }
        }

        stack.shrink(1);
        return stack;
    }
Это вроде сам код съедания еды.
В игре ведь есть можно когда игрок голоден, и мне нужно сделать что-то подобное: чтобы есть можно было при определенных условиях.
Создавать свой класс еды, и потом наследоваться от него?
 

Agravaine

Модератор
Сообщения
5,082
Лучшие ответы
233
Реакции
874
Лови PlayerUseItemEvent.Start, проверяй что предмет еда и не выполняется твое условие - отменяй событие.
 

Agravaine

Модератор
Сообщения
5,082
Лучшие ответы
233
Реакции
874
Я на 1.7.10 смотрел, поищи что-то подобное, может по-другому называется...
 
Сообщения
48
Лучшие ответы
0
Реакции
7
А, с 1.9 PlayerUseItemEvent переименован в LivingEntityUseItemEvent
 
Сверху