Advertisement
Guest User

Untitled

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