Solved Problems with scoreboard

Discussion in 'Plugin Development' started by viper_monster, Dec 17, 2013.

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

    viper_monster

    Hey there!

    I'm having some hard time with setting scoreboards to all online players. Scoreboard gets set normally but when I press TAB I only see my name colored, the others are white. Whichever player presses TAB, he can only see his name colored. The sidebar scoreboard works perfectly :)

    Here is the method I use:
    Code:java
    1.  
    2. public void setScoreboard(Player p, double kills, double deaths, double killstreak) {
    3. try {
    4. Scoreboard scoreboard = Bukkit.getServer().getScoreboardManager().getNewScoreboard();
    5.  
    6. Team adminTeam = scoreboard.registerNewTeam("adminTeam");
    7. Team defaultTeam = scoreboard.registerNewTeam("defaultTeam");
    8.  
    9. adminTeam.setPrefix("§4");
    10. defaultTeam.setPrefix("§7");
    11.  
    12. if (p.isOp()) {
    13. adminTeam.addPlayer(p);
    14. } else {
    15. defaultTeam.addPlayer(p);
    16. }
    17.  
    18. Objective obj = scoreboard.registerNewObjective("-- Censored :P --", "dummy");
    19. obj.setDisplaySlot(DisplaySlot.SIDEBAR);
    20. obj.setDisplayName(ChatColor.RED + p.getName());
    21.  
    22. Score sMoney = obj.getScore(Bukkit.getServer().getOfflinePlayer(ChatColor.GOLD + "Money" + ChatColor.DARK_RED + ":"));
    23. Score sKills = obj.getScore(Bukkit.getServer().getOfflinePlayer(ChatColor.GOLD + "Kills" + ChatColor.DARK_RED + ":"));
    24. Score sDeaths = obj.getScore(Bukkit.getServer().getOfflinePlayer(ChatColor.GOLD + "Deaths" + ChatColor.DARK_RED + ":"));
    25. Score sKillstreak = obj.getScore(Bukkit.getServer().getOfflinePlayer(ChatColor.GOLD + "Killstreak" + ChatColor.DARK_RED + ":"));
    26.  
    27. sMoney.setScore((int) pl.econ.getBalance(p.getName()));
    28. sKills.setScore((int) kills);
    29. sDeaths.setScore((int) deaths);
    30. sKillstreak.setScore((int) killstreak);
    31.  
    32. p.setScoreboard(scoreboard);
    33. } catch (Exception ex) {
    34. Bukkit.getServer().getLogger().warning(pl.getName() + "> Can't set scoreboard for invalid CraftPlayer: " + p.getName());
    35. p.kickPlayer("§4Please reconnect, this is due to security reasons!");
    36. }
    37. }
    38.  


    and this is where I set thescoreboard (in the onEnable method):
    Code:java
    1.  
    2. Bukkit.getServer().getScheduler().scheduleSyncRepeatingTask(this, new BukkitRunnable() {
    3. @Override
    4. public void run() {
    5. for (Player online : Bukkit.getServer().getOnlinePlayers()) {
    6. if (Bukkit.getServer().getOnlinePlayers().length >= 1) {
    7. playerUtil.setScoreboard(online, playerUtil.getKills(online.getName()), playerUtil.getDeaths(online.getName()), playerUtil.getKillstreak(online.getName()));
    8. }
    9. }
    10. }
    11. }, 20, 20 * 4);
    12.  


    Problem solved! :D

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 5, 2016
Thread Status:
Not open for further replies.

Share This Page