Guest User

Untitled

a guest
Nov 15th, 2023
13
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.68 KB | None | 0 0
  1. public class SkeletonManager implements Listener {
  2.     public List<AbstractSkeleton> skeletonsList = new ArrayList<>(Arrays.asList(
  3.             new AbstractSkeleton("overgrown_skeleton", PotionEffectType.POISON,
  4.                     15, 0.37f, "карапузік", new ArrayList<>(Arrays.asList(Biome.LUSH_CAVES))),
  5.             new AbstractSkeleton("desert_skeleton",
  6.                     PotionEffectType.WITHER, 22, 0.3f, "десерт",
  7.                     new ArrayList<>(Arrays.asList(Biome.DESERT)))
  8.     ));
  9.  
  10.  
  11.     @EventHandler
  12.     public void onEntitySpawn(EntitySpawnEvent e){
  13.         if(!(e.getEntity().getType().equals(EntityType.SKELETON))) return;
  14.         for(AbstractSkeleton skeleton: skeletonsList){
  15.             if(!isInBiome(skeleton, e.getLocation().getBlock().getBiome())) return;
  16.             e.getEntity().remove();
  17.             skeleton.spawnSkeleton(e.getLocation());
  18.         }
  19.  
  20.     }
  21.  
  22.     @EventHandler
  23.     public void onArrowHit(EntityShootBowEvent e){
  24.         for(AbstractSkeleton skeleton: skeletonsList){
  25.             if(!isSkeleton(skeleton, e.getEntity())) return;
  26.             ((Arrow) e.getProjectile()).addCustomEffect(new PotionEffect(
  27.                     skeleton.potionEffectType(), 40, 2), true
  28.             );
  29.         }
  30.  
  31.     }
  32.  
  33.     public boolean isInBiome(AbstractSkeleton skeleton, Biome biome){
  34.         return skeleton.biomeList().contains(biome);
  35.     }
  36.  
  37.     public boolean isSkeleton(AbstractSkeleton skeleton, Entity entity){
  38.         if(!(entity.getType().equals(EntityType.SKELETON))) return false;
  39.         if(!(entity.hasMetadata("mob_type"))) return false;
  40.         return entity.getMetadata("mob_type").contains(skeleton.dataValue());
  41.     }
  42.  
Advertisement
Add Comment
Please, Sign In to add comment