Error when armor not specified in config

Discussion in 'Plugin Development' started by slater96, Sep 18, 2012.

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

    slater96

    This is my code:
    Code:
        @SuppressWarnings("deprecation")
        public void giveArmor(Player p, Block b) {
            Sign sign = (Sign) b.getState();
            String two = ChatColor.stripColor(sign.getLine(1));
            String[] armor = plugin.getConfig().getString("Classes." + two + ".Armor").split(",");
            if (armor != null) {
                if (Integer.parseInt(armor[0]) != 0) {
                    p.getInventory().setHelmet(new ItemStack(Integer.parseInt(armor[0]), 1));
                    p.updateInventory();
                }
                if (Integer.parseInt(armor[1]) != 0) {
                    p.getInventory().setChestplate(new ItemStack(Integer.parseInt(armor[1]), 1));
                    p.updateInventory();
                }
                if (Integer.parseInt(armor[2]) != 0) {
                    p.getInventory().setLeggings(new ItemStack(Integer.parseInt(armor[2]), 1));
                    p.updateInventory();
                }
                if (Integer.parseInt(armor[3]) != 0) {
                    p.getInventory().setBoots(new ItemStack(Integer.parseInt(armor[3]), 1));
                    p.updateInventory();
                }
            }
        }
    If armor is not in the config then it gives me this error:
    Code:
    org.bukkit.event.EventException
    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:332)
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
    at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:477)
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:462)
    at org.bukkit.craftbukkit.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:177)
    at net.minecraft.server.ItemInWorldManager.interact(ItemInWorldManager.java:355)
    at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:650)
    at net.minecraft.server.Packet15Place.handle(SourceFile:58)
    at net.minecraft.server.NetworkManager.b(NetworkManager.java:276)
    at net.minecraft.server.NetServerHandler.d(NetServerHandler.java:109)
    at net.minecraft.server.ServerConnection.b(SourceFile:35)
    at net.minecraft.server.DedicatedServerConnection.b(SourceFile:30)
    at net.minecraft.server.MinecraftServer.q(MinecraftServer.java:578)
    at net.minecraft.server.DedicatedServer.q(DedicatedServer.java:213)
    at net.minecraft.server.MinecraftServer.p(MinecraftServer.java:474)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:406)
    at net.minecraft.server.ThreadServerApplication.run(SourceFile:539)
    Caused by: java.lang.NullPointerException
    at me.slater96.MinecraftWars.Classes.giveArmor(Classes.java:206)
    at me.slater96.MinecraftWars.Classes.onSignInteract(Classes.java:131)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:330)
    ... 16 more
    I've done if (armor != null) { however I still get the error :(
    It's this line: String[] armor = plugin.getConfig().getString("Classes." + two + ".Armor").split(",");
    Anyone know how to stop or fix this?
    Thanks
     
  2. Offline

    sd5

    The getString(...) throws the NullPointerException because the path in the config doesn't exist.
    Add a default value to your getString(...), then the plugin will use that when it can't find the path.
     
  3. Offline

    Taco

    Is this the line you've posted?

    me.slater96.MinecraftWars.Classes.giveArmor(Classes.java:206)

    Edit: Derp. I think sd5 is right. I have the dumb today.
     
Thread Status:
Not open for further replies.

Share This Page