@EventHandler(priority = EventPriority.HIGHEST) public void onEntityDamage(EntityDamageEvent event) { if (!ModDamage.isEnabled || event.isCancelled()) return; if (!event.isCancelled() && (event.getEntity() instanceof LivingEntity)) { EventData data = getEventData(event); if (data != null) { runRoutines(data); double newDamage = data.get(Double.class, data.start + 5); event.setCancelled(data.get(Boolean.class, data.start + data.objects.length - 1)); if (event.getDamage() != newDamage && newDamage <= 0) event.setCancelled(true); event.setDamage(newDamage); } else ModDamage.printToLog( Level.SEVERE, "[" + Bukkit.getPluginManager().getPlugin("ModDamage").getDescription().getName() + "] Error! Unhandled damage event. Is Bukkit and ModDamage up-to-date?"); } }