Капа выдает ошибку

Версия Minecraft
1.12.2
516
11
39
Всем привет.Сделал что-то типо крита через капу.Когда наношу урон выдает ошибку.
Java:
    @SubscribeEvent
    public void CritHurt(LivingHurtEvent e) {
        Entity from = e.getSource().getImmediateSource();
        EntityLivingBase to = e.getEntityLiving();
        if(from instanceof EntityPlayer) {
            IStatsHandler capa = (IStatsHandler)e.getEntity().getCapability(StatsProvider.STATS_CAP, null);
            if(Math.random()<=capa.getChanceCrit()) {//32 строчка
                float am = e.getAmount()*capa.getDamageCrit();
                e.setAmount(am);
                System.out.println(am);
                }
        }
            }
Java:
Caused by: java.lang.NullPointerException
    at ru.lnti.ElterionRPG.events.eventStats.CritHurt(eventStats.java:32) ~[eventStats.class:?]
    at net.minecraftforge.fml.common.eventhandler.ASMEventHandler_22_eventStats_CritHurt_LivingHurtEvent.invoke(.dynamic) ~[?:?]
    at net.minecraftforge.fml.common.eventhandler.ASMEventHandler.invoke(ASMEventHandler.java:90) ~[ASMEventHandler.class:?]
    at net.minecraftforge.fml.common.eventhandler.EventBus.post(EventBus.java:182) ~[EventBus.class:?]
    at net.minecraftforge.common.ForgeHooks.onLivingHurt(ForgeHooks.java:590) ~[ForgeHooks.class:?]
    at net.minecraft.entity.EntityLivingBase.damageEntity(EntityLivingBase.java:1565) ~[EntityLivingBase.class:?]
    at net.minecraft.entity.EntityLivingBase.attackEntityFrom(EntityLivingBase.java:1032) ~[EntityLivingBase.class:?]
    at net.minecraft.entity.monster.EntityMob.attackEntityFrom(EntityMob.java:80) ~[EntityMob.class:?]
    at net.minecraft.entity.monster.EntityZombie.attackEntityFrom(EntityZombie.java:259) ~[EntityZombie.class:?]
    at net.minecraft.entity.player.EntityPlayer.attackTargetEntityWithCurrentItem(EntityPlayer.java:1438) ~[EntityPlayer.class:?]
    at net.minecraft.entity.player.EntityPlayerMP.attackTargetEntityWithCurrentItem(EntityPlayerMP.java:1572) ~[EntityPlayerMP.class:?]
    at net.minecraft.network.NetHandlerPlayServer.processUseEntity(NetHandlerPlayServer.java:1140) ~[NetHandlerPlayServer.class:?]
    at net.minecraft.network.play.client.CPacketUseEntity.processPacket(CPacketUseEntity.java:94) ~[CPacketUseEntity.class:?]
    at net.minecraft.network.play.client.CPacketUseEntity.processPacket(CPacketUseEntity.java:15) ~[CPacketUseEntity.class:?]
    at net.minecraft.network.PacketThreadUtil$1.run(PacketThreadUtil.java:21) ~[PacketThreadUtil$1.class:?]
    at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) ~[?:1.8.0_201]
    at java.util.concurrent.FutureTask.run(Unknown Source) ~[?:1.8.0_201]
    at net.minecraft.util.Util.runTask(Util.java:53) ~[Util.class:?]
    ... 5 more
 
516
11
39
Сделал так,вроде работает

Java:
    @SubscribeEvent
    public void CritHurt(LivingHurtEvent e) {
        Entity from = e.getSource().getImmediateSource();
        if(from instanceof EntityPlayer) {
            EntityPlayer player = ((EntityPlayer)from);
            IStatsHandler capa = (IStatsHandler)player.getCapability(StatsProvider.STATS_CAP, null);
            
            if(Math.random()<=capa.getChanceCrit()) {
                float am = (float)e.getAmount()*(float)capa.getDamageCrit();
                e.setAmount((float)am);
                System.out.println(am);
                
        
            }
        }
    }
 
Сверху