Solved Glitchy Scoreboards

Discussion in 'Plugin Development' started by BungeeTheCookie, Jul 6, 2014.

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

    BungeeTheCookie

    Alright, so I am using a BukkitRunnable and ScrollerAPI to create a scrolling title and score names for a scoreboard, but whenever the repeating task is scheduled, the scoreboard moves. I want it to remain still, like Mineplex's scoreboard. How would I do this? I got this from past code, but I don't have any current code. I will post the past code I am referencing though, if you'd like.

    Meh, Ill post it anyway.
    This is an abandoned plugin, so ignore everything about Pixelmon, because I am using CraftBukkit, not MCPC+ or Cauldron.
    PHP:
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.EventPriority;
    import org.bukkit.event.Listener;
    import org.bukkit.event.player.PlayerJoinEvent;
    import org.bukkit.scheduler.BukkitRunnable;
    import org.bukkit.scoreboard.*;
     
    import java.util.HashMap;
     
    public class 
    ScoreBoardManager implements Listener {
     
    public 
    HashMap<StringScoreonlinePlayer = new HashMap<StringScore>();
    public 
    HashMap<StringScorewebsiteTracker = new HashMap<StringScore>();
    public 
    HashMap<StringScoremoneyScores = new HashMap<StringScore>();
    public 
    HashMap<StringScorerankScore = new HashMap<StringScore>();
    public 
    HashMap<StringScorenewsTracker = new HashMap<StringScore>();
     
    public 
    TGNPixelmon plugin;
    public 
    ScoreBoardManager(final TGNPixelmon plugin) {this.plugin plugin;}
     
        public 
    void showScoreBoard(final Player p){
            if(
    != null){
                final 
    ScoreboardManager manager Bukkit.getScoreboardManager();
                final 
    Scoreboard scoreboard manager.getNewScoreboard();
                final 
    Objective o;
                
    scoreboard.registerNewObjective("join""dummy");
                
    o.setDisplaySlot(DisplaySlot.SIDEBAR);
                final 
    ScrollerAPI scroller = new ScrollerAPI("&lWelcome " p.getName() + " to The Gamma Network Pixelmon!"3212'&');
                final 
    ScrollerAPI websiteScroller = new ScrollerAPI("&4&lNuclear&6&lCharizard&r has done an amazing job developing our website, &lwww.thegammanet.com! &r"168'&');
                final 
    ScrollerAPI newsScroller = new ScrollerAPI(NewsConfig.getNewsConfig(plugin).getString("News-Message"), 168'&');
     
                new 
    BukkitRunnable(){
                    public 
    void run() {
                        try{
                            if(
    != null){
                                
    String next scroller.next();
                                
    String websiteNext websiteScroller.next();
                                
    String newsNext newsScroller.next();
                                
    o.setDisplayName(ChatColor.translateAlternateColorCodes('&'"&lTGN Pixelmon"));
     
                                if(
    onlinePlayer.containsKey(p.getName())){
                                    
    scoreboard.resetScores(onlinePlayer.get(p.getName()).getPlayer());
                                }
                                
    Score onlinePlayers o.getScore(Bukkit.getOfflinePlayer(ChatColor.translateAlternateColorCodes('&'"&2&lPlayers")));
                                
    Score onlinePlayersCount o.getScore(Bukkit.getOfflinePlayer(ChatColor.translateAlternateColorCodes('&'"&6" + ((Integer)Bukkit.getServer().getOnlinePlayers().length).toString() + "          ")));
                                
    onlinePlayer.put(p.getName(), onlinePlayersCount);
                                
    Score seperator o.getScore(Bukkit.getOfflinePlayer("            "));
     
     
                                if(
    newsTracker.containsKey(p.getName())){
                                    
    scoreboard.resetScores(newsTracker.get(p.getName()).getPlayer());
                                }
                                
    Score newsScore o.getScore(Bukkit.getOfflinePlayer(ChatColor.translateAlternateColorCodes('&'"&6&lNews")));
                                
    Score theNews o.getScore(Bukkit.getOfflinePlayer(ChatColor.translateAlternateColorCodes('&'newsNext)));
                                
    newsTracker.put(p.getName(), theNews);
                                
    Score seperator2 o.getScore(Bukkit.getOfflinePlayer("        "));
     
     
                                if(
    websiteTracker.containsKey(p.getName())){
                                    
    scoreboard.resetScores(websiteTracker.get(p.getName()).getPlayer());
                                }
                                
    Score website o.getScore(Bukkit.getOfflinePlayer(ChatColor.translateAlternateColorCodes('&'"&e&lWebsite")));
                                
    Score websiteName o.getScore(Bukkit.getOfflinePlayer(ChatColor.translateAlternateColorCodes('&'websiteNext)));
                                
    websiteTracker.put(p.getName(), websiteName);
                                
    Score seperator3 o.getScore(Bukkit.getOfflinePlayer("    "));
     
     
                                
    Score money o.getScore(Bukkit.getOfflinePlayer(ChatColor.translateAlternateColorCodes('&'"&a&lYour Money")));
                                if(
    moneyScores.containsKey(p.getName())){
                                    
    scoreboard.resetScores(moneyScores.get(p.getName()).getPlayer());
                                }
                                
    Score moneyCount o.getScore(Bukkit.getOfflinePlayer(((Integer)(((Double) plugin.econ.getBalance(p.getName()))).intValue()).toString()));
                                
    moneyScores.put(p.getName(), moneyCount);
                                
    Score seperator4 o.getScore(Bukkit.getOfflinePlayer(" "));
     
     
                                if(
    rankScore.containsKey(p.getName())){
                                    
    scoreboard.resetScores(rankScore.get(p.getName()).getPlayer());
                                }
                                
    Score rankName o.getScore(Bukkit.getOfflinePlayer(ChatColor.translateAlternateColorCodes('&'"&c&lRank")));
                                
    Score playerRank o.getScore(Bukkit.getOfflinePlayer(ChatColor.translateAlternateColorCodes('&'RankManager.getRank(p))));
                                
    rankScore.put(p.getName(), playerRank);
     
                                
    onlinePlayers.setScore(14);
                                
    onlinePlayersCount.setScore(13);
                                
    seperator.setScore(12);
                                
    money.setScore(11);
                                
    moneyCount.setScore(10);
                                
    seperator4.setScore(9);
                                
    rankName.setScore(8);
                                
    playerRank.setScore(7);
     
                                
    p.setScoreboard(scoreboard);
                            }
                        }catch(
    Exception e){
                            
    this.cancel();
                        }
                    }
                }.
    runTaskTimer(plugin0L5L);
            }
        }
     
        @
    EventHandler(priority EventPriority.HIGHEST)
        public 
    void displayScoreBoard(PlayerJoinEvent e){
            
    showScoreBoard(e.getPlayer());
        }
    }
    Nevermind, I fixed it

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

Share This Page