org.bukkit.event.entity.EntityDamageByEntityEvent#setCancelled ( )源码实例Demo

下面列出了org.bukkit.event.entity.EntityDamageByEntityEvent#setCancelled ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: CombatLogX   文件: NoEntryListener.java
@EventHandler(priority=EventPriority.HIGHEST)
public void onCancelPVP(EntityDamageByEntityEvent e) {
    if(!e.isCancelled()) return;
    if(this.expansion.getNoEntryHandler().getNoEntryMode() != NoEntryMode.VULNERABLE) return;

    Entity entity = e.getEntity();
    if(!(entity instanceof Player)) return;

    ICombatLogX plugin = this.expansion.getPlugin();
    ICombatManager manager = plugin.getCombatManager();

    Player player = (Player) entity;
    if(!manager.isInCombat(player)) return;

    LivingEntity enemy = manager.getEnemy(player);
    if(enemy == null) return;

    e.setCancelled(false);
    this.expansion.sendNoEntryMessage(player, enemy);
}
 
源代码2 项目: AnnihilationPro   文件: Areas.java
@EventHandler(priority = EventPriority.LOWEST,ignoreCancelled = true)
public void checkBreaks(EntityDamageByEntityEvent e)
{
	if(e.getDamager().getType() == EntityType.PLAYER && e.getEntity().getType() == EntityType.PLAYER)
	{
		Area a = this.getArea(new Loc(e.getDamager().getLocation(),false));
		if(a != null && !a.getAllowPVP())
		{
			e.setCancelled(true);
			return;
		}
		a = this.getArea(new Loc(e.getEntity().getLocation(),false));
		if(a != null && !a.getAllowPVP())
		{
			e.setCancelled(true);
			return;
		}
	}
}
 
源代码3 项目: skRayFall   文件: ArmorStandListener.java
/**
 * Listener used to generate the ArmorStandDamageEvent.
 *
 * @param evt The initial EntityDamageByEntityEvent event
 *            used to generate the ArmorStandDamageEvent
 */
@EventHandler
public void onArmorStandDamage(EntityDamageByEntityEvent evt) {
    if (evt.getEntity().getType().equals(EntityType.ARMOR_STAND)
            && evt.getDamager().getType().equals(EntityType.PLAYER)) {
        ArmorStandDamageEvent event =
                new ArmorStandDamageEvent((Player) evt.getDamager(), evt.getEntity());
        Bukkit.getPluginManager().callEvent(event);
        if (event.isCancelled()) {
            evt.setCancelled(true);
            return;
        }
    }
}
 
源代码4 项目: uSkyBlock   文件: PlayerEvents.java
private void cancelMemberDamage(Player p1, Player p2, EntityDamageByEntityEvent event) {
    IslandInfo is1 = plugin.getIslandInfo(p1);
    IslandInfo is2 = plugin.getIslandInfo(p2);
    if (is1 != null && is2 != null && is1.getName().equals(is2.getName())) {
        plugin.notifyPlayer(p1, tr("\u00a7eYou cannot hurt island-members."));
        event.setCancelled(true);
    }
}
 
源代码5 项目: CardinalPGM   文件: FriendlyFire.java
@EventHandler(priority = EventPriority.LOW)
public void onEntityDamageEvent(EntityDamageByEntityEvent event) {
    if (!enabled) return;
    if (event.getDamager() instanceof Projectile && ((Projectile) event.getDamager()).getShooter() == event.getEntity()){
        event.setCancelled(true);
    }
}
 
源代码6 项目: UhcCore   文件: LoveAtFirstSightListener.java
@EventHandler (priority = EventPriority.LOW)
public void onPlayerDamage(EntityDamageByEntityEvent e){
    if (e.getEntityType() != EntityType.PLAYER || !(e.getDamager() instanceof Player)){
        return;
    }

    PlayersManager pm = getPlayersManager();
    UhcPlayer uhcDamaged = pm.getUhcPlayer((Player) e.getEntity());
    UhcPlayer uhcDamager = pm.getUhcPlayer((Player) e.getDamager());

    if (getGameManager().getGameState() != GameState.PLAYING){
        return;
    }

    if (uhcDamaged.getTeam().isFull() || uhcDamager.getTeam().isFull()){
        return; // One of the teams is full so no team can be made
    }

    if (!uhcDamaged.getTeam().isSolo() && !uhcDamager.getTeam().isSolo()){
        return; // Neither of the players are solo so a team can't be created
    }

    if (getTeamManager().getPlayingUhcTeams().size() <= 2){
        return; // Only 2 teams left, don't team them up but let them first.
    }

    boolean result;
    if (uhcDamaged.getTeam().isSolo()){
        // add to damager team
        result = addPlayerToTeam(uhcDamaged, uhcDamager.getTeam());
    }else{
        // add damager to damaged
        result = addPlayerToTeam(uhcDamager, uhcDamaged.getTeam());
    }

    if (result){
        e.setCancelled(true);
    }
}
 
源代码7 项目: BetonQuest   文件: MenuConvIO.java
@EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true)
public void entityDamageByEntityEvent(EntityDamageByEntityEvent event) {
    if (event.getDamager() != player) {
        return;
    }

    event.setCancelled(true);

    if (debounce) {
        return;
    }

    if (event.getCause().equals(EntityDamageEvent.DamageCause.ENTITY_ATTACK)) {

        if (controls.containsKey(CONTROL.LEFT_CLICK)) {

            switch (controls.get(CONTROL.LEFT_CLICK)) {
                case CANCEL:
                    if (!conv.isMovementBlock()) {
                        conv.endConversation();
                    }
                    debounce = true;
                    break;
                case SELECT:
                    conv.passPlayerAnswer(selectedOption + 1);
                    debounce = true;
                    break;
            case MOVE:
                break;
            default:
                break;
            }
        }
    }

}
 
源代码8 项目: BetonQuest   文件: Conversation.java
@EventHandler(ignoreCancelled = true)
public void onDamage(EntityDamageByEntityEvent event) {
    // prevent damage to (or from) player while in conversation
    if ((event.getEntity() instanceof Player && PlayerConverter.getID((Player) event.getEntity()).equals(playerID))
            || (event.getDamager() instanceof Player
            && PlayerConverter.getID((Player) event.getDamager()).equals(playerID))) {
        event.setCancelled(true);
    }
}
 
源代码9 项目: Sentinel   文件: SentinelTrait.java
/**
 * Called when this sentinel attacks something, to correct damage handling.
 */
public void whenAttacksAreHappeningFromMe(EntityDamageByEntityEvent event) {
    if (event.isCancelled()) {
        return;
    }
    if (!npc.isSpawned()) {
        return;
    }
    if (SentinelPlugin.instance.alternateDamage) {
        if (canEnforce) {
            canEnforce = false;
            whenAttacksHappened(event);
            if (!event.isCancelled()) {
                ((LivingEntity) event.getEntity()).damage(event.getFinalDamage());
                if (event.getEntity() instanceof LivingEntity) {
                    weaponHelper.knockback((LivingEntity) event.getEntity());
                }
            }
            if (SentinelPlugin.debugMe) {
                debug("enforce damage value to " + event.getFinalDamage());
            }
        }
        else {
            if (SentinelPlugin.debugMe) {
                debug("refuse damage enforcement");
            }
        }
        event.setDamage(0);
        event.setCancelled(true);
        return;
    }
    event.setDamage(EntityDamageEvent.DamageModifier.BASE, getDamage(false));
}
 
源代码10 项目: EliteMobs   文件: Kraken.java
@EventHandler
public void onSelfDamage(EntityDamageByEntityEvent event) {

    if (event.getDamager() instanceof Fireball && ((Fireball) event.getDamager()).getShooter() != null &&
            ((Fireball) event.getDamager()).getShooter() instanceof Squid) {
        event.setCancelled(true);
        removeFireball((Fireball) event.getDamager());
    }

}
 
源代码11 项目: PGM   文件: FreezeMatchModule.java
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
public void onEntityDamge(final EntityDamageByEntityEvent event) {
  if (freeze.isFrozen(event.getDamager())) {
    event.setCancelled(true);
  }
}
 
源代码12 项目: ProjectAres   文件: FreezeListener.java
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
public void onEntityDamge(final EntityDamageByEntityEvent event) {
    if(freeze.isFrozen(event.getDamager())) {
        event.setCancelled(true);
    }
}
 
源代码13 项目: CardinalPGM   文件: Fireworks.java
@EventHandler
public void onPlayerDamage(EntityDamageByEntityEvent event) {
    if (event.getDamager().hasMetadata(FIREWORK_METADATA)) event.setCancelled(true);
}
 
源代码14 项目: BedwarsRel   文件: TNTSheepListener.java
@EventHandler(priority = EventPriority.HIGHEST)
public void onDamageEntity(EntityDamageByEntityEvent event) {
  if (event.getCause().equals(DamageCause.CUSTOM) || event.getCause().equals(DamageCause.VOID)
      || event.getCause().equals(DamageCause.FALL)) {
    return;
  }

  if (event.getEntity() instanceof ITNTSheep) {
    event.setDamage(0.0);
    return;
  }

  if (!(event.getEntity() instanceof Player)) {
    return;
  }

  if (!(event.getDamager() instanceof TNTPrimed)) {
    return;
  }

  TNTPrimed damager = (TNTPrimed) event.getDamager();

  if (!(damager.getSource() instanceof Player)) {
    return;
  }

  Player damagerPlayer = (Player) damager.getSource();
  Player player = (Player) event.getEntity();
  Game game = BedwarsRel.getInstance().getGameManager().getGameOfPlayer(player);

  if (game == null) {
    return;
  }

  if (game.getState() != GameState.RUNNING) {
    return;
  }

  if (game.isSpectator(damagerPlayer) || game.isSpectator(player)) {
    event.setCancelled(true);
    return;
  }

  Team damagerTeam = game.getPlayerTeam(damagerPlayer);
  Team team = game.getPlayerTeam(player);

  if (damagerTeam.equals(team) && !damagerTeam.getScoreboardTeam().allowFriendlyFire()) {
    event.setCancelled(true);
    return;
  }
}
 
源代码15 项目: UhcCore   文件: EntityDamageListener.java
private void handleOfflinePlayers(EntityDamageByEntityEvent e){
    if (e.getEntityType() != EntityType.ZOMBIE || !(e.getDamager() instanceof Player)){
        return;
    }

    GameManager gm = GameManager.getGameManager();
    MainConfiguration cfg = gm.getConfiguration();
    PlayersManager pm = gm.getPlayersManager();
    
    // Offline players are disabled
    if (!cfg.getSpawnOfflinePlayers()){
        return;
    }

    Zombie zombie = (Zombie) e.getEntity();
    UhcPlayer damager = pm.getUhcPlayer((Player) e.getDamager());
    UhcPlayer owner = null;
    
    // Find zombie owner
    for (UhcPlayer uhcPlayer : pm.getPlayersList()){
        if (uhcPlayer.getOfflineZombie() != null && uhcPlayer.getOfflineZombie() == zombie){
            owner = uhcPlayer;
            break;
        }
    }
    
    // Not a offline player
    if (owner == null){
        return;
    }
    
    boolean pvp = gm.getPvp();
    boolean isTeamMember = owner.isInTeamWith(damager);
    boolean friendlyFire = gm.getConfiguration().getEnableFriendlyFire();
    
    // If PvP is false or is team member & friendly fire is off
    if (!pvp || (isTeamMember && !friendlyFire)){
        e.setCancelled(true);
        // Canceled due to friendly fire, so send message
        if (pvp){
            damager.sendMessage(Lang.PLAYERS_FF_OFF);
        }
    }
}
 
源代码16 项目: UhcCore   文件: PlayerDamageListener.java
private void handleLightningStrike(EntityDamageByEntityEvent event){
	if(event.getDamager() instanceof LightningStrike && event.getEntity() instanceof Player){
		event.setCancelled(true);
	}
}
 
源代码17 项目: AuthMeReloaded   文件: EntityListener.java
@EventHandler(ignoreCancelled = true, priority = EventPriority.LOWEST)
public void onAttack(EntityDamageByEntityEvent event) {
    if (listenerService.shouldCancelEvent(event.getDamager())) {
        event.setCancelled(true);
    }
}
 
源代码18 项目: askyblock   文件: IslandGuard1_9.java
@EventHandler(priority = EventPriority.LOW, ignoreCancelled=true)
public void onLingeringPotionDamage(final EntityDamageByEntityEvent e) {
    if (!IslandGuard.inWorld(e.getEntity().getLocation())) {
        return;
    }
    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;
        }
        Island island = plugin.getGrid().getIslandAt(e.getEntity().getLocation());
        boolean inNether = false;
        if (e.getEntity().getWorld().equals(ASkyBlock.getNetherWorld())) {
            inNether = true;
        }
        // Monsters being hurt
        if (e.getEntity() instanceof Monster || e.getEntity() instanceof Slime || e.getEntity() instanceof Squid) {
            // Normal island check
            if (island != null && island.getMembers().contains(attacker)) {
                // Members always allowed
                return;
            }
            if (actionAllowed(attacker, e.getEntity().getLocation(), SettingsFlag.HURT_MONSTERS)) {
                return;
            }
            // Not allowed
            e.setCancelled(true);
            return;
        }

        // Mobs being hurt
        if (e.getEntity() instanceof Animals || e.getEntity() instanceof IronGolem || e.getEntity() instanceof Snowman
                || e.getEntity() instanceof Villager) {
            if (island != null && (island.getIgsFlag(SettingsFlag.HURT_MOBS) || island.getMembers().contains(attacker))) {
                return;
            }
            e.setCancelled(true);
            return;
        }

        // Establish whether PVP is allowed or not.
        boolean pvp = false;
        if ((inNether && island != null && island.getIgsFlag(SettingsFlag.NETHER_PVP) || (!inNether && island != null && island.getIgsFlag(SettingsFlag.PVP)))) {
            pvp = true;
        }

        // Players being hurt PvP
        if (e.getEntity() instanceof Player) {
            if (pvp) {
            } else {
                e.setCancelled(true);
            }
        }
    }
}
 
源代码19 项目: Crazy-Crates   文件: FireworkDamageEvent.java
@EventHandler
public void onFireworkDamage(EntityDamageByEntityEvent e) {
    if (fireworks.contains(e.getDamager())) {
        e.setCancelled(true);
    }
}
 
源代码20 项目: Sentinel   文件: SentinelTrait.java
/**
 * Called when this sentinel attacks something with a projectile, to correct damage handling.
 */
public void whenAttacksAreHappeningFromMyArrow(EntityDamageByEntityEvent event) {
    if (event.isCancelled()) {
        return;
    }
    if (!npc.isSpawned()) {
        return;
    }
    if (SentinelPlugin.instance.alternateDamage) {
        if (canEnforce) {
            canEnforce = false;
            whenAttacksHappened(event);
            if (!event.isCancelled()) {
                ((LivingEntity) event.getEntity()).damage(getDamage(true));
                if (event.getEntity() instanceof LivingEntity) {
                    weaponHelper.knockback((LivingEntity) event.getEntity());
                }
            }
            if (SentinelPlugin.debugMe) {
                debug("enforce damage value to " + getDamage(true));
            }
        }
        else {
            if (SentinelPlugin.debugMe) {
                debug("refuse damage enforcement");
            }
        }
        event.setDamage(0);
        event.setCancelled(true);
        return;
    }
    double dam = getDamage(true);
    double modder = event.getDamage(EntityDamageEvent.DamageModifier.BASE);
    double rel = modder == 0.0 ? 1.0 : dam / modder;
    event.setDamage(EntityDamageEvent.DamageModifier.BASE, dam);
    for (EntityDamageEvent.DamageModifier mod : EntityDamageEvent.DamageModifier.values()) {
        if (mod != EntityDamageEvent.DamageModifier.BASE && event.isApplicable(mod)) {
            event.setDamage(mod, event.getDamage(mod) * rel);
            if (SentinelPlugin.debugMe) {
                debug("Set damage for " + mod + " to " + event.getDamage(mod));
            }
        }
    }
}