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

项目: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;
}
项目: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);

}
项目: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;
        }
    }
}
项目: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;
}
项目:Skript    文件:SkeletonData.java   
@Override
public void set(final Skeleton entity) {
    if (hasWither)
        entity.setSkeletonType(wither ? SkeletonType.WITHER : SkeletonType.NORMAL);
}
项目:Skript    文件:SkeletonData.java   
@Override
protected boolean match(final Skeleton entity) {
    return hasWither ? (entity.getSkeletonType() == SkeletonType.WITHER) == wither : true;
}
项目:QuestManager    文件:VanquishRequirement.java   
@Override
public void activate() {
    ConfigurationSection myState = foeStateRecord.getConfig();

    //get rid of any entities we already have
    if (foe != null && !foe.isDead()) {
        foe.remove();           
    }


    ConfigurationSection foeState =  myState.getConfigurationSection("foe");
    Location loc = ((LocationState) foeState.get("location")).getLocation();

    //load chunk before creating foe
    loc.getChunk();

    foe = (LivingEntity) loc.getWorld().spawnEntity(loc, EntityType.valueOf(foeState.getString("type")));
    this.id = foe.getUniqueId();
    foe.setMaxHealth(foeState.getDouble("maxhp"));
    foe.setHealth(foeState.getDouble("hp"));
    foe.setCustomName(foeState.getString("name"));

    foe.setRemoveWhenFarAway(false);

    EntityEquipment equipment = foe.getEquipment();
    EquipmentConfiguration econ = new EquipmentConfiguration();
    try {
        econ.load( foeState.getConfigurationSection("equipment"));
    } catch (InvalidConfigurationException e) {
        e.printStackTrace();
    }

    equipment.setHelmet(econ.getHead());
    equipment.setChestplate(econ.getChest());
    equipment.setLeggings(econ.getLegs());
    equipment.setBoots(econ.getBoots());
    equipment.setItemInMainHand(econ.getHeldMain());
    equipment.setItemInOffHand(econ.getHeldOff());

    //special checks
    if (foe instanceof Guardian) {
        if (foeState.getBoolean("elder", false)) {
            ((Guardian) foe).setElder(true);
        }
    }

    if (foe instanceof Slime) {
        if (foeState.getInt("size", 1) > 1) {
            ((Slime) foe).setSize(foeState.getInt("size"));
        }
    }

    if (foe instanceof Skeleton) {
        if (foeState.getBoolean("wither", false)) {
            ((Skeleton) foe).setSkeletonType(SkeletonType.WITHER);
        }
    }

    if (desc == null) {
        desc = foeState.getString("description", "Slay " + foe.getCustomName());
    }

    //add as NPC for non-removal
    foeNPC = new QuestMonsterNPC();
    foeNPC.setEntity(foe);

    QuestManagerPlugin.questManagerPlugin.getManager().registerNPC(foeNPC);

    update();
    Bukkit.getPluginManager().registerEvents(this, QuestManagerPlugin.questManagerPlugin);
}
项目:RpgPlus    文件:SkeletonTrait.java   
@Override
public void onSpawn() {
    Skeleton skeleton = (Skeleton) getNPC().getEntity();
    skeleton.setSkeletonType(isWitherSkeleton ? SkeletonType.WITHER : SkeletonType.NORMAL);
}
项目:RpgPlus    文件:SkeletonTrait.java   
public void setWitherSkeleton(boolean isWitherSkeleton) {
    this.isWitherSkeleton = isWitherSkeleton;
    if (getNPC().isSpawned()) ((Skeleton) getNPC().getEntity()).setSkeletonType(isWitherSkeleton ? SkeletonType.WITHER : SkeletonType.NORMAL);
}
项目:Slimefun4    文件: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;
        }
    }
}
项目:McMMOPlus    文件:FishingManager.java   
/**
 * Handle the Shake ability
 *
 * @param target The {@link LivingEntity} affected by the ability
 */
public void shakeCheck(LivingEntity target) {
    fishingTries--; // Because autoclicking to shake is OK.

    SecondaryAbilityWeightedActivationCheckEvent activationEvent = new SecondaryAbilityWeightedActivationCheckEvent(getPlayer(), SecondaryAbility.SHAKE, getShakeProbability() / activationChance);
    mcMMO.p.getServer().getPluginManager().callEvent(activationEvent);
    if ((activationEvent.getChance() * activationChance) > Misc.getRandom().nextInt(activationChance)) {
        List<ShakeTreasure> possibleDrops = Fishing.findPossibleDrops(target);

        if (possibleDrops == null || possibleDrops.isEmpty()) {
            return;
        }

        ItemStack drop = Fishing.chooseDrop(possibleDrops);

        // It's possible that chooseDrop returns null if the sum of probability in possibleDrops is inferior than 100
        if (drop == null) {
            return;
        }

        // Extra processing depending on the mob and drop type
        switch (target.getType()) {
            case SHEEP:
                Sheep sheep = (Sheep) target;

                if (drop.getType() == Material.WOOL) {
                    if (sheep.isSheared()) {
                        return;
                    }

                    drop = new Wool(sheep.getColor()).toItemStack(drop.getAmount());
                    sheep.setSheared(true);
                }
                break;

            case SKELETON:
                if (((Skeleton) target).getSkeletonType() == SkeletonType.WITHER) {
                    switch (drop.getType()) {
                        case SKULL_ITEM:
                            drop.setDurability((short) 1);
                            break;

                        case ARROW:
                            drop.setType(Material.COAL);
                            break;

                        default:
                            break;
                    }
                }
                break;

            default:
                break;
        }

        McMMOPlayerShakeEvent shakeEvent = new McMMOPlayerShakeEvent(getPlayer(), drop);

        drop = shakeEvent.getDrop();

        if (shakeEvent.isCancelled() || drop == null) {
            return;
        }

        Misc.dropItem(target.getLocation(), drop);
        CombatUtils.dealDamage(target, Math.max(target.getMaxHealth() / 4, 1)); // Make it so you can shake a mob no more than 4 times.
        applyXpGain(ExperienceConfig.getInstance().getFishingShakeXP(), XPGainReason.PVE);
    }
}
项目:ShankShock-Core    文件:EntityListener.java   
@EventHandler(priority = EventPriority.MONITOR)
public void onEntityDeath(EntityDeathEvent event) {
    Player killer = event.getEntity().getKiller();

    if (killer == null) {
        return;
    }

    SPlayer sply = plugin.players.get(killer.getName());

    int currencyGain = 0;
    if (plugin.silverManager.mobPayouts.containsKey(event.getEntityType())) {
        currencyGain = plugin.silverManager.mobPayouts.get(event.getEntityType());
    }

    if (plugin.silverManager.mobAwardsPrimary.containsKey(event.getEntityType())) {
        plugin.awardManager.updateAward(plugin.silverManager.mobAwardsPrimary.get(event.getEntityType()), 1, killer);

        if (killer.getInventory().getItemInHand().getType() == Material.BOW) {
            plugin.awardManager.updateAward(AwardType.KATNISS_EVERDEEN, 1, killer);
        }

        if (killer.getInventory().getItemInHand().getAmount() == 0) {
            plugin.awardManager.updateAward(AwardType.NINJA, 1, killer);
        }

        if (killer.getInventory().getItemInHand().getType() == Material.IRON_AXE) {
            plugin.awardManager.updateAward(AwardType.EXECUTIONER, 1, killer);
        }

        if (killer.getInventory().getItemInHand().getType() == Material.IRON_SWORD || killer.getInventory().getItemInHand().getType() == Material.DIAMOND_SWORD || killer.getInventory().getItemInHand().getType() == Material.STONE_SWORD) {
            plugin.awardManager.updateAward(AwardType.SWORDSMAN, 1, killer);
        }

    }

    if (plugin.silverManager.mobAwardsSecondary.containsKey(event.getEntityType())) {
        plugin.awardManager.updateAward(plugin.silverManager.mobAwardsSecondary.get(event.getEntityType()), 1, killer);
    }

    if (event.getEntityType() == EntityType.WOLF) {
        Wolf w = (Wolf) event.getEntity();

        if (w.isAngry()) {
            plugin.awardManager.updateAward(AwardType.LYCAN_HUNTER, 1, killer);
        }
    }

    if (event.getEntityType() == EntityType.VILLAGER) {
        plugin.awardManager.updateAward(AwardType.MARAUDER, 1, killer);
    }

    if (event.getEntityType() == EntityType.SKELETON) {
        Skeleton skeleton = (Skeleton) event.getEntity();

        if (skeleton.getSkeletonType() == SkeletonType.WITHER) {
            plugin.awardManager.updateAward(AwardType.THE_DAMNED, 1, killer);
        }
    }

    if (event.getEntityType() == EntityType.ENDER_DRAGON) {
        for (Player p : plugin.getServer().getOnlinePlayers()) {
            if (p.getWorld().getName().contains("end")) {
                plugin.awardManager.addAward(AwardType.VOID_KING, p);
                plugin.awardManager.updateAward(AwardType.DARK_ONE, 1, p);
            }
        }
    }

    if (currencyGain == 0) {
        return;
    }

    plugin.getServer().getLogger().log(Level.INFO, "Silver Transaction: " + sply.getPlayer().getName() + " gained currency for killing " + event.getEntityType().getName() + ".");

    sply.addCurrency(currencyGain);
    sply.tickMobsDestroyed();
}
项目:BedrockAPI    文件:Skeleton.java   
@Deprecated public static SkeletonType getType(int id) {
    return null;
}
项目:Bukkit-Instances    文件:Mob.java   
public void spawnEntity(Location loc) {
    Skeleton e = (Skeleton) loc.getWorld().spawnEntity(loc, EntityType.SKELETON);
    e.setSkeletonType(SkeletonType.WITHER);
    e.setCanPickupItems(true);
}
项目:BedrockAPI    文件:Skeleton.java   
Skeleton.SkeletonType getSkeletonType();
项目:BedrockAPI    文件:Skeleton.java   
void setSkeletonType(Skeleton.SkeletonType type);