ZotCoreLoader

- добавлена поддержка кэлбека EntityHurt
- добавлена поддержка кэлбека PlayerAttack(нужен для ToolAPI)
This commit is contained in:
Reider745
2023-11-20 09:45:56 +03:00
parent a12a7d520e
commit 6abc1ef30a
2 changed files with 19 additions and 4 deletions
@@ -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 тут врменн
}
}
@@ -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) {