@EventHandler public void onEntityDamage(EntityDamageByEntityEvent event) { if (event.getEntity().getType().equals(EntityType.PLAYER) && event.getDamager().getType().equals(EntityType.PLAYER)) { Player player = (Player)event.getEntity(); Player damager = (Player)event.getDamager(); event.setCancelled(true); double damageFinal = event.getFinalDamage(); Bukkit.getScheduler().runTaskAsynchronously(app, () -> { double health = player.getHealth() - damageFinal; if (health < 0.0) { health = 0.1; // Want to keep them alive, ignore } player.setHealth(health); }); Combat.sendDamageAnim(event.getDamager(), player); Combat.applyKnockback(player, damager, 0); } }