Advertisement
Whoneedspacee

Untitled

Feb 7th, 2018
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.91 KB | None | 0 0
  1. package niervaco;
  2.  
  3. import java.util.HashMap;
  4. import org.bukkit.Bukkit;
  5. import org.bukkit.Material;
  6. import org.bukkit.entity.Player;
  7. import org.bukkit.event.EventHandler;
  8. import org.bukkit.event.Listener;
  9. import org.bukkit.event.block.Action;
  10. import org.bukkit.event.player.PlayerInteractEvent;
  11. import org.bukkit.event.player.PlayerJoinEvent;
  12. import org.bukkit.event.player.PlayerQuitEvent;
  13. import org.bukkit.plugin.java.JavaPlugin;
  14. import org.bukkit.scheduler.BukkitRunnable;
  15. import org.bukkit.util.Vector;
  16.  
  17. public class Meteorstrike extends JavaPlugin implements Listener{
  18.  
  19. // uuid, time.
  20. HashMap<String, Integer> cooldown = new HashMap<String, Integer>();
  21. HashMap<String, BukkitRunnable> dashing = new HashMap<String, BukkitRunnable>();
  22.  
  23. @Override
  24. public void onEnable() {
  25.  
  26. getServer().getPluginManager().registerEvents(this, this);
  27.  
  28. Bukkit.getScheduler().scheduleSyncRepeatingTask(this, new Runnable() {
  29. @Override
  30. public void run() {
  31. for(String uuid : cooldown.keySet()) {
  32. if(cooldown.get(uuid) > 0) {
  33. cooldown.put(uuid, cooldown.get(uuid) - 1);
  34. }
  35. }
  36. }
  37. }, 0, 20);
  38.  
  39. }
  40.  
  41.  
  42. @EventHandler
  43. public void PlayerInteract(PlayerInteractEvent e) {
  44. Player p = e.getPlayer();
  45. String uuid = p.getUniqueId().toString();
  46. 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)) {
  47. if(cooldown.get(uuid) == 0) {
  48. Vector v = p.getLocation().getDirection().setY(0);
  49. v.normalize();
  50. v.setY(0.05);
  51. dash(p, v);
  52. cooldown.put(uuid, 8);
  53. }
  54. else if(dashing.containsKey(uuid)){
  55. dashing.get(uuid).cancel(); // put magmaExplode(uuid) method that does this and applies damage / particles etc
  56. dashing.remove(uuid);
  57. }
  58. else {
  59. p.sendMessage("cooldown");
  60. }
  61. }
  62. }
  63.  
  64. public void dash(Player p, Vector v) {
  65.  
  66. String uuid = p.getUniqueId().toString();
  67.  
  68. BukkitRunnable pDash = new BukkitRunnable(){
  69.  
  70. int ticks = 40;
  71.  
  72. @Override
  73. public void run(){
  74.  
  75. if(ticks <= 1 || !p.isOnline()){
  76. this.cancel();
  77. dashing.remove(uuid); // put magmaExplode(uuid) method that does this and applies damage / particles etc
  78. return;
  79. }
  80.  
  81. p.setVelocity(v);
  82. ticks--; //decrement
  83.  
  84. }
  85. };
  86.  
  87. dashing.put(uuid, pDash);
  88.  
  89. pDash.runTaskTimer(this, 0, 1);
  90. }
  91.  
  92. @EventHandler
  93. public void PlayerJoin(PlayerJoinEvent e) {
  94. Player p = e.getPlayer();
  95. cooldown.put(p.getUniqueId().toString(), 0);
  96. }
  97.  
  98. @EventHandler
  99. public void PlayerLeave(PlayerQuitEvent e) {
  100. Player p = e.getPlayer();
  101. cooldown.remove(p.getUniqueId().toString());
  102. }
  103.  
  104. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement