Advertisement
CYADEM

Untitled

Jun 27th, 2018
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.53 KB | None | 0 0
  1. package me.tinchx.lobby.scoreboard;
  2.  
  3. import org.bukkit.entity.Player;
  4. import org.bukkit.scoreboard.Team;
  5. import org.apache.commons.lang.StringUtils;
  6. import org.bukkit.scoreboard.DisplaySlot;
  7. import org.bukkit.ChatColor;
  8. import com.google.common.base.Preconditions;
  9. import java.util.ArrayList;
  10. import org.bukkit.scoreboard.Objective;
  11. import org.bukkit.scoreboard.Scoreboard;
  12. import java.util.List;
  13.  
  14. public class ScoreboardHelper
  15. {
  16. private String author;
  17. private List<ScoreboardText> list;
  18. private Scoreboard scoreBoard;
  19. private Objective objective;
  20. private String tag;
  21. private int lastSentCount;
  22.  
  23. public ScoreboardHelper(final Scoreboard scoreBoard, final String title) {
  24. this.author = "Scoreboard API was recoded by 'Tinchx'. All rights reserved.";
  25. this.list = new ArrayList<ScoreboardText>();
  26. this.tag = "PlaceHolder";
  27. this.lastSentCount = -1;
  28. Preconditions.checkState(title.length() <= 32, (Object)"title can not be more than 32");
  29. this.tag = ChatColor.translateAlternateColorCodes('&', title);
  30. this.scoreBoard = scoreBoard;
  31. (this.objective = this.getOrCreateObjective(this.tag)).setDisplaySlot(DisplaySlot.SIDEBAR);
  32. }
  33.  
  34. public Scoreboard getScoreBoard() {
  35. return this.scoreBoard;
  36. }
  37.  
  38. public void add(String input) {
  39. input = ChatColor.translateAlternateColorCodes('&', input);
  40. ScoreboardText text = null;
  41. if (input.length() <= 16) {
  42. text = new ScoreboardText(input, "");
  43. }
  44. else {
  45. String first = input.substring(0, 16);
  46. String second = input.substring(16, input.length());
  47. if (first.endsWith(String.valueOf('�'))) {
  48. first = first.substring(0, first.length() - 1);
  49. second = String.valueOf('�') + second;
  50. }
  51. final String lastColors = ChatColor.getLastColors(first);
  52. second = String.valueOf(lastColors) + second;
  53. text = new ScoreboardText(first, StringUtils.left(second, 16));
  54. }
  55. this.list.add(text);
  56. }
  57.  
  58. public void clear() {
  59. this.list.clear();
  60. }
  61.  
  62. public void remove(final int index) {
  63. final String name = this.getNameForIndex(index);
  64. this.scoreBoard.resetScores(name);
  65. final Team team = this.getOrCreateTeam(String.valueOf(ChatColor.stripColor(StringUtils.left(this.tag, 14))) + index, index);
  66. team.unregister();
  67. }
  68.  
  69. public void update(final Player player) {
  70. player.setScoreboard(this.scoreBoard);
  71. for (int sentCount = 0; sentCount < this.list.size(); ++sentCount) {
  72. final Team i = this.getOrCreateTeam(String.valueOf(ChatColor.stripColor(StringUtils.left(this.tag, 14))) + sentCount, sentCount);
  73. final ScoreboardText str = this.list.get(this.list.size() - sentCount - 1);
  74. i.setPrefix(str.getLeft());
  75. i.setSuffix(str.getRight());
  76. this.objective.getScore(this.getNameForIndex(sentCount)).setScore(sentCount + 1);
  77. }
  78. if (this.lastSentCount != -1) {
  79. for (int sentCount = this.list.size(), var4 = 0; var4 < this.lastSentCount - sentCount; ++var4) {
  80. this.remove(sentCount + var4);
  81. }
  82. }
  83. this.lastSentCount = this.list.size();
  84. }
  85.  
  86. public Team getOrCreateTeam(final String team, final int i) {
  87. Team value = this.scoreBoard.getTeam(team);
  88. if (value == null) {
  89. value = this.scoreBoard.registerNewTeam(team);
  90. value.addEntry(this.getNameForIndex(i));
  91. }
  92. return value;
  93. }
  94.  
  95. public Objective getOrCreateObjective(final String objective) {
  96. Objective value = this.scoreBoard.getObjective("dummyhubobj");
  97. if (value == null) {
  98. value = this.scoreBoard.registerNewObjective("dummyhubobj", "dummy");
  99. }
  100. value.setDisplayName(objective);
  101. return value;
  102. }
  103.  
  104. public String getNameForIndex(final int index) {
  105. return String.valueOf(ChatColor.values()[index].toString()) + ChatColor.RESET;
  106. }
  107.  
  108. private static class ScoreboardText
  109. {
  110. private String left;
  111. private String right;
  112.  
  113. public ScoreboardText(final String left, final String right) {
  114. this.left = left;
  115. this.right = right;
  116. }
  117.  
  118. public String getLeft() {
  119. return this.left;
  120. }
  121.  
  122. public String getRight() {
  123. return this.right;
  124. }
  125. }
  126. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement