Solved Can Edit the GUI?

Discussion in 'Plugin Development' started by S1ant, Feb 3, 2017.

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

    S1ant

    Ok So I recently made a plugin just patching some bugs the plugin will be out soon, and then I am basically finished with the Development but then I am able to edit the GUI? I know the test server isn't lagging but can someone please see why I am able to take the items out of the gui?
    Code:
    Code:
    package me.s1ant.infoplugin;
    
    import java.util.ArrayList;
    
    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.inventory.InventoryClickEvent;
    import org.bukkit.inventory.Inventory;
    import org.bukkit.inventory.ItemStack;
    import org.bukkit.inventory.meta.ItemMeta;
    import org.bukkit.plugin.java.JavaPlugin;
    
    public class InfoPlugin extends JavaPlugin{
    
        @Override
        public void onEnable() {
        System.out.println("InfoPlugin Has Been Enabled!");
        reloadConfig();
        saveConfig();
        }
       
       
        @Override
        public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
            if(cmd.getName().equalsIgnoreCase("info")){
                if( sender instanceof Player){
                if(args.length == 0){
                Player p = (Player) sender;
               
                String website = getConfig().getString("website");
                String ts = getConfig().getString("teamspeak");
               
                ItemStack TS = new ItemStack(Material.PAPER);
                ItemMeta TSMeta = TS.getItemMeta();
                ArrayList<String> tslore = new ArrayList<String>();
                tslore.add(ts);
                TSMeta.setDisplayName(ChatColor.BLUE + "TEAMSPEAK");
                TSMeta.setLore(tslore);
                TS.setItemMeta(TSMeta);
               
               
                ItemStack SITE = new ItemStack(Material.PAPER);
                ItemMeta SITEMeta = TS.getItemMeta();
                ArrayList<String> sitelore = new ArrayList<String>();
                sitelore.add(website);
                SITEMeta.setDisplayName(ChatColor.BLUE + "WEBSITE");
                SITEMeta.setLore(sitelore);
                SITE.setItemMeta(SITEMeta);
               
               
                Inventory inv = Bukkit.createInventory(null, 9, ChatColor.RED + "TeamSpeak/Website");
                p.openInventory(inv);
                inv.setItem(2, TS);
                inv.setItem(6, SITE);
               
                }else if(args.length == 1){
                    if(args[0].equalsIgnoreCase("reload")){
                        reloadConfig();
                        saveConfig();
                        sender.sendMessage(ChatColor.DARK_BLUE + "Configuration has been reloaded!");
                    }else {
                        sender.sendMessage(ChatColor.RED + "Invalid SubCommand! Did you mean /info? Did you mean /info reload?");
                    }
           
                        return true;               
                    }
           
               
            }
                }
               
               
           
           
           
           
            return true;
        }
       
    @EventHandler
    public void onClick (InventoryClickEvent e){
        if(e.getInventory().getTitle().equals(ChatColor.RED + "TeamSpeak/Website")){
       
            e.setCancelled(true);
           
        }
       
    }
    }
    
    If you also see anything that could also possibly lead to a bug then please let me know, THANKS!
     
  2. Offline

    Zombie_Striker

    @S1ant
    You are forgetting to register the Listener. Let the class inplement Listener and register the class.
     
  3. Offline

    S1ant

    Ok, I'm trying this now....

    I Implemented Listener but, it still doesn't seem to work? Can you please help me some more? Here is My updated code:
    Code:
    package me.s1ant.infoplugin;
    
    import java.util.ArrayList;
    
    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;
    import org.bukkit.plugin.java.JavaPlugin;
    
    public class InfoPlugin extends JavaPlugin implements Listener{
    
        @Override
        public void onEnable() {
        System.out.println("InfoPlugin Has Been Enabled!");
        reloadConfig();
        saveConfig();
        }
       
       
        @Override
        public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
            if(cmd.getName().equalsIgnoreCase("info")){
                if( sender instanceof Player){
                if(args.length == 0){
                Player p = (Player) sender;
               
                String website = getConfig().getString("website");
                String ts = getConfig().getString("teamspeak");
               
                ItemStack TS = new ItemStack(Material.PAPER);
                ItemMeta TSMeta = TS.getItemMeta();
                ArrayList<String> tslore = new ArrayList<String>();
                tslore.add(ts);
                TSMeta.setDisplayName(ChatColor.BLUE + "TEAMSPEAK");
                TSMeta.setLore(tslore);
                TS.setItemMeta(TSMeta);
               
               
                ItemStack SITE = new ItemStack(Material.PAPER);
                ItemMeta SITEMeta = TS.getItemMeta();
                ArrayList<String> sitelore = new ArrayList<String>();
                sitelore.add(website);
                SITEMeta.setDisplayName(ChatColor.BLUE + "WEBSITE");
                SITEMeta.setLore(sitelore);
                SITE.setItemMeta(SITEMeta);
               
               
                Inventory inv = Bukkit.createInventory(null, 9, ChatColor.RED + "TeamSpeak/Website");
                p.openInventory(inv);
                inv.setItem(2, TS);
                inv.setItem(6, SITE);
               
                }else if(args.length == 1){
                    if(args[0].equalsIgnoreCase("reload")){
                        reloadConfig();
                        saveConfig();
                        sender.sendMessage(ChatColor.DARK_BLUE + "Configuration has been reloaded!");
                    }else {
                        sender.sendMessage(ChatColor.RED + "Invalid SubCommand! Did you mean /info? Did you mean /info reload?");
                    }
           
                        return true;               
                    }
           
               
            }
                }
               
               
           
           
           
           
            return true;
        }
       
    @EventHandler
    public void onClick (InventoryClickEvent e){
        if(e.getInventory().getTitle().equals(ChatColor.RED + "TeamSpeak/Website")){
       
            e.setCancelled(true);
           
        }
       
    }
    }
    
    THANKS
     
  4. Offline

    timtower Administrator Administrator Moderator

    @S1ant You never register the event.
     
  5. Offline

    S1ant

    Im not completely sure how I'd do that? Could you please help?
     
  6. Offline

    timtower Administrator Administrator Moderator

  7. Offline

    mehboss

    @S1ant
    Put this in your onEnable
    Code:
    Bukkit.getPluginManager().registerEvents(this, this);
    I'm guessing you're new at coding because this is pretty easy. I learned from youtube, books, and online.
     
  8. Offline

    S1ant

    @mehboss I did that but it didn't work it gave me an error message :/ Im not that stupid coding wise but I'll try anyways
     
  9. Offline

    mehboss

    @S1ant
    Your event is in your onEnable class so it should work.

    If it is not in your main do:

    Code:
    Bukkit.getPluginManager().getPlugin("yourplugin");
    or get your main class from it.
     
  10. Offline

    Disgastings

    getServer().getPluginManager().registerEvents(this,this);
    getServer().getPluginManager().registerEvents(new <classname>(),this);
     
  11. Offline

    Zombie_Striker

    @Disgastings
    Please post atleast some description of what each line does, whether to use one or both lines, or atleast say what it is meant to achieve.
     
  12. Offline

    S1ant

    @mehboss Thanks that worked! I had to mess with some things but I have now successfully published the Plugin!
     
  13. Offline

    Zombie_Striker

    @S1ant
    If your problem has been solved, mark this thread as solved.
     
  14. Offline

    S1ant

  15. Offline

    S1ant

Thread Status:
Not open for further replies.

Share This Page