diff --git a/src/main/java/com/reider745/event/EventListener.java b/src/main/java/com/reider745/event/EventListener.java index 8be39f1c..b3c84112 100644 --- a/src/main/java/com/reider745/event/EventListener.java +++ b/src/main/java/com/reider745/event/EventListener.java @@ -2,11 +2,14 @@ package com.reider745.event; import cn.nukkit.Player; import cn.nukkit.block.Block; +import cn.nukkit.entity.Entity; import cn.nukkit.event.Event; import cn.nukkit.event.EventHandler; import cn.nukkit.event.Listener; import cn.nukkit.event.block.BlockBreakEvent; import cn.nukkit.event.block.BlockPlaceEvent; +import cn.nukkit.event.entity.EntityDamageByChildEntityEvent; +import cn.nukkit.event.entity.EntityDamageEvent; import cn.nukkit.event.entity.ProjectileHitEvent; import cn.nukkit.event.level.ChunkPopulateEvent; import cn.nukkit.event.player.PlayerEatFoodEvent; @@ -80,6 +83,22 @@ public class EventListener implements Listener { case Level.DIMENSION_NETHER -> CallbackHelper.applyRegion(CallbackHelper.Type.GENERATION_CHUNK_NETHER, level, apply); case Level.DIMENSION_THE_END -> CallbackHelper.applyRegion(CallbackHelper.Type.GENERATION_CHUNK_END, level, apply); } + } + @EventHandler + public void damagetEntity(EntityDamageEvent event){ + Entity self = event.getEntity(); + + Entity attacker; + if(event instanceof EntityDamageByChildEntityEvent child) { + attacker = child.getChild(); + preventedCallback(event, () -> + NativeCallback.onEntityAttacked(self.getId(), attacker == null ? -1 : attacker.getId())); + }else { + attacker = null; + } + + preventedCallback(event, () -> + NativeCallback.onEntityHurt(self.getId(), attacker == null ? -1 : attacker.getId(), event.getCause().ordinal(), (int) event.getDamage() * 2, event.canBeReducedByArmor(), event.isBreakShield()));//последний 2 boolean тут врменн } } \ No newline at end of file diff --git a/src/main/java/com/zhekasmirnov/innercore/api/NativeCallback.java b/src/main/java/com/zhekasmirnov/innercore/api/NativeCallback.java index 457eeb81..087dd9e3 100644 --- a/src/main/java/com/zhekasmirnov/innercore/api/NativeCallback.java +++ b/src/main/java/com/zhekasmirnov/innercore/api/NativeCallback.java @@ -789,10 +789,6 @@ public class NativeCallback { Callback.invokeAPICallback("EntityHurt", attacker, entity, damageValue, damageType, someBool1, someBool2); NetworkPlayerRegistry.getSingleton().onEntityHurt(entity, attacker, damageType, damageValue, someBool1, someBool2); - - if (entity == NativeAPI.getPlayer()) { - ArmorRegistry.onHurt(attacker, damageValue, damageType, someBool1, someBool2); - } } public static void onThrowableHit(long projectile, float hitX, float hitY, float hitZ, long entity, int blockX, int blockY, int blockZ, int blockSide, int itemId, int itemCount, int itemData, long itemExtra) {