Advertisement
Guest User

Untitled

a guest
Dec 8th, 2019
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.58 KB | None | 0 0
  1. package com.dazzhub.Utils.Scoreboard;
  2.  
  3. import com.dazzhub.Arena.Arena;
  4. import org.bukkit.Bukkit;
  5. import org.bukkit.ChatColor;
  6. import org.bukkit.entity.Player;
  7. import org.bukkit.potion.PotionEffect;
  8. import org.bukkit.potion.PotionEffectType;
  9. import org.bukkit.scoreboard.DisplaySlot;
  10. import org.bukkit.scoreboard.Objective;
  11. import org.bukkit.scoreboard.Scoreboard;
  12. import org.bukkit.scoreboard.Team;
  13.  
  14. public class ScoreBoardBuilder {
  15.  
  16. private boolean reset;
  17.  
  18. private Scoreboard scoreboard;
  19. private Objective scoreObjective;
  20. private Objective nameHealthObj;
  21.  
  22. private Team spectator;
  23. private Team gamePlayers;
  24.  
  25. public ScoreBoardBuilder(final String score_name, boolean health, boolean spect, boolean gamePlayers) {
  26. this.scoreboard = Bukkit.getScoreboardManager().getNewScoreboard();
  27. this.scoreObjective = this.scoreboard.registerNewObjective(score_name, "dummy");
  28. this.scoreObjective.setDisplaySlot(DisplaySlot.SIDEBAR);
  29.  
  30. if (health) {
  31. this.nameHealthObj = this.scoreboard.registerNewObjective("namelife", "health");
  32. this.nameHealthObj.setDisplaySlot(DisplaySlot.BELOW_NAME);
  33. this.nameHealthObj.setDisplayName(ChatColor.DARK_RED + "\u2764");
  34. }
  35.  
  36. if (spect) {
  37. this.spectator = this.scoreboard.registerNewTeam("Spectator");
  38. this.spectator.setPrefix(color("&7"));
  39. this.spectator.setCanSeeFriendlyInvisibles(true);
  40. this.spectator.setAllowFriendlyFire(false);
  41. }
  42.  
  43. if (gamePlayers) {
  44. this.gamePlayers = this.scoreboard.registerNewTeam("Game");
  45. this.gamePlayers.setPrefix(color("&e"));
  46. this.gamePlayers.setCanSeeFriendlyInvisibles(false);
  47. this.gamePlayers.setAllowFriendlyFire(true);
  48. }
  49.  
  50. }
  51.  
  52. public void updatelife(Arena arena) {
  53. for (Player onlinePlayers : arena.getPlayers()) {
  54. final Player player2;
  55. final Player player = player2 = onlinePlayers;
  56. this.nameHealthObj.getScore(player.getName()).setScore((int) (player2).getHealth() + absorpHearts(player2));
  57. }
  58. }
  59.  
  60. public void updatespect(Arena arena) {
  61. for (Player p : arena.getSpectators()) {
  62. if (!spectator.hasPlayer(p)) {
  63. this.spectator.addPlayer(p);
  64. }
  65. }
  66. }
  67.  
  68. public void updategames(Arena arena) {
  69. for (Player p : arena.getPlayers()) {
  70. if (!this.gamePlayers.hasPlayer(p)) {
  71. this.gamePlayers.addPlayer(p);
  72. }
  73. }
  74. }
  75.  
  76. private int absorpHearts(Player pl) {
  77. for (PotionEffect pe : pl.getActivePotionEffects()) {
  78. if (pe.getType().equals(PotionEffectType.ABSORPTION)) {
  79. int amt = pe.getAmplifier() * 2 + 2;
  80. return amt;
  81. }
  82. }
  83. return 0;
  84. }
  85.  
  86. public String color(final String s) {
  87. return s.replaceAll("&", "§");
  88. }
  89.  
  90. public void setName(String substring) {
  91. if (substring.length() > 32) {
  92. substring = substring.substring(0, 32);
  93. }
  94. this.scoreObjective.setDisplayName(this.color(substring));
  95. }
  96.  
  97. public void lines(final Integer line, String text) {
  98. final Team team = this.scoreboard.getTeam("SCT_" + line);
  99. if (text.length() > 32) {
  100. text = text.substring(0, 32);
  101. }
  102. final String[] splitStringLine = this.splitStringLine(text);
  103. if (team == null) {
  104. final Team registerNewTeam = this.scoreboard.registerNewTeam("SCT_" + line);
  105. registerNewTeam.addEntry(this.getEntry(line));
  106. this.setPrefix(registerNewTeam, splitStringLine[0]);
  107. this.setSuffix(registerNewTeam, splitStringLine[1]);
  108. this.scoreObjective.getScore(this.getEntry(line)).setScore((int) line);
  109. } else {
  110. this.setPrefix(team, splitStringLine[0]);
  111. this.setSuffix(team, splitStringLine[1]);
  112. }
  113. }
  114.  
  115. public boolean dLine(final Integer line) {
  116. final Team team = this.scoreboard.getTeam("SCT_" + line);
  117. if (team != null) {
  118. team.unregister();
  119. scoreObjective.getScoreboard().resetScores(getEntry(line));
  120. return true;
  121. }
  122. return false;
  123. }
  124.  
  125. public void setPrefix(final Team team, final String prefix) {
  126. if (prefix.length() > 16) {
  127. team.setPrefix(prefix.substring(0, 16));
  128. return;
  129. }
  130. team.setPrefix(prefix);
  131. }
  132.  
  133. public void setSuffix(final Team team, final String s) {
  134. if (s.length() > 16) {
  135. team.setSuffix(this.maxChars(16, s));
  136. } else {
  137. team.setSuffix(s.substring(0, s.length()));
  138. }
  139. }
  140.  
  141. public String maxChars(final int n, final String s) {
  142. if (ChatColor.translateAlternateColorCodes('&', s).length() > n) {
  143. return s.substring(0, n);
  144. }
  145. return ChatColor.translateAlternateColorCodes('&', s);
  146. }
  147.  
  148. public String getEntry(final Integer n) {
  149. if (n == 0) {
  150. return "§0";
  151. }
  152. if (n == 1) {
  153. return "§1";
  154. }
  155. if (n == 2) {
  156. return "§2";
  157. }
  158. if (n == 3) {
  159. return "§3";
  160. }
  161. if (n == 4) {
  162. return "§4";
  163. }
  164. if (n == 5) {
  165. return "§5";
  166. }
  167. if (n == 6) {
  168. return "§6";
  169. }
  170. if (n == 7) {
  171. return "§7";
  172. }
  173. if (n == 8) {
  174. return "§8";
  175. }
  176. if (n == 9) {
  177. return "§9";
  178. }
  179. if (n == 10) {
  180. return "§a";
  181. }
  182. if (n == 11) {
  183. return "§b";
  184. }
  185. if (n == 12) {
  186. return "§c";
  187. }
  188. if (n == 13) {
  189. return "§d";
  190. }
  191. if (n == 14) {
  192. return "§e";
  193. }
  194. if (n == 15) {
  195. return "§f";
  196. }
  197. return "";
  198. }
  199.  
  200. public Scoreboard getScoreboard() {
  201. return this.scoreboard;
  202. }
  203.  
  204. public boolean isReset() {
  205. return this.reset;
  206. }
  207.  
  208. public void setReset(final boolean reset) {
  209. this.reset = reset;
  210. }
  211.  
  212. public void build(final Player player) {
  213. player.setScoreboard(this.scoreboard);
  214. }
  215.  
  216. private String[] splitStringLine(final String s) {
  217. final StringBuilder sb = new StringBuilder(s.substring(0, (s.length() >= 16) ? 16 : s.length()));
  218. final StringBuilder sb2 = new StringBuilder((s.length() > 16) ? s.substring(16) : "");
  219. if (sb.toString().length() > 1 && sb.charAt(sb.length() - 1) == '§') {
  220. sb.deleteCharAt(sb.length() - 1);
  221. sb2.insert(0, '§');
  222. }
  223. String string = "";
  224. for (int i = 0; i < sb.toString().length(); ++i) {
  225. if (sb.toString().charAt(i) == '§' && i < sb.toString().length() - 1) {
  226. string = String.valueOf(String.valueOf(string)) + "§" + sb.toString().charAt(i + 1);
  227. }
  228. }
  229. String string2 = new StringBuilder().append((Object) sb2).toString();
  230. if (sb.length() > 14) {
  231. string2 = (string.isEmpty() ? ("§" + string2) : (String.valueOf(String.valueOf(String.valueOf(string))) + string2));
  232. }
  233. return new String[]{(sb.toString().length() > 16) ? sb.toString().substring(0, 16) : sb.toString(), (string2.toString().length() > 16) ? string2.toString().substring(0, 16) : string2.toString()};
  234. }
  235.  
  236. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement