org.bukkit.entity.Entity#isValid ( )源码实例Demo

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

源代码1 项目: Skript   文件: EffKill.java
@Override
protected void execute(final Event e) {
	for (Entity entity : entities.getArray(e)) {

		if (entity instanceof EnderDragonPart) {
			entity = ((EnderDragonPart) entity).getParent();
		}

		if (entity instanceof Damageable) {
			final boolean creative = entity instanceof Player && ((Player) entity).getGameMode() == GameMode.CREATIVE;
			if (creative) // Set player to survival before applying damage
				((Player) entity).setGameMode(GameMode.SURVIVAL);

			HealthUtils.damage((Damageable) entity, HealthUtils.getMaxHealth((Damageable) entity) * 100); // just to make sure that it really dies >:)

			if (creative) // Set creative player back to creative
				((Player) entity).setGameMode(GameMode.CREATIVE);
		}

		// if everything done so far has failed to kill this thing
		// We also don't want to remove a player as this would remove the player's data from the server.
		if (entity.isValid() && !(entity instanceof Player))
			entity.remove();
		
	}
}
 
源代码2 项目: NyaaUtils   文件: SitListener.java
@EventHandler
public void onDismount(EntityDismountEvent event) {
    if (event.getDismounted() instanceof ArmorStand) {
        ArmorStand armorStand = (ArmorStand) event.getDismounted();
        if (armorStand.hasMetadata(metadata_key)) {
            for (Entity p : armorStand.getPassengers()) {
                if (p.isValid()) {
                    Location loc = safeLocations.get(p.getUniqueId());
                    safeLocations.remove(p.getUniqueId());
                    new BukkitRunnable() {
                        @Override
                        public void run() {
                            if (p.isValid() && loc != null) {
                                p.teleport(loc);
                            }
                        }
                    }.runTask(plugin);
                }
            }
        }
        armorStand.remove();
    }
}
 
源代码3 项目: Thermos   文件: CraftTNTPrimed.java
public Entity getSource() {
    net.minecraft.entity.EntityLivingBase source = getHandle().getTntPlacedBy();

    if (source != null) {
        Entity bukkitEntity = source.getBukkitEntity();

        if (bukkitEntity.isValid()) {
            return bukkitEntity;
        }
    }

    return null;
}
 
源代码4 项目: Slimefun4   文件: AutoBreeder.java
private boolean canBreed(Entity n) {
    if (n.isValid() && n instanceof Animals) {
        Animals animal = (Animals) n;

        return animal.isAdult() && animal.canBreed() && !animal.isLoveMode();
    }

    return false;
}
 
源代码5 项目: Slimefun4   文件: InfusedHopper.java
private boolean isValidItem(Location l, Entity entity) {
    if (entity instanceof Item && entity.isValid()) {
        Item item = (Item) entity;
        return !SlimefunUtils.hasNoPickupFlag(item) && item.getLocation().distanceSquared(l) > 0.25;
    }

    return false;
}
 
源代码6 项目: EliteMobs   文件: EliteMobScanner.java
public static void scanValidAggressiveLivingEntity(LivingEntity livingEntity) {

                if (!EntityTracker.isNaturalEntity(livingEntity) &&
                        !ConfigValues.mobCombatSettingsConfig.getBoolean(MobCombatSettingsConfig.STACK_AGGRESSIVE_SPAWNER_MOBS))
                    return;
                if (EntityTracker.isNaturalEntity(livingEntity) &&
                        !ConfigValues.mobCombatSettingsConfig.getBoolean(MobCombatSettingsConfig.STACK_AGGRESSIVE_NATURAL_MOBS))
                    return;

                for (Entity secondEntity : livingEntity.getNearbyEntities(aggressiveRange, aggressiveRange, aggressiveRange)) {

                    if (!secondEntity.getType().equals(livingEntity.getType())) continue;
                    if (!livingEntity.isValid() || !secondEntity.isValid()) continue;

                    if (!EntityTracker.isNaturalEntity(secondEntity) &&
                            !ConfigValues.mobCombatSettingsConfig.getBoolean(MobCombatSettingsConfig.STACK_AGGRESSIVE_SPAWNER_MOBS))
                        return;
                    if (EntityTracker.isNaturalEntity(secondEntity) &&
                            !ConfigValues.mobCombatSettingsConfig.getBoolean(MobCombatSettingsConfig.STACK_AGGRESSIVE_NATURAL_MOBS))
                        return;


                    EliteMobEntity eliteMobEntity1 = null;
                    EliteMobEntity eliteMobEntity2 = null;

                    int level1 = 1;
                    int level2 = 1;

                    if (EntityTracker.isEliteMob(livingEntity)) {
                        eliteMobEntity1 = EntityTracker.getEliteMobEntity(livingEntity);
                        if (!eliteMobEntity1.canStack()) continue;
                        level1 = eliteMobEntity1.getLevel();
                    }

                    if (EntityTracker.isEliteMob(secondEntity)) {
                        eliteMobEntity2 = EntityTracker.getEliteMobEntity(secondEntity);
                        if (!eliteMobEntity2.canStack()) continue;
                        level2 = eliteMobEntity2.getLevel();
                    }

                    int newLevel = level1 + level2;

                    if (newLevel > ConfigValues.mobCombatSettingsConfig.getInt(MobCombatSettingsConfig.ELITEMOB_STACKING_CAP))
                        return;

                    double healthPercentage = (livingEntity.getHealth() / livingEntity.getAttribute(Attribute.GENERIC_MAX_HEALTH).getValue() +
                            ((LivingEntity) secondEntity).getHealth() / ((LivingEntity) secondEntity).getAttribute(Attribute.GENERIC_MAX_HEALTH).getValue()) / 2;

                    /*
                    This is a bit of a dirty hack
                    It won't register the entity twice, but it will overwrite the existing method
                    */
                    eliteMobEntity1 = new EliteMobEntity(livingEntity, newLevel, healthPercentage, CreatureSpawnEvent.SpawnReason.CUSTOM);
                    secondEntity.remove();

                }

    }
 
源代码7 项目: EffectLib   文件: DynamicLocation.java
public boolean hasValidEntity() {
    Entity entity = this.getEntity();
    return entity != null && entity.isValid();
}