Advertisement
Guest User

Untitled

a guest
Jan 17th, 2020
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.95 KB | None | 0 0
  1. private HashMap<Player, Integer> cooldown = new HashMap<>();
  2. ArrayList<Player> playerFromInteract = new ArrayList<Player>();
  3.  
  4. @EventHandler
  5. public void playerInteractEvent(PlayerInteractEvent event) {
  6. if ((event.getAction() == Action.RIGHT_CLICK_AIR || event.getAction() == Action.RIGHT_CLICK_BLOCK) &&
  7. event.getItem() != null && event.getItem().getType() == Material.COMPASS) {
  8. final Player player = event.getPlayer();
  9. Player nearest = null;
  10. for (Entity entity : event.getPlayer().getNearbyEntities(VampireTracks.getInstance().getConfig().getInt("RANGE"), VampireTracks.getInstance().getConfig().getInt("RANGE"), VampireTracks.getInstance().getConfig().getInt("RANGE"))) {
  11. if (entity instanceof Player)
  12. nearest = (Player)entity;
  13. }
  14. if (nearest != null) {
  15. if (!this.cooldown.containsKey(player)) {
  16. int distance = (int)player.getLocation().distance(nearest.getLocation());
  17. player.setCompassTarget(nearest.getLocation());
  18. playerFromInteract.set(1, nearest);
  19. player.sendMessage(ChatColor.translateAlternateColorCodes('&', ((String)Objects.<String>requireNonNull(VampireTracks.getInstance().getConfig().getString("USE-MESSAGE"))).replace("{Nearest}", nearest.getName()).replace("{Distance}", distance + "")));
  20. if (this.lastuse.contains(player)) {
  21. player.getInventory().setItemInHand(new ItemStack(Material.AIR));
  22. this.lastuse.remove(player);
  23. } else {
  24. this.lastuse.add(player);
  25. }
  26. this.cooldown.put(player, Integer.valueOf(VampireTracks.getInstance().getConfig().getInt("COOLDOWN")));
  27. final int[] i = { VampireTracks.getInstance().getConfig().getInt("COOLDOWN") };
  28. (new BukkitRunnable() {
  29. public void run() {
  30. i[0] = i[0] - 1;
  31. if (i[0] == 0)
  32. PlayerInteractListener.this.cooldown.remove(player);
  33. }
  34. }).runTaskTimer((Plugin)VampireTracks.getInstance(), 0L, 20L);
  35. } else {
  36. player.sendMessage(ChatColor.RED + "You can't use it for " + this.cooldown.get(player) + " seconds!");
  37. }
  38. } else {
  39.  
  40. player.sendMessage(ChatColor.translateAlternateColorCodes('&', Objects.<String>requireNonNull(VampireTracks.getInstance().getConfig().getString("NO-PLAYERS-IN-RANGE"))));
  41. }
  42. }
  43. }
  44.  
  45. @EventHandler
  46. public void onPlayerQuit(PlayerQuitEvent event) {
  47.  
  48. Location loc = playerFromInteract.get(1).getWorld().getSpawnLocation();
  49. playerFromInteract.get(1).setCompassTarget(loc);
  50. }
  51. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement