类org.bukkit.entity.Zombie源码实例Demo

下面列出了怎么用org.bukkit.entity.Zombie的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: EntityAPI   文件: ControllableVillagerBase.java
@Override
public BehaviourItem[] getDefaultMovementBehaviours() {
    return new BehaviourItem[]{
            new BehaviourItem(0, new BehaviourFloat(this)),
            new BehaviourItem(1, new BehaviourAvoidEntity(this, Zombie.class, 8.0F, 0.6D, 0.6D)),
            new BehaviourItem(1, new BehaviourTradeWithPlayer(this)),
            new BehaviourItem(1, new BehaviourLookAtTradingPlayer(this)),
            new BehaviourItem(2, new BehaviourMoveIndoors(this)),
            new BehaviourItem(3, new BehaviourRestrictOpenDoor(this)),
            new BehaviourItem(4, new BehaviourOpenDoor(this, true)),
            new BehaviourItem(5, new BehaviourMoveTowardsRestriction(this, 0.6D)),
            new BehaviourItem(6, new BehaviourMakeLove(this)),
            new BehaviourItem(7, new BehaviourTakeFlower(this)),
            new BehaviourItem(8, new BehaviourVillagerPlay(this, 0.32D)),
            new BehaviourItem(9, new BehaviourInteract(this, HumanEntity.class, 3.0F, 1.0F)),
            new BehaviourItem(9, new BehaviourInteract(this, Villager.class, 3.0F, 1.0F)),
            new BehaviourItem(9, new BehaviourRandomStroll(this, 0.6D)),
            new BehaviourItem(10, new BehaviourLookAtNearestEntity(this, InsentientEntity.class, 8.0F))
    };
}
 
源代码2 项目: UhcCore   文件: PlayersManager.java
public void spawnOfflineZombieFor(Player player){
	UhcPlayer uhcPlayer = getUhcPlayer(player);

	Zombie zombie = (Zombie) player.getWorld().spawnEntity(player.getLocation(), EntityType.ZOMBIE);
	zombie.setCustomName(uhcPlayer.getDisplayName());
	zombie.setCustomNameVisible(true);
	// 1.8 doesn't have setAI method so use VersionUtils.
	VersionUtils.getVersionUtils().setEntityAI(zombie, false);
	zombie.setBaby(false);
	zombie.addPotionEffect(new PotionEffect(PotionEffectType.FIRE_RESISTANCE, 999999, 1, true, true));

	EntityEquipment equipment = zombie.getEquipment();
	equipment.setHelmet(VersionUtils.getVersionUtils().createPlayerSkull(player.getName(), player.getUniqueId()));
	equipment.setChestplate(player.getInventory().getChestplate());
	equipment.setLeggings(player.getInventory().getLeggings());
	equipment.setBoots(player.getInventory().getBoots());
	equipment.setItemInHand(player.getItemInHand());

	uhcPlayer.getStoredItems().clear();
	for (ItemStack item : player.getInventory().getContents()){
		if (item != null){
			uhcPlayer.getStoredItems().add(item);
		}
	}

	uhcPlayer.setOfflineZombie(zombie);
}
 
源代码3 项目: UhcCore   文件: EntityDeathListener.java
private void handleOfflineZombieDeath(EntityDeathEvent event){
	if (event.getEntityType() != EntityType.ZOMBIE){
		return;
	}

	Zombie zombie = (Zombie) event.getEntity();
	GameManager gm = GameManager.getGameManager();

	if (zombie.getCustomName() == null){
		return;
	}

	UhcPlayer uhcPlayer = null;
	for (UhcPlayer player : gm.getPlayersManager().getPlayersList()){
		if (player.getOfflineZombie() != null && player.getOfflineZombie().equals(zombie)){
			// found player
			uhcPlayer = player;
			break;
		}
	}

	if (uhcPlayer == null){
		return;
	}

	event.getDrops().clear();
	uhcPlayer.setOfflineZombie(null);
	gm.getPlayersManager().killOfflineUhcPlayer(uhcPlayer, zombie.getLocation(), new HashSet<>(uhcPlayer.getStoredItems()), zombie.getKiller());
}
 
源代码4 项目: StackMob-3   文件: ZombieTrait.java
@Override
public boolean checkTrait(Entity original, Entity nearby) {
    if(original instanceof Zombie){
        return (((Zombie) original).isBaby() != ((Zombie) nearby).isBaby());
    }
    return false;
}
 
源代码5 项目: SkyWarsReloaded   文件: MobSpawnEvent.java
@Override
public void doEvent() {
	if (gMap.getMatchState() == MatchState.PLAYING) {
		this.fired = true;
		sendTitle();
		World world = gMap.getCurrentWorld();
		for (int i = 0; i < gMap.getAlivePlayers().size(); i++) {
			Player player = gMap.getAlivePlayers().get(i);
			br1 = new BukkitRunnable() {
				@Override
				public void run() {
					if (player != null) {
						List<Block> blocks = getSpawnableBlocks(player.getLocation());
						Collections.shuffle(blocks);
						for (int i = 0; i < Util.get().getRandomNum(minMobsPerPlayer, maxMobsPerPlayer); i++) {
							Location spawn = blocks.get(i).getLocation().clone().add(0, 1, 0);
							LivingEntity ent = (LivingEntity) world.spawnEntity(spawn, EntityType.valueOf(mobs.get(ThreadLocalRandom.current().nextInt(0, mobs.size())).toUpperCase()));
							if (ent instanceof Zombie || ent instanceof Skeleton) {
								ent.getEquipment().setHelmet(new ItemStack(Material.CHAINMAIL_HELMET, 1));
							}
							SkyWarsReloaded.getNMS().setEntityTarget(ent, player);
							mobsSpawned.add(ent);
						}
					}
				}
			}.runTaskLater(SkyWarsReloaded.get(), i * 3L);
		}
		if (length != -1) {
			br2 = new BukkitRunnable() {
				@Override
				public void run() {
					endEvent(false);
				}
			}.runTaskLater(SkyWarsReloaded.get(), length * 20L);
		}
	}
}
 
源代码6 项目: uSkyBlock   文件: SpawnEventsTest.java
@Test
public void onPhantomSpawn_noPhantom() {
    Zombie entity = mock(Zombie.class);
    CreatureSpawnEvent event = new CreatureSpawnEvent(entity, CreatureSpawnEvent.SpawnReason.NATURAL);
    spawnEvents.onPhantomSpawn(event);

    assertFalse(event.isCancelled());
}
 
源代码7 项目: Slimefun4   文件: SwordOfBeheading.java
@Override
public EntityKillHandler getItemHandler() {
    return (e, entity, killer, item) -> {
        Random random = ThreadLocalRandom.current();

        if (e.getEntity() instanceof Zombie) {
            if (random.nextInt(100) < chanceZombie.getValue()) {
                e.getDrops().add(new ItemStack(Material.ZOMBIE_HEAD));
            }
        }
        else if (e.getEntity() instanceof WitherSkeleton) {
            if (random.nextInt(100) < chanceWitherSkeleton.getValue()) {
                e.getDrops().add(new ItemStack(Material.WITHER_SKELETON_SKULL));
            }
        }
        else if (e.getEntity() instanceof Skeleton) {
            if (random.nextInt(100) < chanceSkeleton.getValue()) {
                e.getDrops().add(new ItemStack(Material.SKELETON_SKULL));
            }
        }
        else if (e.getEntity() instanceof Creeper) {
            if (random.nextInt(100) < chanceCreeper.getValue()) {
                e.getDrops().add(new ItemStack(Material.CREEPER_HEAD));
            }
        }
        else if (e.getEntity() instanceof Player && random.nextInt(100) < chancePlayer.getValue()) {
            ItemStack skull = new ItemStack(Material.PLAYER_HEAD);
            ItemMeta meta = skull.getItemMeta();
            ((SkullMeta) meta).setOwningPlayer((Player) e.getEntity());
            skull.setItemMeta(meta);

            e.getDrops().add(skull);
        }
    };
}
 
源代码8 项目: ce   文件: Headless.java
@Override
public void effect(Event e, ItemStack item, int level) {
    EntityDamageByEntityEvent event = (EntityDamageByEntityEvent) e;
    final Player player = (Player) event.getDamager();
    final LivingEntity ent = (LivingEntity) event.getEntity();

    new BukkitRunnable() {
        @Override
        public void run() {

            if (ent.getHealth() <= 0) {
                byte type = 3;

                if (ent instanceof Skeleton) {
                    type = 0;
                    if (((Skeleton) ent).getSkeletonType().equals(SkeletonType.WITHER))
                        type = 1;
                } else if (ent instanceof Zombie)
                    type = 2;
                else if (ent instanceof Creeper)
                    type = 4;

                ItemStack skull = new ItemStack(Material.SKULL_ITEM, 1, type);
                if (type == 3) {
                    SkullMeta sm = (SkullMeta) skull.getItemMeta();
                    sm.setOwner(ent.getName());
                    skull.setItemMeta(sm);
                }
                ent.getWorld().dropItem(ent.getLocation(), skull);
                EffectManager.playSound(player.getLocation(), "BLOCK_ANVIL_LAND", 0.1f, 1.5f);
            }
        }
    }.runTaskLater(getPlugin(), 5l);

}
 
源代码9 项目: UhcCore   文件: UhcPlayer.java
public Zombie getOfflineZombie() {
	return offlineZombie;
}
 
源代码10 项目: UhcCore   文件: UhcPlayer.java
public void setOfflineZombie(Zombie offlineZombie) {
	this.offlineZombie = offlineZombie;
}
 
源代码11 项目: 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);
        }
    }
}
 
源代码12 项目: StackMob-3   文件: ZombieTrait.java
@Override
public void applyTrait(Entity original, Entity spawned) {
    if(original instanceof Zombie) {
        ((Zombie) spawned).setBaby(((Zombie) original).isBaby());
    }
}
 
源代码13 项目: EliteMobs   文件: SmallTreasureGoblin.java
@EventHandler (priority = EventPriority.HIGHEST)
public void onSpawn(CreatureSpawnEvent event) {

    if (event.isCancelled()) return;
    if (!EventLauncher.verifyPlayerCount()) return;

    if (EliteMobs.validWorldList.contains(event.getEntity().getWorld())) {

        if (entityQueued && (event.getSpawnReason().equals(CreatureSpawnEvent.SpawnReason.NATURAL) ||
                event.getSpawnReason().equals(CreatureSpawnEvent.SpawnReason.CUSTOM)) &&
                event.getEntity() instanceof Zombie) {

            entityQueued = false;
            initalizeEvent(event.getLocation());

        }

    }

}
 
源代码14 项目: SonarPet   文件: ZombiePet.java
@SuppressWarnings("deprecation")
@Override
public void setZombieType(ZombieType newType) {
    if (newType == this.zombieType) return;
    if (Versioning.NMS_VERSION.compareTo(NmsVersion.v1_11_R1) >= 0) {
        final EntityHookType hookType;
        switch (newType) {
            case NORMAL:
                hookType = EntityHookType.ZOMBIE;
                break;
            case HUSK:
                hookType = EntityHookType.HUSK_ZOMBIE;
                break;
            case VILLAGER:
                hookType = EntityHookType.VILLAGER_ZOMBIE;
                break;
            case PIGMAN:
                hookType = EntityHookType.PIG_ZOMBIE;
                break;
            default:
                throw new IllegalArgumentException("Unknown zombie type: " + newType);
        }
        switchHookType(getOwner(), hookType);
    } else {
        if (this.getZombieType() == ZombieType.PIGMAN && newType != ZombieType.PIGMAN) {
            // Switch to a normal zombie
            switchHookType(getOwner(), EntityHookType.ZOMBIE);
        }
        switch (newType) {
            case PIGMAN:
                // Pigmen are considered a separate entity type, even on old versions
                switchHookType(getOwner(), EntityHookType.PIG_ZOMBIE);
                break;
            case NORMAL:
                ((Zombie) getEntityPet().getBukkitEntity()).setVillager(false);
                break;
            case VILLAGER:
                ((Zombie) getEntityPet().getBukkitEntity()).setVillager(true);
            default:
                throw new IllegalArgumentException("Unknown zombie type: " + newType);
        }
    }
    this.zombieType = newType;
}
 
源代码15 项目: SonarPet   文件: AbstractEntityZombiePet.java
@Override
public Zombie getBukkitEntity() {
    return (Zombie) super.getBukkitEntity();
}
 
源代码16 项目: EliteMobs   文件: TheReturned.java
@EventHandler
public void onSpawn(EntitySpawnEvent event) {

    if (!DeadMoon.eventOngoing) return;

    if (event.getEntity() instanceof LivingEntity && theReturnedList.contains(event.getEntity()))
        spawnTheReturned((Zombie) event.getEntity());

}
 
源代码17 项目: EliteMobs   文件: TheReturned.java
private void spawnTheReturned(Zombie zombie) {

        /*
        Wait a tick before spawning as third party compatibility can get messy with spawn events
         */
        new BukkitRunnable() {

            @Override
            public void run() {

                if (!zombie.isValid()) return;

                if (theReturnedList.contains(zombie)) return;

                int mobLevel;

                if (EntityTracker.isEliteMob(zombie))
                    mobLevel = (int) Math.ceil(EntityTracker.getEliteMobEntity(zombie).getLevel() / 2);
                else mobLevel = 1;

                theReturnedConstructor(mobLevel, zombie);
                theReturnedConstructor(mobLevel, zombie);

            }

        }.runTaskLater(MetadataHandler.PLUGIN, 1);

    }
 
源代码18 项目: EliteMobs   文件: TheReturned.java
public static void theReturnedConstructor(int mobLevel, Zombie zombie) {

        Location spawnLocation = zombie.getLocation();

        ReinforcementMobEntity reinforcementMobEntity = new ReinforcementMobEntity(EntityType.HUSK, spawnLocation,
                mobLevel, ConfigValues.eventsConfig.getString(EventsConfig.DEAD_MOON_THE_RETURNED_NAME), CreatureSpawnEvent.SpawnReason.NATURAL);

        double x = ThreadLocalRandom.current().nextDouble() - 0.5;
        double z = ThreadLocalRandom.current().nextDouble() - 0.5;

        reinforcementMobEntity.getLivingEntity().setVelocity(new Vector(x, 0.5, z));

        new BukkitRunnable() {

            @Override
            public void run() {

                reinforcementMobEntity.getLivingEntity().getEquipment().setBoots(new ItemStack(Material.AIR));
                reinforcementMobEntity.getLivingEntity().getEquipment().setLeggings(new ItemStack(Material.AIR));
                reinforcementMobEntity.getLivingEntity().getEquipment().setChestplate(new ItemStack(Material.AIR));
                reinforcementMobEntity.getLivingEntity().getEquipment().setHelmet(new ItemStack(Material.AIR));
                reinforcementMobEntity.getLivingEntity().getEquipment().setItemInMainHand(new ItemStack(Material.AIR));

            }

        }.runTaskLater(MetadataHandler.PLUGIN, 1);

    }
 
 类所在包
 类方法
 同包方法