Problem/Bug Help with a strange error

Discussion in 'Plugin Help/Development/Requests' started by WaveHD, Feb 28, 2015.

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

    WaveHD

    This is the error:

    The Error (open)

    Code:
    [18:51:10 ERROR]: Could not pass event PlayerInteractEvent to LobbyFun v1.0
    org.bukkit.event.EventException
    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:302) ~[spigot.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95]
    at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[spigot.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95]
    at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:509) [spigot.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95]
    at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:494) [spigot.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95]
    at org.bukkit.craftbukkit.v1_7_R4.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:242) [spigot.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95]
    at org.bukkit.craftbukkit.v1_7_R4.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:212) [spigot.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95]
    at net.minecraft.server.v1_7_R4.PlayerConnection.a(PlayerConnection.java:1082) [spigot.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95]
    at net.minecraft.server.v1_7_R4.PacketPlayInArmAnimation.a(PacketPlayInArmAnimation.java:28) [spigot.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95]
    at net.minecraft.server.v1_7_R4.PacketPlayInArmAnimation.handle(PacketPlayInArmAnimation.java:40) [spigot.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95]
    at net.minecraft.server.v1_7_R4.NetworkManager.a(NetworkManager.java:186) [spigot.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95]
    at net.minecraft.server.v1_7_R4.ServerConnection.c(ServerConnection.java:81) [spigot.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95]
    at net.minecraft.server.v1_7_R4.MinecraftServer.v(MinecraftServer.java:734) [spigot.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95]
    at net.minecraft.server.v1_7_R4.DedicatedServer.v(DedicatedServer.java:289) [spigot.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95]
    at net.minecraft.server.v1_7_R4.MinecraftServer.u(MinecraftServer.java:584) [spigot.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95]
    at net.minecraft.server.v1_7_R4.MinecraftServer.run(MinecraftServer.java:490) [spigot.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95]
    at net.minecraft.server.v1_7_R4.ThreadServerApplication.run(SourceFile:628) [spigot.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95]
    Caused by: java.lang.NullPointerException
    at it.WP.Link.FunBalls.onPlayerInteract(FunBalls.java:110) ~[?:?]
    at sun.reflect.GeneratedMethodAccessor641.invoke(Unknown Source) ~[?:?]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.7.0_71]
    at java.lang.reflect.Method.invoke(Method.java:606) ~[?:1.7.0_71]
    at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:298) ~[spigot.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95]
    ... 15 more


    And this is the part of the class:

    Tha Part (open)

    Code:
    BukkitScheduler scheduler = Bukkit.getServer().getScheduler();
        @SuppressWarnings("deprecation")
        @EventHandler
        public void onPlayerInteract(PlayerInteractEvent e) {
            ItemStack item = e.getItem();
            ItemMeta itemmeta = (ItemMeta)item.getItemMeta();
            Player p = e.getPlayer();
            if(this.config.getBoolean("FunBalls.Enabled")) {
            if(itemmeta.hasDisplayName()) {
                if(itemmeta.getDisplayName().equals(ChatColor.translateAlternateColorCodes('&', this.config.getString("FunBalls.Name"))) && item.getTypeId() == this.config.getInt("FunBalls.ID")) {
                    Action a = e.getAction();
                    if(a == Action.RIGHT_CLICK_AIR || a == Action.RIGHT_CLICK_BLOCK) {
                      if(!this.launchers.contains(p)) {
                        this.launchers.add(p);
                        final Location loc = p.getLocation();
                        final EnderPearl ep = p.launchProjectile(EnderPearl.class);
                        ep.setVelocity(loc.getDirection().multiply(2.0F));
                        ep.setFireTicks(1000);
                        this.task = scheduler.scheduleSyncRepeatingTask(this.plugin, new Runnable() {
                            public void run() {
                                ParticleEffect.FLAME.display(ep.getLocation(), 16.0F, 0, 0, 0, 0.01F, 3);
                            }
                        }, 0L, 0L);
                      }
                    }
                      e.setCancelled(true);
                }
            }
            }
        }


    Thanks in advance
     
    Last edited: Feb 28, 2015
  2. Offline

    pie_flavor

    @WaveHD I was going to insist that you either provide the entire class or point out which line was line 110, but that's not necessary right now, I see the problem instantly.
    There's not always an item. A player may have punched, or right clicked, with an empty hand. Furthermore, InteractEvent covers pressure plates as well, so they might not have even clicked.
    Code:java
    1. if (!e.getItem().equals(null))
     
  3. Offline

    WaveHD

    Thanks!

    The line of the problem is on
    Code:java
    1. ItemMeta itemmeta = (ItemMeta)item.getItemMeta();


    Now I try to do what you told me
     
  4. Offline

    pie_flavor

    @WaveHD Yeah, so just check if (item.equals(null)) first.
     
  5. Offline

    WaveHD

    Ok, ALL SOLVED
    Thanks a Lot! :)
     
Thread Status:
Not open for further replies.

Share This Page