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

项目:bskyblock    文件:IslandGuard.java   
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
public void onItemFrameDamage(final EntityDamageByEntityEvent e) {
    // Check world
    if (!Util.inWorld(e.getEntity()) || !(e.getEntity() instanceof ItemFrame)) {
        return;
    }
    if (e.getDamager() instanceof Projectile) {
        if (DEBUG)
            plugin.getLogger().info("DEBUG: Projectile damage to itemframe");
        // Find out who fired the arrow
        Projectile p = (Projectile) e.getDamager();
        if (DEBUG)
            plugin.getLogger().info("DEBUG: Shooter is " + p.getShooter().toString());
        if (p.getShooter() instanceof Skeleton || p.getShooter() instanceof Golem) {
            if (DEBUG)
                plugin.getLogger().info("DEBUG: Shooter is mob");
            if (!Settings.allowMobDamageToItemFrames) {
                if (DEBUG)
                    plugin.getLogger().info("DEBUG: Damage not allowed, cancelling");
                e.setCancelled(true);
            }
        }
    }
}
项目:bskyblock    文件:IslandGuard.java   
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
public void onItemFrameDamage(final HangingBreakByEntityEvent e) {
    if (DEBUG) {
        plugin.getLogger().info("DEBUG: Hanging break by entity event");
        plugin.getLogger().info("DEBUG: cause = " + e.getCause());
        plugin.getLogger().info("DEBUG: entity = " + e.getEntity());
        plugin.getLogger().info("DEBUG: remover = " + e.getRemover());
    }
    // Check world
    if (!Util.inWorld(e.getEntity()) || !(e.getEntity() instanceof ItemFrame)) {
        return;
    }
    if (e.getRemover() instanceof Skeleton || e.getRemover() instanceof Golem) {
        if (DEBUG)
            plugin.getLogger().info("DEBUG: Remover is mob");
        if (!Settings.allowMobDamageToItemFrames) {
            if (DEBUG)
                plugin.getLogger().info("DEBUG: Damage not allowed, cancelling");
            e.setCancelled(true);
        }
    }
}
项目:OpenUHC    文件:GoldenFleece.java   
/**
 * Utilizes a random chance to either spawn a skeleton with gold armor or resources.
 *
 * @param event The event
 */
@EventHandler
public void onEntityDeath(EntityDeathEvent event) {
  Entity entity = event.getEntity();
  if (entity instanceof Sheep) {
    double chance = Math.random();
    if (0.25 > chance) {
      Skeleton skeleton = entity.getWorld().spawn(entity.getLocation(), Skeleton.class);
      skeleton.getEquipment().setArmorContents(
          new ItemStack[]{
              new ItemStack(Material.GOLD_HELMET),
              new ItemStack(Material.GOLD_CHESTPLATE),
              new ItemStack(Material.GOLD_LEGGINGS),
              new ItemStack(Material.GOLD_BOOTS)
          }
      );
    } else if (0.5 > chance) {
      event.getDrops().add(new ItemStack(Material.IRON_INGOT));
    } else if (0.75 > chance) {
      event.getDrops().add(new ItemStack(Material.GOLD_INGOT));
    } else {
      event.getDrops().add(new ItemStack(Material.DIAMOND));
    }
  }
}
项目:NavyCraft2-Lite    文件:MoveCraft_EntityListener.java   
@EventHandler(priority = EventPriority.HIGH)
public void onEntityTarget(EntityTargetEvent event)
{
    if( event.getEntity() instanceof Skeleton && NavyCraft.aaSkelesList.contains((Skeleton)event.getEntity()) )
    {
        if( event.getTarget() instanceof Player )
        {
            Player target = (Player)event.getTarget();
            Craft skeleCraft = Craft.getCraft(target.getLocation().getBlockX(), target.getLocation().getBlockY(), target.getLocation().getBlockZ());
            if( skeleCraft != null && !skeleCraft.crewNames.isEmpty() && skeleCraft.crewNames.contains(target.getName()) )
            {
                event.setCancelled(true);
            }
        }
    }
}
项目:NavyCraft2-Lite    文件:NavyCraft_EntityListener.java   
@EventHandler(priority = EventPriority.HIGH)
public void onEntityTarget(EntityTargetEvent event)
{
    if( event.getEntity() instanceof Skeleton && NavyCraft.aaSkelesList.contains((Skeleton)event.getEntity()) )
    {
        if( event.getTarget() instanceof Player )
        {
            Player target = (Player)event.getTarget();
            Craft skeleCraft = Craft.getCraft(target.getLocation().getBlockX(), target.getLocation().getBlockY(), target.getLocation().getBlockZ());
            if( skeleCraft != null && !skeleCraft.crewNames.isEmpty() && skeleCraft.crewNames.contains(target.getName()) )
            {
                event.setCancelled(true);
            }
        }
    }
}
项目:BendingExp    文件:DeathByBendingListener.java   
@EventHandler
public void onEntityBendingDeath(EntityBendingDeathEvent event) {
    Entity v = event.getVictim();
    Element e = CoreAbility.getAbility(event.getAbility()).getElement();
    int xp;

    if(v == null || e == null)
        return;

    if(v instanceof Player) {
        xp = 25 + (int)(Math.random() * ((35 - 25) + 1));
    }
    else if(v instanceof Zombie || v instanceof Creeper || v instanceof Witch || v instanceof Skeleton || v instanceof Guardian || v instanceof Spider) {
        xp = 13 + (int)(Math.random() * ((22 - 13) + 1));
    }
    else {
        xp = 3 + (int)(Math.random() * ((8 - 3) + 1));
    }
    BendingExp.addExp(event.getAttacker(), e, xp);
}
项目:acidisland    文件:IslandGuard.java   
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
public void onItemFrameDamage(final EntityDamageByEntityEvent e) {
    // Check world
    if (!inWorld(e.getEntity()) || !(e.getEntity() instanceof ItemFrame)) {
        return;
    }
    if (e.getDamager() instanceof Projectile) {
        if (DEBUG)
            plugin.getLogger().info("DEBUG: Projectile damage to itemframe");
        // Find out who fired the arrow
        Projectile p = (Projectile) e.getDamager();
        if (DEBUG)
            plugin.getLogger().info("DEBUG: Shooter is " + p.getShooter().toString());
        if (p.getShooter() instanceof Skeleton || p.getShooter() instanceof Golem) {
            if (DEBUG)
                plugin.getLogger().info("DEBUG: Shooter is mob");
            if (!Settings.allowMobDamageToItemFrames) {
                if (DEBUG)
                    plugin.getLogger().info("DEBUG: Damage not allowed, cancelling");
                e.setCancelled(true);
            }
        }
    }
}
项目:acidisland    文件:IslandGuard.java   
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
public void onItemFrameDamage(final HangingBreakByEntityEvent e) {
    if (DEBUG) {
        plugin.getLogger().info("DEBUG: Hanging break by entity event");
        plugin.getLogger().info("DEBUG: cause = " + e.getCause());
        plugin.getLogger().info("DEBUG: entity = " + e.getEntity());
        plugin.getLogger().info("DEBUG: remover = " + e.getRemover());
    }
    // Check world
    if (!inWorld(e.getEntity()) || !(e.getEntity() instanceof ItemFrame)) {
        return;
    }
    if (e.getRemover() instanceof Skeleton || e.getRemover() instanceof Golem) {
        if (DEBUG)
            plugin.getLogger().info("DEBUG: Remover is mob");
        if (!Settings.allowMobDamageToItemFrames) {
            if (DEBUG)
                plugin.getLogger().info("DEBUG: Damage not allowed, cancelling");
            e.setCancelled(true);
        }
    }
}
项目:askyblock    文件:IslandGuard.java   
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
public void onItemFrameDamage(final EntityDamageByEntityEvent e) {
    // Check world
    if (!inWorld(e.getEntity()) || !(e.getEntity() instanceof ItemFrame)) {
        return;
    }
    if (e.getDamager() instanceof Projectile) {
        if (DEBUG)
            plugin.getLogger().info("DEBUG: Projectile damage to itemframe");
        // Find out who fired the arrow
        Projectile p = (Projectile) e.getDamager();
        if (DEBUG)
            plugin.getLogger().info("DEBUG: Shooter is " + p.getShooter().toString());
        if (p.getShooter() instanceof Skeleton || p.getShooter() instanceof Golem) {
            if (DEBUG)
                plugin.getLogger().info("DEBUG: Shooter is mob");
            if (!Settings.allowMobDamageToItemFrames) {
                if (DEBUG)
                    plugin.getLogger().info("DEBUG: Damage not allowed, cancelling");
                e.setCancelled(true);
            }
        }
    }
}
项目:askyblock    文件:IslandGuard.java   
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
public void onItemFrameDamage(final HangingBreakByEntityEvent e) {
    if (DEBUG) {
        plugin.getLogger().info("DEBUG: Hanging break by entity event");
        plugin.getLogger().info("DEBUG: cause = " + e.getCause());
        plugin.getLogger().info("DEBUG: entity = " + e.getEntity());
        plugin.getLogger().info("DEBUG: remover = " + e.getRemover());
    }
    // Check world
    if (!inWorld(e.getEntity()) || !(e.getEntity() instanceof ItemFrame)) {
        return;
    }
    if (e.getRemover() instanceof Skeleton || e.getRemover() instanceof Golem) {
        if (DEBUG)
            plugin.getLogger().info("DEBUG: Remover is mob");
        if (!Settings.allowMobDamageToItemFrames) {
            if (DEBUG)
                plugin.getLogger().info("DEBUG: Damage not allowed, cancelling");
            e.setCancelled(true);
        }
    }
}
项目:StarQuestCode    文件:SQSkywatch.java   
@EventHandler
public void onSkeletonShoot(EntityShootBowEvent event){
    if(event.getEntity() instanceof Skeleton){
        Skeleton s = (Skeleton) event.getEntity();
        if(DroneShocktroop.isPossiblyShocktroop(s)){
            DroneShocktroop troop = getShocktroop(s);
            if(troop == null){
                s.remove();
                //System.out.println("troop for named skeleton is null, removing!");
                event.setCancelled(true);
            } else {
                //System.out.println("Allowed fire!");
            }
        }
    }
}
项目:NSHC    文件:RandomEvents.java   
public void SkeletalArmy() {
    for (Player pl : Bukkit.getOnlinePlayers()) {
    Location loc = pl.getLocation();
    Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "time night");
    Bukkit.broadcastMessage(ChatColor.BOLD+""+ChatColor.RED+"The Skeletal Army Event Has Begun!");
    Skeleton skeleton = (Skeleton) pl.getWorld().spawnEntity((Location) Arrays.asList(circle(loc, 4, 1, true, true, 1)), EntityType.SKELETON);
    Skeleton skeleton1 = (Skeleton) pl.getWorld().spawnEntity((Location) Arrays.asList(circle(loc, 4, 1, true, true, 1)), EntityType.SKELETON);
    Skeleton skeleton2 = (Skeleton) pl.getWorld().spawnEntity((Location) Arrays.asList(circle(loc, 4, 1, true, true, 1)), EntityType.SKELETON);
    Skeleton skeleton3 = (Skeleton) pl.getWorld().spawnEntity((Location) Arrays.asList(circle(loc, 4, 1, true, true, 1)), EntityType.SKELETON);
    Skeleton skeleton4 = (Skeleton) pl.getWorld().spawnEntity((Location) Arrays.asList(circle(loc, 4, 1, true, true, 1)), EntityType.SKELETON);
    Skeleton skeleton5 = (Skeleton) pl.getWorld().spawnEntity((Location) Arrays.asList(circle(loc, 4, 1, true, true, 1)), EntityType.SKELETON);
    Skeleton skeleton6 = (Skeleton) pl.getWorld().spawnEntity((Location) Arrays.asList(circle(loc, 4, 1, true, true, 1)), EntityType.SKELETON);
    Skeleton skeleton7 = (Skeleton) pl.getWorld().spawnEntity((Location) Arrays.asList(circle(loc, 4, 1, true, true, 1)), EntityType.SKELETON);
    Skeleton skeleton8 = (Skeleton) pl.getWorld().spawnEntity((Location) Arrays.asList(circle(loc, 4, 1, true, true, 1)), EntityType.SKELETON);
    Skeleton skeleton9 = (Skeleton) pl.getWorld().spawnEntity((Location) Arrays.asList(circle(loc, 4, 1, true, true, 1)), EntityType.SKELETON);
    Skeleton skeleton0 = (Skeleton) pl.getWorld().spawnEntity((Location) Arrays.asList(circle(loc, 4, 1, true, true, 1)), EntityType.SKELETON);     
    }

}
项目:xEssentials-deprecated-bukkit    文件:NpcReplacePlayerEvent.java   
@EventHandler
public void onQuit(PlayerQuitEvent e) {
    if(essentialsPlayers.containsKey(e.getPlayer().getName())) {
        XPlayer xp = pl.getManagers().getPlayerManager().getPlayer(e.getPlayer().getName());
        if(xp.isVanished()) {
            essentialsPlayers.remove(e.getPlayer().getName());
            return;
        }
        ItemStack[] items = e.getPlayer().getInventory().getContents();
        Skeleton skel = (Skeleton) e.getPlayer().getWorld().spawnEntity(e.getPlayer().getLocation(), EntityType.SKELETON);
        //lets pimp the skeleton a bit!
        turnSkelToNpc(skel, e.getPlayer().getName());
        npcs.put(skel.getUniqueId(), items);
        essentialsPlayers.remove(e.getPlayer().getName());
        NpcDespawn(skel);
    }
}
项目:xEssentials-deprecated-bukkit    文件:NpcReplacePlayerEvent.java   
@EventHandler
public void onTeleport(PlayerTeleportEvent e) {
    if(essentialsPlayers.containsKey(e.getPlayer().getName())) {
        XPlayer xp = pl.getManagers().getPlayerManager().getPlayer(e.getPlayer().getName());
        if(xp.isVanished()) {
            return;
        }
        ItemStack[] items = e.getPlayer().getInventory().getContents();
        Skeleton skel = (Skeleton) e.getPlayer().getWorld().spawnEntity(e.getPlayer().getLocation(), EntityType.SKELETON);
        //lets pimp the skeleton a bit!
        turnSkelToNpc(skel, e.getPlayer().getName());
        npcs.put(skel.getUniqueId(), items);
        essentialsPlayers.remove(e.getPlayer().getName());
        NpcDespawn(skel);
    }
}
项目:xEssentials-deprecated-bukkit    文件:NpcReplacePlayerEvent.java   
@EventHandler
public void onQuit(PlayerKickEvent e) {
    if(essentialsPlayers.containsKey(e.getPlayer().getName())) {
        XPlayer xp = pl.getManagers().getPlayerManager().getPlayer(e.getPlayer().getName());
        if(xp.isVanished()) {
            essentialsPlayers.remove(e.getPlayer().getName());
            return;
        }
        ItemStack[] items = e.getPlayer().getInventory().getContents();
        Skeleton skel = (Skeleton) e.getPlayer().getWorld().spawnEntity(e.getPlayer().getLocation(), EntityType.SKELETON);
        //lets pimp the skeleton a bit!
        turnSkelToNpc(skel, e.getPlayer().getName());
        npcs.put(skel.getUniqueId(), items);
        essentialsPlayers.remove(e.getPlayer().getName());
        NpcDespawn(skel);
    }
}
项目:xEssentials-deprecated-bukkit    文件:NpcReplacePlayerEvent.java   
@EventHandler(priority = EventPriority.HIGH)
public void onJoinNpc(PlayerJoinEvent e) {
    for(Entity entity : e.getPlayer().getNearbyEntities(16, 16, 16)) {
        if(entity instanceof Skeleton) {
            Skeleton skel = (Skeleton) entity;
            if(skel.isCustomNameVisible()) {
                if(skel.getCustomName().equalsIgnoreCase(e.getPlayer().getName())) {
                    e.getPlayer().kickPlayer(ChatColor.GREEN + "[Combat log]" + ChatColor.GRAY + "\nyou are not allowed to join until the npc is dead.");
                    e.setJoinMessage("");
                    return;
                }
            }
        }
    }
    XPlayer xp = pl.getManagers().getPlayerManager().getPlayer(e.getPlayer().getName());
    if(xp.isInventoryClearanceOnRelog()) {
        xp.ClearInventoryOnRelog(); 
    }
}
项目:xEssentials-deprecated-bukkit    文件:NpcReplacePlayerEvent.java   
private void turnSkelToNpc(Skeleton skel, String player) {
    ItemStack head = new ItemStack(Material.SKULL_ITEM);
    head.setDurability((short)3);
    SkullMeta meta = (SkullMeta) head.getItemMeta();
    meta.setOwner(player);
    head.setItemMeta(meta);
    head.setAmount(1);
    skel.getEquipment().setHelmet(head);
    skel.getEquipment().setHelmetDropChance(0);
    ItemStack chestplate = new ItemStack(Material.IRON_CHESTPLATE);
    chestplate.setAmount(1);
    skel.getEquipment().setChestplate(chestplate);
    skel.getEquipment().setChestplateDropChance(0);
    ItemStack leggings = new ItemStack(Material.IRON_LEGGINGS);
    leggings.setAmount(1);
    skel.getEquipment().setLeggings(leggings);
    skel.getEquipment().setLeggingsDropChance(0);
    ItemStack shoes = new ItemStack(Material.IRON_BOOTS);
    skel.getEquipment().setBoots(shoes);
    skel.getEquipment().setBootsDropChance(0);
    skel.addPotionEffect(new PotionEffect(PotionEffectType.SLOW, Integer.MAX_VALUE, 30));
    skel.addPotionEffect(new PotionEffect(PotionEffectType.JUMP, Integer.MAX_VALUE, 30));
    skel.setCustomName(player);
    skel.setCustomNameVisible(true);
}
项目:MythicDrops    文件:ItemSpawningListener.java   
@EventHandler(priority = EventPriority.LOWEST)
public void onCreatureSpawnEventLowest(CreatureSpawnEvent event) {
  if (!(event.getEntity() instanceof Monster) || event.isCancelled()) {
    return;
  }
  if (!mythicDrops.getConfigSettings().getEnabledWorlds().contains(event.getEntity().getWorld()
      .getName())) {
    return;
  }
  if (mythicDrops.getConfigSettings().isGiveAllMobsNames()) {
    nameMobs(event.getEntity());
  }
  if (mythicDrops.getConfigSettings().isBlankMobSpawnEnabled()) {
    event.getEntity().getEquipment().clear();
    if (event.getEntity() instanceof Skeleton && !mythicDrops.getConfigSettings()
        .isSkeletonsSpawnWithoutBows()) {
      event.getEntity().getEquipment().setItemInMainHand(new ItemStack(Material.BOW, 1));
    }
  }
  event.getEntity()
      .setCanPickupItems(mythicDrops.getConfigSettings().isMobsPickupEquipment());
}
项目:SurvivalAPI    文件:MobOresModule.java   
/**
 * When a player breaks ore, spawn mob
 *
 * @param event Event
 */
@EventHandler(ignoreCancelled = true)
public void onEntityDeath(BlockBreakEvent event)
{
    EntityType type;

    switch (event.getBlock().getType())
    {
        case COAL_ORE:
            type = EntityType.ZOMBIE;
            break;

        case IRON_ORE:
            type = EntityType.SKELETON;
            break;

        case GOLD_ORE:
            type = EntityType.SPIDER;
            break;

        case DIAMOND_ORE:
            type = EntityType.WITCH;
            break;

        default:
            type = null;
            break;
    }

    Entity entity;

    if (type != null && random.nextDouble() < (double) this.moduleConfiguration.get("chance"))
    {
        entity = event.getBlock().getWorld().spawnEntity(event.getBlock().getLocation(), type);

        if (type == EntityType.SKELETON)
            ((Skeleton) entity).getEquipment().clear(); //Remove skeleton bow
    }
}
项目:LogToSplunk    文件:CreatureEventLogger.java   
private LoggableCreatureEvent getLoggableEntityEvent(EntityEventAction action, EntityEvent event) {

        final Entity entity = event.getEntity();
        final Location location = entity.getLocation();
        final World world = entity.getWorld();

        Point3d coordinates = new Point3d(location.getX(), location.getY(), location.getZ());

        LoggableCreatureEvent entityEvent = new LoggableCreatureEvent(world.getFullTime(), minecraft_server, world.getName(), action);

        LivingEntity spCreature = new LivingEntity();
        spCreature.setType("creature");
        spCreature.setCurrentHealth(((org.bukkit.entity.LivingEntity)entity).getHealth());
        spCreature.setMaxHealth(((org.bukkit.entity.LivingEntity)entity).getMaxHealth());
        spCreature.setLocation(coordinates);

        for (PotionEffect potion : (((org.bukkit.entity.LivingEntity)entity).getActivePotionEffects())) {
            spCreature.addPotions(potion.getType().getName() + ":" + potion.getAmplifier());
        }

        if (event.getEntityType() == EntityType.SKELETON) {
            Skeleton skeleton = (org.bukkit.entity.Skeleton) event.getEntity();
            spCreature.setName(skeleton.getSkeletonType() + "_SKELETON");
        } else {
            spCreature.setName(event.getEntityType().name());
        }

        entityEvent.setEntity(spCreature);
        return entityEvent;
    }
项目:Skript    文件:ExprSkull.java   
@Override
@Nullable
public ItemType convert(final Object o) {
    final SkullType type;
    if (o instanceof Skeleton || o instanceof SkeletonData) {
        if (o instanceof SkeletonData ? ((SkeletonData) o).isWither() : ((Skeleton) o).getSkeletonType() == SkeletonType.WITHER) {
            type = SkullType.WITHER;
        } else {
            type = SkullType.SKELETON;
        }
    } else if (o instanceof Zombie || o instanceof EntityData && Zombie.class.isAssignableFrom(((EntityData<?>) o).getType())) {
        type = SkullType.ZOMBIE;
    } else if (o instanceof OfflinePlayer || o instanceof PlayerData) {
        type = SkullType.PLAYER;
    } else if (o instanceof Creeper || o instanceof CreeperData) {
        type = SkullType.CREEPER;
    } else {
        return null;
    }
    @SuppressWarnings("deprecation")
    final ItemType i = new ItemType(Material.SKULL_ITEM.getId(), (short) type.ordinal());
    if (o instanceof OfflinePlayer) {
        final SkullMeta s = (SkullMeta) Bukkit.getItemFactory().getItemMeta(Material.SKULL_ITEM);
        s.setOwner(((OfflinePlayer) o).getName());
        i.setItemMeta(s);
    }
    return i;
}
项目:QuestManager    文件:VanquishRequirement.java   
@Override
public RequirementState getState() {
    YamlConfiguration myState = new YamlConfiguration();

    myState.set("type", "vr");

    ConfigurationSection foeSection = myState.createSection("foe");
    foeSection.set("type", foe.getType().name());
    foeSection.set("maxhp", foe.getMaxHealth());
    foeSection.set("hp", foe.getHealth());
    foeSection.set("name", foe.getCustomName());
    foeSection.set("location", foe.getLocation());

    if (foe instanceof Guardian) {
        foeSection.set("elder", ((Guardian) foe).isElder());
    }

    if (foe instanceof Slime) {
        foeSection.set("size", ((Slime) foe).getSize());
    }

    if (foe instanceof Skeleton) {
        foeSection.set("wither", ((Skeleton) foe).getSkeletonType() == SkeletonType.WITHER);
    }

    EquipmentConfiguration econ = new EquipmentConfiguration(foe.getEquipment());
    foeSection.set("equipment", econ.getConfiguration());

    return new RequirementState(myState);
}
项目:SwornAPI    文件:SpecialEntities.java   
@Override
public LivingEntity spawnWitherSkeleton(Location loc)
{
    Skeleton entity = (Skeleton) loc.getWorld().spawnEntity(loc, EntityType.SKELETON);
    entity.setSkeletonType(SkeletonType.WITHER);
    return entity;
}
项目:StarQuestCode    文件:EntityListener.java   
private void createRobot(Skeleton s) {
    EntityEquipment e = s.getEquipment();
    e.setHelmet(new ItemStack(Material.DISPENSER, 1));
    e.setChestplate(new ItemStack(Material.IRON_CHESTPLATE, 1));
    e.setLeggings(new ItemStack(Material.CHAINMAIL_LEGGINGS, 1));
    e.setLeggings(new ItemStack(Material.IRON_BOOTS, 1));
    e.setItemInMainHand(new ItemStack(Material.BOW, 1));
    permaVanish(s);
}
项目:StarQuestCode    文件:EntityListener.java   
@EventHandler(priority = EventPriority.HIGHEST)
public void onEntityDeath(EntityDeathEvent event) {
    if (event.getEntityType() == EntityType.SKELETON) {
        Skeleton s = (Skeleton) event.getEntity();
        if ((s.getSkeletonType() == Skeleton.SkeletonType.WITHER) && (Math.random() < 0.3))
        {
            event.getDrops().add(new ItemStack(Material.NETHER_STALK, 1));
        }
    }
}
项目:StarQuestCode    文件:SQSkywatch.java   
public void onDisable(){
    for(World w : Bukkit.getWorlds()){
        for(Entity e : w.getEntities()){
            if(e.getType() == EntityType.GHAST){
                e.remove();
            }
            if(e.getType() == EntityType.SKELETON){
                if(DroneShocktroop.isPossiblyShocktroop((Skeleton) e)){
                    e.remove();
                }
            }
        }
    }
}
项目:StarQuestCode    文件:SQSkywatch.java   
@EventHandler
public void onArrowHit(EntityDamageByEntityEvent event){
    if(event.getDamager() instanceof Arrow){
        Arrow a = (Arrow) event.getDamager();
        if(a.getShooter() instanceof Skeleton && event.getEntity() instanceof Skeleton){
            Skeleton s1 = (Skeleton) a.getShooter();
            Skeleton s2 = (Skeleton) event.getEntity();
            if(DroneShocktroop.isPossiblyShocktroop(s1) && DroneShocktroop.isPossiblyShocktroop(s2)){
                event.setCancelled(true);
            }
        }
    }
}
项目:StarQuestCode    文件:SQSkywatch.java   
DroneShocktroop getShocktroop(Skeleton skel){
    for (DroneShocktroop s : activeShocktroops) {
        if (s.mySkeleton == skel) {
            return s;
        }
    }
    return null;
}
项目:StarQuestCode    文件:DroneShocktroop.java   
public DroneShocktroop(Player target){
    this.target = target;
    Location l = getSafeLocationNearTarget();
    if(l == null) l = target.getLocation();
    mySkeleton = (Skeleton) target.getWorld().spawnEntity(l, EntityType.SKELETON);
    target.playSound(mySkeleton.getLocation(), Sound.PORTAL_TRAVEL, 2.0F, 2.0F);
    mySkeleton.setCustomName("Skywatch Shock Trooper");
    mySkeleton.setCustomNameVisible(true);
    EntityEquipment e = mySkeleton.getEquipment();
    ItemStack hat = new ItemStack(Material.DISPENSER, 1);
    ItemStack chest = new ItemStack(Material.DIAMOND_CHESTPLATE, 1);
    ItemStack leggings = new ItemStack(Material.DIAMOND_LEGGINGS, 1);
    ItemStack boots = new ItemStack(Material.DIAMOND_BOOTS, 1);
    chest.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, SQSkywatch.protectionLevel);
    leggings.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, SQSkywatch.protectionLevel);
    boots.addEnchantment(Enchantment.PROTECTION_ENVIRONMENTAL, SQSkywatch.protectionLevel);
    e.setHelmet(hat);
    e.setChestplate(chest);
    e.setLeggings(leggings);
    e.setBoots(boots);


    ItemStack bow = new ItemStack(Material.BOW, 1);
    bow.addEnchantment(Enchantment.ARROW_DAMAGE, SQSkywatch.powerLevel);
    bow.addEnchantment(Enchantment.ARROW_KNOCKBACK, SQSkywatch.knockbackLevel);
    if(SQSkywatch.flameBows){
        bow.addEnchantment(Enchantment.ARROW_FIRE, 1);
    }
    e.setItemInHand(bow);
    mySkeleton.setTarget(target);
    mySkeleton.getWorld().playEffect(mySkeleton.getLocation(), Effect.ENDER_SIGNAL, 0);
}
项目:StarQuestCode    文件:DroneShocktroop.java   
public static boolean isPossiblyShocktroop(Entity e) {
    if(e instanceof Skeleton){
        Skeleton s = (Skeleton) e;
        return s.getCustomName() != null && s.getCustomName().equals("Skywatch Shock Trooper");
    }
    return false;
}
项目: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);

}
项目:xEssentials-deprecated-bukkit    文件:NpcReplacePlayerEvent.java   
@EventHandler
public void onNameTag(PlayerInteractEntityEvent e) {
    if(e.getRightClicked() instanceof Skeleton) {
        Skeleton skel = (Skeleton) e.getRightClicked();
        if(skel.isCustomNameVisible()) {
            if(npcs.containsKey(skel.getUniqueId())) {
                e.setCancelled(true);
            }
        }
    }
}
项目:xEssentials-deprecated-bukkit    文件:EntityUseHeadOnPlayerDeathEvent.java   
@EventHandler
public void onDamage(EntityDamageByEntityEvent e) {
    if(e.getEntity() instanceof Player) {
        Player p = (Player) e.getEntity();
        if(e.getDamager() instanceof Zombie) {
            entitys.put(p.getName(), e.getDamager().getUniqueId());
        } else if(e.getDamager() instanceof Arrow) {
            Arrow arrow = (Arrow) e.getDamager();
            if(arrow.getShooter() instanceof Skeleton) {
                Skeleton skel = (Skeleton) arrow.getShooter();
                entitys.put(p.getName(), skel.getUniqueId());
            }
        }
    }
}
项目:xEssentials_old_Source    文件:deathHeadEvent.java   
@EventHandler
public void getMobTypeEvent(EntityDamageByEntityEvent e) {
    if(e.getEntity() instanceof Player) {
        Player p = (Player) e.getEntity();
        if(e.getDamager() instanceof Zombie) {
            entityList.put(p.getName(), e.getDamager());
        } else if(e.getDamager() instanceof Arrow) {
            Arrow arrow = (Arrow) e.getDamager();
            if(arrow.getShooter() instanceof Skeleton) {
                entityList.put(p.getName(), arrow.getShooter());
            }
        }
    }
}
项目:Core-Bukkit    文件:MobUtils.java   
public static Entity addlProps(Entity entity) {
    EntityType entityType = entity.getType();
    if (entityType == EntityType.SKELETON && ((Skeleton) entity).getSkeletonType().getId() == 1) {
        ((Skeleton) entity).getEquipment().setItemInHand(new ItemStack(Material.STONE_SWORD));
    } else if (entityType == EntityType.SKELETON && ((Skeleton) entity).getSkeletonType().getId() == 0) {
        ((Skeleton) entity).getEquipment().setItemInHand(new ItemStack(Material.BOW));
    } else if (entityType == EntityType.PIG_ZOMBIE) {
        ((PigZombie) entity).getEquipment().setItemInHand(new ItemStack(Material.GOLD_SWORD));
    }
    return entity;
}
项目:Zephyrus    文件:Summon.java   
@SuppressWarnings("deprecation")
@Override
public boolean run(Player player, String[] args, int power) {
    if (canRun(player, args)) {
        Block block = player.getTargetBlock(null, 100);
        Location loc = block.getLocation();
        loc.setY(loc.getY() + 1);
        Skeleton skel = loc.getWorld().spawn(loc, Skeleton.class);
        skel.getEquipment().setHelmet(new ItemStack(Material.LEATHER_HELMET));
        skel.setMetadata("owner", new FixedMetadataValue(Zephyrus.getPlugin(), player.getName()));
        en.add(skel);
        new End(skel).runTaskLater(Zephyrus.getPlugin(), getConfig().getInt(getName() + ".duration") * 20);
        for (Entity e : skel.getNearbyEntities(20, 20, 20)) {
            if (e instanceof LivingEntity && e != player) {
                Object m = NMSHandler.getHandle(skel);
                Object tar = NMSHandler.getHandle(e);
                Method method = ReflectionUtils.getMethod(m.getClass(), "setGoalTarget");
                try {
                    method.invoke(m, tar);
                } catch (Exception ex) {
                    ex.printStackTrace();
                }
                break;
            }
        }
        return true;
    } else {
        Lang.errMsg("spells.summon.fail", player);
        return false;
    }
}
项目:Slimefun4-Chinese-Version    文件:AndroidKillingListener.java   
@EventHandler(priority=EventPriority.HIGHEST)
public void onDeath(final EntityDeathEvent e) {
    if (e.getEntity().hasMetadata("android_killer")) {
        for (MetadataValue value: e.getEntity().getMetadata("android_killer")) {
            final AndroidObject obj = (AndroidObject) value.value();
            Bukkit.getScheduler().scheduleSyncDelayedTask(SlimefunStartup.instance, new Runnable() {

                @SuppressWarnings("deprecation")
                @Override
                public void run() {
                    List<ItemStack> items = new ArrayList<ItemStack>();
                    for (Entity n: e.getEntity().getNearbyEntities(0.5D, 0.5D, 0.5D)) {
                        if (n instanceof Item && !n.hasMetadata("no_pickup")) {
                            items.add(((Item) n).getItemStack());
                            n.remove();
                        }
                    }

                    switch (e.getEntityType()) {
                    case BLAZE: {
                        items.add(new ItemStack(Material.BLAZE_ROD, 1 + CSCoreLib.randomizer().nextInt(2)));
                        break;
                    }
                    case PIG_ZOMBIE: {
                        items.add(new ItemStack(Material.GOLD_NUGGET, 1 + CSCoreLib.randomizer().nextInt(3)));
                        break;
                    }
                    case SKELETON: {
                        if (((Skeleton) e.getEntity()).getSkeletonType().equals(SkeletonType.WITHER)) {
                            if (CSCoreLib.randomizer().nextInt(250) < 2) items.add(new MaterialData(Material.SKULL_ITEM, (byte) 1).toItemStack(1));
                        }
                        break;
                    }
                    default:
                        break;
                    }

                    obj.getAndroid().addItems(obj.getBlock(), items.toArray(new ItemStack[items.size()]));
                    ExperienceOrb exp = (ExperienceOrb) e.getEntity().getWorld().spawnEntity(e.getEntity().getLocation(), EntityType.EXPERIENCE_ORB);
                    exp.setExperience(1 + CSCoreLib.randomizer().nextInt(6));
                }
            }, 1L);
            return;
        }
    }
}
项目:WC    文件:MobAttack.java   
public static void skeletonAttacks(Skeleton boss, Player damager){
    int attack = r.nextInt(8);
    List<Player> near = new ArrayList<>();

    boss.getNearbyEntities(7, 7, 7).forEach(en -> {
        if (en instanceof Player) {
            near.add((Player) en);
        }
    });

    switch (attack){
        case 0:
            if (boss.getHealth() + 20 >= boss.getMaxHealth()) boss.setHealth(boss.getMaxHealth());
            boss.setHealth(boss.getHealth() + 20);
            break;
        case 1:
            List<Item> bones = new ArrayList<>();

            for (int i = 0 ; i < 20; i++) {
                ItemStack osso = new ItemStack(Material.BONE, 1);
                Location dropLoc = boss.getLocation();
                dropLoc.setX(dropLoc.getX() + r.nextDouble() - r.nextDouble());
                dropLoc.setY(dropLoc.getY() + r.nextDouble() - r.nextDouble());
                dropLoc.setZ(dropLoc.getZ() + r.nextDouble() - r.nextDouble());
                final Item bone = boss.getWorld().dropItem(dropLoc, osso);
                Vector v = new Vector(Math.random() - Math.random(), Math.random(), Math.random() - Math.random()).multiply(1);

                bone.setVelocity(v);
                bone.setPickupDelay(Integer.MAX_VALUE);

                bones.add(bone);
            }
            ParticleEffect.EXPLOSION_HUGE.display(new Vector(0, 0, 0), 2, boss.getLocation(), 50);

            near.forEach(p -> {
                if (!p.equals(damager)) {
                    WCTWD.getPlayer(p).sendSound(Sound.ENTITY_GENERIC_EXPLODE);
                    p.damage(3);
                }
            });
            WCTWD.getPlayer(damager).sendSound(Sound.ENTITY_GENERIC_EXPLODE);
            damager.damage(3);

            bs.runTaskLater(plugin, () -> bones.forEach(b -> b.remove()), 40);
            break;

        default:
            break;
    }
}
项目:KingdomFactions    文件:NexusGuard.java   
@Override
public void spawn() {
    switch (type) {
    case SKELETON:
        Skeleton s = getLocation().getWorld().spawn(this.getLocation(), Skeleton.class);
        s.setCustomName(ChatColor.RED + "Nexus Wachter");
        s.setCustomNameVisible(true);
        this.entity = s;
        KDFEntity ke = new KDFEntity(entity);
        HashMap<Enchantment, Integer> bowE = new HashMap<Enchantment, Integer>();
        bowE.put(Enchantment.ARROW_DAMAGE, 5);
        bowE.put(Enchantment.ARROW_FIRE, 1);
        bowE.put(Enchantment.ARROW_KNOCKBACK, 2);
        ke.setItem(EnumItemSlot.MAINHAND,
                Item.getInstance().getItem(Material.BOW, ChatColor.RED + "Nexus Wachter Boog", 1, bowE, true));
        ke.setItem(EnumItemSlot.OFFHAND,
                Item.getInstance().getItem(Material.SHIELD, ChatColor.RED + "Nexus Wachter Schild", 1));
        break;
    case ZOMBIE:
        Zombie z = getLocation().getWorld().spawn(this.getLocation(), Zombie.class);
        z.setCustomName(ChatColor.RED + "Nexus Wachter");
        z.setCustomNameVisible(true);
        this.entity = z;
        KDFEntity kez = new KDFEntity(entity);
        HashMap<Enchantment, Integer> swordE = new HashMap<Enchantment, Integer>();
        swordE.put(Enchantment.DAMAGE_ALL, 5);
        swordE.put(Enchantment.FIRE_ASPECT, 2);
        swordE.put(Enchantment.KNOCKBACK, 3);
        kez.setItem(EnumItemSlot.MAINHAND,
                Item.getInstance().getItem(Material.BOW, ChatColor.RED + "Nexus Wachter Zwaard", 1, swordE, true));
        kez.setItem(EnumItemSlot.OFFHAND,
                Item.getInstance().getItem(Material.SHIELD, ChatColor.RED + "Nexus Wachter Schild", 1));
        break;
    }
    KDFEntity armor = new KDFEntity(entity);
    HashMap<Enchantment, Integer> armorE = new HashMap<Enchantment, Integer>();
    armorE.put(Enchantment.PROTECTION_ENVIRONMENTAL, 4);
    armorE.put(Enchantment.DURABILITY, 3);
    armorE.put(Enchantment.THORNS, 3);
    armor.setItem(EnumItemSlot.FEET, Item.getInstance().getItem(Material.DIAMOND_BOOTS,
            ChatColor.RED + "Wachter's Schoenen", 1, armorE, true));
    armor.setItem(EnumItemSlot.LEGS, Item.getInstance().getItem(Material.DIAMOND_LEGGINGS,
            ChatColor.RED + "Wachter's Broek", 1, armorE, true));
    armor.setItem(EnumItemSlot.CHEST, Item.getInstance().getItem(Material.DIAMOND_CHESTPLATE,
            ChatColor.RED + "Wachter's Kuras", 1, armorE, true));
    armor.setItem(EnumItemSlot.HEAD,
            Item.getInstance().getItem(Material.DIAMOND_HELMET, ChatColor.RED + "Wachter's Helm", 1, armorE, true));

}
项目:Skript    文件:SkeletonData.java   
@Override
protected boolean init(final @Nullable Class<? extends Skeleton> c, final @Nullable Skeleton e) {
    wither = (e == null || !hasWither) ? false : e.getSkeletonType() == SkeletonType.WITHER;
    return true;
}