Advertisement
Guest User

Untitled

a guest
Jul 19th, 2019
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 14.81 KB | None | 0 0
  1. package me.soki.bunkers.Scoreboard;
  2.  
  3. import javafx.scene.media.MediaPlayerBuilder;
  4. import me.soki.bunkers.Economy.EconomyMGR;
  5. import me.soki.bunkers.Game.GameMGR;
  6. import me.soki.bunkers.azazel.tab.Tab;
  7. import net.minecraft.server.v1_7_R4.*;
  8. import org.bukkit.Bukkit;
  9. import org.bukkit.ChatColor;
  10. import org.bukkit.craftbukkit.v1_7_R4.entity.CraftPlayer;
  11. import org.bukkit.entity.Player;
  12. import org.bukkit.scheduler.BukkitRunnable;
  13. import org.bukkit.scheduler.BukkitTask;
  14. import org.bukkit.scoreboard.DisplaySlot;
  15. import org.bukkit.scoreboard.Objective;
  16. import org.bukkit.scoreboard.Score;
  17. import org.bukkit.scoreboard.Team;
  18.  
  19. import java.util.HashMap;
  20.  
  21. import static me.soki.bunkers.Game.PearlCooldown.enderpearlTime;
  22. import static me.soki.bunkers.Game.PearlCooldown.enderpearlTimer;
  23. import static me.soki.bunkers.Koth.KothMGR.currentKothTime;
  24. import static me.soki.bunkers.Main.Main.getPlugin;
  25.  
  26. public class PlayerScoreboard {
  27. public static int gameTime = 0;
  28. private org.bukkit.scoreboard.Scoreboard sb = Bukkit.getServer().getScoreboardManager().getNewScoreboard();
  29. private Objective obj = sb.registerNewObjective("title", "dummy");
  30. private Player p;
  31. private static HashMap<String, PlayerScoreboard> scoreboards = new HashMap<>();
  32. private Team red = sb.registerNewTeam("Red");
  33. private Team yellow = sb.registerNewTeam("Yellow");
  34. private Team blue = sb.registerNewTeam("Blue");
  35. private Team green = sb.registerNewTeam("Green");
  36.  
  37. public PlayerScoreboard(Player p) {
  38. sb.clearSlot(DisplaySlot.SIDEBAR);
  39. sb.clearSlot(DisplaySlot.PLAYER_LIST);
  40. sb.clearSlot(DisplaySlot.BELOW_NAME);
  41.  
  42. obj.setDisplayName(ChatColor.AQUA.toString() + ChatColor.BOLD.toString() + "Bunkers");
  43. obj.setDisplaySlot(DisplaySlot.SIDEBAR);
  44.  
  45.  
  46. red.setPrefix(ChatColor.RED.toString());
  47. blue.setPrefix(ChatColor.BLUE.toString());
  48. yellow.setPrefix(ChatColor.YELLOW.toString());
  49. green.setPrefix(ChatColor.GREEN.toString());
  50.  
  51. red.setCanSeeFriendlyInvisibles(true);
  52. blue.setCanSeeFriendlyInvisibles(true);
  53. yellow.setCanSeeFriendlyInvisibles(true);
  54. green.setCanSeeFriendlyInvisibles(true);
  55.  
  56. this.p = p;
  57.  
  58. scoreboards.put(p.getName(), this);
  59. //TAB
  60.  
  61. sb.registerNewTeam("wrapperTeam");
  62. sb.registerNewTeam("bWrapperTeam");
  63. sb.registerNewTeam("gameTimeTeam");
  64. sb.registerNewTeam("teamTeam");
  65. sb.registerNewTeam("dtrTeam");
  66. sb.registerNewTeam("balanceTeam");
  67. sb.registerNewTeam("kothTeam");
  68. sb.registerNewTeam("pearlTeam");
  69. sb.registerNewTeam("homeTeam");
  70. Team wrapperTeam = sb.getTeam("wrapperTeam");
  71. wrapperTeam.addPlayer(Bukkit.getOfflinePlayer("-----------"));
  72. wrapperTeam.setPrefix(ChatColor.GRAY.toString() + ChatColor.STRIKETHROUGH.toString() + "------");
  73. Score score = obj.getScore(Bukkit.getOfflinePlayer("-----------"));
  74. score.setScore(15); //Integer only!
  75.  
  76. Team bWrapperTeam = sb.getTeam("bWrapperTeam");
  77. bWrapperTeam.addPlayer(Bukkit.getOfflinePlayer("----------"));
  78. bWrapperTeam.setPrefix(ChatColor.GRAY.toString() + ChatColor.STRIKETHROUGH.toString() + "-------");
  79. Score bottomWrapperTeamScore = obj.getScore(Bukkit.getOfflinePlayer("----------"));
  80. bottomWrapperTeamScore.setScore(1); //Integer only!
  81.  
  82. String kothTimeStrMin = String.valueOf(currentKothTime / 60);
  83. String kothTimeStrSec = String.valueOf(currentKothTime % 60).substring(0, String.valueOf(currentKothTime % 60).indexOf("."));
  84. String kothTimeStrSecF = kothTimeStrSec.length() == 1 ? "0" + kothTimeStrSec : kothTimeStrSec;
  85. String kothTimeStr = "0" + kothTimeStrMin.substring(0, kothTimeStrMin.indexOf(".")) +
  86. ":" + kothTimeStrSecF;
  87.  
  88. String gameTimeStrSec = gameTime % 60 < 10 ? "0" + gameTime % 60 : String.valueOf(gameTime % 60);
  89. String gameTimeStr = (gameTime / 60 >= 10 ? "" : "0") + gameTime / 60 + ":" + gameTimeStrSec;
  90.  
  91.  
  92. String gameTimeStrF = gameTime > 59 ? gameTimeStr + "m" : gameTime + "s";
  93. String kothTimeStrF = currentKothTime > 60 ? kothTimeStr + "m" : currentKothTime + "s";
  94. Team gameTimeTeam = sb.getTeam("gameTimeTeam");
  95. gameTimeTeam.addPlayer(Bukkit.getOfflinePlayer("Game Time: "));
  96. gameTimeTeam.setPrefix(ChatColor.AQUA.toString());
  97. gameTimeTeam.setSuffix(ChatColor.RED.toString() + gameTimeStrF);
  98.  
  99. Score gameTimeScore = obj.getScore("Game Time: ");
  100. gameTimeScore.setScore(14); //Integer only!
  101.  
  102.  
  103. if (me.soki.bunkers.Teams.Team.getTeamFromPlayer(p.getName()) != null) {
  104. me.soki.bunkers.Teams.Team playersTeam = me.soki.bunkers.Teams.Team.getTeamFromPlayer(p.getName());
  105. Team teamTeam = sb.getTeam("teamTeam");
  106. teamTeam.addPlayer(Bukkit.getOfflinePlayer("Team: "));
  107. teamTeam.setPrefix(ChatColor.YELLOW.toString());
  108. teamTeam.setSuffix(playersTeam.getColor().toString() + playersTeam.getTeamName());
  109.  
  110. Score teamTeamScore = obj.getScore("Team: ");
  111. teamTeamScore.setScore(13); //Integer only!
  112.  
  113. Team dtrTeam = sb.getTeam("dtrTeam");
  114. dtrTeam.addPlayer(Bukkit.getOfflinePlayer("DTR: "));
  115. dtrTeam.setPrefix(ChatColor.DARK_RED.toString());
  116. dtrTeam.setSuffix(ChatColor.RED.toString() + playersTeam.getDTR() + ".0");
  117.  
  118. Score dtrTeamScore = obj.getScore("DTR: ");
  119. dtrTeamScore.setScore(12); //Integer only!
  120.  
  121. Team balanceTeam = sb.getTeam("balanceTeam");
  122. balanceTeam.addPlayer(Bukkit.getOfflinePlayer("Balance: "));
  123. balanceTeam.setPrefix(ChatColor.GREEN.toString());
  124. balanceTeam.setSuffix(ChatColor.RED.toString() + "$" + EconomyMGR.playerBalances.get(p.getName()));
  125.  
  126. Score balanceTeamScore = obj.getScore("Balance: ");
  127. balanceTeamScore.setScore(10); //Integer only!
  128.  
  129.  
  130. }
  131. Team kothTeam = sb.getTeam("kothTeam");
  132.  
  133. kothTeam.addPlayer(Bukkit.getOfflinePlayer("KOTH: "));
  134. kothTeam.setPrefix(ChatColor.BLUE.toString());
  135. kothTeam.setSuffix(ChatColor.RED.toString() + kothTimeStrF);
  136.  
  137. Score kothTeamScore = obj.getScore("KOTH: ");
  138. kothTeamScore.setScore(11); //Integer only!
  139. if (enderpearlTimer.containsKey(p.getName())) {
  140. long secondsleft = ((enderpearlTimer.get(p.getName()) / 1000) + enderpearlTime) - (System.currentTimeMillis() / 1000);
  141. if (secondsleft < 0) {
  142. sb.resetScores(Bukkit.getOfflinePlayer("Enderpearl: "));
  143. } else {
  144. String secondleftStr = String.valueOf(secondsleft);
  145. String pearlTimerStrF;
  146. try {
  147. pearlTimerStrF = secondleftStr.substring(0, secondleftStr.indexOf(".") + 3) + "s";
  148. } catch (StringIndexOutOfBoundsException e) {
  149. pearlTimerStrF = secondleftStr + "s";
  150. }
  151. sb.getTeam("pearlTeam").setSuffix(ChatColor.RED.toString() + pearlTimerStrF);
  152. }
  153. } else {
  154. sb.resetScores(Bukkit.getOfflinePlayer("Enderpearl: "));
  155. }
  156. if (GameMGR.homeTimer.containsKey(p.getName())) {
  157. long hsecondsleft = ((GameMGR.homeTimer.get(p.getName()) / 1000) + 10) - (System.currentTimeMillis() / 1000);
  158. if (hsecondsleft < 0) {
  159. sb.resetScores(Bukkit.getOfflinePlayer("Home: "));
  160. } else {
  161. String hsecondleftStr = String.valueOf(hsecondsleft);
  162. String homeTimerStrF;
  163. try {
  164. homeTimerStrF = hsecondleftStr.substring(0, hsecondleftStr.indexOf(".") + 3) + "s";
  165. } catch (StringIndexOutOfBoundsException e) {
  166. homeTimerStrF = hsecondleftStr + "s";
  167. }
  168. sb.getTeam("homeTeam").setSuffix(ChatColor.RED.toString() + homeTimerStrF);
  169. }
  170. } else {
  171. sb.resetScores(Bukkit.getOfflinePlayer("Home: "));
  172. }
  173. enableScoreboard();
  174. }
  175.  
  176.  
  177. public org.bukkit.scoreboard.Scoreboard getSb() {
  178. return sb;
  179. }
  180.  
  181. public Objective getObj() {
  182. return obj;
  183. }
  184.  
  185. public void enableScoreboard() {
  186. p.setScoreboard(getSb());
  187. }
  188.  
  189.  
  190. public void startCooldown() {
  191. long secondsleft = ((enderpearlTimer.get(p.getName()) / 1000) + enderpearlTime) - (System.currentTimeMillis() / 1000);
  192. if (secondsleft > -1) {
  193.  
  194. String secondleftStr = String.valueOf(secondsleft);
  195. String pearlTimerStrF;
  196. try {
  197. pearlTimerStrF = secondleftStr.substring(0, secondleftStr.indexOf(".") + 3) + "s";
  198. } catch (StringIndexOutOfBoundsException e) {
  199. pearlTimerStrF = secondleftStr + "s";
  200. }
  201. sb.resetScores(Bukkit.getOfflinePlayer("Enderpearl: "));
  202. Team pearlTeam = sb.getTeam("pearlTeam");
  203. pearlTeam.addPlayer(Bukkit.getOfflinePlayer("Enderpearl: "));
  204. pearlTeam.setPrefix(ChatColor.BLUE.toString());
  205. pearlTeam.setSuffix(ChatColor.RED.toString() + pearlTimerStrF);
  206. } else {
  207. sb.resetScores(Bukkit.getOfflinePlayer("Enderpearl: "));
  208. }
  209. Score pearlTeamScore = obj.getScore("Enderpearl: ");
  210. pearlTeamScore.setScore(9); //Integer only!
  211.  
  212. }
  213. public void startHome() {
  214. if (GameMGR.homeTimer.containsKey(p.getName())) {
  215.  
  216.  
  217. long secondsleft = ((GameMGR.homeTimer.get(p.getName()) / 1000) + 10) - (System.currentTimeMillis() / 1000);
  218. if (secondsleft > -1) {
  219.  
  220. String secondleftStr = String.valueOf(secondsleft);
  221. String pearlTimerStrF;
  222. try {
  223. pearlTimerStrF = secondleftStr.substring(0, secondleftStr.indexOf(".") + 3) + "s";
  224. } catch (StringIndexOutOfBoundsException e) {
  225. pearlTimerStrF = secondleftStr + "s";
  226. }
  227. sb.resetScores(Bukkit.getOfflinePlayer("Home: "));
  228. Team homeTeam = sb.getTeam("homeTeam");
  229. homeTeam.addPlayer(Bukkit.getOfflinePlayer("Home: "));
  230. homeTeam.setPrefix(ChatColor.BLUE.toString());
  231. homeTeam.setSuffix(ChatColor.RED.toString() + pearlTimerStrF);
  232. } else {
  233. sb.resetScores(Bukkit.getOfflinePlayer("Home: "));
  234. }
  235. Score homeTeamScore = obj.getScore("Home: ");
  236. homeTeamScore.setScore(8); //Integer only!
  237. }
  238. }
  239.  
  240. public void teamUpdate() {
  241. if (me.soki.bunkers.Teams.Team.getTeamFromPlayer(p.getName()) != null) {
  242. me.soki.bunkers.Teams.Team playersTeam = me.soki.bunkers.Teams.Team.getTeamFromPlayer(p.getName());
  243.  
  244. sb.getTeam("teamTeam").setSuffix(playersTeam.getColor().toString() + playersTeam.getTeamName());
  245. sb.getTeam("teamTeam").addPlayer(Bukkit.getOfflinePlayer("Team: "));
  246. sb.getTeam("teamTeam").setPrefix(ChatColor.YELLOW.toString());
  247. updateDTR();
  248. updateBalance();
  249.  
  250.  
  251. Score teamScore = obj.getScore("Team: ");
  252. sb.resetScores("Team: ");
  253. teamScore.setScore(13);
  254. enableScoreboard();
  255. }
  256. }
  257.  
  258.  
  259. public void updateGameTime(){
  260. String gameTimeStrSec = gameTime % 60 < 10 ? "0" + gameTime % 60 : String.valueOf(gameTime % 60);
  261. String gameTimeStr = (gameTime / 60 >= 10 ? "" : "0") + gameTime / 60 + ":" + gameTimeStrSec;
  262.  
  263.  
  264. String gameTimeStrF = gameTime > 59 ? gameTimeStr + "m" : gameTime + "s";
  265.  
  266. Team gameTimeTeam = sb.getTeam("gameTimeTeam");
  267. gameTimeTeam.addPlayer(Bukkit.getOfflinePlayer("Game Time: "));
  268. gameTimeTeam.setPrefix(ChatColor.AQUA.toString());
  269. gameTimeTeam.setSuffix(ChatColor.RED.toString() + gameTimeStrF);
  270.  
  271. Score score = obj.getScore("Game Time: ");
  272. score.setScore(14);
  273.  
  274. enableScoreboard();
  275. }
  276.  
  277. public void stopHome() {
  278. sb.resetScores(Bukkit.getOfflinePlayer("Home: "));
  279. }
  280.  
  281. public static HashMap<String, PlayerScoreboard> getScoreboards() {
  282. return scoreboards;
  283. }
  284.  
  285. public Player getPlayer() {
  286. return p;
  287. }
  288.  
  289. public Team getRed() {
  290. return red;
  291. }
  292.  
  293. public Team getYellow() {
  294. return yellow;
  295. }
  296.  
  297. public Team getGreen() {
  298. return green;
  299. }
  300.  
  301. public Team getBlue() {
  302. return blue;
  303. }
  304.  
  305. public void updateKothTimer(){
  306.  
  307. String kothTimeStrMin = String.valueOf(currentKothTime / 60);
  308. String kothTimeStrSec = String.valueOf(currentKothTime % 60).substring(0, String.valueOf(currentKothTime % 60).indexOf("."));
  309. String kothTimeStrSecF = kothTimeStrSec.length() == 1 ? "0" + kothTimeStrSec : kothTimeStrSec;
  310. String kothTimeStr = "0" + kothTimeStrMin.substring(0, kothTimeStrMin.indexOf(".")) +
  311. ":" + kothTimeStrSecF;
  312. String kothTimeStrF = currentKothTime > 60 ? kothTimeStr + "m" : currentKothTime + "s";
  313.  
  314. Team kothTeam = sb.getTeam("kothTeam");
  315.  
  316. kothTeam.addPlayer(Bukkit.getOfflinePlayer("KOTH: "));
  317. kothTeam.setPrefix(ChatColor.BLUE.toString());
  318. kothTeam.setSuffix(ChatColor.RED.toString() + kothTimeStrF);
  319.  
  320. Score score = obj.getScore("KOTH: ");
  321. score.setScore(11);
  322.  
  323. }
  324.  
  325. public void updateBalance(){
  326. if (me.soki.bunkers.Teams.Team.getTeamFromPlayer(p.getName()) != null) {
  327. me.soki.bunkers.Teams.Team playersTeam = me.soki.bunkers.Teams.Team.getTeamFromPlayer(p.getName());
  328. Team balanceTeam = sb.getTeam("balanceTeam");
  329. balanceTeam.addPlayer(Bukkit.getOfflinePlayer("Balance: "));
  330. balanceTeam.setPrefix(ChatColor.GREEN.toString());
  331. balanceTeam.setSuffix(ChatColor.RED.toString() + "$" + EconomyMGR.playerBalances.get(p.getName()));
  332.  
  333. Score balanceTeamScore = obj.getScore("Balance: ");
  334. balanceTeamScore.setScore(10); //Integer only!
  335. }
  336. }
  337.  
  338. public void updateDTR(){
  339. if (me.soki.bunkers.Teams.Team.getTeamFromPlayer(p.getName()) != null) {
  340. me.soki.bunkers.Teams.Team playersTeam = me.soki.bunkers.Teams.Team.getTeamFromPlayer(p.getName());
  341. sb.getTeam("dtrTeam").addPlayer(Bukkit.getOfflinePlayer("DTR: "));
  342. sb.getTeam("dtrTeam").setPrefix(ChatColor.DARK_RED.toString());
  343. sb.getTeam("dtrTeam").setSuffix(ChatColor.RED.toString() + playersTeam.getDTR() + ".0");
  344.  
  345.  
  346. Score dtrScore = obj.getScore("DTR: ");
  347. dtrScore.setScore(12);
  348. }
  349.  
  350. }
  351.  
  352. public static PlayerScoreboard getPlayerScoreboard(String playerName) {
  353. return scoreboards.get(playerName);
  354. }
  355.  
  356. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement