Locking item in player's inventory. Help.

Discussion in 'Plugin Development' started by GazpachoYT, Mar 16, 2017.

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

    GazpachoYT

    Alright, Here's the deal. I'm trying to make it so a player cannot move this item, It works but when i click outside of the inventory it gives me this error:

    Code:
    [15:11:10] [Server thread/ERROR]: Could not pass event InventoryClickEvent to Verendus v1.3.0
    org.bukkit.event.EventException
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:302) ~[spigot-1.7.10-1.8-R0.1-1656.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95]
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[spigot-1.7.10-1.8-R0.1-1656.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95]
        at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:509) [spigot-1.7.10-1.8-R0.1-1656.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95]
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:494) [spigot-1.7.10-1.8-R0.1-1656.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95]
        at net.minecraft.server.v1_7_R4.PlayerConnection.a(PlayerConnection.java:1477) [spigot-1.7.10-1.8-R0.1-1656.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95]
        at net.minecraft.server.v1_7_R4.PacketPlayInWindowClick.a(PacketPlayInWindowClick.java:15) [spigot-1.7.10-1.8-R0.1-1656.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95]
        at net.minecraft.server.v1_7_R4.PacketPlayInWindowClick.handle(PacketPlayInWindowClick.java:65) [spigot-1.7.10-1.8-R0.1-1656.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95]
        at net.minecraft.server.v1_7_R4.NetworkManager.a(NetworkManager.java:186) [spigot-1.7.10-1.8-R0.1-1656.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95]
        at net.minecraft.server.v1_7_R4.ServerConnection.c(ServerConnection.java:81) [spigot-1.7.10-1.8-R0.1-1656.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95]
        at net.minecraft.server.v1_7_R4.MinecraftServer.v(MinecraftServer.java:734) [spigot-1.7.10-1.8-R0.1-1656.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95]
        at net.minecraft.server.v1_7_R4.DedicatedServer.v(DedicatedServer.java:289) [spigot-1.7.10-1.8-R0.1-1656.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95]
        at net.minecraft.server.v1_7_R4.MinecraftServer.u(MinecraftServer.java:584) [spigot-1.7.10-1.8-R0.1-1656.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95]
        at net.minecraft.server.v1_7_R4.MinecraftServer.run(MinecraftServer.java:490) [spigot-1.7.10-1.8-R0.1-1656.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95]
        at net.minecraft.server.v1_7_R4.ThreadServerApplication.run(SourceFile:628) [spigot-1.7.10-1.8-R0.1-1656.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95]
    Caused by: java.lang.NullPointerException
        at me.Gaz.Listeners.InvLock.LockInv(InvLock.java:12) ~[?:?]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_121]
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_121]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_121]
        at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_121]
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:298) ~[spigot-1.7.10-1.8-R0.1-1656.jar:git-Spigot-1.7.9-R0.2-208-ge0f2e95]
        ... 13 more

    Here's my code:

    Code:
    package me.Gaz.Listeners;
    
    import org.bukkit.Material;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.inventory.InventoryClickEvent;
    
    public class InvLock implements Listener {
    
        @EventHandler
        public void LockInv(InventoryClickEvent e) {
            if(e.getCurrentItem().getType() == Material.COMPASS) {
                e.setCancelled(true);
            }
        }
    
    }
    Fixed!


    Code:
    package me.Gaz.Listeners;
    
    import java.util.logging.Logger;
    
    import org.bukkit.Material;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.inventory.InventoryClickEvent;
    import org.bukkit.inventory.ItemStack;
    
    public class InvLock implements Listener {
        Logger log;
    
        @EventHandler
        public void LockInv(InventoryClickEvent e) {
            ItemStack clicked = e.getCurrentItem();
            Player p = (Player) e.getWhoClicked();
            if(clicked != null && clicked.getType() == Material.COMPASS) {
                e.setCancelled(true);
                return;
            }
        }
    
    }
    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Mar 16, 2017
  2. Offline

    Zombie_Striker

    @GazpachoYT
    If your problem has been solved, mark this thread as solved.
     
Thread Status:
Not open for further replies.

Share This Page