Solved Commands In Gui.

Discussion in 'Plugin Development' started by Albkad, Feb 22, 2017.

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

    Albkad

    So I Am Trying To Make A Gui That Allows You To Pay Money To Get Stuff In The Gui. But I Cant Seem To Do A Command In The Gui. I Have Tried This But It Gives Me An Error In Console.
    Code:
    package me.albkad.main;
    
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.List;
    import java.util.Random;
    
    import org.bukkit.Bukkit;
    import org.bukkit.Material;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.inventory.ClickType;
    import org.bukkit.event.inventory.DragType;
    import org.bukkit.event.inventory.InventoryClickEvent;
    import org.bukkit.event.inventory.InventoryDragEvent;
    import org.bukkit.inventory.Inventory;
    import org.bukkit.inventory.ItemStack;
    import org.bukkit.inventory.meta.ItemMeta;
    import org.bukkit.material.Chest;
    import org.bukkit.plugin.Plugin;
    import org.bukkit.ChatColor;
    
    public class Menu implements Listener {
        private Main plugin;
        private ItemStack y;
        private ItemStack e;
        private ItemStack c;
        private Inventory inv;
      
      
        public Menu(Plugin p) {
            inv = Bukkit.getServer().createInventory(null, 54, "BuyIngame");
          
            Bukkit.getServer().getPluginManager().registerEvents(this, p);
          
          
          
            c = createItem("Rank");
            y = createItem("Diamond");
            e = createItem("Gold");
            inv.setItem(29, y);
            inv.setItem(31, c);
            inv.setItem(33, e);
        }
      
      
      
        private ItemStack createItem(String name) {
            ItemStack i = new Chest().toItemStack(1);
            ItemMeta im = i.getItemMeta();
            im.setDisplayName(name);
            im.setLore(Arrays.asList("Get A Random Enchant!"));
            i.setItemMeta(im);
            return i;
          
        }
      
          
      
        public void show(Player p) {
            p.openInventory(inv);
        }
      
      
      
      
        @EventHandler
        public void onInventoryClick(InventoryClickEvent e) {
            if (!e.getInventory().getName().equalsIgnoreCase(inv.getName())) return;
            if (e.getCurrentItem() == null) return;
            if (e.getCurrentItem().getItemMeta() == null) return;
            if (e.getCurrentItem().getItemMeta().getDisplayName() == null) return;
            if (e.getCurrentItem().getItemMeta().getDisplayName().contains("Rank")) {
                e.setCancelled(true);
                Player p = (Player) e.getWhoClicked();
                plugin.getServer().dispatchCommand(plugin.getServer().getConsoleSender(), "pex user" + p + "group set vip");
                p.closeInventory();
            }
        }
    
      
      
    }
    
    Console: https://gyazo.com/83166a9aba6c5ce2fea6a8521da4d19c
    I dont know if it is something else that is wrong but help is appriciated!
     
  2. Offline

    timtower Administrator Administrator Moderator

  3. Offline

    WolfMage1

    @Albkad You don't need to start every word with an uppercase letter, not really relevant but just a request.
     
  4. Offline

    Zombie_Striker

    @Albkad
    If your problem has been solved, mark this thread as solved.
     
  5. Offline

    Drkmaster83

    It hasn't been. He never assigns a value to "plugin" which he uses in to dispatch the command. Make sure to have this.plugin = p; in your constructor.
     
  6. Offline

    Ragnarok_

    Make sure you have properly set up your plugin.yml or check if you haven't already
     
Thread Status:
Not open for further replies.

Share This Page