PlayerInventoryListener Question - amount of an ItemStack in a Inventory

Discussion in 'Plugin Development' started by Dragon252525, May 1, 2012.

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

    Dragon252525

    I need a PlayerListener that issues the amount of a specific ItemStack in a player's inventory.If a specific number is present something should happen. Can someone please give the code for it? I don't understand how listeners works.Thanks
     
  2. Offline

    VeryBIgCorp

    Spaces are handy.
     
    dsmyth1915 likes this.
  3. Offline

    Dragon252525

    sorry,
    I think there was a problem with the texteditor. I'm sure that I wrote the spaces
     
  4. Offline

    Kierrow

    If you "don't understand how listeners work", please, take the time to read a tutorial on how to get started with Bukkit before asking on the forums...
     
  5. Offline

    Dragon252525

    Ok I read the TuT.
    (Last time I was on the PluginDevelopmentSite there was no translation of the eventSystem into german; I'm not realy good in reading enlish tutorials)

    Now I made this Code:

    Code:
    package me.dragon252525.speedmining;
     
    import org.bukkit.ChatColor;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.player.PlayerPickupItemEvent;
    import org.bukkit.inventory.ItemStack;
     
    public class SpeedMiningPlayerListener implements Listener {
        public static SpeedMining plugin;
       
        @EventHandler
        public void onPlayerGetItem(PlayerPickupItemEvent event) {
           
            Player p = event.getPlayer();
           
            String selected = plugin.getConfig().getString("Tools.selected");
           
            int amount = plugin.getConfig().getInt("Games." + selected + ".options.amount");
            String itemName = plugin.getConfig().getString("Games." + selected + ".options.itemName");
           
            String p1 = plugin.getConfig().getString("Games." + selected + ".players.1");
            String p2 = plugin.getConfig().getString("Games." + selected + ".players.2");
            String p3 = plugin.getConfig().getString("Games." + selected + ".players.3");
            String p4 = plugin.getConfig().getString("Games." + selected + ".players.4");
            String p5 = plugin.getConfig().getString("Games." + selected + ".players.5");
            String p6 = plugin.getConfig().getString("Games." + selected + ".players.6");
            String p7 = plugin.getConfig().getString("Games." + selected + ".players.7");
            String p8 = plugin.getConfig().getString("Games." + selected + ".players.8");
           
            if (    (p.getName().equalsIgnoreCase(p1)) ||
                    (p.getName().equalsIgnoreCase(p2)) ||
                    (p.getName().equalsIgnoreCase(p3)) ||
                    (p.getName().equalsIgnoreCase(p4)) ||
                    (p.getName().equalsIgnoreCase(p5)) ||
                    (p.getName().equalsIgnoreCase(p6)) ||
                    (p.getName().equalsIgnoreCase(p7)) ||
                    (p.getName().equalsIgnoreCase(p8))) {
               
                if (p.getInventory().contains(new ItemStack(264, amount))) {
                    plugin.getServer().broadcastMessage(ChatColor.BLUE + "" + ChatColor.BOLD + p.getName() + " hat alle " + amount + " " + itemName + " gefunden!");
                    return;
                }
                else {
                    return;
                }
               
            }
            else {
                return;
            }
           
        }
    }
    but when I pick up an item, the Server shows me this error:
    Code:
    2012-05-01 20:46:15 [SEVERE] Could not pass event PlayerPickupItemEvent to SpeedMining
    org.bukkit.event.EventException
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:303)
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62)
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:459)
        at net.minecraft.server.EntityItem.a_(EntityItem.java:150)
        at net.minecraft.server.EntityHuman.l(EntityHuman.java:354)
        at net.minecraft.server.EntityHuman.e(EntityHuman.java:346)
        at net.minecraft.server.EntityLiving.F_(EntityLiving.java:447)
        at net.minecraft.server.EntityHuman.F_(EntityHuman.java:159)
        at net.minecraft.server.EntityPlayer.a(EntityPlayer.java:228)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:341)
        at net.minecraft.server.Packet10Flying.handle(SourceFile:126)
        at net.minecraft.server.NetworkManager.b(NetworkManager.java:229)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:113)
        at net.minecraft.server.NetworkListenThread.a(NetworkListenThread.java:78)
        at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:551)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:449)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:492)
    Caused by: java.lang.NullPointerException
        at me.dragon252525.speedmining.SpeedMiningPlayerListener.onPlayerGetItem(SpeedMiningPlayerListener.java:23)
        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:301)
        ... 16 more
    where's the Problem?

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 25, 2016
Thread Status:
Not open for further replies.

Share This Page