Advertisement
Guest User

Untitled

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