Advertisement
Guest User

Untitled

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