Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class SkeletonManager implements Listener {
- public List<AbstractSkeleton> skeletonsList = new ArrayList<>(Arrays.asList(
- new AbstractSkeleton("overgrown_skeleton", PotionEffectType.POISON,
- 15, 0.37f, "карапузік", new ArrayList<>(Arrays.asList(Biome.LUSH_CAVES))),
- new AbstractSkeleton("desert_skeleton",
- PotionEffectType.WITHER, 22, 0.3f, "десерт",
- new ArrayList<>(Arrays.asList(Biome.DESERT)))
- ));
- @EventHandler
- public void onEntitySpawn(EntitySpawnEvent e){
- if(!(e.getEntity().getType().equals(EntityType.SKELETON))) return;
- for(AbstractSkeleton skeleton: skeletonsList){
- if(!isInBiome(skeleton, e.getLocation().getBlock().getBiome())) return;
- e.getEntity().remove();
- skeleton.spawnSkeleton(e.getLocation());
- }
- }
- @EventHandler
- public void onArrowHit(EntityShootBowEvent e){
- for(AbstractSkeleton skeleton: skeletonsList){
- if(!isSkeleton(skeleton, e.getEntity())) return;
- ((Arrow) e.getProjectile()).addCustomEffect(new PotionEffect(
- skeleton.potionEffectType(), 40, 2), true
- );
- }
- }
- public boolean isInBiome(AbstractSkeleton skeleton, Biome biome){
- return skeleton.biomeList().contains(biome);
- }
- public boolean isSkeleton(AbstractSkeleton skeleton, Entity entity){
- if(!(entity.getType().equals(EntityType.SKELETON))) return false;
- if(!(entity.hasMetadata("mob_type"))) return false;
- return entity.getMetadata("mob_type").contains(skeleton.dataValue());
- }
Advertisement
Add Comment
Please, Sign In to add comment