Solved Null MaterialData problem

Discussion in 'Plugin Development' started by kreashenz, Dec 3, 2013.

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

    kreashenz

    Hey everyone, I have a weird problem that is giving me and NPE while trying to retrieve random items from a List<ItemStack>.

    Code:java
    1. private void giveItems(Player p, String group){
    2. Random rnd = new Random();
    3. int i = rnd.nextInt(plugin.getItems(group).size());
    4. int amount = rnd.nextInt(64);
    5.  
    6. p.sendMessage("i = " + i + " | amount = " + amount);
    7.  
    8. MaterialData md = ItemManager.getItems().get(i); // This is null.
    9.  
    10. p.sendMessage("" + md);
    11.  
    12. ItemStack item = md.toItemStack(amount);
    13.  
    14. p.sendMessage("itemStack : " + item);
    15.  
    16. if(item != null){
    17. p.getInventory().addItem(item);
    18. }
    19. p.sendMessage("§7You got a §6" + item.getType() + "§7(§6" + amount + "§7)");
    20. }


    Where 'MaterialData md = ItemManager.getItems().get(i);' is, it drags an NPE to the next line which is 'ItemStack item = md.toItemStack(amount);'
    This is how it prints out the debugs
    [​IMG]

    Stacktrace:
    Code:
    [SEVERE] Could not pass event PlayerInteractEvent to SignG v1.0
    org.bukkit.event.EventException
     at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:427)
     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.v1_6_R3.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:190)
     at net.minecraft.server.v1_6_R3.PlayerInteractManager.interact(PlayerInteractManager.java:373)
     at net.minecraft.server.v1_6_R3.PlayerConnection.a(PlayerConnection.java:630)
     at net.minecraft.server.v1_6_R3.Packet15Place.handle(SourceFile:58)
     at net.minecraft.server.v1_6_R3.NetworkManager.b(NetworkManager.java:296)
     at net.minecraft.server.v1_6_R3.PlayerConnection.e(PlayerConnection.java:116)
     at net.minecraft.server.v1_6_R3.ServerConnection.b(SourceFile:37)
     at net.minecraft.server.v1_6_R3.DedicatedServerConnection.b(SourceFile:30)
     at net.minecraft.server.v1_6_R3.MinecraftServer.t(MinecraftServer.java:592)
     at net.minecraft.server.v1_6_R3.DedicatedServer.t(DedicatedServer.java:227)
     at net.minecraft.server.v1_6_R3.MinecraftServer.s(MinecraftServer.java:488)
     at net.minecraft.server.v1_6_R3.MinecraftServer.run(MinecraftServer.java:421)
     at net.minecraft.server.v1_6_R3.ThreadServerApplication.run(SourceFile:583)
    Caused by: java.lang.NullPointerException
     at me.kreashenz.signg.SignListener.giveItems(SignListener.java:59)
     at me.kreashenz.signg.SignListener.onPlayerInteract(SignListener.java:34)
     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:425)
     ... 16 more
     
    Minecrell likes this.
Thread Status:
Not open for further replies.

Share This Page