Solved Scoreboard not displaying correctly

Discussion in 'Plugin Development' started by sgavster, Feb 3, 2016.

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

    sgavster

    Hello! I just added voting to my server; I have my scoreboard display your number of votes. It won't display the votes, it just says "None! /vote"

    This is my adding method in my vote class:
    Code:
                LoginHandler.getThings(p).set("votes", d+1);
                LoginHandler.getThings(p).save();
                ScoreBoard.updateBoard(p);
    This is LoginHandler:

    Code:
    static Map<UUID, Config> configs = new HashMap<UUID, Config>();
        public static Config getThings(Player p) {
            UUID uuid = p.getUniqueId();
            return configs.get(uuid);
        }
    And this is ScoreBoard:


    Code:
    public static ScoreboardManager man = Bukkit.getScoreboardManager();
        public static Scoreboard sameBoard;
    
        public static void setNewBoard(Player p) {
    
            if (sameBoard == null) {
    
                Scoreboard b = man.getNewScoreboard();
                Objective o = b.registerNewObjective("QuadularMC", "dummy");
                o.setDisplaySlot(DisplaySlot.SIDEBAR);
              
                o.setDisplayName(MSG.quadularmc);
    
                Score votes = o.getScore(LoginHandler.getThings(p).getInt("votes") == 0 ? "§2None. /vote" : "§2" + LoginHandler.getThings(p).getInt("votes"));
                votes.setScore(1);
    
                Score votez = o.getScore("§bVotes:");
                votez.setScore(2);
    
                Score blank = o.getScore(" ");
                blank.setScore(3);
    
                Score deaths = o.getScore(LoginHandler.getThings(p).getInt("deaths") == 0 ? "§2None!" : "§2" + LoginHandler.getThings(p).getInt("deaths"));
                deaths.setScore(4);
    
                Score deathz = o.getScore("§bDeaths:");
                deathz.setScore(5);
    
                p.setScoreboard(b);
    
                sameBoard = p.getScoreboard();
    
            }
        }
    
        public static void updateBoard(Player p) {
            if (p.getScoreboard() == null) {
                setNewBoard(p);
            } else {
              
                  if (LoginHandler.getThings(p).getString("settings.scoreboard").equalsIgnoreCase("yes")) {
                sameBoard = p.getScoreboard();
    
                if (sameBoard != null) {
    
                    Objective oldO = sameBoard.getObjective(DisplaySlot.SIDEBAR);
                    if (oldO == null) {
                          if(sameBoard.getObjective("QuadularMC") == null)
                            oldO = sameBoard.registerNewObjective("QuadularMC", "dummy");
                          else {
                            oldO = sameBoard.getObjective("QuadularMC");
                        }
    
                    if (sameBoard.getObjective("QuadularMC") != null
                            && sameBoard != null || sameBoard.getEntries() != null) {
                        for (String players : sameBoard.getEntries()) {
                            sameBoard.resetScores(players);
                        }
                    }
    
                    oldO.setDisplayName(MSG.quadularmc);
                    Score votes = oldO.getScore(LoginHandler.getThings(p).getInt("votes") == 0 ? "§2None. /vote" : "§2" + LoginHandler.getThings(p).getInt("votes"));
                    votes.setScore(1);
    
                    Score votez = oldO.getScore("§bVotes:");
                    votez.setScore(2);
    
                    Score blank = oldO.getScore(" ");
                    blank.setScore(3);
    
                    Score deaths = oldO.getScore(LoginHandler.getThings(p).getInt("deaths") == 0 ? "§2None!" : "§2" + LoginHandler.getThings(p).getInt("deaths"));
                    deaths.setScore(4);
    
                    Score deathz = oldO.getScore("§bDeaths:");
                    deathz.setScore(5);
    
                    p.setScoreboard(sameBoard);
                    oldO.setDisplaySlot(DisplaySlot.SIDEBAR);
                }
               }
              }else {
                    p.getScoreboard().clearSlot(DisplaySlot.SIDEBAR);
             }
            }
        }
    
        @EventHandler
        public void onJoin(PlayerJoinEvent e) {
            Player p = e.getPlayer();
            if (sameBoard == null) {
                setNewBoard(p);
            } else {
                updateBoard(p);
            }
        }
    }
    It also doesn't work for my death counter:

    Code:
                int d = LoginHandler.getThings(p).getInt("deaths");
                LoginHandler.getThings(p).set("deaths", d+1);
                LoginHandler.getThings(p).save();
                ScoreBoard.updateBoard(p);
    I think it's the updatescoreboard method, but I can't figure out why (Yes, I know statics are bad. They are for testing and stuff)

    thanks for any help.. I can't figure it out

    Picture of scoreboard:

    [​IMG]

    Picture of config file (taken at same time)

    [​IMG]
     
  2. Offline

    sgavster

    Bump!
     
  3. Offline

    mcdorli

    Where do you update the votes?
     
  4. Offline

    sgavster

    EDIT: FIXED IT! I misplaced a bracket.
     
    Last edited: Feb 9, 2016
Thread Status:
Not open for further replies.

Share This Page