Scoreboard sidebar display problem

Discussion in 'Plugin Development' started by Mr. Sandwich, Jun 3, 2016.

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

    Mr. Sandwich

    Hey so I am trying to do so every player has its own private scoreboard sidebar thing that displays their health and their teamates' health but it doesn't displays it to everyone, help please?
    Code:
        public void onEnable() {
            Bukkit.getServer().getPluginManager().registerEvents(this, this);
            saveDefaultConfig();
            ScoreboardManager manager = Bukkit.getScoreboardManager();
            Scoreboard board = manager.getNewScoreboard();
            Objective objective = board.registerNewObjective("health", "dummy");
            objective.setDisplaySlot(DisplaySlot.SIDEBAR);
            objective.setDisplayName(ChatColor.BLUE + "Team's Health");
            Bukkit.getServer().getScheduler().scheduleSyncRepeatingTask((Plugin) this, new Runnable() {
                public void run() {
                    for (Player player : Bukkit.getServer().getOnlinePlayers()) {
                        for (Player player2 : Bukkit.getServer().getOnlinePlayers()) {
                            if (getConfig().getStringList("FOD.Teams.A").contains(player.getName())) {
                                for(String string : getConfig().getStringList("FOD.Teams.A")){
                                    if (string.equals(player2.getName())) {
                                        Score score = objective.getScore(Bukkit.getOfflinePlayer(ChatColor.GREEN + (player2.getName().substring(0,13) + ":")));
                                        score.setScore((int) player2.getHealth());
                                        player2.setScoreboard(board);
                                    }
                                }  
                            } else if (getConfig().getStringList("FOD.Teams.B").contains(player.getName())) {
                                for(String string : getConfig().getStringList("FOD.Teams.B")){
                                    if (string.equals(player2.getName())) {
                                        Score score = objective.getScore(Bukkit.getOfflinePlayer(ChatColor.GREEN + (player2.getName().substring(0,13) + ":")));
                                        score.setScore((int) player2.getHealth());
                                        player2.setScoreboard(board);
                                    }
                                }  
                            } else if (getConfig().getStringList("FOD.Teams.C").contains(player.getName())) {
                                for(String string : getConfig().getStringList("FOD.Teams.C")){
                                    if (string.equals(player2.getName())) {
                                        Score score = objective.getScore(Bukkit.getOfflinePlayer(ChatColor.GREEN + (player2.getName().substring(0,13) + ":")));
                                        score.setScore((int) player2.getHealth());
                                        player2.setScoreboard(board);
                                    }
                                }
                            } else if (getConfig().getStringList("FOD.Teams.D").contains(player.getName())) {
                                for(String string : getConfig().getStringList("FOD.Teams.D")){
                                    if (string.equals(player2.getName())) {
                                        Score score = objective.getScore(Bukkit.getOfflinePlayer(ChatColor.GREEN + (player2.getName().substring(0,13) + ":")));
                                        score.setScore((int) player2.getHealth());
                                        player2.setScoreboard(board);
                                    }
                                }  
                            } else if (getConfig().getStringList("FOD.Teams.E").contains(player.getName())) {
                                for(String string : getConfig().getStringList("FOD.Teams.E")){
                                    if (string.equals(player2.getName())) {
                                        Score score = objective.getScore(Bukkit.getOfflinePlayer(ChatColor.GREEN + (player2.getName().substring(0,13) + ":")));
                                        score.setScore((int) player2.getHealth());
                                        player2.setScoreboard(board);
                                    }
                                }  
                            } else if (getConfig().getStringList("FOD.Teams.F").contains(player.getName())) {
                                for(String string : getConfig().getStringList("FOD.Teams.F")){
                                    if (string.equals(player2.getName())) {
                                        Score score = objective.getScore(Bukkit.getOfflinePlayer(ChatColor.GREEN + (player2.getName().substring(0,13) + ":")));
                                        score.setScore((int) player2.getHealth());
                                        player2.setScoreboard(board);
                                    }
                                }  
                            } else if (getConfig().getStringList("FOD.Teams.G").contains(player.getName())) {
                                for(String string : getConfig().getStringList("FOD.Teams.G")){
                                    if (string.equals(player2.getName())) {
                                        Score score = objective.getScore(Bukkit.getOfflinePlayer(ChatColor.GREEN + (player2.getName().substring(0,13) + ":")));
                                        score.setScore((int) player2.getHealth());
                                        player2.setScoreboard(board);
                                    }
                                }  
                            } else if (getConfig().getStringList("FOD.Teams.H").contains(player.getName())) {
                                for(String string : getConfig().getStringList("FOD.Teams.H")){
                                    if (string.equals(player2.getName())) {
                                        Score score = objective.getScore(Bukkit.getOfflinePlayer(ChatColor.GREEN + (player2.getName().substring(0,13) + ":")));
                                        score.setScore((int) player2.getHealth());
                                        player2.setScoreboard(board);
                                    }
                                }  
                            }
                        }                 
                    }
                }
            }, 0, 20);  
        }
    
     
    Last edited: Jun 8, 2016
  2. Offline

    Mr. Sandwich

    bumpy bump?
     
  3. Offline

    MrGeneralQ

    Hi , so I had the same problem before. And I did THIS to solve it:

    Code:
    public void PlayerJoinEvent (PlayerJoinEvent e){
           
          final    Player p = e.getPlayer();
           
    
            Bukkit.getServer().getScheduler().scheduleSyncRepeatingTask(Main.plugin, new Runnable() {
                public void run() {
                   
                    ScoreboardManager smanager = Bukkit.getScoreboardManager();
                    final Scoreboard board = smanager.getNewScoreboard();
                    final Objective objective = board.registerNewObjective("test", "dummy");
                   
                    objective.setDisplaySlot(DisplaySlot.SIDEBAR);
                    objective.setDisplayName(ChatColor.AQUA + ""+ ChatColor.BOLD + "MineMagicResort");
    
                    Score score = objective.getScore(ChatColor.AQUA + "Online:");
                    score.setScore(Bukkit.getOnlinePlayers().size());
                   
                    Score score2 = objective.getScore(ChatColor.AQUA + "Coins: ");
                    score2.setScore(Main.visitorsConfig.getInt(p.getName()+".coins"));
                   
                    Score achievementsc = objective.getScore(ChatColor.AQUA + "Achievements collected: ");
                    achievementsc.setScore(0);
    
                   
                    p.setScoreboard(board);
    
    This is part of one of my early created plugins (private)
     
  4. Offline

    Mr. Sandwich

    I dont see how this has something to do with my problem? I want to display this sidebar scoreboard to specific players
     
  5. Offline

    MrGeneralQ

    Tis is showing an individual scoreboard for each player
     
  6. Offline

    AoH_Ruthless

    @Mr. Sandwich

    What exactly isn't working and what do you want to accomplish? The code itself looks like it is executing properly.
     
  7. Offline

    Lordloss

    @MrGeneralQ So you create one repeating task for every single player? I think its exactly this why spoonfeeding is bad. You dont even tell him he has to cancel the task on player leave.
     
  8. Offline

    MrGeneralQ

    I understand Your point but 1: That is a long time ago already, 2 It didnt solved The problem

    And 3, i hate my Phone auto correcting everything I type here xd
     
Thread Status:
Not open for further replies.

Share This Page