Bukkit.getServer().getOnlinePlayers().length

Discussion in 'Plugin Development' started by TrippyHD, Feb 26, 2016.

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

    TrippyHD

    When I put
    Code:
    Bukkit.getServer().getOnlinePlayers().length
    it keeps saying length Can't resolve symbol.

    Full Code:
    Code:
    package FB.PP;
    
    import com.sun.org.apache.xpath.internal.operations.Variable;
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.configuration.file.FileConfiguration;
    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.AsyncPlayerChatEvent;
    import org.bukkit.event.player.PlayerJoinEvent;
    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 org.bukkit.scoreboard.ScoreboardManager;
    
    import java.io.File;
    
    public class PvPPoints extends JavaPlugin implements Listener {
        File cfile;
        FileConfiguration config;
        static PvPPoints plugin;
        public PvPPoints() {
        }
    
        public void onEnable() {
            plugin = this;
            plugin.getConfig().options().copyDefaults(true);
            plugin.saveDefaultConfig();
            PvPConfig.load();
            PvPTimers.startTimers();
            Bukkit.getPluginCommand("rank").setExecutor(new PvPExecutor());
            Bukkit.getPluginCommand("pvppoints").setExecutor(new PvPExecutor());
            Bukkit.getPluginCommand("leaderboard").setExecutor(new PvPExecutor());
            Bukkit.getServer().getPluginManager().registerEvents(new PvPPointsListener(), plugin);
            Bukkit.getServer().getPluginManager().registerEvents(this, this);
            config = getConfig();
            cfile = new File(getDataFolder(), "config.yml");
            config.options().copyDefaults(true);
            saveConfig();
            this.saveConfig();
        }
    
        public void onDisable() {
            PvPConfig.save();
            plugin = null;
        }
    
        static PvPPoints getPlugin() {
            return plugin;
        }
    
        @EventHandler
        public void PlayerJoin(PlayerJoinEvent e) {
            final Player p = e.getPlayer();
            final String pname = p.getName();
            Bukkit.getServer().getScheduler().scheduleSyncRepeatingTask(plugin, new Runnable() {
                public void run() {
                    long pPoints = ((Long)PvPLists.PlayerPoints.get(p.getUniqueId())).longValue();
                    long pKills = ((Long)PvPLists.PlayerKills.get(p.getUniqueId())).longValue();
                    long pDeaths = ((Long)PvPLists.PlayerDeaths.get(p.getUniqueId())).longValue();
                    ScoreboardManager manager = Bukkit.getScoreboardManager();
                    Scoreboard board = manager.getNewScoreboard();
                    Objective objective = board.registerNewObjective("test", "dummy");
                    objective.setDisplaySlot(DisplaySlot.SIDEBAR);
                    objective.setDisplayName(ChatColor.translateAlternateColorCodes('&', PvPPoints.getPlugin().getConfig().getString("Header")));
                    Score score = objective.getScore(ChatColor.BLUE + "Points: " + ChatColor.GRAY + PvPGlobals.nf.format(pPoints));
                    score.setScore(10);
                    Score score2 = objective.getScore(ChatColor.RED + "Kills: " + ChatColor.GRAY + PvPGlobals.nf.format(pKills));
                    score2.setScore(9);
                    Score score3 = objective.getScore(ChatColor.GREEN + "Deaths: " + ChatColor.GRAY + PvPGlobals.nf.format(pDeaths));
                    score3.setScore(8);
                    Score score4 = objective.getScore(ChatColor.GOLD + "Online: " + Bukkit.getServer().getOnlinePlayers());
                    score4.setScore(Bukkit.getServer().getOnlinePlayers().length);
                    p.setScoreboard(board);
                }
            }, 0L, 200L);
        }
        @EventHandler(priority=EventPriority.HIGH)
        public void onPlayerChat(AsyncPlayerChatEvent event)
        {
            Player p = event.getPlayer();
            event.setCancelled(true);
    
            for (Player curPlayer : plugin.getServer().getOnlinePlayers())
            {
                long pPoints = ((Long)PvPLists.PlayerPoints.get(p.getUniqueId())).longValue();
                curPlayer.sendMessage(ChatColor.BLACK + "[" + ChatColor.GREEN + PvPGlobals.nf.format(pPoints) + ChatColor.BLACK + "] " + ChatColor.RESET + event.getPlayer().getDisplayName() + " ยป " + event.getMessage());
    
            }
    
        }
    }
    
     
  2. Offline

    CoolDude53

  3. Offline

    Zombie_Striker

    @TrippyHD
    getOnlinePlayers returns a collection. Collection have a method called "size()" which returns how many objects are in the collection.
     
  4. Offline

    Go Hard

    Assuming you're trying to get how many players are on the server. Use .size not .length

    Damn you beat me to it lmao @Zombie_Striker
     
  5. Offline

    teej107

    Bukkit changed what that method returns. If you are 1.7.9 (version may be wrong) or below, it returns an array. Now it returns a Collection.
     
  6. Offline

    TrippyHD

    Thanks for your help, I forgot this I haven't coded in a while
     
Thread Status:
Not open for further replies.

Share This Page