@EventHandler(priority = EventPriority.LOW, ignoreCancelled=true) public void onLingeringPotionDamage(final EntityDamageByEntityEvent e) { if (e.getEntity() == null || e.getEntity().getUniqueId() == null) { return; } if (e.getCause().equals(DamageCause.ENTITY_ATTACK) && thrownPotions.containsKey(e.getDamager().getEntityId())) { UUID attacker = thrownPotions.get(e.getDamager().getEntityId()); // Self damage if (attacker.equals(e.getEntity().getUniqueId())) { return; } Entity entity = e.getEntity(); // Monsters being hurt if (entity instanceof Monster || entity instanceof Slime || entity instanceof Squid) { checkIsland(e, entity.getLocation(), Flags.HURT_MONSTERS); } // Mobs being hurt if (entity instanceof Animals || entity instanceof IronGolem || entity instanceof Snowman) { checkIsland(e, entity.getLocation(), Flags.HURT_ANIMALS); } // Villagers being hurt if (entity instanceof Villager) { checkIsland(e, entity.getLocation(), Flags.HURT_VILLAGERS); } } } }
Player p = (Player) e.getEntity(); if(e.getCause().equals(DamageCause.VOID)) { if (getIslands().getIslandAt(p.getLocation()).isPresent()) {
/** * This method protects players from PVP if it is not allowed and from * arrows fired by other players * * @param e - event */ @EventHandler(priority = EventPriority.LOW, ignoreCancelled = true) public void onEntityDamage(EntityDamageByEntityEvent e) { if (e.getEntity() instanceof Player && getPlugin().getIWM().inWorld(e.getEntity().getLocation())) { // Allow self damage if (e.getEntity().equals(e.getDamager())) { return; } // Protect visitors if (e.getCause().equals(DamageCause.ENTITY_ATTACK) && protectedVisitor((Player)e.getEntity())) { if (e.getDamager() instanceof Player) { User.getInstance(e.getDamager()).notify(Flags.INVINCIBLE_VISITORS.getHintReference()); } else if (e.getDamager() instanceof Projectile && ((Projectile)e.getDamager()).getShooter() instanceof Player) { User.getInstance((Player)((Projectile)e.getDamager()).getShooter()).notify(Flags.INVINCIBLE_VISITORS.getHintReference()); } e.setCancelled(true); } else { // PVP check respond(e, e.getDamager(), e.getEntity(), getFlag(e.getEntity().getWorld())); } } }
if (event.getCause().equals(DamageCause.FALL)) { if (event.getEntity() instanceof Player) { Player player = (Player) event.getEntity();
/** * @param event */ @EventHandler(priority = EventPriority.HIGH) public void onEntityDamageByBlock(EntityDamageByBlockEvent event) { if (event.isCancelled()) { return; } Entity entity = event.getEntity(); if (entity instanceof Player) { Player player = (Player) entity; if (event.getCause().equals(DamageCause.FALL)) { if (plugin.getVelocityManager().isFallDamageImmune(player)) { event.setCancelled(true); plugin.getCommunicationManager().showThump(player); return; } Field field = plugin.getForceFieldManager().getEnabledSourceField(player.getLocation(), FieldFlag.NO_FALL_DAMAGE); if (field != null) { if (FieldFlag.NO_FALL_DAMAGE.applies(field, player)) { plugin.getCommunicationManager().showThump(player); event.setCancelled(true); } } } } }
@EventHandler(priority = EventPriority.HIGH) public void onDamage(EntityDamageEvent ev) { if (!ev.getCause().equals(DamageCause.PROJECTILE)) { return; } if (!ev.getEntityType().equals(EntityType.PLAYER)) { return; } Player player = (Player) ev.getEntity(); Game game = BedwarsRel.getInstance().getGameManager().getGameOfPlayer(player); if (game == null) { return; } if (game.getState() != GameState.RUNNING) { return; } if (!isBlockerActive(player, game)) { return; } ev.setCancelled(true); }
@EventHandler(priority = EventPriority.HIGH) public void onDamage(EntityDamageEvent ev) { if (!ev.getCause().equals(DamageCause.PROJECTILE)) { return; } if (!ev.getEntityType().equals(EntityType.PLAYER)) { return; } Player player = (Player) ev.getEntity(); Game game = BedwarsRel.getInstance().getGameManager().getGameOfPlayer(player); if (game == null) { return; } if (game.getState() != GameState.RUNNING) { return; } if (!isBlockerActive(player, game)) { return; } ev.setCancelled(true); }
@Override public void damage(double amount, Entity source, DamageCause cause) { super.damage(amount, source, cause); if (DamageCause.LIGHTNING.equals(cause) && !isPowered()) { CreeperPowerEvent event = EventFactory.getInstance() .callEvent(new CreeperPowerEvent( this, (LightningStrike) source, CreeperPowerEvent.PowerCause.LIGHTNING)); if (!event.isCancelled()) { setPowered(true); } } } }
@Override public void damage(double amount, Entity source, DamageCause cause) { if (!DamageCause.LIGHTNING.equals(cause)) { super.damage(amount, source, cause); return; } Witch witch = world.spawn(this.location, Witch.class); witch.damage(amount, source, cause); witch.setFireTicks(this.getFireTicks()); remove(); }
@Override public void damage(double amount, Entity source, DamageCause cause) { if (!DamageCause.LIGHTNING.equals(cause)) { super.damage(amount, source, cause); return; } PigZombie pigZombie = world.spawn(this.location, PigZombie.class); pigZombie.damage(amount, source, cause); remove(); }