Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package me.monsterrdebeast.Spells;
- import java.util.WeakHashMap;
- import org.bukkit.Bukkit;
- import org.bukkit.Color;
- import org.bukkit.FireworkEffect;
- import org.bukkit.FireworkEffect.Type;
- import org.bukkit.entity.Fireball;
- import org.bukkit.entity.Player;
- import org.bukkit.event.EventHandler;
- import org.bukkit.event.Listener;
- import org.bukkit.event.entity.ProjectileHitEvent;
- import org.bukkit.event.player.PlayerInteractEvent;
- import org.bukkit.scheduler.BukkitTask;
- import me.monsterrdebeast.Main;
- import me.monsterrdebeast.Fireworks;
- import me.monsterrdebeast.Spell;
- public class Fireball extends Spell implements Listener {
- public static WeakHashMap<Integer, BukkitTask> fireball = new WeakHashMap<Integer, BukkitTask>();
- public Fireball() {
- super("Fireball", null);
- }
- @Override
- public void onLeftClick(Player p, PlayerInteractEvent e) {
- final Fireball fb = p.getWorld().spawn(p.getEyeLocation(), Fireball.class);
- fb.setShooter(p);
- fb.setBounce(false);
- fb.setYield(6.0F);
- fb.setVelocity(p.getLocation().getDirection().multiply(3));
- final BukkitTask autoCancel = Bukkit.getScheduler().runTaskLater(Main.plugin, new Runnable() {
- @Override
- public void run() {
- if(fireballs.containsKey(fb.getEntityId())) {
- fireballs.get(fb.getEntityId()).cancel();
- fireballs.remove(fb.getEntityId());
- }
- }
- }, 200L);
- fireballs.put(fb.getEntityId(), Bukkit.getScheduler().runTaskTimer(Main.plugin, new Runnable() {
- @Override
- public void run() {
- if(!(fb.isDead() || !fb.isValid()))
- try {
- Fireworks.play(fb.getLocation(), FireworkEffect.builder().with(Type.BURST).withColor(Color.RED).withColor(Color.AQUA).build());
- } catch (Exception e1) {
- e1.printStackTrace();
- }
- else {
- fireballs.get(fb.getEntityId()).cancel();
- fireballs.remove(fb.getEntityId());
- autoCancel.cancel();
- }
- }
- }, 2L, 2L));
- }
- @Override
- public String onSelect() {
- return Main.youveSelected.replaceAll("SPELL", getDisplayName());
- }
- @EventHandler
- public void onProjectileHit(ProjectileHitEvent e) {
- int id = e.getEntity().getEntityId();
- if(fireballs.containsKey(id)) {
- fireballs.get(id).cancel();
- fireballs.remove(id);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement