Solved The GUI does not open

Discussion in 'Spigot Plugin Development' started by Fazzer84, May 26, 2018.

  1. My GUI does not open, the code is below.

    Code (Java):
    package menu.Java;

    import java.util.ArrayList;

    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.block.Action;
    import org.bukkit.event.player.PlayerInteractEvent;
    import org.bukkit.inventory.Inventory;
    import org.bukkit.inventory.ItemStack;
    import org.bukkit.inventory.meta.ItemMeta;

    public class MenuGUI implements Listener{
       

        @EventHandler
        public void Inventário(PlayerInteractEvent e) {
            Player p = e.getPlayer();
            if (e.getAction() == Action.PHYSICAL || p.getItemInHand().getType() == Material.COMPASS) {
                Inventory inv = Bukkit.createInventory(null, 4*9, "Servidores");
                   
                ItemStack grama = new ItemStack(Material.GRASS);
                ItemMeta gramameta = grama.getItemMeta();
                gramameta.setDisplayName("§aSky Wars");
                ArrayList<String> lore = new ArrayList<>();
                lore.add("§7");
                lore.add("§7  Você tem medo de altura? Então esse");
                lore.add("§7  jogo não é para você! Sky Wars é o");
                lore.add("§7  modo de jogo mais conhecido dos");
                lore.add("§7  últimos tempos e aqui pode ser jogado");
                lore.add("§7  nos modos &eSOLO&7, &6DUPLA &7ou &cMEGA&7.");
                lore.add("§7");
                lore.add("§aClique Para Jogar! ||§b§71 jogando.");
                gramameta.setLore(lore);
                grama.setItemMeta(gramameta);
                   
                inv.setItem(13, grama);
                   
                p.openInventory(inv);
                   
            }
        }
    }

     
     
  2. You should check if the action is right click air or block than a physical action. But first check the item type.
     
    • Agree Agree x 2
  3. Show me the code, please.
     
  4. Like what @Nosma_Stew said, don't use Action.PHYSICAL use Action.RIGHT_CLICK
     
  5. No need of code, like I've said.
    You already doing that with physical, just check first what item is and then check for the actions.
     
  6. I'll try. Thanks a lot for the help.
     
  7. 3rc

    3rc

    Gotta check right or left click
     
  8. I put Action.RIGHT_CLICK_BLOCK and DO NOT OPEN THE GUI.
     
  9. Any error on Console ?
    Try removing " á " on the public void
     
  10. You need Action.RIGHT_CLICK_BLOCK and Action.RIGHT_CLICK_AIR
     
  11. NO. There is no mistake.
     
    • Optimistic Optimistic x 1
  12. What I need to put.
     
  13. 3rc

    3rc

    Stop asking for hand outs.
    Most that I will give you is

    Code (Text):
    if (event.getAction() ==  ActionType.RIGHT_CLICK_AIR) {
    }
     
  14. Remembering the API I use is that of SPIGOT.
     
    • Optimistic Optimistic x 1
  15. This "ActionType" is giving an error.
     
  16. 3rc

    3rc

    My, bad I didn't review what I posted.
    Code (Text):
    @EventHandler
        public void onEvent(PlayerInteractEvent e) {
         if  (e.getAction() == Action.RIGHT_CLICK_AIR);
        }
    }
     
  17. I knew I had to put this on. Now I will test.
     
  18. I still can not.
     
  19. 3rc

    3rc

    Send ur current code.
     
  20. Code (Java):
    package menu.Java;

    import java.util.ArrayList;

    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.block.Action;
    import org.bukkit.event.player.PlayerInteractEvent;
    import org.bukkit.inventory.Inventory;
    import org.bukkit.inventory.ItemStack;
    import org.bukkit.inventory.meta.ItemMeta;

    public class MenuGUI implements Listener{
       

        @EventHandler
        public void Inventario(PlayerInteractEvent e) {
            Player p = e.getPlayer();
            if ((e.getAction () == Action.RIGHT_CLICK_AIR) || p.getItemInHand().getType() == Material.COMPASS) {
                Inventory inv = Bukkit.createInventory(null, 4*9, "Servidores");
                   
                ItemStack grama = new ItemStack(Material.GRASS);
                ItemMeta gramameta = grama.getItemMeta();
                gramameta.setDisplayName("§aSky Wars");
                ArrayList<String> lore = new ArrayList<>();
                lore.add("§7");
                lore.add("§7  Você tem medo de altura? Então esse");
                lore.add("§7  jogo não é para você! Sky Wars é o");
                lore.add("§7  modo de jogo mais conhecido dos");
                lore.add("§7  últimos tempos e aqui pode ser jogado");
                lore.add("§7  nos modos &eSOLO&7, &6DUPLA &7ou &cMEGA&7.");
                lore.add("§7");
                lore.add("§aClique Para Jogar! ||§b§71 jogando.");
                gramameta.setLore(lore);
                grama.setItemMeta(gramameta);
                   
                inv.setItem(13, grama);
                   
                p.openInventory(inv);
            }
        }
    }