Advertisement
Guest User

Untitled

a guest
May 29th, 2016
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.24 KB | None | 0 0
  1. package me.monsterrdebeast.Spells;
  2.  
  3. import java.util.WeakHashMap;
  4. import org.bukkit.Bukkit;
  5. import org.bukkit.Color;
  6. import org.bukkit.FireworkEffect;
  7. import org.bukkit.FireworkEffect.Type;
  8. import org.bukkit.entity.Fireball;
  9. import org.bukkit.entity.Player;
  10. import org.bukkit.event.EventHandler;
  11. import org.bukkit.event.Listener;
  12. import org.bukkit.event.entity.ProjectileHitEvent;
  13. import org.bukkit.event.player.PlayerInteractEvent;
  14. import org.bukkit.scheduler.BukkitTask;
  15. import me.monsterrdebeast.Main;
  16. import me.monsterrdebeast.Fireworks;
  17. import me.monsterrdebeast.Spell;
  18.  
  19. public class Fireball extends Spell implements Listener {
  20. public static WeakHashMap<Integer, BukkitTask> fireball = new WeakHashMap<Integer, BukkitTask>();
  21. public Fireball() {
  22. super("Fireball", null);
  23. }
  24.  
  25. @Override
  26. public void onLeftClick(Player p, PlayerInteractEvent e) {
  27. final Fireball fb = p.getWorld().spawn(p.getEyeLocation(), Fireball.class);
  28. fb.setShooter(p);
  29. fb.setBounce(false);
  30. fb.setYield(6.0F);
  31. fb.setVelocity(p.getLocation().getDirection().multiply(3));
  32.  
  33. final BukkitTask autoCancel = Bukkit.getScheduler().runTaskLater(Main.plugin, new Runnable() {
  34. @Override
  35. public void run() {
  36. if(fireballs.containsKey(fb.getEntityId())) {
  37. fireballs.get(fb.getEntityId()).cancel();
  38. fireballs.remove(fb.getEntityId());
  39. }
  40. }
  41. }, 200L);
  42.  
  43. fireballs.put(fb.getEntityId(), Bukkit.getScheduler().runTaskTimer(Main.plugin, new Runnable() {
  44. @Override
  45. public void run() {
  46. if(!(fb.isDead() || !fb.isValid()))
  47. try {
  48. Fireworks.play(fb.getLocation(), FireworkEffect.builder().with(Type.BURST).withColor(Color.RED).withColor(Color.AQUA).build());
  49. } catch (Exception e1) {
  50. e1.printStackTrace();
  51. }
  52. else {
  53. fireballs.get(fb.getEntityId()).cancel();
  54. fireballs.remove(fb.getEntityId());
  55. autoCancel.cancel();
  56. }
  57. }
  58. }, 2L, 2L));
  59. }
  60.  
  61. @Override
  62. public String onSelect() {
  63. return Main.youveSelected.replaceAll("SPELL", getDisplayName());
  64. }
  65.  
  66. @EventHandler
  67. public void onProjectileHit(ProjectileHitEvent e) {
  68. int id = e.getEntity().getEntityId();
  69. if(fireballs.containsKey(id)) {
  70. fireballs.get(id).cancel();
  71. fireballs.remove(id);
  72. }
  73. }
  74. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement