Scoreboard Help!

Discussion in 'Plugin Development' started by Entos6, Oct 21, 2014.

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

    Entos6

    I'm having trouble getting my scoreboard to enable. I keep getting null pointers! I'm very new to the java language and bukkit. Any help would be appreciated.
    Code:
    public class Main extends JavaPlugin implements Listener {
       
        HashMap<String, Integer> Kills = new HashMap<String, Integer>();
        HashMap<String, Integer> Deaths = new HashMap<String, Integer>();
       
        @Override
        public void onEnable() {
            getLogger().info("CPScoreboard Enabled!");
            Bukkit.getPluginManager().registerEvents(this, this);
            scoreboard();
        }
       
        @Override
        public void onDisable() {
            getLogger().info("CPScoreboard Disabled!");
        }
       
        public void scoreboard() {
            try {
                for (Player player : Bukkit.getOnlinePlayers()) {
                    Scoreboard board = Bukkit.getScoreboardManager().getNewScoreboard();
                   
                    Objective obj = board.registerNewObjective("CP", "dummy");
                    obj.setDisplayName(ChatColor.RED + "Capacity" + " " + ChatColor.GRAY + "Prison");
                    obj.setDisplaySlot(DisplaySlot.SIDEBAR);
                   
                    Score kills = obj.getScore(ChatColor.RED + "Kills");
                    Score killscore = obj.getScore(ChatColor.BLUE + Kills.get(player.getName()).toString());
                    Score deaths = obj.getScore(ChatColor.RED + "Deaths");
                    Score deathscore = obj.getScore(ChatColor.BLUE  + Deaths.get(player.getName()).toString());
                    kills.setScore(3);
                    killscore.setScore(2);
                    deaths.setScore(1);
                    deathscore.setScore(0);
                }
               
            } catch (NullPointerException ex) {
               
                for (Player player : Bukkit.getOnlinePlayers()) {
                    Scoreboard board = Bukkit.getScoreboardManager().getNewScoreboard();
                   
                    Objective obj = board.registerNewObjective("CP", "dummy");
                    obj.setDisplayName(ChatColor.RED + "Capacity" + " " + ChatColor.GRAY + "Prison");
                    obj.setDisplaySlot(DisplaySlot.SIDEBAR);
                   
                    Score kills = obj.getScore(ChatColor.RED + "Kills");
                    Score killscore = obj.getScore(ChatColor.BLUE + Kills.get(player.getName()).toString());
                    Score deaths = obj.getScore(ChatColor.RED + "Deaths");
                    Score deathscore = obj.getScore(ChatColor.BLUE  + Deaths.get(player.getName()).toString());
                    kills.setScore(3);
                    killscore.setScore(2);
                    deaths.setScore(1);
                    deathscore.setScore(0);
                }
               
            }
            for (Player player : Bukkit.getOnlinePlayers()) {
               
                Scoreboard board = Bukkit.getScoreboardManager().getNewScoreboard();
                    player.setScoreboard(board);
            }
        }
       
        @EventHandler
        public void onJoin(PlayerJoinEvent event) {
            Player player = event.getPlayer();
           
            Scoreboard board = Bukkit.getScoreboardManager().getNewScoreboard();
           
            player.setScoreboard(board);
        }
     
        @EventHandler
        public void onDeath(PlayerDeathEvent event) {
                Player player = event.getEntity().getPlayer();
                int death = 0;
                Deaths.put(player.getName(), death + 1);
        }
       
        @EventHandler
        public void onKILL(EntityDeathEvent event) {
            if (event.getEntity().getKiller() instanceof Player) {
                if (event.getEntityType() == EntityType.PLAYER) {
                    Player player = event.getEntity().getKiller();
                    int kill = 0;
                    Kills.put(player.getName(), kill + 1);
                }
            }
        }
    }
    [​IMG]

    Here is the error. It has trouble enabling the scoreboard method on line 29, and setting the killscore on line 66.

    Thanks for any help! -Entos

    Error won't show up but its explained. sorry D:

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 14, 2016
  2. Offline

    Gerov

    Entos6 The way I learned how to deal with NPEs wasn't having people give me the answer to the problem. They told me 'What variable is null? Figure it out'. NPEs are going to show up for your whole entire time using the Java language.
     
  3. Offline

    Entos6

    I understand how to look for them, but all the variables are defined it seems to me...
     
Thread Status:
Not open for further replies.

Share This Page