getItemUseAction не работает

Версия Minecraft
1.12.2
я захотел сделать предмет типа "бесконечная еда"...что-то попытался...но еда не работает...но сейчас не об этом...с едой как-нибудь потом разберусь...суть моего вопроса в том что анимации поедания даже нету при нажатии на пкм...
Код:

Java:
public static class InfiniFood extends Item {

        public static final String[] ITEM_IN_USE_COUNT = new String[]{"itemInUseCount", "field_71072_f", "g"};
        //public JsonObject json;
        //public JsonElement je;
        //public BufferedReader reader;
        //public InputStream in;
        //public ResourceLocation loc;
        //public Gson gson;

        public InfiniFood() {
            //try {
            //    gson = new Gson();
            //    loc = new ResourceLocation("modid:items.json");
            //    in = Minecraft.getMinecraft().getResourceManager().getResource(loc).getInputStream();
            //    reader = new BufferedReader(new InputStreamReader(in));
            //    je = gson.fromJson(reader, JsonElement.class);
            //    json = je.getAsJsonObject().getAsJsonObject("infinifood");
            //} catch(Exception e) {}
            this.setMaxDamage(0);
            this.setMaxStackSize(1);
            setRegistryName("infinifood");
            setUnlocalizedName("InfiniFood");
            setCreativeTab(CreativeTabs.FOOD);
            //if(json!=null) {
            //    this.setUnlocalizedName(json.get("name").toString());
            //} else {
                //this.setUnlocalizedName("NAME NOT FOUND");
            //}
        }

        public int getDamage(final ItemStack stack) {
            return 32;
        }

        @Override
        public EnumAction getItemUseAction(final ItemStack stack) {
            return EnumAction.EAT;
        }

        public void addInformation(ItemStack par1ItemStack, List par2List) {
            //int i = 0;
            //if(json!=null) {
            //    while(json.getAsJsonObject("lore").has(String.valueOf(i))) {
            //        par2List.add(json.getAsJsonObject("lore").get(String.valueOf(i)).toString());
            //    }
            //}
        }

        public ItemStack onItemUseFinish(final ItemStack itemstack, final World world, final EntityPlayer player) {
            if (player.canEat(false)) {
                //player.func_71008_a(itemstack, this.getDamage(itemstack));
            }
            return itemstack;
        }

        public void onUsingTick(final ItemStack stack, final EntityPlayer player, final int count) {
            super.onUsingTick(stack, player, count);
            final FoodStats foodstat = player.getFoodStats();
            if (count <= 22 & count % 2 == 0) {
                foodstat.addStats(1, 1.0f);
            }
            if (count == 5 && player.canEat(false)) {
                ReflectionHelper.setPrivateValue((Class) EntityPlayer.class, (Object) player, (Object) 20, InfiniFood.ITEM_IN_USE_COUNT);
            }
        }

        public EnumRarity getRarity(final ItemStack itemstack) {
            //if(json!=null) {
            //    return EnumRarity.valueOf(json.getAsJsonObject("rarity").toString());
            //} else {
                return EnumRarity.UNCOMMON;
            //}
        }
    }

искал в интернете...там советовали сделать player.setItemInUse(stack); но это был давний пост,на версию 1.6.2 и в 1.12 нет такого метода как setItemInUse()...
 
1560936139787-png.5633
не помогло,еду всё-равно забрало...

Java:
public static class InfiniFood extends ItemFood {

        public static final String[] ITEM_IN_USE_COUNT = new String[]{"itemInUseCount", "field_71072_f", "g"};
        //public JsonObject json;
        //public JsonElement je;
        //public BufferedReader reader;
        //public InputStream in;
        //public ResourceLocation loc;
        //public Gson gson;

        public InfiniFood() {
            super(1, 1, false);
            //try {
            //    gson = new Gson();
            //    loc = new ResourceLocation("difmcp:items.json");
            //    in = Minecraft.getMinecraft().getResourceManager().getResource(loc).getInputStream();
            //    reader = new BufferedReader(new InputStreamReader(in));
            //    je = gson.fromJson(reader, JsonElement.class);
            //    json = je.getAsJsonObject().getAsJsonObject("infinifood");
            //} catch (Exception e) {
            //}
            this.setMaxDamage(0);
            this.setMaxStackSize(1);
            setRegistryName("infinifood");
            setUnlocalizedName("InfiniFood");
            setCreativeTab(CreativeTabs.FOOD);
            //if (json != null) {
            //    this.setUnlocalizedName(json.get("name").toString());
            //} else {
            //    this.setUnlocalizedName("NAME NOT FOUND");
            //}
        }

        public ItemStack onEaten(ItemStack stack, World world, EntityPlayer player) {
            player.getFoodStats().addStats(this, stack);
            player.playSound(SoundEvents.ENTITY_PLAYER_BURP, 0.5F, 0);
            return stack;
        }

        @Override
        public EnumAction getItemUseAction(final ItemStack stack) {
            return EnumAction.EAT;
        }

        public void addInformation(ItemStack par1ItemStack, List par2List) {
            //int i = 0;
            //if (json != null) {
            //    while (json.getAsJsonObject("lore").has(String.valueOf(i))) {
            //        par2List.add(json.getAsJsonObject("lore").get(String.valueOf(i)).toString());
            //    }
            //}
        }

        public EnumRarity getRarity(final ItemStack itemstack) {
            //if (json != null) {
            //    return EnumRarity.valueOf(json.getAsJsonObject("rarity").toString());
            //} else {
                return EnumRarity.UNCOMMON;
            //}
        }
    }

UPD:если поставить @Override на метод то компилятор жалуется

error: method does not override or implement a method from a supertype
 
Последнее редактирование:
ну тут уже всем понятно что я нуб всех нубов...карочь еррор словил:

error: activeItemStackUseCount has protected access in EntityLivingBase

UPD:Ошибку пофиксил...но я где-то прорукожопился как обычно и еда не работает...типо...какая-то анимация есть...но это явно не анимация еды...также голод не прибавляется...
 
Последнее редактирование:
Вот пример бесконечной еды
Vazkii/Botania
О,какие люди...hohserg...дароу...не знал что ты тут тусуешься...ну кароче...попытался сделать как сделано там...появилась анииация обновления предмета...тоесть он не есться а просто опускается вниз и снова поднимается...также голод не прибавляется
 
7,099
324
1,510
Извини, мы знакомы?
Кода не вижу, по теме помочь не могу. Попробуй целиком скопировать фрукт из ботании и переделать под свое(перед тем как переделывать убедись, что скопированное работает у тебя)
 
Извини, мы знакомы?
Кода не вижу, по теме помочь не могу. Попробуй целиком скопировать фрукт из ботании и переделать под свое(перед тем как переделывать убедись, что скопированное работает у тебя)
Да...были знакомы))ты мне ещё чит подогнал...

Скопировать и проверить работоспособность без переделывания не выйдет...там трехслойное наследование идёт...куча новых методов которых нет в ванили...да и прямо сейчас не проверю...не дома
 
Сверху