Getting what the player clicks in there inventory?

Discussion in 'Plugin Development' started by minezbot, Mar 10, 2013.

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

    minezbot

    I want to have it so when a player clicks with paper it opens a 9 slow chest with items in it. i know how to do this part but i want it so if the player click a wood hoe called "Survival!" it will do what code i put to do what i need it to?
    How would i do this? what is the code?
     
  2. Offline

    skipperguy12

    You need to be more descriptive.

    What i'm understanding from this is that you want to open some code if they have a hoe with the name of Survival, yes?

    if so:
    Code:
    ItemStack i = e.getPlayer().getItemInHand();
            ItemMeta meta = i.getItemMeta();
            String name = meta.getDisplayName();
            if (name != null && name.equalsIgnoreCase(name.equalsIgnoreCase("Survival")) {
        if(i.getType().equals(Material.WOOD_HOE)){
    //Your Code here
    }
    }
     
  3. Offline

    minezbot

    No what i want is that on a command it opens a small chest like thing. in that chest is a wood hoe with the title "Survival!". If they pick up that item it will do the code that i put
     
  4. Offline

    GodzOfMadness

    minezbot

    Code:
    Player player = (Player) sender;
                    Inventory inv = Bukkit.createInventory(null, 9, "NameOfInventory");
                    ItemStack is = new ItemStack(Material.WOOD_HOE, 1);
                    ItemMeta im = is.getItemMeta();
                    im.setDisplayName("Survival!");
                    is.setItemMeta(im);
                    inv.addItem(is);
                    player.openInventory(inv);
     
  5. Offline

    minezbot

    yes i have this but when they pull the wood hoe out of the chest i want it to close that and run some code depending on what the item is?
     
  6. Offline

    GodzOfMadness

    minezbot
    Code:
        @EventHandler
        public void onPlayerClick(InventoryClickEvent event){
            if(event.getInventory().equals(inv)){
                ItemStack is = event.getCursor();
                ItemMeta im = is.getItemMeta();
                if(im.getDisplayName() != null && im.getDisplayName().equalsIgnoreCase("Survival!")){
                    //execute code here
                }
            }
        }
    minezbot
    that code didn't work(felt like trying it out)
    but here is tested code that does work
    Code:
        @EventHandler
        public void onPlayerClick(InventoryClickEvent event){
            if(event.getInventory().getName().equals(inv.getName())){
                ItemStack is = event.getCurrentItem();
                ItemMeta im = is.getItemMeta();
                if(im.getDisplayName() != null && im.getDisplayName().equalsIgnoreCase("Survival!")){
                    //execute code here
                }
            }
        }
    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 31, 2016
  7. Offline

    iWareWolf

    GodzOfMadness
    Should check if items has itemmeta or else you will run into NPE
     
  8. Offline

    GodzOfMadness

    iWareWolf very true but this is just example code showing how it works that is his job to make it safe as possible :p
     
  9. Offline

    minezbot

    This works well and dose kind of what i need it to but i have to pick up the item and put it back down, i just want it so when the player picks it up it dose what i need and it keeps droping the item when i pick it up
     
  10. Offline

    GodzOfMadness

    minezbot try event.setCancelled(true);
     
  11. Offline

    minezbot

    no this dose not work?
     
  12. Offline

    GodzOfMadness

    minezbot you use that to cancel them from taking the item out
     
  13. Offline

    minezbot

    yes it is still not working
     
  14. Offline

    GodzOfMadness

  15. Offline

    minezbot

    Code:
    @EventHandler(priority=EventPriority.HIGH)
        public void Spawn(PlayerInteractEvent event){
            Player player = event.getPlayer();
            if(player.getLocation().getWorld().getName().equalsIgnoreCase("spawnworld")){
                if(player.getItemInHand().getType() == Material.PAPER){
                    List<String> is = new ArrayList<String>();
                    is.add(ChatColor.BLUE + "Click to go to here.");
                    Inventory inv = Bukkit.createInventory(null, 9, "Portal");
                    player.openInventory((Inventory) inv);
                    inv.addItem(setName(new ItemStack(Material.WOOD_HOE), ChatColor.GREEN+"Survival!", is));
                    inv.addItem(setName(new ItemStack(Material.BRICK), ChatColor.AQUA+"Creative!", is));
                    inv.addItem(setName(new ItemStack(Material.IRON_SWORD), ChatColor.DARK_RED+"MehPVP!", is));
                    inv.addItem(setName(new ItemStack(Material.SNOW_BALL), ChatColor.LIGHT_PURPLE+"MehGames Lobby!", is));
                    inv.addItem(setName(new ItemStack(Material.CACTUS), ChatColor.GOLD+"Parkour!", is));
                    inv.addItem(setName(new ItemStack(Material.BOW), ChatColor.BLUE+"Survival Games!", is));
                    inv.addItem(setName(new ItemStack(Material.SAPLING), ChatColor.WHITE+"Sky Block!", is));
                    inv.addItem(setName(new ItemStack(Material.DIAMOND), ChatColor.RED+"Coming soon!", is));
                    inv.addItem(setName(new ItemStack(Material.DIAMOND), ChatColor.RED+"Coming soon!", is));
                }
            }
        }
        @EventHandler(priority=EventPriority.HIGH)
        public void Click(InventoryClickEvent event){
                ItemStack is = event.getCursor();
                ItemMeta im = is.getItemMeta();
                if(im.getDisplayName().contains("Survival!")){
                    event.setCancelled(true);
                    Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "warp survival " + event.getWhoClicked().getName());
                    event.getWhoClicked().closeInventory();
                }else{
                    if(im.getDisplayName().contains("Creative!")){
                        event.setCancelled(true);
                        Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "warp creative " + event.getWhoClicked().getName());
                        event.getWhoClicked().closeInventory();
                    }else{
                        if(im.getDisplayName().contains("MehPVP!")){
                            event.setCancelled(true);
                            event.getWhoClicked().closeInventory();
                        }else{
                            if(im.getDisplayName().contains("MehGames Lobby!")){
                                event.setCancelled(true);
                                Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "warp mehgames " + event.getWhoClicked().getName());
                                event.getWhoClicked().closeInventory();
                            }else{
                                if(im.getDisplayName().contains("Parkour!")){
                                    event.setCancelled(true);
                                    Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "warp parkour " + event.getWhoClicked().getName());
                                    event.getWhoClicked().closeInventory();
                                }else{
                                    if(im.getDisplayName().contains("Survival Games!")){
                                        event.setCancelled(true);
                                        Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "warp sg " + event.getWhoClicked().getName());
                                        event.getWhoClicked().closeInventory();
                                    }else{
                                        if(im.getDisplayName().contains("Sky Block!")){
                                            event.setCancelled(true);
                                            Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "warp skyblock " + event.getWhoClicked().getName());
                                            event.getWhoClicked().closeInventory();
                                        }else{
                                            if(im.getDisplayName().contains("Coming soon!")){
                                                event.setCancelled(true);
                                                event.getWhoClicked().closeInventory();
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
        }
        private ItemStack setName(ItemStack is, String name, List<String> lore){
            ItemMeta im = is.getItemMeta();
            if(name != null)
                im.setDisplayName(name);
            if(lore != null)
                im.setLore(lore);
            is.setItemMeta(im);
            return is;
        }
    }
     
  16. Offline

    GodzOfMadness

    minezbot
    Code:
        @EventHandler(priority=EventPriority.HIGH)
        public void Spawn(PlayerInteractEvent event){
            Player player = event.getPlayer();
            if(player.getLocation().getWorld().getName().equalsIgnoreCase("spawnworld")){
                if(player.getItemInHand().getType() == Material.PAPER){
                    List<String> is = new ArrayList<String>();
                    is.add(ChatColor.BLUE + "Click to go to here.");
                    Inventory inv = Bukkit.createInventory(null, 9, "Portal");
                    inv.addItem(setName(new ItemStack(Material.WOOD_HOE), ChatColor.GREEN+"Survival!", is));
                    inv.addItem(setName(new ItemStack(Material.BRICK), ChatColor.AQUA+"Creative!", is));
                    inv.addItem(setName(new ItemStack(Material.IRON_SWORD), ChatColor.DARK_RED+"MehPVP!", is));
                    inv.addItem(setName(new ItemStack(Material.SNOW_BALL), ChatColor.LIGHT_PURPLE+"MehGames Lobby!", is));
                    inv.addItem(setName(new ItemStack(Material.CACTUS), ChatColor.GOLD+"Parkour!", is));
                    inv.addItem(setName(new ItemStack(Material.BOW), ChatColor.BLUE+"Survival Games!", is));
                    inv.addItem(setName(new ItemStack(Material.SAPLING), ChatColor.WHITE+"Sky Block!", is));
                    inv.addItem(setName(new ItemStack(Material.DIAMOND), ChatColor.RED+"Coming soon!", is));
                    inv.addItem(setName(new ItemStack(Material.DIAMOND), ChatColor.RED+"Coming soon!", is));
                    player.openInventory(inv);
                }
            }
        }
        @EventHandler(priority=EventPriority.HIGH)
        public void Click(InventoryClickEvent event){
                ItemStack is = event.getCurrentItem();
                ItemMeta im = is.getItemMeta();
                if(im.getDisplayName().contains("Survival!")){
                    event.setCancelled(true);
                    Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "warp survival " + event.getWhoClicked().getName());
                    event.getWhoClicked().closeInventory();
                }else{
                    if(im.getDisplayName().contains("Creative!")){
                        event.setCancelled(true);
                        Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "warp creative " + event.getWhoClicked().getName());
                        event.getWhoClicked().closeInventory();
                    }else{
                        if(im.getDisplayName().contains("MehPVP!")){
                            event.setCancelled(true);
                            event.getWhoClicked().closeInventory();
                        }else{
                            if(im.getDisplayName().contains("MehGames Lobby!")){
                                event.setCancelled(true);
                                Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "warp mehgames " + event.getWhoClicked().getName());
                                event.getWhoClicked().closeInventory();
                            }else{
                                if(im.getDisplayName().contains("Parkour!")){
                                    event.setCancelled(true);
                                    Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "warp parkour " + event.getWhoClicked().getName());
                                    event.getWhoClicked().closeInventory();
                                }else{
                                    if(im.getDisplayName().contains("Survival Games!")){
                                        event.setCancelled(true);
                                        Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "warp sg " + event.getWhoClicked().getName());
                                        event.getWhoClicked().closeInventory();
                                    }else{
                                        if(im.getDisplayName().contains("Sky Block!")){
                                            event.setCancelled(true);
                                            Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "warp skyblock " + event.getWhoClicked().getName());
                                            event.getWhoClicked().closeInventory();
                                        }else{
                                            if(im.getDisplayName().contains("Coming soon!")){
                                                event.setCancelled(true);
                                                event.getWhoClicked().closeInventory();
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
        }
        private ItemStack setName(ItemStack is, String name, List<String> lore){
            ItemMeta im = is.getItemMeta();
            if(name != null)
                im.setDisplayName(name);
            if(lore != null)
                im.setLore(lore);
            is.setItemMeta(im);
            return is;
        }
     
  17. Offline

    minezbot

    Still i have to pick it up and put it back?
     
  18. Offline

    GodzOfMadness

    minezbot what do you mean? setCancelled should do so already
     
  19. Offline

    minezbot

    event.setCancelled(true); is not stoping you from picking it up
     
  20. Offline

    GodzOfMadness

    minezbot i tested the code and tweaked it a bit and it DOES work here it is:
    Code:
        @EventHandler(priority=EventPriority.HIGH)
        public void Spawn(PlayerInteractEvent event){
            Player player = event.getPlayer();
            if(player.getLocation().getWorld().getName().equalsIgnoreCase("world")){
                if(player.getItemInHand().getType() == Material.PAPER){
                    ArrayList<String> is = new ArrayList<String>();
                    is.add(ChatColor.BLUE + "Click to go to here.");
                    Inventory inv = Bukkit.createInventory(null, 9, "Portal");
                    inv.addItem(setName(new ItemStack(Material.WOOD_HOE), ChatColor.GREEN+"Survival!", is));
                    inv.addItem(setName(new ItemStack(Material.BRICK), ChatColor.AQUA+"Creative!", is));
                    inv.addItem(setName(new ItemStack(Material.IRON_SWORD), ChatColor.DARK_RED+"MehPVP!", is));
                    inv.addItem(setName(new ItemStack(Material.SNOW_BALL), ChatColor.LIGHT_PURPLE+"MehGames Lobby!", is));
                    inv.addItem(setName(new ItemStack(Material.CACTUS), ChatColor.GOLD+"Parkour!", is));
                    inv.addItem(setName(new ItemStack(Material.BOW), ChatColor.BLUE+"Survival Games!", is));
                    inv.addItem(setName(new ItemStack(Material.SAPLING), ChatColor.WHITE+"Sky Block!", is));
                    inv.addItem(setName(new ItemStack(Material.DIAMOND), ChatColor.RED+"Coming soon!", is));
                    inv.addItem(setName(new ItemStack(Material.DIAMOND), ChatColor.RED+"Coming soon!", is));
                    player.openInventory(inv);
                }
            }
        }
        @EventHandler(priority=EventPriority.HIGH)
        public void Click(InventoryClickEvent event){
                ItemStack is = event.getCurrentItem();
                ItemMeta im = is.getItemMeta();
                if(im.getDisplayName().contains("Survival!")){
                    event.setCancelled(true);
                    Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "warp survival " + event.getWhoClicked().getName());
                    event.getWhoClicked().closeInventory();
                }else{
                    if(im.getDisplayName().contains("Creative!")){
                        event.setCancelled(true);
                        Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "warp creative " + event.getWhoClicked().getName());
                        event.getWhoClicked().closeInventory();
                    }else{
                        if(im.getDisplayName().contains("MehPVP!")){
                            event.setCancelled(true);
                            event.getWhoClicked().closeInventory();
                        }else{
                            if(im.getDisplayName().contains("MehGames Lobby!")){
                                event.setCancelled(true);
                                Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "warp mehgames " + event.getWhoClicked().getName());
                                event.getWhoClicked().closeInventory();
                            }else{
                                if(im.getDisplayName().contains("Parkour!")){
                                    event.setCancelled(true);
                                    Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "warp parkour " + event.getWhoClicked().getName());
                                    event.getWhoClicked().closeInventory();
                                }else{
                                    if(im.getDisplayName().contains("Survival Games!")){
                                        event.setCancelled(true);
                                        Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "warp sg " + event.getWhoClicked().getName());
                                        event.getWhoClicked().closeInventory();
                                    }else{
                                        if(im.getDisplayName().contains("Sky Block!")){
                                            event.setCancelled(true);
                                            Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "warp skyblock " + event.getWhoClicked().getName());
                                            event.getWhoClicked().closeInventory();
                                        }else{
                                            if(im.getDisplayName().contains("Coming soon!")){
                                                event.setCancelled(true);
                                                event.getWhoClicked().closeInventory();
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
        }
        private ItemStack setName(ItemStack is, String name, ArrayList<String> lore){
            ItemMeta im = is.getItemMeta();
            if(name != null)
                im.setDisplayName(name);
            if(lore != null)
                im.setLore(lore);
            is.setItemMeta(im);
            return is;
        }
     
  21. Offline

    minezbot

    Thanks it worked, thanks for the help i dont know what i did wrong?
     
  22. Offline

    GodzOfMadness

    minezbot you were making a "List" you were supposed to make an ArrayList for the lore and
    you also had event.getCursor();
    which was supposed to be event.getCurrentItem();
     
  23. Offline

    danielmiles

    Code:
        @EventHandler(priority = EventPriority.HIGH)
        public void Spawn(PlayerInteractEvent event) {
            Player player = event.getPlayer();
            if (player.getLocation().getWorld().getName().equalsIgnoreCase("world")) {
                if (player.getItemInHand().getType() == Material.PAPER) {
                    ArrayList<String> is = new ArrayList<String>();
                    is.add(ChatColor.BLUE + "Click to go to here.");
                    Inventory inv = Bukkit.createInventory(null, 9, "Portal");
                    inv.addItem(setName(new ItemStack(Material.WOOD_HOE), ChatColor.GREEN + "Survival!", is));
                    inv.addItem(setName(new ItemStack(Material.BRICK), ChatColor.AQUA + "Creative!", is));
                    inv.addItem(setName(new ItemStack(Material.IRON_SWORD), ChatColor.DARK_RED + "MehPVP!", is));
                    inv.addItem(setName(new ItemStack(Material.SNOW_BALL), ChatColor.LIGHT_PURPLE + "MehGames Lobby!", is));
                    inv.addItem(setName(new ItemStack(Material.CACTUS), ChatColor.GOLD + "Parkour!", is));
                    inv.addItem(setName(new ItemStack(Material.BOW), ChatColor.BLUE + "Survival Games!", is));
                    inv.addItem(setName(new ItemStack(Material.SAPLING), ChatColor.WHITE + "Sky Block!", is));
                    inv.addItem(setName(new ItemStack(Material.DIAMOND), ChatColor.RED + "Coming soon!", is));
                    inv.addItem(setName(new ItemStack(Material.DIAMOND), ChatColor.RED + "Coming soon!", is));
                    player.openInventory(inv);
                }
            }
        }
     
        @EventHandler(priority=EventPriority.HIGH)
        public void Click(InventoryClickEvent event){
                ItemStack is = event.getCurrentItem();
                ItemMeta im = is.getItemMeta();
                if(im.getDisplayName().contains("Survival!")){
                    Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "warp survival " + event.getWhoClicked().getName());
                }
                    if(im.getDisplayName().contains("Creative!")){
                        Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "warp creative " + event.getWhoClicked().getName());
                    }
                        if(im.getDisplayName().contains("MehPVP!")){
     
                        }
                            if(im.getDisplayName().contains("MehGames Lobby!")){
     
                                Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "warp mehgames " + event.getWhoClicked().getName());
     
                            }
                                if(im.getDisplayName().contains("Parkour!")){
     
                                    Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "warp parkour " + event.getWhoClicked().getName());
       
                                }
                                    if(im.getDisplayName().contains("Survival Games!")){
     
                                        Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "warp sg " + event.getWhoClicked().getName());
     
                                    }
                                        if(im.getDisplayName().contains("Sky Block!")){
     
                                            Bukkit.dispatchCommand(Bukkit.getConsoleSender(), "warp skyblock " + event.getWhoClicked().getName());
     
                                        }
                                            if(im.getDisplayName().contains("Coming soon!")){
     
                                            }
                                       
                                   
                               
                           
                       
                 
               
                event.getWhoClicked().closeInventory();
                event.setCancelled(true);
        }
     
        private ItemStack setName(ItemStack is, String name, ArrayList<String> lore) {
            ItemMeta im = is.getItemMeta();
            if (name != null)
                im.setDisplayName(name);
            if (lore != null)
                im.setLore(lore);
            is.setItemMeta(im);
            return is;
        }
    }
    
     
Thread Status:
Not open for further replies.

Share This Page