Guest User

Untitled

a guest
Nov 22nd, 2018
253
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.46 KB | None | 0 0
  1.  
  2. Main plugin;
  3.  
  4. public Events(Main plugin) {
  5. this.plugin = plugin;
  6. }
  7.  
  8. @EventHandler
  9. public void onPlayerJoin(PlayerJoinEvent event) {
  10. new BukkitRunnable() {
  11. public void run() {
  12. for (Player p : plugin.getServer().getOnlinePlayers()) {
  13. removePlayers(p);
  14. }
  15. }
  16. }.runTaskLater(plugin, 5);
  17. }
  18.  
  19. @EventHandler
  20. public void onPlayerMove(PlayerMoveEvent event) {
  21. Player player = event.getPlayer();
  22. int distance = 10;
  23.  
  24. List<Player> visiblePlayers = new ArrayList<>();
  25. visiblePlayers.add(player);
  26. List<Player> nonVisiblePlayers = new ArrayList<>();
  27. nonVisiblePlayers.add(player);
  28.  
  29. for (Player serverPlayer : player.getWorld().getPlayers()) {
  30. if (player.getName().equals(serverPlayer.getName())) continue;
  31.  
  32. if (player.getLocation().distance(serverPlayer.getLocation()) <= distance) {
  33. visiblePlayers.add(serverPlayer);
  34. } else {
  35. nonVisiblePlayers.add(serverPlayer);
  36. }
  37. }
  38.  
  39. addPlayer(player, visiblePlayers);
  40. removePlayers(player, nonVisiblePlayers);
  41. }
  42.  
  43. public void addPlayer(Player receiver, List<Player> players) {
  44. EntityPlayer[] playersNMS = new EntityPlayer[players.size()];
  45. int current = 0;
  46. for (Player player : players) {
  47. playersNMS[current] = ((CraftPlayer) player).getHandle();
  48. current++;
  49. }
  50.  
  51. PacketPlayOutPlayerInfo packet = new PacketPlayOutPlayerInfo(EnumPlayerInfoAction.ADD_PLAYER, playersNMS);
  52. ((CraftPlayer) receiver).getHandle().playerConnection.sendPacket(packet);
  53. }
  54.  
  55. public void removePlayers(Player receiver) {
  56. Collection<? extends Player> playersBukkit = Bukkit.getOnlinePlayers();
  57. EntityPlayer[] playersNMS = new EntityPlayer[playersBukkit.size()];
  58. int current = 0;
  59. for (Player player : playersBukkit) {
  60. playersNMS[current] = ((CraftPlayer) player).getHandle();
  61. current++;
  62. }
  63. PacketPlayOutPlayerInfo packet = new PacketPlayOutPlayerInfo(EnumPlayerInfoAction.REMOVE_PLAYER, playersNMS);
  64. ((CraftPlayer) receiver).getHandle().playerConnection.sendPacket(packet);
  65. }
  66.  
  67. public void removePlayers(Player receiver, List<Player> players) {
  68. EntityPlayer[] playersNMS = new EntityPlayer[players.size()];
  69. int current = 0;
  70. for (Player player : players) {
  71. playersNMS[current] = ((CraftPlayer) player).getHandle();
  72. current++;
  73. }
  74. PacketPlayOutPlayerInfo packet = new PacketPlayOutPlayerInfo(EnumPlayerInfoAction.REMOVE_PLAYER, playersNMS);
  75. ((CraftPlayer) receiver).getHandle().playerConnection.sendPacket(packet);
  76. }
Advertisement
Add Comment
Please, Sign In to add comment