Advertisement
Guest User

Untitled

a guest
Apr 29th, 2017
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.37 KB | None | 0 0
  1. package me.jaja.lol;
  2.  
  3.  
  4. import java.lang.reflect.Field;
  5. import java.lang.reflect.Method;
  6. import java.util.Collection;
  7. import java.util.HashMap;
  8. import java.util.List;
  9. import java.util.WeakHashMap;
  10.  
  11. import me.Roy.API.APIStats;
  12. import me.Roy.APIArenaPvP.API1vs1;
  13. import me.Roy.APIArenaPvP.APIGeneral;
  14. import me.Roy.APIArenaPvP.APIPartys;
  15. import me.Roy.ArenaPvP.Arenas;
  16. import me.Roy.ArenaPvP.Inventario;
  17. import me.Roy.ArenaPvP.Meetup;
  18. import me.Roy.ArenaPvP.Party;
  19. import me.Roy.ArenaPvP.SpecEvents;
  20. import ru.tehkode.permissions.PermissionUser;
  21. import ru.tehkode.permissions.PermissionsUserData;
  22. import ru.tehkode.permissions.bukkit.PermissionsEx;
  23.  
  24. import org.bukkit.Bukkit;
  25. import org.bukkit.Server;
  26. import org.bukkit.entity.Player;
  27. import org.bukkit.event.EventHandler;
  28. import org.bukkit.event.Listener;
  29. import org.bukkit.event.player.PlayerJoinEvent;
  30. import org.bukkit.event.player.PlayerKickEvent;
  31. import org.bukkit.event.player.PlayerQuitEvent;
  32. import org.bukkit.scheduler.BukkitRunnable;
  33. import org.bukkit.scoreboard.Scoreboard;
  34. import org.bukkit.scoreboard.ScoreboardManager;
  35. import org.bukkit.scoreboard.Team;
  36.  
  37. public class ScoreboardListener
  38. implements Listener
  39. {
  40. private final Main instance = Main.getInstance();
  41. private final WeakHashMap<Player, ScoreboardHelper> helper = new WeakHashMap();
  42.  
  43. public ScoreboardHelper getScoreboardFor(Player player)
  44. {
  45. return (ScoreboardHelper)this.helper.get(player);
  46. }
  47.  
  48. @EventHandler
  49. public void onPlayerQuit(PlayerQuitEvent event)
  50. {
  51. Player player = event.getPlayer();
  52. this.helper.remove(player);
  53. }
  54.  
  55. @EventHandler
  56. public void onPlayerKick(PlayerKickEvent event)
  57. {
  58. Player player = event.getPlayer();
  59. this.helper.remove(player);
  60. }
  61.  
  62. public void unregister(Scoreboard board, String name)
  63. {
  64. Team team = board.getTeam(name);
  65. if (team != null) {
  66. team.unregister();
  67. }
  68. }
  69.  
  70. public Team getTeam(Scoreboard board, String name, String prefix)
  71. {
  72. Team team = board.getTeam(name);
  73. if (team == null) {
  74. team = board.registerNewTeam(name);
  75. }
  76. team.setPrefix(prefix);
  77. return team;
  78. }
  79.  
  80. public void registerScoreboards(Player player)
  81. {
  82. Scoreboard bukkitScoreBoard = Bukkit.getServer().getScoreboardManager().getNewScoreboard();
  83. player.setScoreboard(bukkitScoreBoard);
  84. ScoreboardHelper scoreboardHelper = new ScoreboardHelper(bukkitScoreBoard, Color.translate(ConfigManager.get("config.yml").getString("ScoreboardTitle")));
  85. this.helper.put(player, scoreboardHelper);
  86. resendTab(player);
  87. for (Player other : Bukkit.getServer().getOnlinePlayers()) {
  88. if ((other != player) &&
  89. (getScoreboardFor(other) != null))
  90. {
  91. Scoreboard scoreboard = getScoreboardFor(other).getScoreBoard();
  92. Team otherTeam = getTeam(scoreboard, "other", Color.translate("&e"));
  93. otherTeam.addEntry(player.getName());
  94. }
  95. }
  96. }
  97.  
  98. public void resendTab(Player player)
  99. {
  100. if (getScoreboardFor(player) == null) {
  101. return;
  102. }
  103. Scoreboard scoreboard = getScoreboardFor(player).getScoreBoard();
  104. unregister(scoreboard, "player");
  105. unregister(scoreboard, "other");
  106.  
  107. Team playerTeam = getTeam(scoreboard, "player", Color.translate("&a"));
  108. Team otherTeam = getTeam(scoreboard, "other", Color.translate("&e"));
  109. for (Player other : Bukkit.getOnlinePlayers()) {
  110. if (other == player) {
  111. playerTeam.addEntry(other.getName());
  112. } else {
  113. otherTeam.addEntry(other.getName());
  114. }
  115. }
  116. }
  117.  
  118. public String getRank(Player p) {
  119. PermissionUser permissionUser = PermissionsEx.getUser(p);
  120. return permissionUser.getPrefix();
  121. }
  122.  
  123. public void setupScoreboard()
  124. {
  125. new BukkitRunnable()
  126. {
  127. public void run()
  128. {
  129. for (Player player : Bukkit.getServer().getOnlinePlayers()) {
  130. if (ScoreboardListener.this.helper.containsKey(player))
  131. {
  132. ScoreboardHelper scoreboardHelper = ScoreboardListener.this.getScoreboardFor(player);
  133. scoreboardHelper.clear();
  134. if (!Party.enParty.containsKey(player))
  135. {
  136. scoreboardHelper.add(Color.translate("&7&m-------------------------"));
  137. if ((APIGeneral.isPlayerInGame(player)) &&
  138. (!APIGeneral.isPlayerSpecMode(player)) &&
  139. (!Meetup.pmeetup.contains(player)))
  140. {
  141. scoreboardHelper.add(Color.translate("&eMatch Info"));
  142. scoreboardHelper.add(Color.translate("&8» &aOpponent: &f" + API1vs1.getPlayerRival(player).getName()));
  143. scoreboardHelper.add(Color.translate("&8» &aLadder: &f" + API1vs1.getPlayerPlayingKit(player)));
  144. if (player.getLevel() >= 1) {
  145. scoreboardHelper.add(Color.translate("&8» &aEnderpearl: &f" + player.getLevel()));
  146. }
  147. scoreboardHelper.add(Color.translate(""));
  148. scoreboardHelper.add(Color.translate(" &6&nbeta.geopvp.us"));
  149. }
  150. if (APIGeneral.isPlayerSpecMode(player))
  151. {
  152. scoreboardHelper.add(Color.translate("&8» &aSpectating"));
  153. scoreboardHelper.add(Color.translate("&7&ouse &8&o/spec &7&oto leave"));
  154. scoreboardHelper.add(Color.translate(""));
  155. scoreboardHelper.add(Color.translate(" &6&nbeta.geopvp.us"));
  156. }
  157. if ((!APIPartys.isPlayerInParty(player)) && (!APIGeneral.isPlayerInGame(player)))
  158. {
  159. scoreboardHelper.add(Color.translate("&eServer Info"));
  160. scoreboardHelper.add(Color.translate("&8» &aOnline: &f" + Bukkit.getOnlinePlayers().size()));
  161. scoreboardHelper.add(Color.translate("&8» &aPing: &f" + ScoreboardListener.getPing(player)));
  162. scoreboardHelper.add(Color.translate("&8» &aRango: &f" + getRank(player)));
  163. scoreboardHelper.add(Color.translate("&8» &aJugando: &f" + Arenas.jugando.size()));
  164. scoreboardHelper.add(Color.translate("&7&m-------------------------"));
  165. scoreboardHelper.add(Color.translate(" &6&nbeta.geopvp.us"));
  166. }
  167. scoreboardHelper.add(Color.translate("&7&m-------------------------"));
  168. }
  169. scoreboardHelper.update(player);
  170. }
  171. }
  172. }
  173. }.runTaskTimer(this.instance, 0L, 3L);
  174. }
  175.  
  176. @EventHandler
  177. public void onJoin(PlayerJoinEvent e)
  178. {
  179. Player p = e.getPlayer();
  180.  
  181. registerScoreboards(p);
  182. }
  183.  
  184. public static int getPing(Player p)
  185. {
  186. String bpName = Bukkit.getServer().getClass().getPackage().getName();
  187. String version = bpName.substring(bpName.lastIndexOf(".") + 1, bpName.length());
  188. try
  189. {
  190. Class<?> CPClass = Class.forName("org.bukkit.craftbukkit." + version + ".entity.CraftPlayer");
  191. Object CraftPlayer = CPClass.cast(p);
  192.  
  193. Method getHandle = CraftPlayer.getClass().getMethod("getHandle", new Class[0]);
  194. Object EntityPlayer = getHandle.invoke(CraftPlayer, new Object[0]);
  195.  
  196. Field ping = EntityPlayer.getClass().getDeclaredField("ping");
  197.  
  198. return ping.getInt(EntityPlayer);
  199. }
  200. catch (Exception e)
  201. {
  202. e.printStackTrace();
  203. }
  204. return 0;
  205. }
  206. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement