From 6abc1ef30ad1ab50642b53fc8f54c05e1e3a0999 Mon Sep 17 00:00:00 2001 From: Reider745 <70357814+Reider745@users.noreply.github.com> Date: Mon, 20 Nov 2023 09:45:56 +0300 Subject: [PATCH] ZotCoreLoader MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - добавлена поддержка кэлбека EntityHurt - добавлена поддержка кэлбека PlayerAttack(нужен для ToolAPI) --- .../com/reider745/event/EventListener.java | 19 +++++++++++++++++++ .../innercore/api/NativeCallback.java | 4 ---- 2 files changed, 19 insertions(+), 4 deletions(-) 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) {