ScoreBoard Not Working

Discussion in 'Plugin Development' started by glory_fades, May 27, 2015.

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

    glory_fades

    So this exact same class was working like 20 minutes ago, plugin works just the scoreboard doesnt pop up
    Code:
    package me.ahrims.scoreboard;
    
    import java.util.Collection;
    
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.entity.EnderPearl;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.entity.ProjectileLaunchEvent;
    import org.bukkit.event.player.PlayerJoinEvent;
    import org.bukkit.event.player.PlayerLoginEvent;
    import org.bukkit.plugin.java.JavaPlugin;
    import org.bukkit.scoreboard.DisplaySlot;
    import org.bukkit.scoreboard.Objective;
    import org.bukkit.scoreboard.Score;
    import org.bukkit.scoreboard.Scoreboard;
    
    import com.massivecraft.factions.entity.Faction;
    import com.massivecraft.factions.entity.MPlayer;
    
    public class Fscore extends JavaPlugin implements Listener {
    
        private Scoreboard board;
    
        public void onEnable() {
            getServer().getPluginManager().registerEvents(this, this);
          
            makeScoreboard();
        }
    
        public void makeScoreboard() {
            board = Bukkit.getScoreboardManager().getNewScoreboard();
    
            Objective objective = board.registerNewObjective("Test", "Test2");
            Player p = (Player) Bukkit.getOnlinePlayers();
            MPlayer mp = MPlayer.get(p);
            int sv = mp.getPowerMaxRounded();
            objective.setDisplayName(ChatColor.AQUA + "Test");
            objective.setDisplaySlot(DisplaySlot.SIDEBAR);
    
            Score score = objective.getScore(ChatColor.GOLD + "Online Players");
            score.setScore(Bukkit.getOnlinePlayers().size());
    
            Score score2 = objective.getScore(ChatColor.GOLD + "Staff Online");
            if(p.hasPermission("staff.scoreboard"))
            {
                score2.setScore(Bukkit.getOnlinePlayers().size());
            }
    
            Score score3 = objective.getScore(ChatColor.GOLD + "Faction Power");
            score3.setScore(sv);
    
            Score score4 = objective.getScore(ChatColor.GOLD + "Random");
            score4.setScore(Bukkit.getSpawnRadius());
        }
    
        @EventHandler
        public void onjoin(PlayerJoinEvent e) {
            Player p = e.getPlayer();
            p.setScoreboard(board);
            p.sendMessage(ChatColor.GREEN + "Test");
          
        }
    }
     
  2. Offline

    Agentleader1

    Do not cast
    Code:
    Player player = (Player) Bukkit.getOnlinePlayers();
    Online Players gets a LIST (a variable holding type, NOT ONE STRING).

    So knowing that you did that, I assume you got an error in console? Make a spoiler/pastebin and send me the stacktrace (error).
     
  3. Offline

    mine-care

  4. Offline

    567legodude

    1. Objective objective = board.registerNewObjective("Test", "Test2");
    The second argument tells what type of objective it is, usually you put "dummy" here.
    2. Player p =(Player) Bukkit.getOnlinePlayers();
    getOnlinePlayers() returns every player that is on the server, you need to grab a specific player, not every single one.
    3. Lines 46 to 50 in your code are supposed to show the number of staff online, but since you didn't grab the players correctly, it's not gonna work. (In this case you would need to iterate through the players online and count the ones with the permission)

    Try to fix those, they are the main reason the code is not working.
     
  5. Offline

    Agentleader1

    What everyone else has said extends on to what I have said.
     
Thread Status:
Not open for further replies.

Share This Page