Example #1
0
  @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?");
    }
  }