Advertisement
Cool_boy21

Runnable

May 5th, 2018
160
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.67 KB | None | 0 0
  1. package ua.coolboy.skullfinder;
  2.  
  3. import org.bukkit.Bukkit;
  4. import org.bukkit.Color;
  5. import org.bukkit.FireworkEffect;
  6. import org.bukkit.Location;
  7. import org.bukkit.Material;
  8. import org.bukkit.Particle;
  9. import org.bukkit.Sound;
  10. import org.bukkit.World;
  11. import org.bukkit.block.Skull;
  12. import org.bukkit.entity.ArmorStand;
  13. import org.bukkit.inventory.ItemStack;
  14. import org.bukkit.inventory.meta.SkullMeta;
  15. import org.bukkit.scheduler.BukkitRunnable;
  16.  
  17. public class StandFlyRunnable extends BukkitRunnable {
  18.  
  19.     ArmorStand stand;
  20.     Skull skull;
  21.     World world;
  22.  
  23.     public StandFlyRunnable(ArmorStand stand, Skull skull) {
  24.         this.stand = stand;
  25.         this.skull = skull;
  26.         this.world = stand.getWorld();
  27.     }
  28.  
  29.     @Override
  30.     public void run() {
  31.         stand.setGravity(false);
  32.         stand.setMarker(false);
  33.         stand.setInvulnerable(true);
  34.         stand.setVisible(false);
  35.         stand.setCustomNameVisible(false);
  36.         stand.setCustomName("Flying Skull");
  37.         double start = stand.getHeadPose().getY();
  38.         int skip = 0;
  39.         synchronized (this) {
  40.             for (int i = 0; i < 1000; i++) {
  41.                 Location location = stand.getLocation();
  42.                 location.add(0, 0.006, 0);
  43.                 stand.teleport(location);
  44.                 double rad = Math.pow((float)i / 400, 2) * Math.PI;
  45.                 stand.setHeadPose(stand.getHeadPose().setY(start + rad));
  46.                 skip++;
  47.                 if(skip % 4 == 0) {
  48.                     world.spawnParticle(Particle.REDSTONE, stand.getEyeLocation().subtract(0, 0.5, 0), 0, Float.MIN_VALUE, 1, 0.5, 1);
  49.                 }
  50.                 if (skip == 15) {
  51.                     world.playSound(stand.getLocation(), Sound.BLOCK_NOTE_HARP, 0.5F, 0);
  52.                 }
  53.                 if (skip >= 40) {
  54.                     world.playSound(stand.getLocation(), Sound.BLOCK_NOTE_HARP, 0.5F, 1);
  55.                     skip = 0;
  56.                 }
  57.                 try {
  58.                     this.wait(5);
  59.                 } catch (InterruptedException ex) {
  60.                     Bukkit.getLogger().warning("Oops! Something went wrong during stand fly!");
  61.                     stand.remove();
  62.                     this.cancel();
  63.                     break;
  64.                 }
  65.             }
  66.             stand.remove();
  67.             new BukkitRunnable() {
  68.                 @Override
  69.                 public void run() {
  70.                     FireworkUtil.custom(stand.getEyeLocation(), 1, true, Color.BLUE, Color.RED, Color.SILVER, FireworkEffect.Type.BURST, true);
  71.                 }
  72.             }.runTask(SkullFinder.getInstance());
  73.         }
  74.         this.cancel();
  75.     }
  76. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement