Advertisement
Guest User

Untitled

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