Advertisement
phanatic

Untitled

Nov 22nd, 2017
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 22.06 KB | None | 0 0
  1. package me.aries.practice.manager;
  2.  
  3. import me.aries.practice.Core;
  4. import me.aries.practice.kits.KitType;
  5. import me.aries.practice.match.Match;
  6. import me.aries.practice.match.MatchType;
  7. import me.aries.practice.player.AriesPlayer;
  8. import me.aries.practice.player.stat.FFAStat;
  9. import me.aries.practice.state.GameType;
  10. import me.aries.practice.state.PlayerState;
  11. import me.aries.practice.util.Reference;
  12. import org.bukkit.Bukkit;
  13. import org.bukkit.ChatColor;
  14. import org.bukkit.entity.Player;
  15. import org.bukkit.scheduler.BukkitRunnable;
  16. import org.bukkit.scoreboard.DisplaySlot;
  17. import org.bukkit.scoreboard.Objective;
  18. import org.bukkit.scoreboard.Scoreboard;
  19. import org.bukkit.scoreboard.Team;
  20.  
  21. import java.text.DecimalFormat;
  22. import java.util.UUID;
  23.  
  24. /**
  25. * Created by BladianYT
  26. */
  27. public class ScoreboardManager
  28. {
  29. private Core core = Core.instance;
  30. private Reference reference = core.getReference();
  31. private ArenaManager arenaManager = core.getArenaManager();
  32.  
  33. private MatchManager matchManager = core.getMatchManager();
  34. private PlayerManager playerManager = Core.instance.getPlayerManager();
  35.  
  36. private final DecimalFormat df = new DecimalFormat("###,##0.###");
  37.  
  38. public ScoreboardManager()
  39. {
  40. new BukkitRunnable()
  41. {
  42. @Override
  43. public void run()
  44. {
  45. for(Player p : Bukkit.getServer().getOnlinePlayers())
  46. {
  47. AriesPlayer ariesPlayer = playerManager.getAriesPlayerMap().get(p.getUniqueId());
  48. updateScoreboard(p, ariesPlayer.getPlayerState(), ariesPlayer);
  49. }
  50. }
  51. }.runTaskTimer(core, 0L, 20L);
  52. }
  53.  
  54. public void createScoreboard(Player p, AriesPlayer ariesPlayer)
  55. {
  56. Scoreboard scoreboard = Bukkit.getScoreboardManager().getNewScoreboard();
  57.  
  58. Objective obj = scoreboard.registerNewObjective("practice", "dummy");
  59. obj.setDisplayName("§5Venix Practice");
  60. obj.setDisplaySlot(DisplaySlot.SIDEBAR);
  61.  
  62. p.setScoreboard(scoreboard);
  63.  
  64. changeScoreboard(p, PlayerState.LOBBY, ariesPlayer);
  65. }
  66.  
  67. public void changeScoreboard(Player p, PlayerState playerState, AriesPlayer ariesPlayer)
  68. {
  69. Scoreboard scoreboard = p.getScoreboard();
  70. for (Team team : scoreboard.getTeams())
  71. {
  72. team.unregister();
  73. }
  74. Objective oldObj = scoreboard.getObjective(DisplaySlot.SIDEBAR);
  75. oldObj.unregister();
  76. if(scoreboard.getObjective(DisplaySlot.BELOW_NAME) != null)
  77. {
  78. scoreboard.getObjective(DisplaySlot.BELOW_NAME).unregister();
  79. }
  80. Objective obj = scoreboard.registerNewObjective("practice", "dummy");
  81. obj.setDisplayName("§5Venix Practice");
  82. obj.setDisplaySlot(DisplaySlot.SIDEBAR);
  83. if (playerState == PlayerState.LOBBY)
  84. {
  85. Team blank = scoreboard.registerNewTeam(ChatColor.GREEN.toString());
  86. blank.addEntry("§a");
  87. obj.getScore("§a").setScore(12);
  88.  
  89. Team global = scoreboard.registerNewTeam(ChatColor.YELLOW.toString());
  90. global.addEntry("§bELO:");
  91. global.setSuffix(" §f" + ariesPlayer.getGlobal());
  92. obj.getScore("§bELO:").setScore(8);
  93.  
  94. Team blank3 = scoreboard.registerNewTeam(ChatColor.BOLD.toString());
  95. blank3.addEntry("§3");
  96. obj.getScore("§3").setScore(7);
  97.  
  98. Team lobby = scoreboard.registerNewTeam(ChatColor.WHITE.toString());
  99. lobby.addEntry("§bLobby:");
  100. lobby.setSuffix(" §f" + playerManager.getLobby().size());
  101. obj.getScore("§bLobby:").setScore(5);
  102.  
  103.  
  104. Team ingame = scoreboard.registerNewTeam(ChatColor.DARK_BLUE.toString());
  105. ingame.addEntry("§bGame:");
  106. ingame.setSuffix(" §f" + playerManager.getGame().size());
  107. obj.getScore("§bGame:").setScore(4);
  108.  
  109. Team spectators = scoreboard.registerNewTeam(ChatColor.DARK_GREEN.toString());
  110. spectators.addEntry("§bSpectate:");
  111. spectators.setSuffix(" §f" + playerManager.getSpectators().size());
  112. obj.getScore("§bSpectate:").setScore(3);
  113.  
  114. Team blank2 = scoreboard.registerNewTeam(ChatColor.DARK_RED.toString());
  115. blank2.addEntry("§d");
  116. obj.getScore("§d").setScore(2);
  117.  
  118. Team website = scoreboard.registerNewTeam(ChatColor.DARK_PURPLE.toString());
  119. website.addEntry("§5eu.");
  120. website.setSuffix("venix.rip");
  121. obj.getScore("§5eu.").setScore(1);
  122. }
  123. if (playerState == PlayerState.QUEUE)
  124. {
  125. Match match = ariesPlayer.getMatch();
  126.  
  127. if (match.getMatchType() == MatchType.DAMAGE)
  128. {
  129. Team blank = scoreboard.registerNewTeam(ChatColor.GREEN.toString());
  130. blank.addEntry("§a");
  131. obj.getScore("§a").setScore(12);
  132.  
  133.  
  134. Team server = scoreboard.registerNewTeam(ChatColor.LIGHT_PURPLE.toString());
  135. server.addEntry("§8" + reference.ARROW + "§3");
  136. server.setSuffix(" Queue");
  137. obj.getScore("§8" + reference.ARROW + "§3").setScore(6);
  138.  
  139. Team kit = scoreboard.registerNewTeam(ChatColor.WHITE.toString());
  140. kit.addEntry("§bKit: §f");
  141. kit.setSuffix(match.getKit().name());
  142. obj.getScore("§bKit: §f").setScore(5);
  143.  
  144. Team game = scoreboard.registerNewTeam(ChatColor.DARK_BLUE.toString());
  145. game.addEntry("§bGame:");
  146. game.setSuffix(" §f" + arenaManager.getActiveDamageArenas().get(match.getKit()));
  147. obj.getScore("§bGame:").setScore(4);
  148.  
  149. Team waiting = scoreboard.registerNewTeam(ChatColor.RESET.toString());
  150. waiting.addEntry("§bWaiting:");
  151. waiting.setSuffix(" §f" + matchManager.getDamageQueue().get(match.getKit()).size());
  152. obj.getScore("§bWaiting:").setScore(3);
  153.  
  154. Team blank2 = scoreboard.registerNewTeam(ChatColor.DARK_RED.toString());
  155. blank2.addEntry("§d");
  156. obj.getScore("§d").setScore(2);
  157.  
  158. Team website = scoreboard.registerNewTeam(ChatColor.DARK_PURPLE.toString());
  159. website.addEntry("§5eu.");
  160. website.setSuffix("venix.rip");
  161. obj.getScore("§5eu.").setScore(1);
  162. }
  163. else
  164. {
  165. if(match.isRanked())
  166. {
  167. Team blank = scoreboard.registerNewTeam(ChatColor.GREEN.toString());
  168. blank.addEntry("§a");
  169. obj.getScore("§a").setScore(13);
  170.  
  171.  
  172.  
  173. Team kit = scoreboard.registerNewTeam(ChatColor.BLACK.toString());
  174. kit.addEntry("§bKit: §f");
  175. kit.setSuffix(match.getKit().name());
  176. obj.getScore("§bKit: §f").setScore(6);
  177.  
  178. Team game = scoreboard.registerNewTeam(ChatColor.DARK_BLUE.toString());
  179. game.addEntry("§bGame:");
  180. game.setSuffix(" §f" + arenaManager.getActiveRankedArenas().get(match.getKit()));
  181. obj.getScore("§bGame:").setScore(5);
  182.  
  183. Team waiting = scoreboard.registerNewTeam(ChatColor.RESET.toString());
  184. waiting.addEntry("§bWaiting:");
  185. waiting.setSuffix(" §f" + matchManager.getRankedQueue().get(match.getKit()).size());
  186. obj.getScore("§bWaiting:").setScore(4);
  187.  
  188. Team elo = scoreboard.registerNewTeam(ChatColor.WHITE.toString());
  189. elo.addEntry("§bELO:");
  190. elo.setSuffix(" §f" + ariesPlayer.getStats1v1().get(match.getKit()).getElo());
  191. obj.getScore("§bELO:").setScore(3);
  192.  
  193. Team blank2 = scoreboard.registerNewTeam(ChatColor.DARK_RED.toString());
  194. blank2.addEntry("§d");
  195. obj.getScore("§d").setScore(2);
  196.  
  197. Team website = scoreboard.registerNewTeam(ChatColor.DARK_PURPLE.toString());
  198. website.addEntry("§5eu.");
  199. website.setSuffix("venix.rip");
  200. obj.getScore("§5eu.").setScore(1);
  201. }
  202. else
  203. {
  204. Team blank = scoreboard.registerNewTeam(ChatColor.GREEN.toString());
  205. blank.addEntry("§a");
  206. obj.getScore("§a").setScore(12);
  207.  
  208. Team kit = scoreboard.registerNewTeam(ChatColor.WHITE.toString());
  209. kit.addEntry("§bKit: §f");
  210. kit.setSuffix(match.getKit().name());
  211. obj.getScore("§bKit: §f").setScore(5);
  212.  
  213. Team game = scoreboard.registerNewTeam(ChatColor.DARK_BLUE.toString());
  214. game.addEntry("§bGame:");
  215. game.setSuffix(" §f" + arenaManager.getActiveUnrankedArenas().get(match.getKit()));
  216. obj.getScore("§bGame:").setScore(4);
  217.  
  218. Team waiting = scoreboard.registerNewTeam(ChatColor.RESET.toString());
  219. waiting.addEntry("§bWaiting:");
  220. waiting.setSuffix(" §f" + matchManager.getUnrankedQueue().get(match.getKit()).size());
  221. obj.getScore("§bWaiting:").setScore(3);
  222.  
  223. Team blank2 = scoreboard.registerNewTeam(ChatColor.DARK_RED.toString());
  224. blank2.addEntry("§d");
  225. obj.getScore("§d").setScore(2);
  226.  
  227. Team website = scoreboard.registerNewTeam(ChatColor.DARK_PURPLE.toString());
  228. website.addEntry("§5eu.");
  229. website.setSuffix("venix.rip");
  230. obj.getScore("§5eu.").setScore(1);
  231. }
  232. }
  233. }
  234. if (playerState == PlayerState.INGAME)
  235. {
  236. if(ariesPlayer.getGameType() == GameType.FFA)
  237. {
  238. FFAStat ffaStat = ariesPlayer.getFfaStat();
  239.  
  240. Team blank = scoreboard.registerNewTeam(ChatColor.GOLD.toString());
  241. blank.addEntry("§a");
  242. obj.getScore("§a").setScore(12);
  243.  
  244. Team server = scoreboard.registerNewTeam(ChatColor.BOLD.toString());
  245. server.addEntry("§8" + reference.ARROW + "§3 FFA");
  246. obj.getScore("§8" + reference.ARROW + "§3 FFA").setScore(9);
  247.  
  248. Team playing = scoreboard.registerNewTeam(ChatColor.LIGHT_PURPLE.toString());
  249. playing.addEntry("§bPlaying:");
  250. playing.setSuffix(" §f" + arenaManager.getArenaFFA().getPlayers().size());
  251. obj.getScore("§bPlaying:").setScore(8);
  252.  
  253. Team blank5 = scoreboard.registerNewTeam(ChatColor.RESET.toString());
  254. blank5.addEntry("§4");
  255. obj.getScore("§4").setScore(7);
  256.  
  257. Team time = scoreboard.registerNewTeam(ChatColor.MAGIC.toString());
  258. time.addEntry("§bKills:");
  259. time.setSuffix(" §f" + ffaStat.getKills());
  260. obj.getScore("§bKills:").setScore(6);
  261.  
  262. Team kit = scoreboard.registerNewTeam(ChatColor.YELLOW.toString());
  263. kit.addEntry("§cDeaths:");
  264. kit.setSuffix(" §f" + ffaStat.getDeaths());
  265. obj.getScore("§cDeaths:").setScore(5);
  266.  
  267. Team streak = scoreboard.registerNewTeam(ChatColor.ITALIC.toString());
  268. streak.addEntry("§aStreak:");
  269. streak.setSuffix(" §f" + ffaStat.getStreak());
  270. obj.getScore("§aStreak:").setScore(4);
  271.  
  272. Team highestKS = scoreboard.registerNewTeam(ChatColor.AQUA.toString());
  273. highestKS.addEntry("§aHighest KS:");
  274. highestKS.setSuffix(" §f" + df.format(ffaStat.getHighestKS()));
  275. obj.getScore("§aHighest KS:").setScore(3);
  276.  
  277. Team blank2 = scoreboard.registerNewTeam(ChatColor.BLUE.toString());
  278. blank2.addEntry("§d");
  279. obj.getScore("§d").setScore(2);
  280.  
  281. Team website = scoreboard.registerNewTeam(ChatColor.DARK_PURPLE.toString());
  282. website.addEntry("§5eu.");
  283. website.setSuffix("venix.rip");
  284. obj.getScore("§5eu.").setScore(1);
  285.  
  286. Objective healthName = scoreboard.registerNewObjective("h1", "health");
  287.  
  288. healthName.setDisplayName(ChatColor.DARK_RED + "❤");
  289. healthName.setDisplaySlot(DisplaySlot.BELOW_NAME);
  290.  
  291. }
  292. else if(ariesPlayer.getGameType() == GameType.ARENA)
  293. {
  294. Match match = ariesPlayer.getMatch();
  295.  
  296. Team blank = scoreboard.registerNewTeam(ChatColor.GOLD.toString());
  297. blank.addEntry("§a");
  298. obj.getScore("§a").setScore(13);
  299.  
  300.  
  301. Team time = scoreboard.registerNewTeam(ChatColor.MAGIC.toString());
  302. time.addEntry("§bTime:");
  303. time.setSuffix(" §f" + match.getFormatTime());
  304. obj.getScore("§bTime:").setScore(8);
  305.  
  306. Team blank4 = scoreboard.registerNewTeam(ChatColor.RESET.toString());
  307. blank4.addEntry("§l");
  308. obj.getScore("§l").setScore(7);
  309.  
  310. Team blank6 = scoreboard.registerNewTeam(ChatColor.WHITE.toString());
  311. blank6.addEntry("§bOpponent: ");
  312. obj.getScore("§bOpponent: ").setScore(6);
  313.  
  314. UUID opponentUUID;
  315.  
  316. if (match.getPlayer().equals(p.getUniqueId()))
  317. {
  318. opponentUUID = match.getOpponent();
  319. }
  320. else
  321. {
  322. opponentUUID = match.getPlayer();
  323. }
  324.  
  325. String opponentName = Bukkit.getPlayer(opponentUUID).getName();
  326.  
  327. Team oName = scoreboard.registerNewTeam(ChatColor.DARK_GRAY.toString());
  328. oName.addEntry(opponentName);
  329. obj.getScore(opponentName).setScore(5);
  330.  
  331. Team blank2 = scoreboard.registerNewTeam(ChatColor.BLUE.toString());
  332. blank2.addEntry("§d");
  333. obj.getScore("§d").setScore(4);
  334.  
  335. Team kit = scoreboard.registerNewTeam(ChatColor.AQUA.toString());
  336. kit.addEntry("§bKit: §f");
  337. kit.setSuffix(match.getKit().name());
  338. obj.getScore("§bKit: §f").setScore(3);
  339.  
  340.  
  341.  
  342. Team blank5 = scoreboard.registerNewTeam(ChatColor.DARK_GREEN.toString());
  343. blank5.addEntry("§b");
  344. obj.getScore("§b").setScore(2);
  345.  
  346. Team website = scoreboard.registerNewTeam(ChatColor.DARK_PURPLE.toString());
  347. website.addEntry("§5eu.");
  348. website.setSuffix("venix.rip");
  349. obj.getScore("§5eu.").setScore(1);
  350.  
  351. if (match.getKit().type() == KitType.BUILD || match.getKit().type() == KitType.CAVE)
  352. {
  353. if (match.getMatchType() == MatchType.DAMAGE)
  354. {
  355. Objective healthName = scoreboard.registerNewObjective("h1", "dummy");
  356.  
  357. healthName.setDisplayName(ChatColor.DARK_RED + "❤");
  358. healthName.setDisplaySlot(DisplaySlot.BELOW_NAME);
  359.  
  360. }
  361. else
  362. {
  363. Objective healthName = scoreboard.registerNewObjective("h1", "health");
  364.  
  365. healthName.setDisplayName(ChatColor.DARK_RED + "❤");
  366. healthName.setDisplaySlot(DisplaySlot.BELOW_NAME);
  367. }
  368. }
  369. }
  370. }
  371. if (playerState == PlayerState.SPECTATOR)
  372. {
  373. Team blank = scoreboard.registerNewTeam(ChatColor.GREEN.toString());
  374. blank.addEntry("§a");
  375. obj.getScore("§a").setScore(11);
  376.  
  377.  
  378. Team server = scoreboard.registerNewTeam(ChatColor.LIGHT_PURPLE.toString());
  379. server.addEntry("§bSpectating:");
  380. obj.getScore("§bSpectating:").setScore(5);
  381.  
  382. Team blank4 = scoreboard.registerNewTeam(ChatColor.RESET.toString());
  383. blank4.addEntry("§b");
  384. obj.getScore("§b").setScore(4);
  385.  
  386. Team lobby = scoreboard.registerNewTeam(ChatColor.WHITE.toString());
  387. lobby.addEntry(ariesPlayer.getSpectating());
  388. obj.getScore(ariesPlayer.getSpectating()).setScore(3);
  389.  
  390. Team blank2 = scoreboard.registerNewTeam(ChatColor.DARK_RED.toString());
  391. blank2.addEntry("§d");
  392. obj.getScore("§d").setScore(2);
  393.  
  394. Team website = scoreboard.registerNewTeam(ChatColor.DARK_PURPLE.toString());
  395. website.addEntry("§5eu.");
  396. website.setSuffix("venix.rip");
  397. obj.getScore("§5eu.").setScore(1);
  398. }
  399. if (playerState == PlayerState.EDITOR)
  400. {
  401. Team blank = scoreboard.registerNewTeam(ChatColor.GREEN.toString());
  402. blank.addEntry("§a");
  403. obj.getScore("§a").setScore(10);
  404.  
  405.  
  406. Team lobby = scoreboard.registerNewTeam(ChatColor.WHITE.toString());
  407. lobby.addEntry("§bKit: §f");
  408. lobby.setSuffix(ariesPlayer.getKitEditing().name());
  409. obj.getScore("§bKit: §f").setScore(3);
  410.  
  411. Team blank2 = scoreboard.registerNewTeam(ChatColor.DARK_RED.toString());
  412. blank2.addEntry("§d");
  413. obj.getScore("§d").setScore(2);
  414.  
  415. Team website = scoreboard.registerNewTeam(ChatColor.DARK_PURPLE.toString());
  416. website.addEntry("§5eu.");
  417. website.setSuffix("venix.rip");
  418. obj.getScore("§5eu.").setScore(1);
  419. }
  420. }
  421.  
  422. public void updateScoreboard(Player p, PlayerState playerState, AriesPlayer ariesPlayer)
  423. {
  424. Scoreboard scoreboard = p.getScoreboard();
  425. if (playerState == PlayerState.LOBBY)
  426. {
  427.  
  428. Team b = scoreboard.getTeam(ChatColor.WHITE.toString());
  429. b.setSuffix("§f " + playerManager.getLobby().size());
  430.  
  431. Team d = scoreboard.getTeam(ChatColor.DARK_BLUE.toString());
  432. d.setSuffix("§f " + playerManager.getGame().size());
  433.  
  434. Team s = scoreboard.getTeam(ChatColor.DARK_GREEN.toString());
  435. s.setSuffix("§f " + playerManager.getSpectators().size());
  436. }
  437. if (playerState == PlayerState.QUEUE)
  438. {
  439. Match match = ariesPlayer.getMatch();
  440. if (match.getMatchType() == MatchType.DAMAGE)
  441. {
  442. Team pl = scoreboard.getTeam(ChatColor.DARK_BLUE.toString());
  443. pl.setSuffix(" §f" + arenaManager.getActiveDamageArenas().get(match.getKit()));
  444.  
  445. Team w = scoreboard.getTeam(ChatColor.RESET.toString());
  446. w.setSuffix(" §f" + matchManager.getDamageQueue().get(match.getKit()).size());
  447. }
  448. else
  449. {
  450. if(match.isRanked())
  451. {
  452. Team pl = scoreboard.getTeam(ChatColor.DARK_BLUE.toString());
  453. pl.setSuffix(" §f" + arenaManager.getActiveRankedArenas().get(match.getKit()));
  454.  
  455. Team w = scoreboard.getTeam(ChatColor.RESET.toString());
  456. w.setSuffix(" §f" + matchManager.getRankedQueue().get(match.getKit()).size());
  457. }
  458. else
  459. {
  460. Team pl = scoreboard.getTeam(ChatColor.DARK_BLUE.toString());
  461. pl.setSuffix(" §f" + arenaManager.getActiveUnrankedArenas().get(match.getKit()));
  462.  
  463. Team w = scoreboard.getTeam(ChatColor.RESET.toString());
  464. w.setSuffix(" §f" + matchManager.getUnrankedQueue().get(match.getKit()).size());
  465. }
  466. }
  467. }
  468. if (playerState == PlayerState.INGAME)
  469. {
  470. if (ariesPlayer.getGameType() == GameType.ARENA)
  471. {
  472. Match match = ariesPlayer.getMatch();
  473.  
  474. Team pl = scoreboard.getTeam(ChatColor.MAGIC.toString());
  475. pl.setSuffix("§f " + match.getFormatTime());
  476.  
  477. if (match.getMatchType() == MatchType.DAMAGE)
  478. {
  479. double healthD = match.getDamage().get(p.getUniqueId());
  480. int health = (int) healthD;
  481. //scoreboard.getObjective(DisplaySlot.BELOW_NAME).setDisplayName(String.valueOf(health) + "§4❤");
  482. }
  483. return;
  484. }
  485. if (ariesPlayer.getGameType() == GameType.FFA)
  486. {
  487. FFAStat ffaStat = ariesPlayer.getFfaStat();
  488.  
  489.  
  490. Team py = scoreboard.getTeam(ChatColor.LIGHT_PURPLE.toString());
  491. py.setSuffix(" §f" + arenaManager.getArenaFFA().getPlayers().size());
  492.  
  493. Team pl = scoreboard.getTeam(ChatColor.MAGIC.toString());
  494. pl.setSuffix(" §f" + ffaStat.getKills());
  495.  
  496. Team de = scoreboard.getTeam(ChatColor.YELLOW.toString());
  497. de.setSuffix(" §f" + ffaStat.getDeaths());
  498.  
  499. Team st = scoreboard.getTeam(ChatColor.ITALIC.toString());
  500. st.setSuffix(" §f" + ffaStat.getStreak());
  501.  
  502. Team hk = scoreboard.getTeam(ChatColor.AQUA.toString());
  503. hk.setSuffix(" §f" + ffaStat.getHighestKS());
  504. }
  505. }
  506. if (playerState == PlayerState.SPECTATOR)
  507. {
  508. /*Objective objective = scoreboard.getObjective(DisplaySlot.SIDEBAR);
  509.  
  510. Team pl = scoreboard.getTeam(ChatColor.WHITE.toString());
  511. scoreboard.resetScores(objective.getScore((String) pl.getEntries().toArray()[0]).getEntry());
  512. pl.addEntry(ariesPlayer.getName());
  513. objective.getScore(ariesPlayer.getSpectating()).setScore(3);*/
  514. }
  515. }
  516. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement