Advertisement
Guest User

Untitled

a guest
Sep 24th, 2017
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.24 KB | None | 0 0
  1. ackage me.scoreboard.com;
  2.  
  3. import java.util.HashMap;
  4. import java.util.List;
  5. import java.util.UUID;
  6.  
  7. import org.bukkit.Bukkit;
  8. import org.bukkit.ChatColor;
  9. import org.bukkit.entity.Player;
  10. import org.bukkit.scoreboard.DisplaySlot;
  11. import org.bukkit.scoreboard.Objective;
  12. import org.bukkit.scoreboard.Scoreboard;
  13. import org.bukkit.scoreboard.Team;
  14.  
  15.  
  16. public class ScoreHelper {
  17.  
  18. private static HashMap<UUID, ScoreHelper> players = new HashMap<>();
  19.  
  20. public static boolean hasScore(Player player) {
  21. return players.containsKey(player.getUniqueId());
  22. }
  23.  
  24. public static ScoreHelper createScore(Player player) {
  25. return new ScoreHelper(player);
  26. }
  27.  
  28. public static ScoreHelper getByPlayer(Player player) {
  29. return players.get(player.getUniqueId());
  30. }
  31.  
  32. public static ScoreHelper removeScore(Player player) {
  33. return players.remove(player.getUniqueId());
  34. }
  35.  
  36. private Scoreboard scoreboard;
  37. private Objective sidebar;
  38.  
  39. private ScoreHelper(Player player) {
  40. scoreboard = Bukkit.getScoreboardManager().getNewScoreboard();
  41. sidebar = scoreboard.registerNewObjective("sidebar", "dummy");
  42. sidebar.setDisplaySlot(DisplaySlot.SIDEBAR);
  43. // Create Teams
  44. for(int i=1; i<=15; i++) {
  45. Team team = scoreboard.registerNewTeam("SLOT_" + i);
  46. team.addEntry(genEntry(i));
  47. }
  48. player.setScoreboard(scoreboard);
  49. players.put(player.getUniqueId(), this);
  50. }
  51.  
  52. public void setTitle(String title) {
  53. title = ChatColor.translateAlternateColorCodes('&', title);
  54. sidebar.setDisplayName(title.length()>32 ? title.substring(0, 32) : title);
  55. }
  56.  
  57. public void setSlot(int slot, String text) {
  58. Team team = scoreboard.getTeam("SLOT_" + slot);
  59. String entry = genEntry(slot);
  60. if(!scoreboard.getEntries().contains(entry)) {
  61. sidebar.getScore(entry).setScore(slot);
  62. }
  63.  
  64. text = ChatColor.translateAlternateColorCodes('&', text);
  65. String pre = getFirstSplit(text);
  66. String suf = getFirstSplit(ChatColor.getLastColors(pre) + getSecondSplit(text));
  67. team.setPrefix(pre);
  68. team.setSuffix(suf);
  69. }
  70.  
  71. public void removeSlot(int slot) {
  72. String entry = genEntry(slot);
  73. if(scoreboard.getEntries().contains(entry)) {
  74. scoreboard.resetScores(entry);
  75. }
  76. }
  77.  
  78. public void setSlotsFromList(List<String> list) {
  79. while(list.size()>15) {
  80. list.remove(list.size()-1);
  81. }
  82.  
  83. int slot = list.size();
  84.  
  85. if(slot<15) {
  86. for(int i=(slot +1); i<=15; i++) {
  87. removeSlot(i);
  88. }
  89. }
  90.  
  91. for(String line : list) {
  92. setSlot(slot, line);
  93. slot--;
  94. }
  95. }
  96.  
  97. private String genEntry(int slot) {
  98. return ChatColor.values()[slot].toString();
  99. }
  100.  
  101. private String getFirstSplit(String s) {
  102. return s.length()>16 ? s.substring(0, 16) : s;
  103. }
  104.  
  105. private String getSecondSplit(String s) {
  106. if(s.length()>32) {
  107. s = s.substring(0, 32);
  108. }
  109. return s.length()>16 ? s.substring(16) : "";
  110. }
  111.  
  112. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement