GUI items.

Discussion in 'Plugin Development' started by xXkguyXx, Aug 9, 2015.

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

    xXkguyXx

    Hai, So I am Trying To Make a GUI So if a Player Has A Permission IT sets a Certin Item, If They Dont It sets a Differnet Item, i've Tryed This


    if(sender.hasPermission("Test.Test")) {
    kinv.setItem(12, I1);
    } else {
    kinv.setItem(12, NOPERM);
    }
    kinv.setItem(14, I2);
    }

    IT Doesnt Work
    Here Is The Full Class:

    (WITHOUT IF(sender.hasPermission("Test.TEst") etc..)


    Code:
    package MagKits.Managers;
    
    import java.util.Arrays;
    
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.Material;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandSender;
    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.Inventory;
    import org.bukkit.inventory.ItemStack;
    import org.bukkit.inventory.meta.ItemMeta;
    
    
    
    public class KitMenu implements Listener {
      
    
    
            private Inventory kinv;
            private ItemStack I1, I2, NOPERM;
            private KitMenu kitmenu;
            private DonorKitMenu dkmenu;
            CommandSender sender;
            Player p;
            Command cmd;
          
            public KitMenu() {
                    kinv = Bukkit.getServer().createInventory(null, 27,(ChatColor.translateAlternateColorCodes('&', "&dMagenta Kits")));
                  
                    I1 = ItemManager.createItem(Material.IRON_CHESTPLATE,ChatColor.AQUA + "Player-Kits", Arrays.asList(
                            ChatColor.GRAY + "Click Me To Go To", ChatColor.GRAY + " The Player Kits"));
                    NOPERM = ItemManager.createItem(Material.BEDROCK, ChatColor.RED + "Mo Access");
                  
                    I2 = ItemManager.createItem(Material.DIAMOND_CHESTPLATE,ChatColor.GOLD + "Donor-Kits");     
                    ItemMeta itemMeta = I2.getItemMeta();
                    Glow glow = new Glow(100);
                    itemMeta.addEnchant(glow, 0, true);
                    I2.setItemMeta(itemMeta);
                  
                    kinv.setItem(12, I1);
                      kinv.setItem(14, I2);
    
            }
          
    
          
            public void show(Player p) {
                    p.openInventory(kinv);
            }
          
            @EventHandler
            public void onInventoryClick(InventoryClickEvent e) {
                    if (!e.getInventory().getName().equalsIgnoreCase(kinv.getName())) return;
                    if (e.getCurrentItem().getItemMeta() == null) return;
                    if ((e.getCurrentItem() != null) && (!e.getCurrentItem().getType().equals(Material.AIR))){
                        if (e.getInventory().getName().equalsIgnoreCase(kinv.getName()));
                        e.setCancelled(true);     
            }
                    if (e.getCurrentItem().getItemMeta().getDisplayName().contains("Player-Kits")) {
                            e.setCancelled(true);
                            Player p = (Player) e.getWhoClicked();
                            e.getWhoClicked().closeInventory();
                            p.performCommand("pkit");
                    }
                    if (e.getCurrentItem().getItemMeta().getDisplayName().contains("Donor-Kits")) {
                            e.setCancelled(true);
                            Player p = (Player) e.getWhoClicked();
                            dkmenu = new DonorKitMenu();
                            dkmenu.show(p);
    
                          
                          
                    }
            }
    }
     
    Last edited by a moderator: Aug 10, 2015
  2. Offline

    SuperOriginal

    Please insert your code into code tags with proper indentation preferred. (Insert > Code)
     
  3. Offline

    xXkguyXx

    Code:
    package MagKits.Managers;
    
    import java.util.Arrays;
    
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.Material;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandSender;
    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.Inventory;
    import org.bukkit.inventory.ItemStack;
    import org.bukkit.inventory.meta.ItemMeta;
    
    
    
    public class KitMenu implements Listener {
    
    
    
    private Inventory kinv;
    private ItemStack I1, I2, NOPERM;
    private KitMenu kitmenu;
    private DonorKitMenu dkmenu;
    CommandSender sender;
    Player p;
    Command cmd;
    
    public KitMenu() {
    kinv = Bukkit.getServer().createInventory(null, 27,(ChatColor.translateAlternateColorCodes('&', "&dMagenta Kits")));
    
    I1 = ItemManager.createItem(Material.IRON_CHESTPLATE,ChatColor.AQUA + "Player-Kits", Arrays.asList(
    ChatColor.GRAY + "Click Me To Go To", ChatColor.GRAY + " The Player Kits"));
    NOPERM = ItemManager.createItem(Material.BEDROCK, ChatColor.RED + "Mo Access");
    
    I2 = ItemManager.createItem(Material.DIAMOND_CHESTPLATE,ChatColor.GOLD + "Donor-Kits");
    ItemMeta itemMeta = I2.getItemMeta();
    Glow glow = new Glow(100);
    itemMeta.addEnchant(glow, 0, true);
    I2.setItemMeta(itemMeta);
    
    kinv.setItem(12, I1);
    kinv.setItem(14, I2);
    
    }
    
    
    
    public void show(Player p) {
    p.openInventory(kinv);
    }
    
    @EventHandler
    public void onInventoryClick(InventoryClickEvent e) {
    if (!e.getInventory().getName().equalsIgnoreCase(kinv.getName())) return;
    if (e.getCurrentItem().getItemMeta() == null) return;
    if ((e.getCurrentItem() != null) && (!e.getCurrentItem().getType().equals(Material.AIR))){
    if (e.getInventory().getName().equalsIgnoreCase(kinv.getName()));
    e.setCancelled(true);
    }
    if (e.getCurrentItem().getItemMeta().getDisplayName().contains("Player-Kits")) {
    e.setCancelled(true);
    Player p = (Player) e.getWhoClicked();
    e.getWhoClicked().closeInventory();
    p.performCommand("pkit");
    }
    if (e.getCurrentItem().getItemMeta().getDisplayName().contains("Donor-Kits")) {
    e.setCancelled(true);
    Player p = (Player) e.getWhoClicked();
    dkmenu = new DonorKitMenu();
    dkmenu.show(p);
    
    
    
    }
    }
    }


    Code:
    if(sender.hasPermission("Test.Test")) {
    kinv.setItem(12, I1);
    } else {
    kinv.setItem(12, NOPERM);
    }
    kinv.setItem(14, I2);
    }
     
  4. Offline

    SuperOriginal

    You have a semicolon after an if statement on line 61 in the first section
     
  5. Offline

    xXkguyXx

    How would I do what I want to...
     
  6. Offline

    SuperOriginal

    Fix the syntax errors.
     
  7. Offline

    xXkguyXx

    There are none... In my code if I leave it how it is, it workups fine, it opens too but when I add the other code in,there are no syntax errors but the GUI won't open
     
  8. Offline

    SuperOriginal

    Did you fix what I told you then?
     
  9. Offline

    mine-care

    @xXkguyXx
    A few notes:
    Naming convention, please fix it.

    What are those doing there? also dont store Player objects long term, or at least on disconnect remove them.

    First check if the getCurrentItem returns null and then if the getCurrentItem().getItemMeta().


    What is that supose to do?

    Use if else if else statements instead of just if to make your code efficient.

    if that isnt a croped piece of code then you need to consider fixing your syntax as @SuperOriginal has been telling you.

    Lastly about the not opening gui, have you debuged at all?
     
    SuperOriginal and bwfcwalshy like this.
Thread Status:
Not open for further replies.

Share This Page