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

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

源代码1 项目: StackMob-3   文件: DropTools.java
private Collection<ItemStack> generateLoot(LivingEntity dead, List<ItemStack> drops){
    if(sm.getHookManager().isHookRegistered(PluginCompat.CUSTOMDROPS)){
        CustomDropsHook cdh = (CustomDropsHook) sm.getHookManager().getHook(PluginCompat.CUSTOMDROPS);
        if(cdh.hasCustomDrops(dead)){
            return cdh.getDrops(dead);
        }
    }
    if(dead instanceof Ageable){
        if(!((Ageable) dead).isAdult()){
            return Collections.emptySet();
        }
    }

    // Default to true to keep the usual behaviour
    if (sm.getConfig().getBoolean("use-loot-table-for-drops", true)) {
        LootContext lootContext = new LootContext.Builder(dead.getLocation()).lootedEntity(dead).killer(dead.getKiller()).build();
        return ((Mob) dead).getLootTable().populateLoot(ThreadLocalRandom.current(), lootContext);
    } else
        return drops;
}
 
源代码2 项目: Slimefun4   文件: AnimalGrowthAccelerator.java
protected void tick(Block b) {
    BlockMenu inv = BlockStorage.getInventory(b);

    for (Entity n : b.getWorld().getNearbyEntities(b.getLocation(), 3.0, 3.0, 3.0, n -> n instanceof Ageable && n.isValid() && !((Ageable) n).isAdult())) {
        for (int slot : getInputSlots()) {
            if (SlimefunUtils.isItemSimilar(inv.getItemInSlot(slot), organicFood, false)) {
                if (ChargableBlock.getCharge(b) < ENERGY_CONSUMPTION) {
                    return;
                }

                ChargableBlock.addCharge(b, -ENERGY_CONSUMPTION);
                inv.consumeItem(slot);
                ((Ageable) n).setAge(((Ageable) n).getAge() + 2000);

                if (((Ageable) n).getAge() > 0) {
                    ((Ageable) n).setAge(0);
                }

                n.getWorld().spawnParticle(Particle.VILLAGER_HAPPY, ((LivingEntity) n).getEyeLocation(), 8, 0.2F, 0.2F, 0.2F);
                return;
            }
        }
    }
}
 
@Override
public boolean intersectsHead(Location check, Entity base) {
	if (base instanceof Ageable && !((Ageable) base).isAdult() ){
		return BoundingBoxUtil.within2DHeight(base,check,(headTopHeight_baby-bodyheight_baby),bodyheight_baby);
	}
	return BoundingBoxUtil.within2DHeight(base,check,(headTopHeight-bodyheight), bodyheight);
}
 
@Override
public boolean intersectsBody(Location check, Entity base) {
	if (base instanceof Ageable && !((Ageable) base).isAdult() ){
		return BoundingBoxUtil.within2DHeight(base,check,bodyheight_baby);
	}
	return BoundingBoxUtil.within2DHeight(base,check,headTopHeight);
}
 
源代码5 项目: StackMob-3   文件: AgeableTrait.java
@Override
public boolean checkTrait(Entity original, Entity nearby) {
    if(original instanceof Ageable){
        return (((Ageable) original).isAdult() != ((Ageable) nearby).isAdult());
    }
    return false;
}
 
源代码6 项目: Skript   文件: EntityData.java
@SuppressWarnings("unchecked")
public final boolean isInstance(final @Nullable Entity e) {
	if (e == null)
		return false;
	if (!baby.isUnknown() && e instanceof Ageable && ((Ageable) e).isAdult() != baby.isFalse())
		return false;
	return getType().isInstance(e) && match((E) e);
}
 
源代码7 项目: Carbon   文件: ItemListener.java
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onEntityKilled(EntityDeathEvent e) {
    if (e.getEntity().getType() != EntityType.SHEEP || !plugin.getConfig().getBoolean("options.sheep.dropMutton", true) || !e.getEntity().getWorld().isGameRule("doMobLoot") || !(e.getEntity() instanceof Ageable)) {
        return;
    }
    Ageable entity = (Ageable) e.getEntity();
    if (!entity.isAdult()) {
        return;
    }
    boolean fireaspect = false;
    int looting = 1;
    if (entity.getLastDamageCause() instanceof EntityDamageByEntityEvent) {
        EntityDamageByEntityEvent dEvent = (EntityDamageByEntityEvent) entity.getLastDamageCause();
        if (dEvent.getDamager() != null && dEvent.getDamager() instanceof Player) {
            ItemStack hand = ((Player) dEvent.getDamager()).getItemInHand();
            fireaspect = hand.containsEnchantment(Enchantment.FIRE_ASPECT);
            if (hand.containsEnchantment(Enchantment.LOOT_BONUS_MOBS))
                looting += hand.getEnchantmentLevel(Enchantment.LOOT_BONUS_MOBS);
            if (looting < 1) //Incase a plugin sets an enchantment level to be negative
                looting = 1;
        } else if (dEvent.getDamager() != null && dEvent.getDamager() instanceof Arrow) {
            Arrow a = (Arrow) dEvent.getDamager();
            if (a.getFireTicks() > 0)
                fireaspect = true;
        }
    }
    if (entity.getLastDamageCause().getCause() == DamageCause.FIRE_TICK || entity.getLastDamageCause().getCause() == DamageCause.FIRE
            || entity.getLastDamageCause().getCause() == DamageCause.LAVA || fireaspect)
        e.getDrops().add(new ItemStack(Carbon.injector().cookedMuttonItemMat, random.nextInt(2) + 1 + random.nextInt(looting)));
    else
        e.getDrops().add(new ItemStack(Carbon.injector().muttonItemMat, random.nextInt(2) + 1 + random.nextInt(looting)));
}
 
源代码8 项目: StackMob-3   文件: AgeableTrait.java
@Override
public void applyTrait(Entity original, Entity spawned) {
    if(original instanceof Ageable){
        ((Ageable) spawned).setAge(((Ageable) original).getAge());
    }
}
 
源代码9 项目: SonarPet   文件: EntityAgeablePet.java
@Override
public Ageable getBukkitEntity() {
    return (Ageable) super.getBukkitEntity();
}
 
 类所在包
 类方法
 同包方法