NullPointerExeption

Discussion in 'Plugin Development' started by DiamGamingWTF, Mar 18, 2014.

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

    DiamGamingWTF

    Whenever I have an item held with my cursor within the crafting screen and throw it outside of the crafting menu (Dropping the item on the floor) It shows up with this error:

    Code:
    [20:27:58] [Server thread/ERROR]: Could not pass event InventoryClickEvent to SurvivalServer v1.045
    org.bukkit.event.EventException
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:294) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3023jnks]
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3023jnks]
        at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:501) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3023jnks]
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:486) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3023jnks]
        at net.minecraft.server.v1_7_R1.PlayerConnection.a(PlayerConnection.java:1361) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3023jnks]
        at net.minecraft.server.v1_7_R1.PacketPlayInWindowClick.a(SourceFile:32) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3023jnks]
        at net.minecraft.server.v1_7_R1.PacketPlayInWindowClick.handle(SourceFile:10) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3023jnks]
        at net.minecraft.server.v1_7_R1.NetworkManager.a(NetworkManager.java:146) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3023jnks]
        at net.minecraft.server.v1_7_R1.ServerConnection.c(SourceFile:134) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3023jnks]
        at net.minecraft.server.v1_7_R1.MinecraftServer.u(MinecraftServer.java:655) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3023jnks]
        at net.minecraft.server.v1_7_R1.DedicatedServer.u(DedicatedServer.java:250) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3023jnks]
        at net.minecraft.server.v1_7_R1.MinecraftServer.t(MinecraftServer.java:545) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3023jnks]
        at net.minecraft.server.v1_7_R1.MinecraftServer.run(MinecraftServer.java:457) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3023jnks]
        at net.minecraft.server.v1_7_R1.ThreadServerApplication.run(SourceFile:617) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3023jnks]
    Caused by: java.lang.NullPointerException
        at me.DiamGamingWTF.SS.ToolCrafting.WoodTools.onInteract(WoodTools.java:45) ~[?:?]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.7.0_40]
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_40]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.7.0_40]
        at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.7.0_40]
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:292) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3023jnks]
        ... 13 more
    
    This is the code I am currently using;

    Code:java
    1.  
    2.  
    3.  
    4. import org.bukkit.ChatColor;
    5. import org.bukkit.Material;
    6. import org.bukkit.enchantments.Enchantment;
    7. import org.bukkit.event.EventHandler;
    8. import org.bukkit.event.Listener;
    9. import org.bukkit.event.inventory.InventoryClickEvent;
    10. import org.bukkit.event.inventory.PrepareItemCraftEvent;
    11. import org.bukkit.inventory.ItemStack;
    12. import org.bukkit.inventory.meta.ItemMeta;
    13.  
    14. public class WoodTools implements Listener {
    15.  
    16. @EventHandler
    17. public void onCraft(PrepareItemCraftEvent event){
    18.  
    19. if(event.getInventory().getResult().getType() == Material.WOOD_PICKAXE){
    20. ItemStack WoodPickaxe = new ItemStack(Material.WOOD_PICKAXE, 1);
    21. ItemMeta i = WoodPickaxe.getItemMeta();
    22. i.setDisplayName(ChatColor.GOLD + "Wooden Pickaxe");
    23. WoodPickaxe.setItemMeta(i);
    24. WoodPickaxe.addUnsafeEnchantment(Enchantment.DURABILITY, 1);
    25.  
    26. event.getInventory().setResult(WoodPickaxe);
    27. return;
    28. }
    29. }
    30.  
    31. @EventHandler
    32. public void onInteract(final InventoryClickEvent e) {
    33. ItemStack WoodPickaxe = new ItemStack(Material.WOOD_PICKAXE, 1);
    34. ItemMeta i = WoodPickaxe.getItemMeta();
    35. i.setDisplayName(ChatColor.GOLD + "Wooden Pickaxe");
    36. WoodPickaxe.setItemMeta(i);
    37. WoodPickaxe.addUnsafeEnchantment(Enchantment.DURABILITY, 1);
    38.  
    39. final ItemStack WoodPickaxe2 = new ItemStack(Material.STONE_AXE, 1);
    40.  
    41. if (e.getCursor() == null) {
    42. return;
    43. }
    44.  
    45. if (e.getCurrentItem().equals(WoodPickaxe)) {
    46. e.setCurrentItem(WoodPickaxe2);
    47. return;
    48. }
    49. }
    50.  
    51. }
    52.  


    I have tried checking if the item quantity in the cursor was 0 DIDNT WORK
    I have tried checking if the item is null DIDNT WORK
    I have tried setting the item to null.. Just changes all items to null when i click something..

    Please help me, thank you for reading this :p


    PS. The code works fine.. it just shows up with the null pointer when clicking outside the Crafting GUI
     
  2. e.getCurrentItem() will return null, you can prevent this with a null check. Also, learn to read stacktraces ;)
     
  3. Offline

    DiamGamingWTF

    Sgt_Tailor
    Yea.. i suck at stacktraces.. and I have no idea how to perform a null check because I don't regularly get NullPointers :p
     
  4. this should do the trick :)
    if(e.getCurrentItem() != null && e.getCurrentItem().equals(WoodPickaxe)){

    }
     
Thread Status:
Not open for further replies.

Share This Page