/** * Tag creepers hurt by players. * * <p>Only those creepers hurt recently by players will have special drops. */ @EventHandler(ignoreCancelled = true) public void onCreeperDamage(EntityDamageByEntityEvent event) { if (!CONFIG.isAffectedWorld(event)) { return; } if (event.getEntityType() == EntityType.CREEPER) { boolean isPlayerAttack = false; if (event.getDamager() instanceof Player) { isPlayerAttack = true; } else if (event.getDamager() instanceof Projectile) { Projectile projectile = (Projectile) event.getDamager(); if (projectile.getShooter() instanceof Player) { isPlayerAttack = true; } } // Tag creepers hurt by players with the damage time stamp. if (isPlayerAttack) { Entity creeper = event.getEntity(); creeper.setMetadata( PLAYER_DAMAGE_TIME_KEY, new FixedMetadataValue(this, new Long(creeper.getWorld().getFullTime()))); } } }
@EventHandler(priority = EventPriority.HIGHEST) public void onEntityDamageByEntity(EntityDamageByEntityEvent ede) { List<EntityType> canDamageTypes = new ArrayList<EntityType>(); canDamageTypes.add(EntityType.PLAYER); if (Main.getInstance().getServer().getPluginManager().isPluginEnabled("AntiAura")) { canDamageTypes.add(EntityType.SQUID); } if (canDamageTypes.contains(ede.getEntityType())) { return; } Game game = Main.getInstance().getGameManager().getGameByLocation(ede.getEntity().getLocation()); if (game == null) { return; } if (game.getState() == GameState.STOPPED) { return; } ede.setCancelled(true); }
// ================================================================================================ @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) public void onEntityDamageByEntity(EntityDamageByEntityEvent event) { if (Arctica.debug) { if (event.getDamager() instanceof Player) { if (event.getEntityType() == EntityType.HORSE) { Horse horse = (Horse) event.getEntity(); Player damager = (Player) event.getDamager(); Arctica.log.info( Arctica.logPrefix + "Health: " + String.format("%1$.2f", horse.getHealth()) + " HP of " + String.format("%1$.2f", horse.getMaxHealth()) + " HP"); damager.sendMessage( "Health: " + String.format("%1$.2f", horse.getHealth()) + " HP of " + String.format("%1$.2f", horse.getMaxHealth()) + " HP"); } } } }