Scoreboard NPE

Discussion in 'Plugin Development' started by FireBreath14, Sep 23, 2013.

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

    FireBreath14

    When I try to run methods from a class file I have, I get a NPE saying my scoreboard is null. Here is the class:

    Code:
    public class ISCOREAPI{
        Scoreboard board;
        Objective obj;
       
        public void createNewScoreboard(){
            board = Bukkit.getScoreboardManager().getNewScoreboard();
        }
       
        public void createObjective(String name, String desc){
            obj = board.registerNewObjective(name, desc);
            obj.setDisplayName(name);
            obj.setDisplaySlot(DisplaySlot.SIDEBAR);
        }
       
        public void removeObjective(String obj){
            board.getObjective(obj).unregister();
        }
       
        public void createTeam(String name){
            Team team = board.registerNewTeam(name);
            team.setDisplayName(name);
        }
       
        public void removeTeam(String team){
            board.getTeam(team).unregister();
        }
       
        public void addPlayerToTeam(String team, Player p){
            board.getTeam(team).addPlayer(p);
        }
       
        public int getScores(OfflinePlayer p){
            Score score = obj.getScore(p);
            return score.getScore();
        }
       
        public void setScore(OfflinePlayer p, int sc){
            Score score = obj.getScore(p);
            score.setScore(sc);
        }
       
        public void removePlayerFromTeam(String team, Player p){
            board.getTeam(team).removePlayer(p);
        }
       
        public void refreshPlayerScoreboard(Player p){
            p.setScoreboard(board);
        }
       
        public boolean teamExists(String teamName){
            if(board.getTeam(teamName) != null){
                return true;
            }else{
                return false;
            }
        }
    }
    And this is how I try to run methods. In the code I do this multiple times in different classes. How else can I do this so I don't get any errors?:

    Code:
    ISCOREAPI api = new ISCOREAPI();
     
    public void someRandomMethodInADifferentClass(){
      api.runSomeMethod(params);
    }
    I want to be able to make multiple instances of my ISCOREAPI class and yet keep the variables from becoming null.

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

    Rockslide

    Replace

    Code:java
    1. public void createNewScoreboard(){
    2. board = Bukkit.getScoreboardManager().getNewScoreboard();
    3. }


    with
    Code:java
    1. public ISCOREAPI() {
    2. board = Bukkit.getScoreboarManager().getNewScoreboard();
    3. }
     
Thread Status:
Not open for further replies.

Share This Page