Gui wont close when its supposed to close

Discussion in 'Plugin Development' started by 360_, Dec 28, 2017.

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

    360_

    So when a player clicks on an item it won't close its like if the code isn't there, could someone help me with this?

    listener
    Code:
    package me.server.main;
    
    import org.bukkit.ChatColor;
    import org.bukkit.Material;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.inventory.ItemStack;
    import org.bukkit.event.inventory.InventoryClickEvent;
    
    public class InvhatListener implements Listener {
    
        @EventHandler
        public void onPlayerClickInventory(InventoryClickEvent e){
            if(e.getInventory().getTitle().equals("Shop: Test")){
                if(e.getCurrentItem().getItemMeta() != null){
                    if(e.getCurrentItem().getItemMeta().getDisplayName() != null){
                        if(e.getCurrentItem().getItemMeta().getDisplayName().equals(ChatColor.RED +"Santa Hat")){
                            //code
                            Player p = (Player) e.getWhoClicked();
                            p.closeInventory();
                            e.setCancelled(true);
                        }
                        if(e.getCurrentItem().getItemMeta().getDisplayName().equals(ChatColor.RED + "(Test Hat)")){
                            //code
                            Player p = (Player) e.getWhoClicked();
                            p.closeInventory();
                            e.setCancelled(true);
                        }
                        if(e.getCurrentItem().getItemMeta().getDisplayName().equals(ChatColor.RED + "Minnie Mouse Hat")){
                            //code
                            Player p = (Player) e.getWhoClicked();
                            p.closeInventory();
                            e.setCancelled(true);
                        }
                        if(e.getCurrentItem().getItemMeta().getDisplayName().equals(ChatColor.RED + "Pride Hat")){
                            //code
                            Player p = (Player) e.getWhoClicked();
                            p.closeInventory();
                            e.setCancelled(true);
                        }
                        if(e.getCurrentItem().getItemMeta().getDisplayName().equals(ChatColor.RED + "Close")){
                            //code
                            Player p = (Player) e.getWhoClicked();
                            p.closeInventory();
                            e.setCancelled(true);
                        }
                        //Rides
                    }
                }
            }
        }
       
    }
    
    
    GUI
    Code:
    package me.server.main;
    
    import java.sql.Array;
    
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.Material;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandExecutor;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;
    import org.bukkit.inventory.Inventory;
    import org.bukkit.inventory.ItemStack;
    import org.bukkit.inventory.meta.ItemMeta;
    
    public class hatsInventory implements CommandExecutor {
    
        @Override
        public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
            if(sender instanceof Player){
                Player p = (Player)sender;
                  Inventory inv = Bukkit.createInventory(null, 9, "3D Hats");
                  ItemStack snow = new ItemStack(Material.DIAMOND_HOE, 1,(short) 6);
                  ItemStack yelo = new ItemStack(Material.DIAMOND_HOE, 1,(short) 7);
                  ItemStack min = new ItemStack(Material.DIAMOND_HOE, 1,(short) 8);
                  ItemStack rain = new ItemStack(Material.DIAMOND_HOE, 1,(short) 9);
                  ItemStack close = new ItemStack(Material.BARRIER, 1);
                  ItemMeta meta = snow.getItemMeta();
                  ItemMeta meta1 = yelo.getItemMeta();
                  ItemMeta meta2 = min.getItemMeta();
                  ItemMeta meta3 = rain.getItemMeta();
                  ItemMeta meta4 = close.getItemMeta();
                  meta.setDisplayName(ChatColor.RED +"Santa Hat");
                  meta1.setDisplayName(ChatColor.RED + "(Test Hat)");
                  meta2.setDisplayName(ChatColor.RED + "Minnie Mouse Hat");
                  meta3.setDisplayName(ChatColor.RED + "Pride Hat");
                  meta4.setDisplayName(ChatColor.RED + "Close");
                  meta.setUnbreakable(true);
                  meta1.setUnbreakable(true);
                  meta2.setUnbreakable(true);
                  meta3.setUnbreakable(true);
                  snow.setItemMeta(meta);
                  yelo.setItemMeta(meta1);
                  min.setItemMeta(meta2);
                  rain.setItemMeta(meta3);
                  close.setItemMeta(meta4);
                  inv.setItem(0, snow);
                  inv.setItem(1, yelo);
                  inv.setItem(2, min);
                  inv.setItem(3, rain);
                  inv.setItem(8, close);
                  p.openInventory(inv);
                return true;
            }
            return false;
        }
    
    }
     
  2. Offline

    yoyopower

    Inventories seem to have different titles (so the title check for the inventory will fail), "3D Hats" and "Shop: Test"
     
  3. Offline

    360_

    Sorry i must have put in the wrong file
    --Edit: here is the real one,

    Code:
    package me.server.main;
    
    import org.bukkit.ChatColor;
    import org.bukkit.Material;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.inventory.ItemStack;
    import org.bukkit.event.inventory.InventoryClickEvent;
    
    public class InvhatprevListener implements Listener {
    
        @EventHandler
        public void onPlayerClickInventory(InventoryClickEvent e){
            if(e.getInventory().getTitle().equals("3D Hats")){
                if(e.getCurrentItem().getItemMeta() != null){
                    if(e.getCurrentItem().getItemMeta().getDisplayName() != null){
                        if(e.getCurrentItem().getItemMeta().getDisplayName().equals(ChatColor.RED +"Santa Hat")){
                            //code
                            Player p = (Player) e.getWhoClicked();
                            p.closeInventory();
                            e.setCancelled(true);
                        }
                        if(e.getCurrentItem().getItemMeta().getDisplayName().equals(ChatColor.RED + "(Test Hat)")){
                            //code
                            Player p = (Player) e.getWhoClicked();
                            p.closeInventory();
                            e.setCancelled(true);
                        }
                        if(e.getCurrentItem().getItemMeta().getDisplayName().equals(ChatColor.RED + "Minnie Mouse Hat")){
                            //code
                            Player p = (Player) e.getWhoClicked();
                            p.closeInventory();
                            e.setCancelled(true);
                        }
                        if(e.getCurrentItem().getItemMeta().getDisplayName().equals(ChatColor.RED + "Pride Hat")){
                            //code
                            Player p = (Player) e.getWhoClicked();
                            p.closeInventory();
                            e.setCancelled(true);
                        }
                        if(e.getCurrentItem().getItemMeta().getDisplayName().equals(ChatColor.RED + "Close")){
                            //code
                            Player p = (Player) e.getWhoClicked();
                            p.closeInventory();
                            e.setCancelled(true);
                        }
                        //Rides
                    }
                }
            }
        }
       
    }
    
    
     
    Last edited: Dec 28, 2017
  4. Offline

    timtower Administrator Administrator Moderator

    @360_ Did you register the event?
     
  5. Offline

    360_

Thread Status:
Not open for further replies.

Share This Page