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

项目:ProjectAres    文件:Pickup.java   
public void spawn() {
    Location location = data.region().getRandom(match.getRandom()).toLocation(world);
    effects(Sound.BLOCK_NOTE_BASEDRUM, Particle.CLOUD);
    Entity entity = world.spawn(location, (Class) data.appearance().getEntityClass());
    entity.setKnockbackReduction(1);
    data.name().ifPresent(name -> {
        entity.setCustomName(ChatColor.translateAlternateColorCodes('`', name));
        entity.setCustomNameVisible(true);
    });
    switch(data.appearance()) { // TODO: Support more appearances later
        case ENDER_CRYSTAL:
            ifInstance(entity, EnderCrystal.class, crystal -> crystal.setShowingBottom(false)); break;
        case PRIMED_TNT:
            ifInstance(entity, TNTPrimed.class, tnt -> tnt.setFuseTicks(Integer.MAX_VALUE)); break;
    }
    this.entity = Optional.of(entity);
    spawnAt = Optional.empty();
}
项目: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);
        });
    }
}
项目:Breakpoint    文件:FlagManager.java   
public void takeFlag(BPPlayer bpHolder, EnderCrystal flag, Team damagerTeam, Team flagTeam)
{
    int flagTeamId = Team.getId(flagTeam);
    holders[flagTeamId] = bpHolder;
    String holderName = bpHolder.getPVPName();
    isDropped[flagTeamId] = false;
    Player holder = bpHolder.getPlayer();

    SoundManager.playTeamSound(game, Sound.ENDERDRAGON_HIT, 1F, 1F, flagTeam);
    SoundManager.playTeamSound(game, Sound.ORB_PICKUP, 1F, 1F, damagerTeam);
    bpHolder.getStatistics().increaseFlagTakes(1);
    Achievement.checkFlagTakes(bpHolder);
    slowDown(holder);
    showHolderEffect(holder, flagTeam);
    colorArmorByFlag(holder, flagTeam);
    giveCompass(holder);
    NametagEditManager.updateNametag(bpHolder);
    bpHolder.setPlayerListName();

    if(flagTeam == Team.RED)
        game.broadcast(MessageType.FLAG_TAKE_RED.getTranslation().getValue(holderName));
    else if(flagTeam == Team.BLUE)
        game.broadcast(MessageType.FLAG_TAKE_BLUE.getTranslation().getValue(holderName));
}
项目:Breakpoint    文件:FlagManager.java   
public void takeFlag(BPPlayer bpHolder, EnderCrystal flag, Team damagerTeam, Team flagTeam)
{
    int flagTeamId = Team.getId(flagTeam);
    holders[flagTeamId] = bpHolder;
    String holderName = bpHolder.getPVPName();
    isDropped[flagTeamId] = false;
    Player holder = bpHolder.getPlayer();

    SoundManager.playTeamSound(game, Sound.ENDERDRAGON_HIT, 1F, 1F, flagTeam);
    SoundManager.playTeamSound(game, Sound.ORB_PICKUP, 1F, 1F, damagerTeam);
    bpHolder.getStatistics().increaseFlagTakes(1);
    Achievement.checkFlagTakes(bpHolder);
    slowDown(holder);
    showHolderEffect(holder, flagTeam);
    colorArmorByFlag(holder, flagTeam);
    giveCompass(holder);
    NametagEditManager.updateNametag(bpHolder);
    bpHolder.setPlayerListName();

    if(flagTeam == Team.RED)
        game.broadcast(MessageType.FLAG_TAKE_RED.getTranslation().getValue(holderName));
    else if(flagTeam == Team.BLUE)
        game.broadcast(MessageType.FLAG_TAKE_BLUE.getTranslation().getValue(holderName));
}
项目:Equestrian-Dash    文件:GarbageControl.java   
public void destroyGarbage()
{
    int i = 0;
    for (Location loc : DespawningIce)
    {
        loc.getBlock().setType(Material.AIR);
        i++;
    }

    plugin.getLogger().info("Destroying " + i + " undeleted Ice Powerup blocks.");

    List<Track> tracks = plugin.getTrackRegistry().getTracks();
    for (Track track : tracks)
    {
        track.getItemBoxes().forEach(ItemBox::despawn);

        Collection<Marker> markers = track.getMarkerHandler().getMarkers().values();

        for (Marker marker : markers)
        {
            marker.setVisualized(false);
        }

        track.getWorld().getEntities().stream().filter(e -> e instanceof EnderCrystal || e instanceof Horse || e.hasMetadata("MarkerLocation") || e.getName().startsWith("§9Marker")).forEach(Entity::remove);
    }
}
项目:Equestrian-Dash    文件:EquestrianDash.java   
public void reloadConfigs()
{
    reloadConfig();
    //EquestrianDash.getInstance().setupItemBoxes();

    getTrackRegistry().getTracks().forEach(track -> {
        track.getWorld().getEntitiesByClass(EnderCrystal.class).forEach(EnderCrystal::remove);
        track.reloadTrackData();
        track.reloadItemBoxData();

        new BukkitRunnable()
        {
            @Override
            public void run()
            {
                track.getItemBoxes().stream().filter(itembox -> itembox.getEnderCrystal() == null || itembox.getEnderCrystal().isDead()).forEach(ItemBox::spawn);
            }
        }.runTaskLater(plugin, 1);
    });
}
项目:ZentrelaRPG    文件:EnvironmentManager.java   
public static void despawnEntities(Entity[] list) {
    for (Entity e : list) {
        if (e == null || e.getUniqueId() == null)
            continue;
        if (e instanceof Player)
            continue;
        try {
            if (MobManager.spawnedMobs != null && MobManager.spawnedMobs.containsKey(e.getUniqueId())) {
                MobManager.spawnedMobs.get(e.getUniqueId()).despawn();
            }
            if (NPCManager.npcs != null && NPCManager.npcs.containsKey(e.getUniqueId())) {
                NPCManager.npcs.remove(e.getUniqueId()).despawn();
            }
            if (e instanceof Item || e instanceof LivingEntity || e instanceof ArmorStand || e instanceof Projectile || e instanceof EnderCrystal) {
                if (e instanceof LivingEntity)
                    ((LivingEntity) e).setHealth(0.0);
                DropManager dm = plugin.getInstance(DropManager.class);
                if (dm != null) {
                    Entity label = dm.removeLabel(e.getUniqueId());
                    if (label != null)
                        label.remove();
                    e.remove();
                }
            }
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }

}
项目: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    文件:LootListeners.java   
@EventHandler
public void onEntityDamageByEntity(EntityDamageByEntityEvent event) {
    Entity entity = event.getEntity();

    if (!(entity instanceof EnderCrystal) || event.getEntity().getWorld().getEnvironment() != Environment.THE_END
            || !entity.isInvulnerable()) return;

    event.setCancelled(true);
}
项目: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);
    }
}
项目:Damocles    文件:EventCanceller.java   
@EventHandler
public void onRuneHit(EntityDamageByEntityEvent event){
    if(event.getEntity() instanceof EnderCrystal){
        if(event.getDamager() instanceof Player){
            event.setCancelled(true);
            event.getEntity().remove();
            Player player = (Player) event.getDamager();
            int rand = ThreadLocalRandom.current().nextInt(100);
            if(rand <= 50){
                World world = event.getEntity().getWorld();
                Location loc = event.getEntity().getLocation();
                world.createExplosion(loc.getX(), loc.getY(), loc.getZ(), 0, false, false);
                Message.sendCenteredMessage(player, ChatColor.GREEN+"----------------------------------------------------");
                Message.sendCenteredMessage(player, ChatColor.BOLD + "Rune");
                Message.sendCenteredMessage(player, ChatColor.YELLOW + "You fail to harvest any runes.");
                Message.sendCenteredMessage(player, ChatColor.GREEN+"----------------------------------------------------");
                return;
            }else{
                Enchantments[] enchants = Enchantments.values();
                Enchantments ench = enchants[ThreadLocalRandom.current().nextInt(enchants.length - 1)];
                int level = ThreadLocalRandom.current().nextInt(enchantclass.getMaxLevel(ench));
                if(level == 0)
                    level = 1;
                event.getEntity().getWorld().dropItem(event.getEntity().getLocation(), new ca.damocles.itemblueprints.Rune(ench, level, ThreadLocalRandom.current().nextInt(100), ThreadLocalRandom.current().nextInt(100)).getItemStack());
                Message.sendCenteredMessage(player, ChatColor.GREEN+"----------------------------------------------------");
                Message.sendCenteredMessage(player, ChatColor.BOLD + "Rune");
                Message.sendCenteredMessage(player, ChatColor.YELLOW + "You successefuly harvest some runes.");
                Message.sendCenteredMessage(player, ChatColor.GREEN+"----------------------------------------------------");
                return;
            }
        }
    }
}
项目:Damocles    文件:EventCanceller.java   
@EventHandler
public void runeCreation(PlayerInteractEntityEvent event){
    if(event.getRightClicked() instanceof EnderCrystal){
        event.setCancelled(true);
        if(event.getHand().equals(EquipmentSlot.OFF_HAND))
            return;

        event.getRightClicked().remove();
        Player player = event.getPlayer();
        int rand = ThreadLocalRandom.current().nextInt(100);
        if(rand <= 50){
            World world = event.getRightClicked().getWorld();
            Location loc = event.getRightClicked().getLocation();
            world.createExplosion(loc.getX(), loc.getY(), loc.getZ(), 2, false, false);
            Message.sendCenteredMessage(player, ChatColor.GREEN+"----------------------------------------------------");
            Message.sendCenteredMessage(player, ChatColor.BOLD + "Rune");
            Message.sendCenteredMessage(player, ChatColor.YELLOW + "You fail to harvest any runes.");
            Message.sendCenteredMessage(player, ChatColor.GREEN+"----------------------------------------------------");
            return;
        }else{
            Enchantments[] enchants = Enchantments.values();
            Enchantments ench = enchants[ThreadLocalRandom.current().nextInt(enchants.length - 1)];
            int level = ThreadLocalRandom.current().nextInt(enchantclass.getMaxLevel(ench) + 1);
            if(level == 0)
                level = 1;
            event.getRightClicked().getWorld().dropItem(event.getRightClicked().getLocation(), new ca.damocles.itemblueprints.Rune(ench, level, ThreadLocalRandom.current().nextInt(100), ThreadLocalRandom.current().nextInt(100)).getItemStack());
            Message.sendCenteredMessage(player, ChatColor.GREEN+"----------------------------------------------------");
            Message.sendCenteredMessage(player, ChatColor.BOLD + "Rune");
            Message.sendCenteredMessage(player, ChatColor.YELLOW + "You successefuly harvest some runes.");
            Message.sendCenteredMessage(player, ChatColor.GREEN+"----------------------------------------------------");
            return;
        }
    }
    return;
}
项目:Breakpoint    文件:FlagManager.java   
public FlagManager(CTFGame game)
{
    this.game = game;
    defaultFlagLocations = new Location[2];
    flags = new EnderCrystal[2];
    holders = new BPPlayer[2];
    score = new int[2];
    timeoutIn = new int[2];
    isDropped = new boolean[] { false, false };
}
项目:Breakpoint    文件:FlagManager.java   
public EnderCrystal spawnFlag(Location loc, Team team)
{
    int teamId = Team.getId(team);
    loc = ground(loc);
    World world = loc.getWorld();
    Chunk chunk = world.getChunkAt(loc);

    if (!chunk.isLoaded())
        chunk.load();

    EnderCrystal ec = (EnderCrystal) world.spawnEntity(loc, EntityType.ENDER_CRYSTAL);
    flags[teamId] = ec;

    return ec;
}
项目:Breakpoint    文件:FlagManager.java   
public void onTryFlagTake(EntityDamageByEntityEvent event)
{
    Entity damagerEntity = event.getDamager();
    EntityType damagerEntityType = damagerEntity.getType();

    if (damagerEntityType == EntityType.PLAYER)
    {
        Player damager = (Player) damagerEntity;

        if (damager.isDead())
            return;

        BPPlayer bpDamager = BPPlayer.get(damager);

        if(!bpDamager.isInGame())
            return;

        Game damagerGame = bpDamager.getGame();

        if(!damagerGame.equals(game))
            return;

        EnderCrystal flag = (EnderCrystal) event.getEntity();
        Team damagerTeam = ((CTFProperties) bpDamager.getGameProperties()).getTeam();

        if(damagerTeam != null)
            flagTouch(bpDamager, flag, damagerTeam, true);
    }
}
项目:Breakpoint    文件:FlagManager.java   
public void flagTouch(BPPlayer bpPlayer, EnderCrystal flag, Team damagerTeam, boolean chain)
{
    Team flagTeam = getFlagTeam(flag);

    if(flagTeam != null)
    {
        Player player = bpPlayer.getPlayer();
        if(Team.areEnemies(damagerTeam, flagTeam))
        {
            takeFlag(bpPlayer, flag, damagerTeam, flagTeam);
            flag.remove();
            player.sendMessage(MessageType.FLAG_STEAL.getTranslation().getValue());
        }
        else
            if (isAtDefaultLocation(flag))
            {
                if (isHoldingFlag(bpPlayer))
                    captureFlag(bpPlayer, damagerTeam);
                else
                    player.sendMessage(MessageType.FLAG_INFO.getTranslation().getValue());
            }
            else
                returnFlag(bpPlayer, flagTeam);
    }
    else
    {
        flag.remove();

        if(chain)
            for(Entity entity : flag.getNearbyEntities(0, 0, 0))
                if(entity instanceof EnderCrystal)
                {
                    EnderCrystal cur = (EnderCrystal) entity;

                    flagTouch(bpPlayer, cur, damagerTeam, false);
                }
    }
}
项目:Breakpoint    文件:FlagManager.java   
public Team getFlagTeam(EnderCrystal ec)
{
    for (int i = 0; i < 2; i++)
        if (flags[i] != null)
            if (flags[i].equals(ec))
                return Team.getById(i);
    return null;
}
项目:Breakpoint    文件:FlagManager.java   
public boolean isAtDefaultLocation(EnderCrystal ec)
{
    Team team = getFlagTeam(ec);
    if (team != null)
    {
        int teamId = Team.getId(team);
        Location loc = ec.getLocation();
        Location defaultLoc = defaultFlagLocations[teamId];
        return sameXZ(loc, defaultLoc);
    }
    return false;
}
项目:Breakpoint    文件:FlagManager.java   
public boolean isTeamFlag(EnderCrystal ec)
{
    for (int i = 0; i < 2; i++)
        if (flags[i] != null)
            if (flags[i].equals(ec))
                return true;
    return false;
}
项目:Skellett    文件:ExprEnderCrystalBeam.java   
@Override
@Nullable
protected Location[] get(Event e) {
    if (entity.getSingle(e) == null) {
        return null;
    }
    if (entity.getSingle(e) instanceof EnderCrystal) {
        return new Location[]{((EnderCrystal)entity.getSingle(e)).getBeamTarget()};
    }
    return null;
}
项目:Skellett    文件:ExprEnderCrystalBeam.java   
@Override
public void change(Event e, Object[] delta, Changer.ChangeMode mode){
    if (entity.getSingle(e) == null) {
        return;
    }
    if (entity.getSingle(e) instanceof EnderCrystal) {
        if (mode == ChangeMode.SET) {
            ((EnderCrystal)entity.getSingle(e)).setBeamTarget((Location)delta[0]);
        } else {
            ((EnderCrystal)entity.getSingle(e)).setBeamTarget(null);
        }
    }
}
项目:Skellett    文件:ExprEnderCrystalBase.java   
@Override
@Nullable
protected Boolean[] get(Event e) {
    if (entity.getSingle(e) == null) {
        return null;
    }
    if (entity.getSingle(e) instanceof EnderCrystal) {
        return new Boolean[]{((EnderCrystal)entity.getSingle(e)).isShowingBottom()};
    }
    return null;
}
项目:Skellett    文件:ExprEnderCrystalBase.java   
@Override
public void change(Event e, Object[] delta, Changer.ChangeMode mode){
    if (entity.getSingle(e) == null) {
        return;
    }
    if (entity.getSingle(e) instanceof EnderCrystal) {
        if (mode == ChangeMode.SET) {
            ((EnderCrystal)entity.getSingle(e)).setShowingBottom((Boolean)delta[0]);
        }
    }
}
项目:Breakpoint    文件:FlagManager.java   
public FlagManager(CTFGame game)
{
    this.game = game;
    defaultFlagLocations = new Location[2];
    flags = new EnderCrystal[2];
    holders = new BPPlayer[2];
    score = new int[2];
    timeoutIn = new int[2];
    isDropped = new boolean[] { false, false };
}
项目:Breakpoint    文件:FlagManager.java   
public EnderCrystal spawnFlag(Location loc, Team team)
{
    int teamId = Team.getId(team);
    loc = ground(loc);
    World world = loc.getWorld();
    Chunk chunk = world.getChunkAt(loc);

    if (!chunk.isLoaded())
        chunk.load();

    EnderCrystal ec = (EnderCrystal) world.spawnEntity(loc, EntityType.ENDER_CRYSTAL);
    flags[teamId] = ec;

    return ec;
}
项目:Breakpoint    文件:FlagManager.java   
public void onTryFlagTake(EntityDamageByEntityEvent event)
{
    Entity damagerEntity = event.getDamager();
    EntityType damagerEntityType = damagerEntity.getType();

    if (damagerEntityType == EntityType.PLAYER)
    {
        Player damager = (Player) damagerEntity;

        if (damager.isDead())
            return;

        BPPlayer bpDamager = BPPlayer.get(damager);

        if(!bpDamager.isInGame())
            return;

        Game damagerGame = bpDamager.getGame();

        if(!damagerGame.equals(game))
            return;

        EnderCrystal flag = (EnderCrystal) event.getEntity();
        Team damagerTeam = ((CTFProperties) bpDamager.getGameProperties()).getTeam();

        if(damagerTeam != null)
            flagTouch(bpDamager, flag, damagerTeam, true);
    }
}
项目:Breakpoint    文件:FlagManager.java   
public void flagTouch(BPPlayer bpPlayer, EnderCrystal flag, Team damagerTeam, boolean chain)
{
    Team flagTeam = getFlagTeam(flag);

    if(flagTeam != null)
    {
        Player player = bpPlayer.getPlayer();
        if(Team.areEnemies(damagerTeam, flagTeam))
        {
            takeFlag(bpPlayer, flag, damagerTeam, flagTeam);
            flag.remove();
            player.sendMessage(MessageType.FLAG_STEAL.getTranslation().getValue());
        }
        else
            if (isAtDefaultLocation(flag))
            {
                if (isHoldingFlag(bpPlayer))
                    captureFlag(bpPlayer, damagerTeam);
                else
                    player.sendMessage(MessageType.FLAG_INFO.getTranslation().getValue());
            }
            else
                returnFlag(bpPlayer, flagTeam);
    }
    else
    {
        flag.remove();

        if(chain)
            for(Entity entity : flag.getNearbyEntities(0, 0, 0))
                if(entity instanceof EnderCrystal)
                {
                    EnderCrystal cur = (EnderCrystal) entity;

                    flagTouch(bpPlayer, cur, damagerTeam, false);
                }
    }
}
项目:Breakpoint    文件:FlagManager.java   
public Team getFlagTeam(EnderCrystal ec)
{
    for (int i = 0; i < 2; i++)
        if (flags[i] != null)
            if (flags[i].equals(ec))
                return Team.getById(i);
    return null;
}
项目:Breakpoint    文件:FlagManager.java   
public boolean isAtDefaultLocation(EnderCrystal ec)
{
    Team team = getFlagTeam(ec);
    if (team != null)
    {
        int teamId = Team.getId(team);
        Location loc = ec.getLocation();
        Location defaultLoc = defaultFlagLocations[teamId];
        return sameXZ(loc, defaultLoc);
    }
    return false;
}
项目:Breakpoint    文件:FlagManager.java   
public boolean isTeamFlag(EnderCrystal ec)
{
    for (int i = 0; i < 2; i++)
        if (flags[i] != null)
            if (flags[i].equals(ec))
                return true;
    return false;
}
项目:gFeatures    文件:Crystal.java   
public void spawnCrystals(){
    for(Entity ent : Bukkit.getWorld("EstiNet").getEntities()){
        if(ent.getType().equals(EntityType.ENDER_CRYSTAL)){
            ent.remove();
        }
    }
    for(Location loc : Basis.crystals.keySet()){
        Bukkit.getWorld("EstiNet").spawn(loc, EnderCrystal.class);
    }
}
项目:gFeatures    文件:EventHub.java   
public void onEntityExplode(EntityExplodeEvent event) {
    if(event.getEntityType().equals(EntityType.ENDER_CRYSTAL)){
        event.setCancelled(true);
        Bukkit.getScheduler().scheduleSyncDelayedTask(Bukkit.getServer().getPluginManager().getPlugin("gFeatures"), new Runnable() {
            public void run(){
                Bukkit.getWorld(Basic.mapName).spawn(Basic.flag, EnderCrystal.class);
            }
        }, 20L);
    }
}
项目:TheSurvivalGames    文件:RemoveKitSelectionLocationCommand.java   
@Override
public void execute(String cmd, Player p, String[] args) {
    for (Entity e : p.getNearbyEntities(20, 20, 20)) {
        if (e instanceof EnderCrystal) {
            e.remove();
        }
    }
}
项目:Equestrian-Dash    文件:EntityDamageListener.java   
@EventHandler
public void onDamage(EntityDamageEvent event)
{
    Entity e = event.getEntity();

    if(event.getCause() == EntityDamageEvent.DamageCause.FALL)
    {
        event.setCancelled(true);
        return;
    }

    if (e instanceof EnderCrystal)
    {
        event.setCancelled(true);
    }

    if(e instanceof Player)
    {
        Player p = (Player) e;
        if ((p.getHealth() - event.getFinalDamage()) <= 0)
        {
            plugin.getRacerHandler().respawnPlayer(p);
            event.setCancelled(true);
        }
    }

    GameHandler.GameState gameState = plugin.getGameHandler().getGameState();
    if (gameState != GameHandler.GameState.RACE_IN_PROGRESS)
    {
        event.setCancelled(true);
    }
}
项目:Equestrian-Dash    文件:EntitySpawnListener.java   
@EventHandler
public void onSpawn(EntitySpawnEvent event)
{
    //plugin.getLogger().info("SPAWN EVENT!");
    if(event.getEntity() instanceof EnderCrystal)
    {
        ItemBox itemBox = plugin.getItemBoxRegistry().getByLocation(event.getLocation().getBlock().getLocation());

        if(itemBox != null && !itemBox.getEnderCrystal().equals(event.getEntity()))
        {
            event.setCancelled(true);
        }
    }
}
项目:ZentrelaRPG    文件:DungeonManager.java   
public static void registerSpawner(EnderCrystal spawner, DungeonBoss dungeonBoss) {
    spawners.put(spawner.getUniqueId(), dungeonBoss);
}
项目:DragonEggDrop    文件:RespawnRunnable.java   
@Override
public void run() {
    if (this.secondsUntilRespawn > 0) {
        if (announceRespawn) {
            if (this.currentMessage >= announceMessages.size()) this.currentMessage = 0;

            // Show actionbar messages
            String message = announceMessages.get(currentMessage++)
                    .replace("%time%", String.valueOf(secondsUntilRespawn))
                    .replace("%formatted-time%", this.getFormattedTime(secondsUntilRespawn));
            plugin.getNMSAbstract().broadcastActionBar(message, worldWrapper.getWorld());
        }

        this.secondsUntilRespawn--;
        return;
    }

    // Only respawn if a Player is in the World
    World world = this.worldWrapper.getWorld();
    if (world.getPlayers().size() <= 0) return;

    // Start respawn process
    PortalCrystal crystalPos = PortalCrystal.values()[currentCrystal++];
    Location crystalLocation = crystalPos.getRelativeToPortal(world);
    World crystalWorld = crystalLocation.getWorld();

    Chunk crystalChunk = crystalWorld.getChunkAt(crystalLocation);
    if (!crystalChunk.isLoaded()) 
        crystalChunk.load();

    // Remove any existing crystal
    EnderCrystal existingCrystal = crystalPos.get(world);
    if (existingCrystal != null) existingCrystal.remove();

    crystalPos.spawn(world);
    crystalWorld.createExplosion(crystalLocation.getX(), crystalLocation.getY(), crystalLocation.getZ(), 0F, false, false);
    crystalWorld.spawnParticle(Particle.EXPLOSION_HUGE, crystalLocation, 0);

    // All crystals respawned
    if (currentCrystal >= 4) {

        // If dragon already exists, cancel the respawn process
        if (crystalWorld.getEntitiesByClass(EnderDragon.class).size() >= 1) {
            plugin.getLogger().warning("An EnderDragon is already present in world " + crystalWorld.getName() + ". Dragon respawn cancelled");
            this.nmsAbstract.broadcastActionBar(ChatColor.RED + "Dragon respawn abandonned! Dragon already exists! Slay it!", crystalWorld);

            // Destroy all crystals
            for (PortalCrystal portalCrystal : PortalCrystal.values()) {
                Location location = portalCrystal.getRelativeToPortal(world);

                portalCrystal.get(world).remove();

                crystalWorld.getPlayers().forEach(p -> p.playSound(location, Sound.BLOCK_FIRE_EXTINGUISH, 1000, 1));
                crystalWorld.createExplosion(location.getX(), location.getY(), location.getZ(), 0F, false, false);
            }

            this.cancel();
            return;
        }

        this.dragonBattle.respawnEnderDragon();
        RespawnSafeguardRunnable.newTimeout(plugin, worldWrapper.getWorld(), dragonBattle);

        BattleStateChangeEvent bscEventRespawning = new BattleStateChangeEvent(dragonBattle, dragon, BattleState.CRYSTALS_SPAWNING, BattleState.DRAGON_RESPAWNING);
        Bukkit.getPluginManager().callEvent(bscEventRespawning);

        this.worldWrapper.stopRespawn();
        this.cancel();
    }
}
项目:DragonEggDrop    文件:RespawnSafeguardRunnable.java   
private void removeCrystals() {
    this.world.getEntitiesByClass(EnderCrystal.class).forEach(Entity::remove);
}
项目:Damocles    文件:EventCanceller.java   
@EventHandler
public void onEntityExplode(EntityExplodeEvent event){
    if(event.getEntity() instanceof EnderCrystal){
        event.setCancelled(true);
    }
}