Advertisement
Guest User

Untitled

a guest
Jan 16th, 2019
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 13.05 KB | None | 0 0
  1. package me.activated.uhc.layouts;
  2.  
  3. import me.activated.uhc.utils.board.Board;
  4. import me.activated.uhc.utils.board.BoardAdapter;
  5. import me.activated.uhc.commands.staff.StaffChat;
  6. import me.activated.uhc.configuration.ConfigManager;
  7. import me.activated.uhc.enums.GameState;
  8. import me.activated.uhc.files.ConfigFile;
  9. import me.activated.uhc.handlers.freeze.FreezeHandler;
  10. import me.activated.uhc.handlers.scenariohandlers.NoCleanHandler;
  11. import me.activated.uhc.handlers.uhcevents.DeathMessageHandler;
  12. import me.activated.uhc.managers.GameManager;
  13. import me.activated.uhc.managers.PlayerManager;
  14. import me.activated.uhc.managers.TeamManager;
  15. import me.activated.uhc.utils.AutoStart;
  16. import me.activated.uhc.practice.PracticeManager;
  17. import me.activated.uhc.scenario.Scenario;
  18. import me.activated.uhc.scenario.ScenarioManager;
  19. import me.activated.uhc.team.Team;
  20. import me.activated.uhc.utils.Lag;
  21. import me.activated.uhc.utils.UHCUtils;
  22. import me.activated.uhc.utils.chat.Color;
  23. import me.activated.uhc.utils.player.Profile;
  24. import net.minecraft.util.org.apache.commons.lang3.StringEscapeUtils;
  25. import org.bukkit.Bukkit;
  26. import org.bukkit.OfflinePlayer;
  27. import org.bukkit.entity.Player;
  28. import org.bukkit.scoreboard.Scoreboard;
  29.  
  30. import java.util.ArrayList;
  31. import java.util.List;
  32. import java.util.UUID;
  33.  
  34. public class BoardLayout implements BoardAdapter {
  35.  
  36. @Override
  37. public String getTitle(Player player) {
  38. String line = StringEscapeUtils.unescapeJava("\u2503");
  39. String fromConfig = ConfigFile.getInstance().getUnColoredString("scoreboard_title");
  40. fromConfig = fromConfig.replace("<I>", line);
  41. return Color.translate(fromConfig);
  42. }
  43.  
  44. @Override
  45. public List<String> getScoreboard(Player player, Board scoreboard) {
  46. List<String> board = new ArrayList<>();
  47. GameState gamestate = GameManager.getInstance().getGameState();
  48. Profile profile = Profile.getByPlayer(player);
  49.  
  50. board.add("&7&m---------------------");
  51.  
  52. if (FreezeHandler.getInstance().isFrozen(player)) {
  53. board.add("&d&lYou have been frozen");
  54. board.add(" ");
  55. board.add("&fPlease follow the");
  56. board.add("&finstructions!");
  57. board.add(" ");
  58. board.add("&dTeamspeak&7: &f" + ConfigFile.getInstance().getString("teamspeak_ip"));
  59. board.add("&7&m---------------------");
  60.  
  61. List<String> toReturn = new ArrayList<>();
  62.  
  63. for (String list : board) {
  64. toReturn.add(Color.translate(list));
  65. }
  66.  
  67. return toReturn;
  68. }
  69.  
  70. if (PracticeManager.getInstance().isInPractice(player)) {
  71. board.add("&aOnline&7: &d" + UHCUtils.getOnlinePlayersSize());
  72. board.add("&bIn Practice&7: &d" + PracticeManager.getInstance().getPlayersInPractice() + "/" + PracticeManager.getInstance().getMaxPlayers());
  73. board.add(" ");
  74. board.add("&bKillStreak&7: &d" + DeathMessageHandler.getkillsprac(player.getUniqueId()));
  75. if (AutoStart.getInstance().isActive()) {
  76. board.add("&aStarting in " + UHCUtils.getFormatTime(AutoStart.getInstance().getRemaining()) + "..");
  77. }
  78. board.add("&7&m---------------------");
  79.  
  80. List<String> toReturn = new ArrayList<>();
  81.  
  82. for (String list : board) {
  83. toReturn.add(Color.translate(list));
  84. }
  85.  
  86. return toReturn;
  87. }
  88. if (PlayerManager.getInstance().isStaffSpectating(player)){
  89. double tps = Double.valueOf(String.format("%.2f", Lag.getTPS()));
  90. if (StaffChat.instaffchat.contains(player.getUniqueId())) {
  91. board.add("&b&lStaff Mode");
  92. board.add(" &7* &fTPS&7: &d" + tps);
  93. if (gamestate == GameState.LOBBY) {
  94. board.add(" &7* &fBorder&7: &d" + ConfigManager.getBorderSize().getAmount());
  95. }
  96. board.add(" &7* &fStaff Alerts&7: " + (profile.isStaffAlerts() ? "&aON" : "&cOFF"));
  97. board.add(" ยง7* &fStaff Chat&7: " + (profile.isStaffchat() ? "&aON" : "&cOFF"));
  98.  
  99. board.add("&7&m---------------------");
  100. }
  101.  
  102. if (gamestate == GameState.LOBBY) {
  103. board.add("&bOnline&7: &d" + UHCUtils.getOnlinePlayersSize());
  104. board.add("&bGame Type&7: &d" + GameManager.getInstance().getTeamType());
  105. if (PracticeManager.getInstance().isPracticeEnabled()) {
  106. board.add("&bIn Practice&7: &d" + PracticeManager.getInstance().getPlayersInPractice() + "/" + PracticeManager.getInstance().getMaxPlayers());
  107. }
  108. if (!GameManager.getInstance().getHost().equalsIgnoreCase("")) {
  109. board.add("&bHost&7: &b" + GameManager.getInstance().getHost());
  110. }
  111. if (AutoStart.getInstance().isActive()) {
  112. board.add("&aStarting in " + UHCUtils.getFormatTime(AutoStart.getInstance().getRemaining()) + "..");
  113. }
  114. if (!PlayerManager.getInstance().isStaffSpectating(player)) {
  115. if (TeamManager.getInstance().getTeam(player) == null) {
  116. if (ScenarioManager.getInstance().getScenariosInventory().getItem(0) != null) {
  117. board.add("");
  118. board.add("&c&lScenarios&7:");
  119. for (Scenario scenario : ScenarioManager.getInstance().getScenarios().values()) {
  120. if (scenario.isEnabled()) {
  121. board.add(" &7- &e" + scenario.getName());
  122. }
  123. }
  124. }
  125. } else {
  126. Team team = TeamManager.getInstance().getTeam(player);
  127. int size = team.getSize();
  128. board.add("");
  129. board.add("&dTeam &7[" + size + (size > 1 ? " players" : " player") + "]");
  130. board.add("&d&l* &cLeader&7: &b" + team.getOwner().getName());
  131. if (size > 1)
  132. {
  133. board.add("&dMembers&7:");
  134. for (UUID names : team.getPlayers()) {
  135. OfflinePlayer member = Bukkit.getOfflinePlayer(names);
  136. if (!member.getName().equalsIgnoreCase(team.getOwner().getName())) {
  137. board.add("&7- " + member.getName());
  138. }
  139. }
  140. }
  141. }
  142. }
  143.  
  144. }
  145. if (gamestate == GameState.SCATTERING) {
  146. if (GameManager.getInstance().getStartSeconds() == 0) {
  147. board.add("&f&lScattering players");
  148. if (GameManager.getInstance().getScatterFinish() > 0) {
  149. board.add("&fTime left&7: &d"
  150. + UHCUtils.getFormatTime(GameManager.getInstance().getScatterFinish()));
  151. } else {
  152. board.add("&fTime left&7: &d" + UHCUtils.getFormatTime(0));
  153. }
  154. board.add(" ");
  155. board.add("&fScattering&7: &d" + GameManager.getInstance().getScatter().size() + " players");
  156. } else {
  157. board.add("&fEveryone scattered");
  158. board.add(
  159. "&fStarting in&7: &d" + UHCUtils.getFormatTime(GameManager.getInstance().getStartSeconds()));
  160. board.add(" ");
  161. }
  162. board.add("&fScattered&7: &d" + PlayerManager.getInstance().getScatteredPlayers() + " players");
  163. if (ConfigFile.getInstance().getBoolean("show_ip_scoreboard")) {
  164. board.add(" ");
  165. board.add("&e" + ConfigFile.getInstance().getString("server_ip"));
  166. }
  167. }
  168.  
  169. if (gamestate == GameState.INGAME) {
  170. if (GameManager.getInstance().getWinner() == "") {
  171. board.add("&fGame Time&7: &d"
  172. + UHCUtils.getFormatTime(GameManager.getInstance().getGameRunnable().getSeconds()));
  173. board.add("&fRemaining&7: &d" + PlayerManager.getInstance().getAlivePlayers() + "/"
  174. + PlayerManager.getInstance().getStartCount());
  175. if (PlayerManager.getInstance().isSpectating(player)) {
  176. board.add(" ");
  177. board.add("&fBorder&7: &d" + ConfigManager.getBorderSize().getAmount() + " " + this.getBorderInfo());
  178. board.add("&fSpec radius&7: &d" + profile.getSpecRadius());
  179. }
  180. if (ConfigFile.getInstance().getBoolean("show_events_on_scoreboard") && !PlayerManager.getInstance().isSpectating(player) && GameManager.getInstance().getGameRunnable().isToShowEvents()) {
  181. board.add(" ");
  182. }
  183. if (!PlayerManager.getInstance().isSpectating(player)) {
  184. board.add("&fKills&7: &d" + profile.getUhcKills());
  185. if (TeamManager.getInstance().isTeamsEnabled()) {
  186. board.add("&fTeam kills&7: &d" + TeamManager.getInstance().getTeam(player).getKills());
  187. }
  188. if (ConfigFile.getInstance().getBoolean("show_events_on_scoreboard") && GameManager.getInstance().getGameRunnable().isToShowEvents()) {
  189. board.add(" ");
  190. board.add("&6Next Events");
  191. if (GameManager.getInstance().getGameRunnable().isToShowHealTime()) {
  192. board.add("&3Heal Time&7: &e" + GameManager.getInstance().getGameRunnable().getHealTime());
  193. }
  194. if (GameManager.getInstance().getGameRunnable().isToShowGracePeriodTime()) {
  195. board.add("&3Grace Period&7: &e" + GameManager.getInstance().getGameRunnable().getGracePeriodTime());
  196. }
  197. board.add(" ");
  198. }
  199. board.add("&fBorder&7: &d" + ConfigManager.getBorderSize().getAmount() + " " + this.getBorderInfo());
  200. if (NoCleanHandler.getInstance().isNoClean(player)) {
  201. board.add("&bNoClean&7: &d" + UHCUtils.formatMilisecondsToSeconds(
  202. NoCleanHandler.getInstance().getMillisecondsLeft(player)) + "s");
  203. }
  204. }
  205. if (ConfigFile.getInstance().getBoolean("show_ip_scoreboard")) {
  206. board.add(" ");
  207. board.add("&e" + ConfigFile.getInstance().getString("server_ip"));
  208. }
  209. } else {
  210. String winner = GameManager.getInstance().getWinner();
  211. if (TeamManager.getInstance().isTeamsEnabled()) {
  212. board.add("&b&lGame Finished!");
  213. board.add("&f");
  214. board.add("&fWinners&7:");
  215. for (UUID uuid : TeamManager.getInstance().getLastTeam().getPlayers()) {
  216. OfflinePlayer winners = Bukkit.getOfflinePlayer(uuid);
  217. board.add(" &7* &d" + winners.getName());
  218. }
  219. } else {
  220. board.add("&b&lGame Finished!");
  221. board.add("&f");
  222. board.add("&fWinner&7: &d" + winner);
  223. }
  224. Player w = Bukkit.getPlayer(winner);
  225. if (w != null && Profile.getByPlayer(w) != null) {
  226. board.add("&fKills&7: &d" + Profile.getByPlayer(w).getUhcKills());
  227. board.add("&fWins&7: &d" + Profile.getByPlayer(w).wins.getAmount());
  228. }
  229. if (GameManager.getInstance().getRestartseconds() > 0) {
  230. board.add("");
  231. board.add("&cRebooting in&7: &4"
  232. + UHCUtils.getFormatTime(GameManager.getInstance().getRestartseconds()));
  233. }
  234. }
  235. }
  236. board.add("&7&m---------------------");
  237.  
  238. List<String> toReturn = new ArrayList<>();
  239.  
  240. for (String list : board) {
  241. toReturn.add(Color.translate(list));
  242. }
  243.  
  244. return toReturn; }
  245. }
  246.  
  247. @Override
  248. public long getInterval() {
  249. return 2;
  250. }
  251.  
  252. @Override
  253. public void onScoreboardCreate(Player player, Scoreboard board) {
  254.  
  255. }
  256.  
  257. @Override
  258. public void preLoop() {
  259.  
  260. }
  261.  
  262. public String getBorderInfo() {
  263. if (GameManager.getInstance().getBorderRunnable() == null) {
  264. return "";
  265. }
  266. if (!GameManager.getInstance().isBorderShrinks()) {
  267. return "";
  268. }
  269. if (ConfigManager.getBorderSize().getAmount() == 25) {
  270. return "";
  271. } else if (GameManager.getInstance().getBorderRunnable().isCounting()) {
  272. return Color.translate("&7(&c" + GameManager.getInstance().getBorderRunnable().getLastCountdown() + "s&7)");
  273. } else {
  274. return Color.translate("&7(&c" + GameManager.getInstance().getBorderRunnable().getMinutes() + "m&7)");
  275. }
  276. }
  277. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement