Scoreboard problem

Discussion in 'Plugin Development' started by nastasescu, Sep 11, 2014.

Thread Status:
Not open for further replies.
  1. Offline

    nastasescu

    Something it's wrong in this code, the lines are duplicating when a player join!
    Code:java
    1. public void sb() {
    2. getServer().getScheduler().scheduleSyncRepeatingTask(this,
    3. new Runnable() {
    4. public void run() {
    5. ScoreboardManager manager = Bukkit
    6. .getScoreboardManager();
    7. Scoreboard board = manager.getNewScoreboard();
    8. Team team = board.registerNewTeam("players");
    9. for (Player player : Bukkit.getOnlinePlayers()) {
    10. team.addPlayer(player);
    11. player.setScoreboard(board);
    12. }
    13. Objective objective = board.registerNewObjective(
    14. "test", "dummy");
    15. objective.setDisplaySlot(DisplaySlot.SIDEBAR);
    16. objective
    17. .setDisplayName(ChatColor.BOLD + "Test Server");
    18. for (Player player : Bukkit.getOnlinePlayers()) {
    19. PermissionUser user = PermissionsEx.getUser(player);
    20. Score[] score = {
    21. objective.getScore(" "),
    22. objective.getScore(ChatColor.GREEN + ""
    23. + ChatColor.BOLD + "Gems"),
    24. objective.getScore(""
    25. + (int) economy.getBalance(player)),
    26. objective.getScore(" "),
    27. objective.getScore(ChatColor.GOLD + ""
    28. + ChatColor.BOLD + "Rank"),
    29. objective.getScore(" ") };
    30. score[0].setScore(15);
    31. score[1].setScore(14);
    32. score[2].setScore(13);
    33. score[3].setScore(12);
    34. score[4].setScore(11);
    35. if (user.inGroup("default", "")) {
    36. objective.getScore(ChatColor.WHITE + "Default")
    37. .setScore(10);
    38. } else if (user.inGroup("owner", "")) {
    39. objective
    40. .getScore(ChatColor.DARK_RED + "Owner")
    41. .setScore(10);
    42. } else if (user.inGroup("admin", "")) {
    43. objective
    44. .getScore(ChatColor.DARK_RED + "Admin")
    45. .setScore(10);
    46. } else if (user.inGroup("srmod", "")) {
    47. objective.getScore(
    48. ChatColor.DARK_GREEN + "Sr. Mod")
    49. .setScore(10);
    50. } else if (user.inGroup("mod", "")) {
    51. objective.getScore(ChatColor.GOLD + "Mod")
    52. .setScore(10);
    53. } else if (user.inGroup("helper", "")) {
    54. objective.getScore(ChatColor.GREEN + "Helper")
    55. .setScore(10);
    56. } else if (user.inGroup("hero", "")) {
    57. objective.getScore(
    58. ChatColor.LIGHT_PURPLE + "Hero")
    59. .setScore(10);
    60. } else if (user.inGroup("ultra", "")) {
    61. objective.getScore(ChatColor.AQUA + "Ultra")
    62. .setScore(10);
    63. } else {
    64. objective.getScore(ChatColor.RED + "Unknown")
    65. .setScore(10);
    66. }
    67. score[5].setScore(9);
    68. if (!(joc1kitpvp.contains(player)))
    69. objective.getScore("----------------")
    70. .setScore(8);
    71. else {
    72. objective.getScore(
    73. ChatColor.BLUE + "" + ChatColor.BOLD
    74. + "Game").setScore(8);
    75. objective.getScore("KitPVP #1").setScore(7);
    76. objective.getScore(" ").setScore(6);
    77. objective.getScore(
    78. ChatColor.YELLOW + "" + ChatColor.BOLD
    79. + "Kit").setScore(5);
    80. objective.getScore(getKit(player)).setScore(4);
    81. objective.getScore(" ").setScore(3);
    82. if (kp1timerstart < 60 && kp1timerstart > 0
    83. && kp1s == 0) {
    84. objective.getScore(
    85. ChatColor.BOLD + "Starting in "
    86. + kp1timerstart)
    87. .setScore(2);
    88. } else if (kp1s == 1 && kp1timersend > 0
    89. && kp1timersend <= 180) {
    90. objective.getScore(
    91. ChatColor.BOLD + "Ending in "
    92. + kp1timersend).setScore(2);
    93. } else {
    94. objective.getScore(" ").setScore(2);
    95. }
    96. objective.getScore("----------------")
    97. .setScore(1);
    98. }
    99. }
    100. }
    101. }, 20L, 20L);
    102. }


    Bump!

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 14, 2016
  2. Offline

    xize

    nastasescu

    have you tried to debug your code with prints?

    maybe you need to remove a players scoreboard first in order to give him a newer one when he already had one but again I don't know really much about the scoreboard api.

    to remove it use:

    edit use p.setScoreBoard(and here a new Scoreboard, not null);
     
  3. Offline

    Cerberus XII

Thread Status:
Not open for further replies.

Share This Page