@EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true) public void onEntityDamage(final EntityDamageEvent event) { if (event.getEntity() instanceof Player && ess.getUser(event.getEntity()).isGodModeEnabled()) { final Player player = (Player)event.getEntity(); player.setFireTicks(0); player.setRemainingAir(player.getMaximumAir()); event.setCancelled(true); } }
public void attack(EntityDamageEvent source) { if (hasEffect(Effect.FIRE_RESISTANCE) && (source.getCause() == EntityDamageEvent.CAUSE_FIRE || source.getCause() == EntityDamageEvent.CAUSE_FIRE_TICK || source.getCause() == EntityDamageEvent.CAUSE_LAVA)) { source.setCancelled(); } getServer().getPluginManager().callEvent(source); if (source.isCancelled()) { return; } setLastDamageCause(source); setHealth(getHealth() - source.getFinalDamage()); }
/** * Stops spectators from taking damage,<br> * Calls a game's onEntityDamage method. */ @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) public void onEntityDamage(EntityDamageEvent event) { Entity entity = event.getEntity(); if (entity instanceof Player) { String playerName = ((Player) event.getEntity()).getName(); if (ultimateGames.getPlayerManager().isPlayerInArena(playerName)) { Arena arena = ultimateGames.getPlayerManager().getPlayerArena(playerName); arena.getGame().getGamePlugin().onEntityDamage(arena, event); } else if (ultimateGames.getPlayerManager().isPlayerSpectatingArena(playerName)) { event.setCancelled(true); } } else { Arena arena = ultimateGames.getArenaManager().getLocationArena(event.getEntity().getLocation()); if (arena != null) { arena.getGame().getGamePlugin().onEntityDamage(arena, event); } } }
@EventHandler(priority = EventPriority.HIGHEST) public void onEntityDamage(final EntityDamageEvent event) { if (event.isCancelled()) { return; } final Entity target = event.getEntity(); if (target instanceof Villager && prot.getSettingBool(ProtectConfig.prevent_villager_death)) { event.setCancelled(true); return; } final User user = ess.getUser(target); if (event instanceof EntityDamageByBlockEvent) { final DamageCause cause = event.getCause(); if (prot.getSettingBool(ProtectConfig.disable_contactdmg) && cause == DamageCause.CONTACT && !(target instanceof Player && user.isAuthorized("essentials.protect.damage.contact") && !user.isAuthorized("essentials.protect.damage.disable"))) { event.setCancelled(true); return; } if (prot.getSettingBool(ProtectConfig.disable_lavadmg) && cause == DamageCause.LAVA && !(target instanceof Player && user.isAuthorized("essentials.protect.damage.lava") && !user.isAuthorized("essentials.protect.damage.disable"))) { event.setCancelled(true); return; } if (prot.getSettingBool(ProtectConfig.prevent_tnt_explosion) && cause == DamageCause.BLOCK_EXPLOSION && !(target instanceof Player && user.isAuthorized("essentials.protect.damage.tnt") && !user.isAuthorized("essentials.protect.damage.disable"))) { event.setCancelled(true); return; } } if (event instanceof EntityDamageByEntityEvent) { final EntityDamageByEntityEvent edEvent = (EntityDamageByEntityEvent) event; final Entity eAttack = edEvent.getDamager(); final User attacker = ess.getUser(eAttack); // PVP Settings if (target instanceof Player && eAttack instanceof Player && prot.getSettingBool(ProtectConfig.disable_pvp) && (!user.isAuthorized("essentials.protect.pvp") || !attacker.isAuthorized("essentials.protect.pvp"))) { event.setCancelled(true); return; } // Creeper explode prevention if (eAttack instanceof Creeper && prot.getSettingBool(ProtectConfig.prevent_creeper_explosion) && !(target instanceof Player && user.isAuthorized("essentials.protect.damage.creeper") && !user.isAuthorized("essentials.protect.damage.disable"))) { event.setCancelled(true); return; } if (eAttack instanceof Creeper && prot.getSettingBool(ProtectConfig.prevent_creeper_playerdmg) && !(target instanceof Player && user.isAuthorized("essentials.protect.damage.creeper") && !user.isAuthorized("essentials.protect.damage.disable"))) { event.setCancelled(true); return; } if ((event.getEntity() instanceof Fireball || event.getEntity() instanceof SmallFireball) && prot.getSettingBool(ProtectConfig.prevent_fireball_playerdmg) && !(target instanceof Player && user.isAuthorized("essentials.protect.damage.fireball") && !user.isAuthorized("essentials.protect.damage.disable"))) { event.setCancelled(true); return; } if (eAttack instanceof TNTPrimed && prot.getSettingBool(ProtectConfig.prevent_tnt_playerdmg) && !(target instanceof Player && user.isAuthorized("essentials.protect.damage.tnt") && !user.isAuthorized("essentials.protect.damage.disable"))) { event.setCancelled(true); return; } if (edEvent.getDamager() instanceof Projectile && target instanceof Player && ((prot.getSettingBool(ProtectConfig.disable_projectiles) && !(user.isAuthorized("essentials.protect.damage.projectiles") && !user.isAuthorized("essentials.protect.damage.disable"))) || (((Projectile) edEvent.getDamager()).getShooter() instanceof Player && prot.getSettingBool(ProtectConfig.disable_pvp) && (!user.isAuthorized("essentials.protect.pvp") || !ess.getUser(((Projectile) edEvent.getDamager()).getShooter()) .isAuthorized("essentials.protect.pvp"))))) { event.setCancelled(true); return; } } final DamageCause cause = event.getCause(); if (target instanceof Player) { if (cause == DamageCause.FALL && prot.getSettingBool(ProtectConfig.disable_fall) && !(user.isAuthorized("essentials.protect.damage.fall") && !user.isAuthorized("essentials.protect.damage.disable"))) { event.setCancelled(true); return; } if (cause == DamageCause.SUFFOCATION && prot.getSettingBool(ProtectConfig.disable_suffocate) && !(user.isAuthorized("essentials.protect.damage.suffocation") && !user.isAuthorized("essentials.protect.damage.disable"))) { event.setCancelled(true); return; } if ((cause == DamageCause.FIRE || cause == DamageCause.FIRE_TICK) && prot.getSettingBool(ProtectConfig.disable_firedmg) && !(user.isAuthorized("essentials.protect.damage.fire") && !user.isAuthorized("essentials.protect.damage.disable"))) { event.setCancelled(true); return; } if (cause == DamageCause.DROWNING && prot.getSettingBool(ProtectConfig.disable_drown) && !(user.isAuthorized("essentials.protect.damage.drowning") && !user.isAuthorized("essentials.protect.damage.disable"))) { event.setCancelled(true); return; } if (cause == DamageCause.LIGHTNING && prot.getSettingBool(ProtectConfig.disable_lightning) && !(user.isAuthorized("essentials.protect.damage.lightning") && !user.isAuthorized("essentials.protect.damage.disable"))) { event.setCancelled(true); return; } } }
@Override public void onEntityDamage(EntityDamageEvent event) { if (event.isCancelled()) { return; } if (event instanceof EntityDamageByProjectileEvent) { this.onEntityDamageByProjectile((EntityDamageByProjectileEvent) event); return; } else if (event instanceof EntityDamageByEntityEvent) { this.onEntityDamageByEntity((EntityDamageByEntityEvent) event); return; } else if (event instanceof EntityDamageByBlockEvent) { this.onEntityDamageByBlock((EntityDamageByBlockEvent) event); return; } Entity defender = event.getEntity(); DamageCause type = event.getCause(); if (defender instanceof Player) { Player player = (Player) defender; GlobalConfiguration cfg = plugin.getGlobalConfiguration(); WorldConfiguration wcfg = cfg.getWorldConfig(player.getWorld().getName()); if (cfg.isInvinciblePlayer(player.getName())) { event.setCancelled(true); return; } if (wcfg.disableFallDamage && type == DamageCause.FALL) { event.setCancelled(true); return; } if (wcfg.disableFireDamage && (type == DamageCause.FIRE || type == DamageCause.FIRE_TICK)) { event.setCancelled(true); return; } if (wcfg.disableDrowningDamage && type == DamageCause.DROWNING) { event.setCancelled(true); return; } if (wcfg.teleportOnSuffocation && type == DamageCause.SUFFOCATION) { findFreePosition(player); event.setCancelled(true); return; } if (wcfg.disableSuffocationDamage && type == DamageCause.SUFFOCATION) { event.setCancelled(true); return; } if (type == DamageCause.DROWNING && cfg.isAmphibiousPlayer(player.getName())) { event.setCancelled(true); return; } } }