Scoreboard flashy please help

Discussion in 'Plugin Development' started by Seba500PLK, Sep 20, 2014.

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

    Seba500PLK

    my scoreboard flashy :/.

    The problem is here. In updateScoreboard:

    Code:java
    1. ScoreboardManager manager = Bukkit.getScoreboardManager();
    2. Scoreboard board = manager.getNewScoreboard();
    3.  
    4. Objective objective = board.registerNewObjective("scoreboard", "dummy");
    5. objective.setDisplaySlot(DisplaySlot.SIDEBAR);
    6. objective.setDisplayName("§f███ §2§lPLK§6§lCraft§f ███");


    i dont know how to change it to not blinked

    FULL CODE:

    Code:java
    1. public void ScoreBoard(PlayerJoinEvent e) {
    2.  
    3. Economy econ = null;
    4. RegisteredServiceProvider<Economy> economyProvider = getServer().getServicesManager().getRegistration(net.milkbowl.vault.economy.Economy.class);
    5. if (economyProvider != null) {
    6. econ = economyProvider.getProvider();
    7. }
    8.  
    9.  
    10.  
    11. if(e.getPlayer() instanceof Player){
    12.  
    13.  
    14.  
    15.  
    16. Player p = (Player) e.getPlayer();
    17.  
    18.  
    19.  
    20.  
    21.  
    22. ScoreboardManager manager = Bukkit.getScoreboardManager();
    23. Scoreboard board = manager.getNewScoreboard();
    24.  
    25. Objective objective = board.registerNewObjective("scoreboard", "dummy");
    26. objective.setDisplaySlot(DisplaySlot.SIDEBAR);
    27. objective.setDisplayName("§f███ §2§lPLK§6§lCraft§f ███");
    28.  
    29.  
    30.  
    31.  
    32. Score balance = objective.getScore(Bukkit.getOfflinePlayer("§6§lPLK§f§lCoin:"));
    33. balance.setScore(5);
    34.  
    35.  
    36. Score balance1 = objective.getScore(Bukkit.getOfflinePlayer("" + ChatColor.BOLD + econ.getBalance(p.getName())));
    37. balance1.setScore(4);
    38.  
    39.  
    40. Score p1 = objective.getScore(Bukkit.getOfflinePlayer("─────────"));
    41. p1.setScore(3);
    42.  
    43.  
    44. Score zabic = objective.getScore(Bukkit.getOfflinePlayer("§4§lZABIC:"));
    45. zabic.setScore(2);
    46.  
    47.  
    48. Score zabic1 = objective.getScore(Bukkit.getOfflinePlayer("" + ChatColor.BOLD + "W BUDOWIE"));
    49. zabic1.setScore(1);
    50.  
    51.  
    52. for(Player online : Bukkit.getOnlinePlayers()){
    53. p.setScoreboard(board);
    54.  
    55. updateScoreboard(p);
    56. }
    57.  
    58. }
    59.  
    60.  
    61. }
    62.  
    63.  
    64.  
    65.  
    66.  
    67.  
    68.  
    69.  
    70. }, this);
    71.  
    72.  
    73.  
    74. PluginDescriptionFile naszPlik = this.getDescription();
    75. this.naszlogger.info("PluginSeba500PLK Wersja " + naszPlik.getVersion() + " Zostal Wlaczony");
    76.  
    77.  
    78.  
    79. }
    80.  




    Code:java
    1.  
    2. void updateScoreboard(Player e) {
    3. Economy econ = null;
    4. RegisteredServiceProvider<Economy> economyProvider = getServer().getServicesManager().getRegistration(net.milkbowl.vault.economy.Economy.class);
    5. if (economyProvider != null) {
    6. econ = economyProvider.getProvider();
    7. }
    8.  
    9. if(e.getPlayer() instanceof Player){
    10.  
    11.  
    12.  
    13.  
    14. final Player p = (Player) e.getPlayer();
    15.  
    16.  
    17. ScoreboardManager manager = Bukkit.getScoreboardManager();
    18. Scoreboard board = manager.getNewScoreboard();
    19.  
    20. Objective objective = board.registerNewObjective("scoreboard", "dummy");
    21. objective.setDisplaySlot(DisplaySlot.SIDEBAR);
    22. objective.setDisplayName("§f███ §2§lPLK§6§lCraft§f ███");
    23.  
    24.  
    25.  
    26.  
    27. Score balance = objective.getScore(Bukkit.getOfflinePlayer("§6§lPLK§f§lCoin:"));
    28. balance.setScore(5);
    29.  
    30.  
    31. Score balance1 = objective.getScore(Bukkit.getOfflinePlayer("" + ChatColor.BOLD + econ.getBalance(p.getName())));
    32. balance1.setScore(4);
    33.  
    34.  
    35. Score p1 = objective.getScore(Bukkit.getOfflinePlayer("─────────"));
    36. p1.setScore(3);
    37.  
    38.  
    39. Score zabic = objective.getScore(Bukkit.getOfflinePlayer("§4§lZABIC:"));
    40. zabic.setScore(2);
    41.  
    42.  
    43. Score zabic1 = objective.getScore(Bukkit.getOfflinePlayer("" + ChatColor.BOLD + "W BUDOWIE"));
    44. zabic1.setScore(1);
    45.  
    46.  
    47.  
    48.  
    49.  
    50.  
    51. this.getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable() {
    52.  
    53. public void run() {
    54. updateScoreboard(p);
    55. }
    56. }, 30);// 60 L == 3 sec, 20 ticks == 1 sec
    57.  
    58.  
    59.  
    60.  
    61.  
    62. for(Player online : Bukkit.getOnlinePlayers()){
    63. p.setScoreboard(board);
    64. }
    65. }
    66.  
    67.  
    68.  
    69. }
     
  2. Offline

    Gerov

    Seba500PLK I have learnt this from experience, scoreboards do not like to be in Runnables, because unless you have a really fast and powerful server it is going to take a tick of two for the server to read the code and make the scoreboard, that is why it is flashing.
     
  3. Offline

    BloodBacker

    The reaseon your scoreboard is flashing because you are making every time a new scoreboard, to fix this problem you need to update a specific score from your scoreboard.
     
  4. Offline

    Seba500PLK

    it can be done? please any tips or code

    Example: plugin "scoreboardstats" works so that it updates every two seconds

    when i want to update a particular result he replicates the scoreboard

    after killing five monsters:
    [​IMG]

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

    BloodBacker


    Code?
     
  6. Offline

    Seba500PLK


    Code:java
    1. void updateScoreboard(Player e) {
    2. Economy econ = null;
    3. RegisteredServiceProvider<Economy> economyProvider = getServer().getServicesManager().getRegistration(net.milkbowl.vault.economy.Economy.class);
    4. if (economyProvider != null) {
    5. econ = economyProvider.getProvider();
    6. }
    7.  
    8. if(e.getPlayer() instanceof Player){
    9.  
    10.  
    11. final Player p = (Player) e.getPlayer();
    12.  
    13.  
    14.  
    15. Scoreboard board = p.getScoreboard();
    16. Objective objective = board.getObjective("scoreboard");
    17. objective.setDisplaySlot(DisplaySlot.SIDEBAR);
    18.  
    19. board.getObjective(DisplaySlot.SIDEBAR);
    20.  
    21.  
    22.  
    23. Score balance = objective.getScore(Bukkit.getOfflinePlayer("§6§lPLK§f§lCoin:"));
    24. balance.setScore(5);
    25.  
    26.  
    27. Score balance1 = objective.getScore(Bukkit.getOfflinePlayer("" + ChatColor.BOLD + econ.getBalance(p.getName())));
    28. balance1.setScore(4);
    29.  
    30.  
    31. Score p1 = objective.getScore(Bukkit.getOfflinePlayer("─────────"));
    32. p1.setScore(3);
    33.  
    34.  
    35. Score zabic = objective.getScore(Bukkit.getOfflinePlayer("§4§lZABIC:"));
    36. zabic.setScore(2);
    37.  
    38.  
    39. Score zabic1 = objective.getScore(Bukkit.getOfflinePlayer("" + ChatColor.BOLD + "W BUDOWIE"));
    40. zabic1.setScore(1);
    41.  
    42.  
    43.  
    44.  
    45.  
    46.  
    47. this.getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable() {
    48.  
    49. public void run() {
    50. updateScoreboard(p);
    51. }
    52. }, 30);// 60 L == 3 sec, 20 ticks == 1 sec
    53.  
    54.  
    55.  
    56.  
    57.  
    58. for(Player online : Bukkit.getOnlinePlayers()){
    59. p.setScoreboard(board);
    60. }
    61. }
    62.  
    63.  
    64.  
    65. }


    anyone help me?

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

    Mysticate

    I was having this issue a long time ago. Unless you have a really powerful server, there's no way to make it stop flashing. Alternatively, you can have an update scoreboard method that creates a new scoreboard and sets it when called. You could call it when you kill a mob, so that way it'll only flash once in a while.
     
Thread Status:
Not open for further replies.

Share This Page