Java 类org.bukkit.entity.EnderDragon 实例源码

项目:mczone    文件:Control.java   
public static void walkToPlayer(Entity e, Player p) {
    // Tamed animals already handle their own following
    if (e instanceof Tameable) {
        if (((Tameable) e).isTamed()) {
            return;
        }
    }
    if (e.getPassenger() instanceof Player) {
        return;
    }

    // Moving the dragon is too buggy
    if (e instanceof EnderDragon) {
        return;
    }
    // Once this is set we can't unset it.
    //((Creature)e).setTarget(p);

    // If the pet is too far just teleport instead of attempt navigation
    if (e.getLocation().distance(p.getLocation()) > 20) {
        e.teleport(p);
    } else {
        Navigation n = ((CraftLivingEntity) e).getHandle().getNavigation();
        n.a(p.getLocation().getX(), p.getLocation().getY(), p.getLocation().getZ(), 0.30f);
    }
}
项目:DragonEggDrop    文件:RespawnSafeguardRunnable.java   
@Override
public void run() {
    // Ender dragon was not found. Forcibly respawn it
    if (world.getEntitiesByClass(EnderDragon.class).size() == 0) {
        this.plugin.getLogger().warning("Something went wrong! Had to forcibly reset dragon battle...");

        this.battle.resetBattleState();
        this.removeCrystals();

        plugin.getDEDManager().getWorldWrapper(world).startRespawn(0);
        return;
    }

    // Ensure all crystals are not invulnerable
    this.world.getEntitiesByClass(EnderCrystal.class).forEach(c -> {
        c.setInvulnerable(false);
        c.setBeamTarget(null);
    });
}
项目:DragonEggDrop    文件:RespawnListeners.java   
@EventHandler
public void onPlayerSwitchWorlds(PlayerChangedWorldEvent event) {
    World world = event.getPlayer().getWorld();
    if (world.getEnvironment() != Environment.THE_END) return;

    EndWorldWrapper worldWrapper = manager.getWorldWrapper(world);

    // Start the respawn countdown if joining an empty world
    if (plugin.getConfig().getBoolean("respawn-on-join", false)) {
        if (world.getPlayers().size() > 1 || worldWrapper.isRespawnInProgress()
                || world.getEntitiesByClass(EnderDragon.class).size() == 0) 
            return;

        manager.getWorldWrapper(world).startRespawn(RespawnType.JOIN);
    }

    // Reset end crystal states just in case something went awry
    if (!worldWrapper.isRespawnInProgress()) {
        world.getEntitiesByClass(EnderCrystal.class).forEach(e -> {
            e.setInvulnerable(false);
            e.setBeamTarget(null);
        });
    }
}
项目:DragonEggDrop    文件:DragonLifeListeners.java   
@EventHandler
public void onDragonDeath(EntityDeathEvent event) {
    if (!(event.getEntity() instanceof EnderDragon)) return;

    EnderDragon dragon = (EnderDragon) event.getEntity();
    DragonBattle dragonBattle = plugin.getNMSAbstract().getEnderDragonBattleFromDragon(dragon);

    World world = event.getEntity().getWorld();
    EndWorldWrapper worldWrapper = plugin.getDEDManager().getWorldWrapper(world);

    BattleStateChangeEvent bscEventCrystals = new BattleStateChangeEvent(dragonBattle, dragon, BattleState.BATTLE_COMMENCED, BattleState.BATTLE_END);
    Bukkit.getPluginManager().callEvent(bscEventCrystals);

    new BukkitRunnable() {
        @Override
        public void run() {
            if (plugin.getNMSAbstract().getEnderDragonDeathAnimationTime(dragon) >= 185) { // Dragon is dead at 200
                new DragonDeathRunnable(plugin, worldWrapper, dragon);
                this.cancel();
            }
        }
    }.runTaskTimer(plugin, 0L, 1L);
}
项目:DragonEggDrop    文件:DragonTemplate.java   
/**
 * Apply this templates data to an EnderDragonBattle object
 * 
 * @param nmsAbstract an instance of the NMSAbstract interface
 * @param dragon the dragon to modify
 * @param battle the battle to modify
 */
public void applyToBattle(NMSAbstract nmsAbstract, EnderDragon dragon, DragonBattle battle) {
    Validate.notNull(nmsAbstract, "Instance of NMSAbstract cannot be null. See DragonEggDrop#getNMSAbstract()");
    Validate.notNull(dragon, "Ender Dragon cannot be null");
    Validate.notNull(battle, "Instance of DragonBattle cannot be null");

    if (name != null) {
        dragon.setCustomName(name);
        battle.setBossBarTitle(name);
    }

    battle.setBossBarStyle(barStyle, barColour);
    this.attributes.forEach((a, v) -> {
        AttributeInstance attribute = dragon.getAttribute(a);
        if (attribute != null) {
            attribute.setBaseValue(v);
        }
    });

    // Set health... max health attribute doesn't do that for me. -,-
    if (attributes.containsKey(Attribute.GENERIC_MAX_HEALTH)) {
        dragon.setHealth(attributes.get(Attribute.GENERIC_MAX_HEALTH));
    }
}
项目:DDCustomPlugin    文件:EndDragonRespawn.java   
@SuppressWarnings("deprecation")
public void onDragonCreatesPortal(EntityCreatePortalEvent event)
{
    if (event.isCancelled())
        return;

    Entity entity = event.getEntity();

    if (!(entity instanceof EnderDragon))
        return;

    log("The dragon has been killed!");

    Location enderEggLoc = entity.getLocation();

    if (enderEggLoc != null) {
        End.getBlockAt(enderEggLoc).setTypeId(122);
    } else {
        log("Failed to process portal, cancelling event anyway!");
    }
    event.setCancelled(true);
}
项目:EndHQ-Libraries    文件:RemoteEnderDragon.java   
public RemoteEnderDragon(int inID, RemoteEnderDragonEntity inEntity, EntityManager inManager)
{
    super(inID, RemoteEntityType.EnderDragon, inManager);
    this.m_entity = inEntity;

    Bukkit.getPluginManager().registerEvents(new Listener() {
            @EventHandler
            public void onEntityExplode(EntityExplodeEvent event)
            {
                if(event.getEntity() instanceof EnderDragon)
                {
                    if(event.getEntity() == getBukkitEntity() && !shouldDestroyBlocks())
                        event.setCancelled(true);
                }
                else if(event.getEntity() instanceof ComplexEntityPart)
                {
                    if(((ComplexEntityPart)event.getEntity()).getParent() == getBukkitEntity() && !shouldDestroyBlocks())
                        event.setCancelled(true);
                }
            }
        }, this.m_manager.getPlugin()
    );
}
项目:NPlugins    文件:ChunkListener.java   
/**
 * Remove the unloaded EnderDragons from the loaded set
 *
 * @param event a Chunk Unload Event
 */
@EventHandler(priority = EventPriority.NORMAL)
public void onEndChunkUnload(final ChunkUnloadEvent event) {
    if (event.getWorld().getEnvironment() == Environment.THE_END) {
        final String worldName = event.getWorld().getName();
        final EndWorldHandler handler = this.plugin.getHandler(StringUtil.toLowerCamelCase(worldName));
        if (handler != null) {
            EndChunk chunk = handler.getChunks().getChunk(event.getChunk());
            if (chunk == null) {
                chunk = handler.getChunks().addChunk(event.getChunk());
            }
            for (final Entity e : event.getChunk().getEntities()) {
                if (e.getType() == EntityType.ENDER_DRAGON) {
                    final EnderDragon ed = (EnderDragon)e;
                    handler.getLoadedDragons().remove(ed.getUniqueId());
                    chunk.incrementSavedDragons();
                }
            }
        }
    }
}
项目:NPlugins    文件:UnexpectedDragonDeathHandlerTask.java   
@Override
public void run() {
    boolean found = false;

    final Iterator<UUID> it = this.handler.getLoadedDragons().iterator();
    final Collection<EnderDragon> dragons = this.handler.getEndWorld().getEntitiesByClass(EnderDragon.class);
    while (it.hasNext()) {
        final UUID id = it.next();
        for (final EnderDragon ed : dragons) {
            if (id == ed.getUniqueId()) {
                found = true;
                break;
            }
        }
        if (!found) {
            // This EnderDragon was deleted some other way than after his death, forget about him
            this.handler.getDragons().remove(id);
            it.remove();
            for (final String line : this.message) {
                this.handler.getPlugin().getLogger().warning(line);
            }
        }
        found = false;
    }
}
项目:EntityAPI    文件:ControllableEnderDragonBase.java   
public ControllableEnderDragonBase(int id, EntityManager manager) {
    super(id, ControllableEntityType.ENDERDRAGON, manager);
    Bukkit.getPluginManager().registerEvents(new Listener() {

        @EventHandler
        public void onEntityExplode(EntityExplodeEvent event) {
            if (!shouldDestroyBlocks()) {
                Entity entity = event.getEntity();
                if (entity instanceof EnderDragon && entity.equals(getBukkitEntity())) {
                    event.setCancelled(true);
                } else if (entity instanceof ComplexEntityPart && ((ComplexEntityPart) entity).getParent().equals(getBukkitEntity())) {
                    event.setCancelled(true);
                }
            }
        }

    }, EntityAPI.getCore());
}
项目:HCFCore    文件:WorldListener.java   
@EventHandler(ignoreCancelled = false, priority = EventPriority.HIGH)
public void onEntityExplode(EntityExplodeEvent event) {
    event.blockList().clear();
    if (event.getEntity() instanceof EnderDragon) {
        event.setCancelled(true);
    }
}
项目:HCFCore    文件:WorldListener.java   
@EventHandler(ignoreCancelled = true, priority = EventPriority.HIGHEST)
public void onWitherChangeBlock(EntityChangeBlockEvent event) {
    Entity entity = event.getEntity();
    if (entity instanceof Wither || entity instanceof EnderDragon) {
        event.setCancelled(true);
    }
}
项目:DragonEggDrop    文件:DragonEggDrop.java   
private void readTempData(File file) {
    try (FileReader reader = new FileReader(tempDataFile)) {
        JsonObject root = GSON.fromJson(reader, JsonObject.class);
        if (root == null) return;

        for (Entry<String, JsonElement> entry : root.entrySet()) {
            World world = Bukkit.getWorld(entry.getKey());
            if (world == null) return;

            EndWorldWrapper wrapper = dedManager.getWorldWrapper(world);
            JsonObject element = entry.getValue().getAsJsonObject();

            if (element.has("respawnTime")) {
                if (wrapper.isRespawnInProgress()) wrapper.stopRespawn();

                wrapper.startRespawn(element.get("respawnTime").getAsInt());
            }

            Collection<EnderDragon> dragons = world.getEntitiesByClass(EnderDragon.class);
            if (element.has("activeTemplate") && !dragons.isEmpty()) {
                DragonTemplate template = dedManager.getTemplate(element.get("activeTemplate").getAsString());
                if (template == null) return;

                wrapper.setActiveBattle(template);
                template.applyToBattle(nmsAbstract, Iterables.get(dragons, 0), nmsAbstract.getEnderDragonBattleFromWorld(world));
            }
        }
    } catch (IOException | JsonParseException e) {
        e.printStackTrace();
    }
}
项目:DragonEggDrop    文件:NMSAbstract1_10_R1.java   
@Override
public DragonBattle getEnderDragonBattleFromDragon(EnderDragon dragon) {
    if (dragon == null) return null;

    EntityEnderDragon nmsDragon = ((CraftEnderDragon) dragon).getHandle();
    return new DragonBattle1_10_R1(nmsDragon.cZ());
}
项目:DragonEggDrop    文件:NMSAbstract1_10_R1.java   
@Override
public boolean hasBeenPreviouslyKilled(EnderDragon dragon) {
    if (dragon == null) return false;

    EnderDragonBattle battle = ((DragonBattle1_10_R1) this.getEnderDragonBattleFromDragon(dragon)).getHandle();
    return battle.d();
}
项目:DragonEggDrop    文件:NMSAbstract1_10_R1.java   
@Override
public int getEnderDragonDeathAnimationTime(EnderDragon dragon) {
    if (dragon == null) return -1;

    EntityEnderDragon nmsDragon = ((CraftEnderDragon) dragon).getHandle();
    return nmsDragon.bH;
}
项目:DragonEggDrop    文件:NMSAbstract1_12_R1.java   
@Override
public DragonBattle getEnderDragonBattleFromDragon(EnderDragon dragon) {
    if (dragon == null) return null;

    EntityEnderDragon nmsDragon = ((CraftEnderDragon) dragon).getHandle();
    return new DragonBattle1_12_R1(nmsDragon.df());
}
项目:DragonEggDrop    文件:NMSAbstract1_12_R1.java   
@Override
public boolean hasBeenPreviouslyKilled(EnderDragon dragon) {
    if (dragon == null) return false;

    EnderDragonBattle battle = ((DragonBattle1_12_R1) this.getEnderDragonBattleFromDragon(dragon)).getHandle();
    return battle.d();
}
项目:DragonEggDrop    文件:NMSAbstract1_12_R1.java   
@Override
public int getEnderDragonDeathAnimationTime(EnderDragon dragon) {
    if (dragon == null) return -1;

    EntityEnderDragon nmsDragon = ((CraftEnderDragon) dragon).getHandle();
    return nmsDragon.bH;
}
项目:DragonEggDrop    文件:NMSAbstract1_9_R2.java   
@Override
public DragonBattle getEnderDragonBattleFromDragon(EnderDragon dragon) {
    if (dragon == null) return null;

    EntityEnderDragon nmsDragon = ((CraftEnderDragon) dragon).getHandle();
    return new DragonBattle1_9_R2(nmsDragon.cV());
}
项目:DragonEggDrop    文件:NMSAbstract1_9_R2.java   
@Override
public boolean hasBeenPreviouslyKilled(EnderDragon dragon) {
    if (dragon == null) return false;

    EnderDragonBattle battle = ((DragonBattle1_9_R2) this.getEnderDragonBattleFromDragon(dragon)).getHandle();
    return battle.d();
}
项目:DragonEggDrop    文件:NMSAbstract1_9_R2.java   
@Override
public int getEnderDragonDeathAnimationTime(EnderDragon dragon) {
    if (dragon == null) return -1;

    EntityEnderDragon nmsDragon = ((CraftEnderDragon) dragon).getHandle();
    return nmsDragon.bG;
}
项目:DragonEggDrop    文件:NMSAbstract1_9_R1.java   
@Override
public DragonBattle getEnderDragonBattleFromDragon(EnderDragon dragon) {
    if (dragon == null) return null;

    EntityEnderDragon nmsDragon = ((CraftEnderDragon) dragon).getHandle();
    return new DragonBattle1_9_R1(nmsDragon.cU());
}
项目:DragonEggDrop    文件:NMSAbstract1_9_R1.java   
@Override
public boolean hasBeenPreviouslyKilled(EnderDragon dragon) {
    if (dragon == null) return false;

    EnderDragonBattle battle = ((DragonBattle1_9_R1) this.getEnderDragonBattleFromDragon(dragon)).getHandle();
    return battle.d();
}
项目:DragonEggDrop    文件:NMSAbstract1_9_R1.java   
@Override
public int getEnderDragonDeathAnimationTime(EnderDragon dragon) {
    if (dragon == null) return -1;

    EntityEnderDragon nmsDragon = ((CraftEnderDragon) dragon).getHandle();
    return nmsDragon.bF;
}
项目:DragonEggDrop    文件:NMSAbstract1_11_R1.java   
@Override
public DragonBattle getEnderDragonBattleFromDragon(EnderDragon dragon) {
    if (dragon == null) return null;

    EntityEnderDragon nmsDragon = ((CraftEnderDragon) dragon).getHandle();
    return new DragonBattle1_11_R1(nmsDragon.db());
}
项目:DragonEggDrop    文件:NMSAbstract1_11_R1.java   
@Override
public boolean hasBeenPreviouslyKilled(EnderDragon dragon) {
    if (dragon == null) return false;

    EnderDragonBattle battle = ((DragonBattle1_11_R1) this.getEnderDragonBattleFromDragon(dragon)).getHandle();
    return battle.d();
}
项目:DragonEggDrop    文件:NMSAbstract1_11_R1.java   
@Override
public int getEnderDragonDeathAnimationTime(EnderDragon dragon) {
    if (dragon == null) return -1;

    EntityEnderDragon nmsDragon = ((CraftEnderDragon) dragon).getHandle();
    return nmsDragon.bG;
}
项目:DragonEggDrop    文件:EndWorldWrapper.java   
/**
 * Commence the Dragon's respawning processes in this world
 * 
 * @param type the type that triggered this dragon respawn
 */
public void startRespawn(RespawnType type) {
    Validate.notNull(type, "Cannot respawn a dragon under a null respawn type");

    boolean dragonExists = !this.getWorld().getEntitiesByClasses(EnderDragon.class).isEmpty();
    if (dragonExists || respawnInProgress || respawnTask != null) return;

       FileConfiguration config = plugin.getConfig();
    int respawnDelay = (type == RespawnType.JOIN ? config.getInt("join-respawn-delay", 60) : config.getInt("death-respawn-delay", 300));

    this.respawnTask = new RespawnRunnable(plugin, getWorld(), respawnDelay);
    this.respawnTask.runTaskTimer(plugin, 0, 20);
    this.respawnInProgress = true;
}
项目:DragonEggDrop    文件:EndWorldWrapper.java   
/**
 * Commence the Dragon's respawning processes in this world based 
 * on provided values rather than configured ones.
 * 
 * @param respawnDelay the time until the dragon respawns
 */
public void startRespawn(int respawnDelay) {
    if (respawnDelay < 0) respawnDelay = 0;

    boolean dragonExists = !this.getWorld().getEntitiesByClass(EnderDragon.class).isEmpty();
    if (dragonExists || respawnInProgress || respawnTask != null) return;

    this.respawnTask = new RespawnRunnable(plugin, getWorld(), respawnDelay);
    this.respawnTask.runTaskTimer(plugin, 0, 20);
    this.respawnInProgress = true;
}
项目:DragonEggDrop    文件:RespawnListeners.java   
@EventHandler
public void onPlayerJoin(PlayerJoinEvent event) {
    // Version notification
    Player player = event.getPlayer();
    if (player.isOp() && plugin.isNewVersionAvailable()) {
        this.plugin.sendMessage(player, ChatColor.GRAY + "A new version is available for download (Version " + this.plugin.getNewVersion() + "). " + RESOURCE_PAGE);
    }

    World world = player.getWorld();
    if (world.getEnvironment() != Environment.THE_END) return;

    EndWorldWrapper worldWrapper = manager.getWorldWrapper(world);

    // Reset end crystal states just in case something went awry
    if (!worldWrapper.isRespawnInProgress()) {
        world.getEntitiesByClass(EnderCrystal.class).forEach(e -> {
            e.setInvulnerable(false);
            e.setBeamTarget(null);
        });
    }

    // Dragon respawn logic
    if (!plugin.getConfig().getBoolean("respawn-on-join", false)) return;
    if (!world.getPlayers().isEmpty() || manager.getWorldWrapper(world).isRespawnInProgress()
            || world.getEntitiesByClass(EnderDragon.class).size() == 0) 
        return;

    manager.getWorldWrapper(world).startRespawn(RespawnType.JOIN);
}
项目:DragonEggDrop    文件:DragonLifeListeners.java   
@EventHandler
public void onCreatureSpawn(CreatureSpawnEvent event) {
    if (!(event.getEntity() instanceof EnderDragon)) return;

    EnderDragon dragon = (EnderDragon) event.getEntity();
    if (dragon.getWorld().getEnvironment() != Environment.THE_END) return;

    DragonBattle dragonBattle = plugin.getNMSAbstract().getEnderDragonBattleFromDragon(dragon);
    EndWorldWrapper world = plugin.getDEDManager().getWorldWrapper(dragon.getWorld());

    if (plugin.getConfig().getBoolean("strict-countdown") && world.isRespawnInProgress()) {
        world.stopRespawn();
    }

    DragonTemplate template = plugin.getDEDManager().getRandomTemplate();
    if (template != null) {
        template.applyToBattle(plugin.getNMSAbstract(), dragon, dragonBattle);
        world.setActiveBattle(template);

        if (template.shouldAnnounceRespawn()) {
            Bukkit.getOnlinePlayers().forEach(p -> p.sendMessage(
                    ChatColor.DARK_GRAY + "[" + ChatColor.RED.toString() + ChatColor.BOLD + "!!!" + ChatColor.DARK_GRAY + "] " 
                    + template.getName() + ChatColor.DARK_GRAY + " has respawned in the end!")
            );
        }
    }

    BattleStateChangeEvent bscEventCrystals = new BattleStateChangeEvent(dragonBattle, dragon, BattleState.DRAGON_RESPAWNING, BattleState.BATTLE_COMMENCED);
    Bukkit.getPluginManager().callEvent(bscEventCrystals);
}
项目:DragonEggDrop    文件:DragonLifeListeners.java   
@EventHandler
public void onAttemptRespawn(PlayerInteractEvent event) {
    Player player = event.getPlayer();
    ItemStack item = event.getItem();

    if (item == null || item.getType() != Material.END_CRYSTAL) return;
    if (plugin.getConfig().getBoolean("allow-crystal-respawns")) return;

    World world = player.getWorld();
    EndWorldWrapper worldWrapper = plugin.getDEDManager().getWorldWrapper(world);
    if (worldWrapper.isRespawnInProgress() || !world.getEntitiesByClass(EnderDragon.class).isEmpty()) {
        Set<EnderCrystal> crystals = PortalCrystal.getAllSpawnedCrystals(world);

        // Check for 3 crystals because PlayerInteractEvent is fired first
        if (crystals.size() < 3) return;

        for (EnderCrystal crystal : crystals) {
            crystal.getLocation().getBlock().setType(Material.AIR); // Remove fire
            world.dropItem(crystal.getLocation(), END_CRYSTAL_ITEM);
            crystal.remove();
        }

        plugin.getNMSAbstract().sendActionBar(ChatColor.RED + "You cannot manually respawn a dragon!", player);
        player.sendMessage(ChatColor.RED + "You cannot manually respawn a dragon!");
        event.setCancelled(true);
    }
}
项目:Skript    文件:EvtDamage.java   
@SuppressWarnings("null")
@Override
public boolean check(final Event evt) {
    final EntityDamageEvent e = (EntityDamageEvent) evt;
    if (!checkType(e.getEntity()))
        return false;
    if (e instanceof EntityDamageByEntityEvent && ((EntityDamageByEntityEvent) e).getDamager() instanceof EnderDragon && ((EntityDamageByEntityEvent) e).getEntity() instanceof EnderDragon)
        return false;
    return checkDamage(e);
}
项目:OldBukkit    文件:Destemido.java   
@EventHandler
void onEntityDeath(EntityDeathEvent e){
    Entity entity = e.getEntity();
    if(e.getEntity().getKiller() instanceof Player && entity instanceof EnderDragon){
        for(String msg : Main.getInstance().getConfig().getStringList("NovoDestemido")){
            msg = msg.replace("&", "�").replace("{player}", e.getEntity().getKiller().getName());
            Bukkit.broadcastMessage(msg);
        }
        setDestemido(e.getEntity().getKiller());
    }
}
项目:ce    文件:BeastmastersBow.java   
@Override
    public boolean effect(Event event, Player player) {
//        List<String> lore = e.getBow().getItemMeta().getLore();
//        if(!lore.contains(placeHolder)) {
//            for(int i = descriptionSize; i != 0; i--)
//                lore.remove(i);
//            e.getProjectile().setMetadata("ce." + this.getOriginalName(), new FixedMetadataValue(main, writeType(lore)));
//            player.setMetadata("ce.CanUnleashBeasts", null);
//        } else
//            e.getProjectile().setMetadata("ce." + this.getOriginalName(), null);
          if(event instanceof EntityDamageByEntityEvent) {
          EntityDamageByEntityEvent e = (EntityDamageByEntityEvent) event;
          if(e.getDamager() != player)
              return false;
          Entity ent = e.getEntity();
          Location loc = ent.getLocation();
          World w = ent.getWorld();
            if(ent instanceof Silverfish || ent instanceof EnderDragon || ent instanceof Spider || ent instanceof Slime || ent instanceof Ghast || ent instanceof MagmaCube || ent instanceof CaveSpider || (ent instanceof Wolf && ((Wolf) ent).isAngry()) || ent instanceof PigZombie) {
                    e.setDamage(e.getDamage()*DamageMultiplication);
                    w.playEffect(loc, Effect.SMOKE, 50);
                    w.playEffect(loc, Effect.MOBSPAWNER_FLAMES, 50);
                    EffectManager.playSound(loc, "BLOCK_PISTON_RETRACT", 1.3f, 3f);
                return true;
            } else if (ent instanceof Player) {
                for(int i = 0; i < MaximumMobs; i++) {
                    if(rand.nextInt(100) < MobAppearanceChance) {
                        w.spawnEntity(loc, rand.nextInt(2) == 1 ? EntityType.SPIDER : EntityType.SLIME);
                        w.playEffect(loc, Effect.MOBSPAWNER_FLAMES, 30);
                        w.playEffect(loc, Effect.SMOKE, 30);
                        EffectManager.playSound(loc, "BLOCK_ANVIL_BREAK", 0.3f, 0.1f);
                    }
                }
            }
        }
          return false;
    }
项目:NPlugins    文件:EndWorldHandler.java   
/**
 * Counts:
 * - EnderDragons
 * - EnderCrystals
 */
private void countEntities() {
    this.plugin.getLogger().info("Counting existing EDs in " + this.endWorld.getName() + "...");
    for (final EndChunk c : this.chunks.getSafeChunksList()) {
        if (this.endWorld.isChunkLoaded(c.getX(), c.getZ())) {
            final Chunk chunk = this.endWorld.getChunkAt(c.getX(), c.getZ());
            for (final Entity e : chunk.getEntities()) {
                if (e.getType() == EntityType.ENDER_DRAGON) {
                    final EnderDragon ed = (EnderDragon)e;
                    if (!this.dragons.containsKey(ed.getUniqueId())) {
                        ed.setMaxHealth(this.config.getEdHealth());
                        ed.setHealth(ed.getMaxHealth());
                        this.dragons.put(ed.getUniqueId(), new HashMap<String, Double>());
                        this.loadedDragons.add(ed.getUniqueId());
                    }
                } else if (e.getType() == EntityType.ENDER_CRYSTAL) {
                    c.addCrystalLocation(e);
                }
            }
        } else {
            this.endWorld.loadChunk(c.getX(), c.getZ());
            c.resetSavedDragons();
            this.endWorld.unloadChunkRequest(c.getX(), c.getZ());
        }
    }
    this.plugin.getLogger().info("Done, " + this.getNumberOfAliveEnderDragons() + " EnderDragon(s) found.");
}
项目:Uranium    文件:CraftEnderDragonPart.java   
@Override
public EnderDragon getParent() {
    return (EnderDragon) super.getParent();
}
项目:HCFCore    文件:PortalListener.java   
@EventHandler(ignoreCancelled = true, priority = EventPriority.NORMAL)
public void onEntityPortal(EntityPortalEvent event) {
    if (event.getEntity() instanceof EnderDragon) {
        event.setCancelled(true);
    }
}
项目:HCFCore    文件:PortalListener.java   
@EventHandler(ignoreCancelled = true, priority = EventPriority.NORMAL)
public void onEntityPortal(EntityPortalEvent event) {
    if (event.getEntity() instanceof EnderDragon) {
        event.setCancelled(true);
    }
}