Plugin Help I need help, NullPointerException QUICK!

Discussion in 'Plugin Help/Development/Requests' started by SpeedPotion, Jun 5, 2015.

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

    SpeedPotion

    I'm getting a NullPointerException! Please help me



    SpeedPotion
     

    Attached Files:

  2. Offline

    pie_flavor

    @SpeedPotion First of all, glaring noob move: Don't ever log to console that your plugin is enabled. Bukkit does this automatically. Second, the item in their hand is null because they switched to an empty slot. Whenever you see a nullpointerexception, look at your code, try to figure out what could possibly be null, and check if it equals null.
     
  3. Offline

    SpeedPotion

    @pie_flavor Could you write a little line of code for me?
     
  4. Offline

    pie_flavor

    @SpeedPotion
    um ok
    Code:
    if (e.getPlayer().getItemInHand() != null) {
     
  5. Offline

    I Al Istannen

    @SpeedPotion And don't forget to check if the Item has an ItemMeta and has a Lore.
     
  6. Offline

    SpeedPotion

    @pie_flavor & @I Al Istannen

    This is my actual code

    Code:
    package me.SpeedPotion.events;import
    
    org.bukkit.Bukkit;import org.bukkit.ChatColor;import org.bukkit.entity.Player;import org.bukkit.event.EventHandler;import org.bukkit.event.Listener;import org.bukkit.event.player.PlayerItemHeldEvent;import org.bukkit.plugin.java.JavaPlugin;public class Main extends JavaPlugin implements Listener {
    
    public void onEnable() {
    Bukkit.getServer().getPluginManager().registerEvents(this, this);}
    
    @EventHandlerpublic void ItemHeld(PlayerItemHeldEvent e) {
    
    Player p = e.getPlayer(); if(p.getItemInHand().getItemMeta().getLore().contains(ChatColor.AQUA + "Special Item") && p.hasPermission("events.*"))
    p.sendMessage("Hey!"); else if (e.getPlayer().getItemInHand() != null) {
    }
    
    
    
    }
    
    public void onDisable(){
    }
    
    
    
    
    }

    And I still have an NullPointerException, could you guys fix it and a permisison called "event.*"
     
  7. @SpeedPotion Did the copy and paste mess your code up?!?!
    Also you need to do null checks on ItemMeta and lore.
     
  8. Offline

    SpeedPotion

    @bwfcwalshy
    It did.

    Is this correct?
    Code:
    package me.SpeedPotion.events;
    
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.player.PlayerItemHeldEvent;
    import org.bukkit.plugin.java.JavaPlugin;
    
    public class Main extends JavaPlugin implements Listener {
    
        public void onEnable() {
            Bukkit.getServer().getPluginManager().registerEvents(this, this);
    
        }
    
        @EventHandler
        public void ItemHeld(PlayerItemHeldEvent e) {
    
            Player p = e.getPlayer();
    
    
            if(p.getItemInHand().getItemMeta().getLore().contains(ChatColor.AQUA + "Special Item") && p.hasPermission("events.*"))
                p.sendMessage("Hey!");
    
            else
    
            if (e.getPlayer().getItemInHand() != null);
            if (e.getPlayer().getItemInHand().getItemMeta() !=null);
            if (e.getPlayer().getItemInHand().getItemMeta().getLore() != null);
    
    
    
            }
    
        public void onDisable(){
        }
    
    
    
    
    }
    

    Is this ok?
     
  9. Offline

    SpeedPotion

    @bwfcwalshy


    I will but I need this plugin done today, could you write the code, if you have time?!
     
  10. @SpeedPotion I am not going to do it for you, it will take you 3 minutes to look at the syntax and fix yours.
     
  11. Offline

    SpeedPotion

    @bwfcwalshy


    But whats wrong in line 24?




    Code:
    [12:40:22 ERROR]: Could not pass event PlayerItemHeldEvent to SimpleEvents v1.0
    org.bukkit.event.EventException
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:297) ~[Craftbukkit.jar:git-Bukkit-0a645a2]
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[Craftbukkit.jar:git-Bukkit-0a645a2]
        at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:501) [Craftbukkit.jar:git-Bukkit-0a645a2]
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:486) [Craftbukkit.jar:git-Bukkit-0a645a2]
        at net.minecraft.server.v1_8_R2.PlayerConnection.a(PlayerConnection.java:877) [Craftbukkit.jar:git-Bukkit-0a645a2]
        at net.minecraft.server.v1_8_R2.PacketPlayInHeldItemSlot.a(SourceFile:30) [Craftbukkit.jar:git-Bukkit-0a645a2]
        at net.minecraft.server.v1_8_R2.PacketPlayInHeldItemSlot.a(SourceFile:8) [Craftbukkit.jar:git-Bukkit-0a645a2]
        at net.minecraft.server.v1_8_R2.PlayerConnectionUtils$1.run(SourceFile:13) [Craftbukkit.jar:git-Bukkit-0a645a2]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_45]
        at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_45]
        at net.minecraft.server.v1_8_R2.SystemUtils.a(SourceFile:60) [Craftbukkit.jar:git-Bukkit-0a645a2]
        at net.minecraft.server.v1_8_R2.MinecraftServer.A(MinecraftServer.java:670) [Craftbukkit.jar:git-Bukkit-0a645a2]
        at net.minecraft.server.v1_8_R2.DedicatedServer.A(DedicatedServer.java:336) [Craftbukkit.jar:git-Bukkit-0a645a2]
        at net.minecraft.server.v1_8_R2.MinecraftServer.z(MinecraftServer.java:626) [Craftbukkit.jar:git-Bukkit-0a645a2]
        at net.minecraft.server.v1_8_R2.MinecraftServer.run(MinecraftServer.java:534) [Craftbukkit.jar:git-Bukkit-0a645a2]
        at java.lang.Thread.run(Thread.java:745) [?:1.8.0_45]
    Caused by: java.lang.NullPointerException
        at me.SpeedPotion.events.Main.ItemHeld(Main.java:24) ~[?:?]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_45]
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_45]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_45]
        at java.lang.reflect.Method.invoke(Method.java:497) ~[?:1.8.0_45]
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:295) ~[Craftbukkit.jar:git-Bukkit-0a645a2]
        ... 15 more
     
  12. @SpeedPotion
    Before using them.
     
  13. Offline

    SpeedPotion

  14. @SpeedPotion If you did it wouldn't null and in the code above you haven't.
     
  15. Offline

    SpeedPotion

    @pie_flavor
    @bwfcwalshy
    @I Al Istannen

    Code:
    package me.SpeedPotion.events;
    
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.player.PlayerItemHeldEvent;
    import org.bukkit.plugin.java.JavaPlugin;
    
    public class Main extends JavaPlugin implements Listener {
    
        public void onEnable() {
            Bukkit.getServer().getPluginManager().registerEvents(this, this);
    
        }
    
        @EventHandler
        public void ItemHeld(PlayerItemHeldEvent e) {
    
            Player p = e.getPlayer();
    
    
            if(p.getItemInHand().getItemMeta().getLore().contains(ChatColor.AQUA + "Special Item"))
                if(p.hasPermission("events.*"))
                    e.setCancelled(false);
    
    
            else {
            if (e.getPlayer().getItemInHand() != null)
            if (e.getPlayer().getItemInHand().getItemMeta() !=null)
            if (e.getPlayer().getItemInHand().getItemMeta().getLore() != null)
                e.setCancelled(true);
            }
    
    
    
        }
    
        public void onDisable(){
        }
    
    
    
    
    }
    

    Now?
     
    Last edited: Jun 6, 2015
Thread Status:
Not open for further replies.

Share This Page