Выдать дамаг предмету в BlockEntity

Версия Minecraft
1.19.2
API
Forge
11
1
0
Здраствуйте,

я создал для своего мода генератор переменного тока. Он делает энергию тем что вращает магнитное либо катушку, точно не помню что он вращает. Короче так как я не смог реализовать провода я придумал что мои генераторы будут создавать энергетический рубин после того как накопят нужное количество энергии. И можно просто положить всё что надо в мой генератор и он бесконечное будет копить 120к энергии и давать рубины, но это как то читерно поэтому я решил сделать так что компоненты будут получать урон тем самым в конце концов окончательно исчезать. Только вот у меня это не как не получается.
Я пытался использовать itemhandler.getStackInSlot
Java:
pEntity.itemhandler.getStackInSlot(0).getItem == ModItems.BEREBEREBERE.get().getDamage
и много других методов. Пробовал не писать getItem, пробовал getDamage, getDamageValue, но все попытки четны. Метод getDamage наверно нужный метод. Но он просит ItemStack LivingEntity и какой то onBroken и с ItemStack всё понятно, но Living Entity и onBroken меня путают. Спасибо за любую помощь.
 
Решение
Если у тебя не Container, то тебе нужна своя реализация дамага и поломки стака.

Что-то вроде такого:
    void damageItem(int slot) {
        ItemStack stack = handler.getStackInSlot(slot);
        if(stack.getDamage() + 1 >= stack.getMaxDamage())
            stack = ItemStack.EMPTY;
        else
            stack.setDamage(stack.getDamage() + 1);
        handler.setStackInSlot(slot, stack);
    }
1,383
115
244
Если у тебя не Container, то тебе нужна своя реализация дамага и поломки стака.

Что-то вроде такого:
    void damageItem(int slot) {
        ItemStack stack = handler.getStackInSlot(slot);
        if(stack.getDamage() + 1 >= stack.getMaxDamage())
            stack = ItemStack.EMPTY;
        else
            stack.setDamage(stack.getDamage() + 1);
        handler.setStackInSlot(slot, stack);
    }
 
Сверху