Scoreboard NPE

Discussion in 'Plugin Help/Development/Requests' started by JordyPwner, Nov 30, 2014.

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

    JordyPwner

    Im getting a NPE on reloading or joining and my permissions arent working ;3 im trying to create different scoreboard (if player has scoreboard.test it will show default rank)(as example)(or when player has scoreboard.test2)(it will show vip rank) but the permissions arent working ;3 (iknow about the hub) (tried with 2 playerjoinevents with different permission things that didnt worked either)

    NPE when reloading or starting up: http://gyazo.com/80c05016762b902b643749812ab49ada
     
  2. Moved thread and the team "hub" is already in use.
     
  3. Offline

    indyetoile

    JordyPwner
    "Team name 'hub' is already in use."
     
  4. Offline

    JordyPwner

  5. JordyPwner Your post doesn't say you knew it, and if you know it why are you posting here?
     
  6. Offline

    mbaxter ʇıʞʞnq ɐ sɐɥ ı

    You forgot to paste your code, but my guess is that you are using the main scoreboard which persists across restarts. This would mean that when your code adds the team in onEnable the next time onEnable is run the team 'hub' still exists from the last time. My advice is to always create a new scoreboard from the scoreboard manager when doing anything custom.



    Because he clearly doesn't understand why he's getting that error.
     
  7. Offline

    JordyPwner

    mbaxter woops here is my code (with 2 player joins (i was testing xd)

    Code:
    package me.jordypwner.aurumnetworkhub;
     
    import java.security.acl.Permission;
     
    import me.jordypwner.aurumnetworkhub.APIS.GhostFactory;
    import me.jordypwner.aurumnetworkhub.DoubleJump.DoubleJump;
    import me.jordypwner.aurumnetworkhub.GadgetShop.GadgetShop;
    import me.jordypwner.aurumnetworkhub.Gadgets.Pistol;
    import me.jordypwner.aurumnetworkhub.Gadgets.ShotGun;
    import me.jordypwner.aurumnetworkhub.LaunchPads.LaunchPads;
    import me.jordypwner.aurumnetworkhub.SpawnTp.SpawnTp;
    import net.milkbowl.vault.Vault;
    import net.milkbowl.vault.chat.Chat;
    import net.milkbowl.vault.economy.Economy;
     
    import org.anjocaido.groupmanager.GroupManager;
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.Material;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.player.PlayerJoinEvent;
    import org.bukkit.event.player.PlayerQuitEvent;
    import org.bukkit.inventory.ItemStack;
    import org.bukkit.inventory.meta.ItemMeta;
    import org.bukkit.plugin.PluginManager;
    import org.bukkit.plugin.RegisteredServiceProvider;
    import org.bukkit.plugin.java.JavaPlugin;
    import org.bukkit.potion.PotionEffect;
    import org.bukkit.potion.PotionEffectType;
    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 org.bukkit.scoreboard.Team;
     
    import TabList.TabList;
    import TeleportBow.TeleportBow;
    import VoidTp.VoidSpawn;
     
    public class Main extends JavaPlugin implements Listener{
     
    public GhostFactory ghostFactory;
     
     
    ScoreboardManager sbmanager =  Bukkit.getScoreboardManager();
     
    Scoreboard board = sbmanager.getMainScoreboard();
     
    Team team = board.registerNewTeam("hub");
     
     
        public static net.milkbowl.vault.permission.Permission permission = null;
        public static Economy economy = null;
        public static Chat chat = null;
     
        private boolean setupPermissions()
        {
            RegisteredServiceProvider<net.milkbowl.vault.permission.Permission> permissionProvider = getServer().getServicesManager().getRegistration(net.milkbowl.vault.permission.Permission.class);
            if (permissionProvider != null) {
                permission = permissionProvider.getProvider();
            }
            return (permission != null);
        }
     
        private boolean setupChat()
        {
            RegisteredServiceProvider<Chat> chatProvider = getServer().getServicesManager().getRegistration(net.milkbowl.vault.chat.Chat.class);
            if (chatProvider != null) {
                chat = chatProvider.getProvider();
            }
     
            return (chat != null);
        }
     
        private boolean setupEconomy()
        {
            RegisteredServiceProvider<Economy> economyProvider = getServer().getServicesManager().getRegistration(net.milkbowl.vault.economy.Economy.class);
            if (economyProvider != null) {
                economy = economyProvider.getProvider();
            }
     
            return (economy != null);
        }
      public void onEnable(){
     
      PluginManager pm = Bukkit.getServer().getPluginManager();
     
    pm.registerEvents(new VoidSpawn(), this);
     
    pm.registerEvents(new TeleportBow(), this);
     
    pm.registerEvents(new DoubleJump(), this);
     
    pm.registerEvents(new SpawnTp(), this);
     
    pm.registerEvents(new TabList(), this);
     
    pm.registerEvents(new LaunchPads(), this);
     
    pm.registerEvents(this, this);
     
    pm.registerEvents(new Pistol(), this);
    pm.registerEvents(new ShotGun(), this);
     
    pm.registerEvents(new GadgetShop(), this);
     
    ghostFactory = new GhostFactory(this);
     
      }
      
      @EventHandler
    public void onPlayerJoin(PlayerJoinEvent e){ 
    Player p = e.getPlayer();
    ghostFactory.setGhost(p, true);
    if(p.hasPermission("test.test")){
     
    p.addPotionEffect(new PotionEffect(PotionEffectType.SPEED, 1800000, 2));
     
       ItemStack GadgetShop = new ItemStack(Material.CHEST);
       ItemMeta GadgetShopMeta = GadgetShop.getItemMeta();
       GadgetShopMeta.setDisplayName(ChatColor.AQUA + "" + ChatColor.BOLD + "Gadgets");
       GadgetShop.setItemMeta(GadgetShopMeta);
    p.getInventory().setItem(6, GadgetShop);
     
    Objective objective = board.registerNewObjective("test", "dummy");
     
    objective.setDisplaySlot(DisplaySlot.SIDEBAR);
     
    objective.setDisplayName("§e§lAurum§b§lNetwork");
     
    Score blank = objective.getScore("");
    blank.setScore(15);
     
    Score name = objective.getScore("§aName");
    name.setScore(14);
    Score name2 = objective.getScore(ChatColor.RED + p.getName());
    name2.setScore(13);
     
    Score blank2 = objective.getScore("");
    blank2.setScore(12);
     
    Score rank = objective.getScore(ChatColor.GOLD + "Rank");
    rank.setScore(11);
     
     
    Score rank2 = objective.getScore(ChatColor.AQUA + "Default");
    rank2.setScore(10);
     
    p.setScoreboard(board);
     
    }
     
      }
      
    @EventHandler
    public void onPlayerJoin2(PlayerJoinEvent e2){
    Player p2 = e2.getPlayer();
     
    if(p2.hasPermission("test.test2")){
     
    Objective objective2 = board.registerNewObjective("test2", "dummy");
     
    objective2.setDisplaySlot(DisplaySlot.SIDEBAR);
     
    objective2.setDisplayName("§e§lAurum");
     
    Score blank2 = objective2.getScore("");
    blank2.setScore(15);
     
    }
    }
      @EventHandler
      public void onPlayerQuit(PlayerQuitEvent  e){
     Player p = e.getPlayer();
     if(ghostFactory.isGhost(p)){
     ghostFactory.setGhost(p, false);
     
     }
      }
      
      
     
      public void onDisable(){
     
          
      }
    }
     
  8. Offline

    mbaxter ʇıʞʞnq ɐ sɐɥ ı

    JordyPwner

    Yup, as I predicted. Create a new board instead of getting the main board :)
     
  9. Offline

    JordyPwner

    How? its my first time creating a scoreboard :p (i followed a tutorial on the forums here)
     
  10. Offline

    mbaxter ʇıʞʞnq ɐ sɐɥ ı

  11. Offline

    JordyPwner

  12. Offline

    mbaxter ʇıʞʞnq ɐ sɐɥ ı

    Spend some time reading the javadocs for scoreboard. It's highly descriptive.
     
  13. Offline

    JordyPwner

    I did -.-
     
Thread Status:
Not open for further replies.

Share This Page