Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package niervaco;
- import java.util.HashMap;
- import org.bukkit.Bukkit;
- import org.bukkit.Material;
- import org.bukkit.entity.Player;
- import org.bukkit.event.EventHandler;
- import org.bukkit.event.Listener;
- import org.bukkit.event.block.Action;
- import org.bukkit.event.player.PlayerInteractEvent;
- import org.bukkit.event.player.PlayerJoinEvent;
- import org.bukkit.event.player.PlayerQuitEvent;
- import org.bukkit.plugin.java.JavaPlugin;
- import org.bukkit.scheduler.BukkitRunnable;
- import org.bukkit.util.Vector;
- public class Meteorstrike extends JavaPlugin implements Listener{
- // uuid, time.
- HashMap<String, Integer> cooldown = new HashMap<String, Integer>();
- HashMap<String, BukkitRunnable> dashing = new HashMap<String, BukkitRunnable>();
- @Override
- public void onEnable() {
- getServer().getPluginManager().registerEvents(this, this);
- Bukkit.getScheduler().scheduleSyncRepeatingTask(this, new Runnable() {
- @Override
- public void run() {
- for(String uuid : cooldown.keySet()) {
- if(cooldown.get(uuid) > 0) {
- cooldown.put(uuid, cooldown.get(uuid) - 1);
- }
- }
- }
- }, 0, 20);
- }
- @EventHandler
- public void PlayerInteract(PlayerInteractEvent e) {
- Player p = e.getPlayer();
- String uuid = p.getUniqueId().toString();
- if(p.getItemInHand().getType().equals(Material.IRON_SPADE) && e.getAction().equals(Action.RIGHT_CLICK_AIR) || p.getItemInHand().getType().equals(Material.IRON_SPADE) && e.getAction().equals(Action.RIGHT_CLICK_BLOCK)) {
- if(cooldown.get(uuid) == 0) {
- Vector v = p.getLocation().getDirection().setY(0);
- v.normalize();
- v.setY(0.05);
- dash(p, v);
- cooldown.put(uuid, 8);
- }
- else if(dashing.containsKey(uuid)){
- dashing.get(uuid).cancel(); // put magmaExplode(uuid) method that does this and applies damage / particles etc
- dashing.remove(uuid);
- }
- else {
- p.sendMessage("cooldown");
- }
- }
- }
- public void dash(Player p, Vector v) {
- String uuid = p.getUniqueId().toString();
- BukkitRunnable pDash = new BukkitRunnable(){
- int ticks = 40;
- @Override
- public void run(){
- if(ticks <= 1 || !p.isOnline()){
- this.cancel();
- dashing.remove(uuid); // put magmaExplode(uuid) method that does this and applies damage / particles etc
- return;
- }
- p.setVelocity(v);
- ticks--; //decrement
- }
- };
- dashing.put(uuid, pDash);
- pDash.runTaskTimer(this, 0, 1);
- }
- @EventHandler
- public void PlayerJoin(PlayerJoinEvent e) {
- Player p = e.getPlayer();
- cooldown.put(p.getUniqueId().toString(), 0);
- }
- @EventHandler
- public void PlayerLeave(PlayerQuitEvent e) {
- Player p = e.getPlayer();
- cooldown.remove(p.getUniqueId().toString());
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement