org.bukkit.craftbukkit.v1_8_R3.CraftWorld#org.bukkit.event.entity.EntityTargetEvent源码实例Demo

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

源代码1 项目: PGM   文件: DamageMatchModule.java
@EventHandler(ignoreCancelled = true)
public void onTarget(EntityTargetEvent event) {
  if (!(event.getEntity() instanceof ExperienceOrb)) {
    ParticipantState victimState = null;
    if (event.getTarget() instanceof Player) {
      // Don't target allies
      MatchPlayer victim = getVictim(event.getTarget());
      if (victim == null) return;
      victimState = victim.getParticipantState();
    } else if (event.getTarget() != null) {
      // Don't target other mobs owned by allies
      victimState = tracker().getOwner(event.getTarget());
    }
    if (victimState == null) return;

    DamageInfo damageInfo =
        tracker()
            .resolveDamage(
                EntityDamageEvent.DamageCause.ENTITY_ATTACK,
                event.getTarget(),
                event.getEntity());
    if (queryHostile(victimState, damageInfo).isDenied()) {
      event.setCancelled(true);
    }
  }
}
 
源代码2 项目: ProjectAres   文件: DamageMatchModule.java
@EventHandler(ignoreCancelled = true)
public void onTarget(EntityTargetEvent event) {
    if(!(event.getEntity() instanceof ExperienceOrb)) {
        ParticipantState victimState = null;
        if(event.getTarget() instanceof Player) {
            // Don't target allies
            MatchPlayer victim = getVictim(event.getTarget());
            if(victim == null) return;
            victimState = victim.getParticipantState();
        } else if(event.getTarget() != null) {
            // Don't target other mobs owned by allies
            victimState = entityResolver.getOwner(event.getTarget());
        }
        if(victimState == null) return;
        DamageInfo damageInfo = damageResolver.resolveDamage(EntityDamageEvent.DamageCause.ENTITY_ATTACK, event.getTarget(), event.getEntity());
        if(queryHostile(event, victimState, damageInfo).isDenied()) {
            event.setCancelled(true);
        }
    }
}
 
源代码3 项目: Skript   文件: ExprTarget.java
@Override
protected Entity[] get(final Event e, final LivingEntity[] source) {
	return get(source, new Converter<LivingEntity, Entity>() {
		@Override
		@Nullable
		public Entity convert(final LivingEntity en) {
			if (getTime() >= 0 && e instanceof EntityTargetEvent && en.equals(((EntityTargetEvent) e).getEntity()) && !Delay.isDelayed(e)) {
				final Entity t = ((EntityTargetEvent) e).getTarget();
				if (t == null || type != null && !type.isInstance(t))
					return null;
				return t;
			}
			return Utils.getTarget(en, type);
		}
	});
}
 
源代码4 项目: Skript   文件: ExprTarget.java
@Override
public void change(final Event e, final @Nullable Object[] delta, final ChangeMode mode) {
	if (mode == ChangeMode.SET || mode == ChangeMode.DELETE) {
		final LivingEntity target = delta == null ? null : (LivingEntity) delta[0];
		for (final LivingEntity entity : getExpr().getArray(e)) {
			if (getTime() >= 0 && e instanceof EntityTargetEvent && entity.equals(((EntityTargetEvent) e).getEntity()) && !Delay.isDelayed(e)) {
				((EntityTargetEvent) e).setTarget(target);
			} else {
				if (entity instanceof Creature)
					((Creature) entity).setTarget(target);
			}
		}
	} else {
		super.change(e, delta, mode);
	}
}
 
源代码5 项目: civcraft   文件: CommonCustomMob.java
public void onTarget(EntityTargetEvent event) {
	if (event.isCancelled()) {
		return;
	}
	
	if ((event.getReason().equals(TargetReason.CLOSEST_PLAYER) ||
			event.getReason().equals(TargetReason.OWNER_ATTACKED_TARGET)) &&
			(event.getTarget() instanceof Player)) {
		
		double followRange = this.getFollowRange();
		double distance = event.getEntity().getLocation().distance(event.getTarget().getLocation());
		if ((distance-0.5) <= followRange) {
			this.targetName = ((Player)event.getTarget()).getName();
			this.lastLocation = event.getEntity().getLocation();
		}
	} else {
		this.targetName = null;
		this.lastLocation = null;
	}
}
 
源代码6 项目: civcraft   文件: MobListener.java
@EventHandler(priority = EventPriority.NORMAL)
public void onEntityTarget(EntityTargetEvent event) {
	if (!(event.getEntity() instanceof LivingEntity)) {
		return;
	}
	
	if (!MobLib.isMobLibEntity((LivingEntity) event.getEntity())) {
		return;
	}
		
	CommonCustomMob mob = CommonCustomMob.getCCM(event.getEntity());
	if (mob != null) {
		mob.onTarget(event);
	}
	
}
 
源代码7 项目: EntityAPI   文件: BehaviourGoalMeleeAttack.java
@Override
public boolean shouldContinue() {
    LivingEntity target = this.getControllableEntity().getTarget();

    // CraftBukkit start
    EntityTargetEvent.TargetReason reason = this.getControllableEntity().getTarget() == null ? EntityTargetEvent.TargetReason.FORGOT_TARGET : EntityTargetEvent.TargetReason.TARGET_DIED;
    if (this.getControllableEntity().getTarget() == null || (this.getControllableEntity().getTarget() != null && !((CraftLivingEntity) this.getControllableEntity().getTarget()).getHandle().isAlive())) {
        org.bukkit.craftbukkit.v1_7_R1.event.CraftEventFactory.callEntityTargetEvent(this.getHandle(), null, reason);
    }
    // CraftBukkit end

    if (target == null) {
        return false;
    }
    EntityLiving targetHandle = ((CraftLivingEntity) target).getHandle();
    return !targetHandle.isAlive() ? false : (!this.ignoreSight ? !NMSEntityUtil.getNavigation(this.getHandle()).g() : NMSEntityUtil.isInHomeArea(this.getHandle(), MathHelper.floor(targetHandle.locX), MathHelper.floor(targetHandle.locY), MathHelper.floor(targetHandle.locZ)));
}
 
源代码8 项目: EntityAPI   文件: BehaviourGoalMeleeAttack.java
@Override
public boolean shouldContinue() {
    LivingEntity target = this.getControllableEntity().getTarget();

    // CraftBukkit start
    EntityTargetEvent.TargetReason reason = this.getControllableEntity().getTarget() == null ? EntityTargetEvent.TargetReason.FORGOT_TARGET : EntityTargetEvent.TargetReason.TARGET_DIED;
    if (this.getControllableEntity().getTarget() == null || (this.getControllableEntity().getTarget() != null && !((CraftLivingEntity) this.getControllableEntity().getTarget()).getHandle().isAlive())) {
        org.bukkit.craftbukkit.v1_7_R1.event.CraftEventFactory.callEntityTargetEvent(this.getHandle(), null, reason);
    }
    // CraftBukkit end

    if (target == null) {
        return false;
    }
    EntityLiving targetHandle = ((CraftLivingEntity) target).getHandle();
    return !targetHandle.isAlive() ? false : (!this.ignoreSight ? !NMSEntityUtil.getNavigation(this.getHandle()).g() : NMSEntityUtil.isInHomeArea(this.getHandle(), MathHelper.floor(targetHandle.locX), MathHelper.floor(targetHandle.locY), MathHelper.floor(targetHandle.locZ)));
}
 
源代码9 项目: EntityAPI   文件: BehaviourGoalMeleeAttack.java
@Override
public boolean shouldContinue() {
    LivingEntity target = this.getControllableEntity().getTarget();

    // CraftBukkit start
    EntityTargetEvent.TargetReason reason = this.getControllableEntity().getTarget() == null ? EntityTargetEvent.TargetReason.FORGOT_TARGET : EntityTargetEvent.TargetReason.TARGET_DIED;
    if (this.getControllableEntity().getTarget() == null || (this.getControllableEntity().getTarget() != null && !((CraftLivingEntity) this.getControllableEntity().getTarget()).getHandle().isAlive())) {
        org.bukkit.craftbukkit.v1_8_R1.event.CraftEventFactory.callEntityTargetEvent(this.getHandle(), null, reason);
    }
    // CraftBukkit end

    if (target == null) {
        return false;
    }
    EntityLiving targetHandle = ((CraftLivingEntity) target).getHandle();
    return !targetHandle.isAlive() ? false : (!this.ignoreSight ? !NMSEntityUtil.getNavigation(this.getHandle()).g() : NMSEntityUtil.isInHomeArea(this.getHandle(), MathHelper.floor(targetHandle.locX), MathHelper.floor(targetHandle.locY), MathHelper.floor(targetHandle.locZ)));
}
 
源代码10 项目: EntityAPI   文件: BehaviourGoalMeleeAttack.java
@Override
public boolean shouldContinue() {
    LivingEntity target = this.getControllableEntity().getTarget();

    // CraftBukkit start
    EntityTargetEvent.TargetReason reason = this.getControllableEntity().getTarget() == null ? EntityTargetEvent.TargetReason.FORGOT_TARGET : EntityTargetEvent.TargetReason.TARGET_DIED;
    if (this.getControllableEntity().getTarget() == null || (this.getControllableEntity().getTarget() != null && !((CraftLivingEntity) this.getControllableEntity().getTarget()).getHandle().isAlive())) {
        org.bukkit.craftbukkit.v1_7_R1.event.CraftEventFactory.callEntityTargetEvent(this.getHandle(), null, reason);
    }
    // CraftBukkit end

    if (target == null) {
        return false;
    }
    EntityLiving targetHandle = ((CraftLivingEntity) target).getHandle();
    return !targetHandle.isAlive() ? false : (!this.ignoreSight ? !NMSEntityUtil.getNavigation(this.getHandle()).g() : NMSEntityUtil.isInHomeArea(this.getHandle(), MathHelper.floor(targetHandle.locX), MathHelper.floor(targetHandle.locY), MathHelper.floor(targetHandle.locZ)));
}
 
源代码11 项目: StaffPlus   文件: EntityTarget.java
@EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
public void onTarget(EntityTargetEvent event)
{
	if(event.getTarget() instanceof Player)
	{
		Player player = (Player) event.getTarget();
		
		if(userManager.get(player.getUniqueId()).getVanishType() != VanishType.TOTAL)
		{
			return;
		}
		
		event.setCancelled(true);
	}
}
 
源代码12 项目: BedwarsRel   文件: TNTSheep.java
public TNTSheep(Location location, Player target) {
  super(((CraftWorld) location.getWorld()).getHandle());

  this.world = location.getWorld();

  this.locX = location.getX();
  this.locY = location.getY();
  this.locZ = location.getZ();

  try {
    Field b = this.goalSelector.getClass().getDeclaredField("b");
    b.setAccessible(true);
    b.set(this.goalSelector, new ArrayList<>());
    this.getAttributeInstance(GenericAttributes.b).setValue(128D);
    this.getAttributeInstance(GenericAttributes.d)
        .setValue(
            BedwarsRel.getInstance().getConfig().getDouble("specials.tntsheep.speed", 0.4D));
  } catch (Exception e) {
    BedwarsRel.getInstance().getBugsnag().notify(e);
    e.printStackTrace();
  }

  this.goalSelector.a(0, new PathfinderGoalBedwarsPlayer(this, EntityHuman.class, 1D, false));
  this.setGoalTarget((EntityLiving) (((CraftPlayer) target).getHandle()),
      EntityTargetEvent.TargetReason.OWNER_ATTACKED_TARGET, false);
  ((Creature) this.getBukkitEntity()).setTarget((LivingEntity) target);
}
 
源代码13 项目: BedwarsRel   文件: TNTSheep.java
public TNTSheep(Location location, Player target) {
  super(((CraftWorld) location.getWorld()).getHandle());

  this.world = location.getWorld();

  this.locX = location.getX();
  this.locY = location.getY();
  this.locZ = location.getZ();

  try {
    Field b = this.goalSelector.getClass().getDeclaredField("b");
    b.setAccessible(true);
    b.set(this.goalSelector, new ArrayList<>());
    this.getAttributeInstance(GenericAttributes.FOLLOW_RANGE).setValue(128D);
    this.getAttributeInstance(GenericAttributes.MOVEMENT_SPEED)
        .setValue(
            BedwarsRel.getInstance().getConfig().getDouble("specials.tntsheep.speed", 0.4D));
  } catch (Exception e) {
    BedwarsRel.getInstance().getBugsnag().notify(e);
    e.printStackTrace();
  }

  this.goalSelector.a(0, new PathfinderGoalBedwarsPlayer(this, EntityHuman.class, 1D, false));
  this.setGoalTarget((EntityLiving) (((CraftPlayer) target).getHandle()),
      EntityTargetEvent.TargetReason.OWNER_ATTACKED_TARGET, false);
  ((Creature) this.getBukkitEntity()).setTarget((LivingEntity) target);
}
 
源代码14 项目: BedwarsRel   文件: TNTSheep.java
public TNTSheep(Location location, Player target) {
  super(((CraftWorld) location.getWorld()).getHandle());

  this.world = location.getWorld();

  this.locX = location.getX();
  this.locY = location.getY();
  this.locZ = location.getZ();

  try {
    Field b = this.goalSelector.getClass().getDeclaredField("b");
    b.setAccessible(true);
    b.set(this.goalSelector, new ArrayList<>());
    this.getAttributeInstance(GenericAttributes.b).setValue(128D);
    this.getAttributeInstance(GenericAttributes.d)
        .setValue(
            BedwarsRel.getInstance().getConfig().getDouble("specials.tntsheep.speed", 0.4D));
  } catch (Exception e) {
    BedwarsRel.getInstance().getBugsnag().notify(e);
    e.printStackTrace();
  }

  this.goalSelector.a(0, new PathfinderGoalBedwarsPlayer(this, EntityHuman.class, 1D, false));
  this.setGoalTarget((EntityLiving) (((CraftPlayer) target).getHandle()),
      EntityTargetEvent.TargetReason.OWNER_ATTACKED_TARGET, false);
  ((Creature) this.getBukkitEntity()).setTarget((LivingEntity) target);
}
 
源代码15 项目: civcraft   文件: Yobo.java
@Override
public void onTarget(EntityTargetEvent event) {
	super.onTarget(event);
	
	if (event.getReason().equals(TargetReason.FORGOT_TARGET) ||
	    event.getReason().equals(TargetReason.TARGET_DIED)) {
		this.angry = false;
		for (Entity e : minions) {
			e.getBukkitEntity().remove();
		}
		
	}
	
}
 
源代码16 项目: civcraft   文件: AngryYobo.java
@Override
public void onTarget(EntityTargetEvent event) {
	super.onTarget(event);
	
	if (event.getReason().equals(TargetReason.FORGOT_TARGET) ||
	    event.getReason().equals(TargetReason.TARGET_DIED)) {
		event.getEntity().remove();
	}
	
}
 
源代码17 项目: AuthMeReloaded   文件: EntityListener.java
@EventHandler(ignoreCancelled = true, priority = EventPriority.LOWEST)
public void onEntityTarget(EntityTargetEvent event) {
    if (listenerService.shouldCancelEvent(event.getTarget())) {
        event.setTarget(null);
        event.setCancelled(true);
    }
}
 
源代码18 项目: AuthMeReloaded   文件: EntityListenerTest.java
@Test
public void shouldCancelEntityTargetEvent() {
    // given
    EntityTargetEvent event = mock(EntityTargetEvent.class);
    Entity target = mock(Entity.class);
    given(event.getTarget()).willReturn(target);
    given(listenerService.shouldCancelEvent(target)).willReturn(true);

    // when
    listener.onEntityTarget(event);

    // then
    verify(listenerService).shouldCancelEvent(target);
    verify(event).setCancelled(true);
}
 
源代码19 项目: AuthMeReloaded   文件: EntityListenerTest.java
@Test
public void shouldNotCancelEntityTargetEvent() {
    // given
    EntityTargetEvent event = mock(EntityTargetEvent.class);
    Entity target = mock(Entity.class);
    given(event.getTarget()).willReturn(target);
    given(listenerService.shouldCancelEvent(target)).willReturn(false);

    // when
    listener.onEntityTarget(event);

    // then
    verify(listenerService).shouldCancelEvent(target);
    verify(event, only()).getTarget();
}
 
源代码20 项目: EntityAPI   文件: BehaviourGoalRangedAttack.java
@Override
public void finish() {
    // CraftBukkit start
    EntityTargetEvent.TargetReason reason = this.target.isAlive() ? EntityTargetEvent.TargetReason.FORGOT_TARGET : EntityTargetEvent.TargetReason.TARGET_DIED;
    CraftEventFactory.callEntityTargetEvent(this.getHandle(), null, reason);
    // CraftBukkit end
    this.target = null;
    this.inRangeTicks = 0;
    this.shootCooldown = -1;
}
 
源代码21 项目: EntityAPI   文件: BehaviourGoalRangedAttack.java
@Override
public void finish() {
    // CraftBukkit start
    EntityTargetEvent.TargetReason reason = this.target.isAlive() ? EntityTargetEvent.TargetReason.FORGOT_TARGET : EntityTargetEvent.TargetReason.TARGET_DIED;
    CraftEventFactory.callEntityTargetEvent(this.getHandle(), null, reason);
    // CraftBukkit end
    this.target = null;
    this.inRangeTicks = 0;
    this.shootCooldown = -1;
}
 
源代码22 项目: EntityAPI   文件: BehaviourGoalRangedAttack.java
@Override
public void finish() {
    // CraftBukkit start
    EntityTargetEvent.TargetReason reason = this.target.isAlive() ? EntityTargetEvent.TargetReason.FORGOT_TARGET : EntityTargetEvent.TargetReason.TARGET_DIED;
    CraftEventFactory.callEntityTargetEvent(this.getHandle(), null, reason);
    // CraftBukkit end
    this.target = null;
    this.inRangeTicks = 0;
    this.shootCooldown = -1;
}
 
源代码23 项目: EntityAPI   文件: BehaviourGoalRangedAttack.java
@Override
public void finish() {
    // CraftBukkit start
    EntityTargetEvent.TargetReason reason = this.target.isAlive() ? EntityTargetEvent.TargetReason.FORGOT_TARGET : EntityTargetEvent.TargetReason.TARGET_DIED;
    CraftEventFactory.callEntityTargetEvent(this.getHandle(), null, reason);
    // CraftBukkit end
    this.target = null;
    this.inRangeTicks = 0;
    this.shootCooldown = -1;
}
 
源代码24 项目: BedWars   文件: GolemListener.java
@EventHandler
public void onGolemTarget(EntityTargetEvent event) {
	if (!(event.getEntity() instanceof IronGolem)) {
        return;
    }

    IronGolem ironGolem = (IronGolem) event.getEntity();
    for (String name : Main.getGameNames()) {
        Game game = Main.getGame(name);
        if ((game.getStatus() == GameStatus.RUNNING || game.getStatus() == GameStatus.GAME_END_CELEBRATING) && ironGolem.getWorld().equals(game.getGameWorld())) {
            List<SpecialItem> golems = game.getActivedSpecialItems(Golem.class);
            for (SpecialItem item : golems) {
                if (item instanceof Golem) {
                    Golem golem = (Golem) item;
                    if (golem.getEntity().equals(ironGolem)) {
                        if (event.getTarget() instanceof Player) {
                            final Player player = (Player) event.getTarget();
                            if (game.isProtectionActive(player)) {
                                event.setCancelled(true);
                                return;
                            }

                            if (Main.isPlayerInGame(player)) {
                                if (golem.getTeam() == game.getTeamOfPlayer(player)) {
                                	event.setCancelled(true);
                                    // Try to find enemy
                                    Player playerTarget = MiscUtils.findTarget(game, player, golem.getFollowRange());
                                    if (playerTarget != null) {
                                    	// Oh. We found enemy!
                                        ironGolem.setTarget(playerTarget);
                                        return;
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
 
源代码25 项目: PGM   文件: EventFilterMatchModule.java
@EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true)
public void onEntityTrack(final EntityTargetEvent event) {
  // Handles mobs and XP orbs
  if (event.getTarget() != null) cancelUnlessInteracting(event, event.getTarget());
}
 
源代码26 项目: BedWars   文件: GolemListener.java
@EventHandler
public void onGolemTarget(EntityTargetEvent event) {
	if (!(event.getEntity() instanceof IronGolem)) {
        return;
    }

    IronGolem ironGolem = (IronGolem) event.getEntity();
    for (String name : Main.getGameNames()) {
        Game game = Main.getGame(name);
        if ((game.getStatus() == GameStatus.RUNNING || game.getStatus() == GameStatus.GAME_END_CELEBRATING) && ironGolem.getWorld().equals(game.getGameWorld())) {
            List<SpecialItem> golems = game.getActivedSpecialItems(Golem.class);
            for (SpecialItem item : golems) {
                if (item instanceof Golem) {
                    Golem golem = (Golem) item;
                    if (golem.getEntity().equals(ironGolem)) {
                        if (event.getTarget() instanceof Player) {
                            final Player player = (Player) event.getTarget();
                            if (game.isProtectionActive(player)) {
                                event.setCancelled(true);
                                return;
                            }

                            if (Main.isPlayerInGame(player)) {
                                if (golem.getTeam() == game.getTeamOfPlayer(player)) {
                                	event.setCancelled(true);
                                    // Try to find enemy
                                    Player playerTarget = MiscUtils.findTarget(game, player, golem.getFollowRange());
                                    if (playerTarget != null) {
                                    	// Oh. We found enemy!
                                        ironGolem.setTarget(playerTarget);
                                        return;
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
 
源代码27 项目: ProjectAres   文件: EventFilterMatchModule.java
@EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true)
public void onEntityTrack(final EntityTargetEvent event) {
    // Handles mobs and XP orbs
    if(event.getTarget() != null) cancelUnlessInteracting(event, event.getTarget());
}
 
源代码28 项目: Skript   文件: ExprTarget.java
@Override
public boolean setTime(final int time) {
	return super.setTime(time, EntityTargetEvent.class, getExpr());
}
 
源代码29 项目: Skript   文件: EvtEntityTarget.java
@Override
public boolean check(final Event e) {
	return ((EntityTargetEvent) e).getTarget() == null ^ target;
}
 
源代码30 项目: Shopkeepers   文件: LivingEntityShopListener.java
@EventHandler(ignoreCancelled = true)
void onEntityTarget(EntityTargetEvent event) {
	if (plugin.isShopkeeper(event.getEntity()) || plugin.isShopkeeper(event.getTarget())) {
		event.setCancelled(true);
	}
}