Guia

Como criar um plugin de menu GUI para Minecraft

Atualizado em 18 de outubro de 2026

Os menus do servidor (warps, lojas, kits, configurações) são inventários de baú que o plugin abre e controla. Cada slot guarda um item que funciona como botão. Parecem simples, mas um menu que não cancela todo tipo de clique deixa os jogadores levarem os botões para casa. Este guia explica como os menus funcionam e como gerar e testar um.

Comece por este exemplo.

Gere isto com o Codexe

Passo a passo

  1. 1.Rascunhe o menu

    Um menu de baú tem de 1 a 6 linhas de 9 slots (de 9 a 54). Escreva qual item vai em qual slot, o que cada clique faz e quais slots são só decoração, como painéis de vidro.

  2. 2.Crie o inventário com um holder

    Abra-o com Bukkit.createInventory(holder, size, title), usando a sua própria classe InventoryHolder. É pelo holder que o plugin sabe que um clique aconteceu no menu dele e não em um baú normal.

  3. 3.Trate os cliques

    No InventoryClickEvent, verifique o holder, cancele o evento e então execute a ação daquele slot. Feche o menu ou atualize-o depois da ação.

  4. 4.Bloqueie qualquer outra forma de mover itens

    Cancele também o InventoryDragEvent e trate shift-cliques, teclas numéricas e cliques no próprio inventário do jogador enquanto o menu está aberto.

  5. 5.Adicione páginas se a lista for longa

    Para warps ou itens de loja que não cabem, reserve a última linha para os botões de anterior, próxima e fechar.

  6. 6.Abra o menu por um comando

    Por exemplo /warps, ou por um item ou NPC. Dê uma permissão ao comando se o menu não for para todos.

  7. 7.Compile e clique em tudo

    Deixe o Codexe compilar o plugin, entre no servidor de teste e clique em cada botão. Os jogadores de teste também podem abrir o menu e clicar nos slots por você.

As regras que deixam um menu seguro

  • Identifique o menu pelo holder, nunca pelo título: qualquer baú renomeado pode copiar um título.
  • Cancele o clique antes de fazer qualquer outra coisa, para que um erro na ação nunca deixe o item no cursor do jogador.
  • Cancele arrastos e shift-cliques vindos do inventário do jogador, senão é possível empurrar itens para dentro do menu.
  • Não confie no item do slot: procure a ação pelo número do slot ou por uma tag no item.
  • Rode tarefas lentas (leituras do banco de dados, requisições web) fora da thread principal e atualize o menu quando terminarem.

Menus pela configuração

Donos de servidor gostam de mudar os menus sem um novo build. Peça que cada menu seja definido em um arquivo de configuração, com o tamanho, o título e, para cada botão, o slot, o material, o nome, a lore e a ação:

ChaveExemploO que faz
size27Número de slots, um múltiplo de 9
slot13Onde o botão fica, contando a partir do 0
materialENDER_PEARLO item exibido
actionwarp:spawnO que um clique faz: um warp, um comando, outro menu

Exemplo de descrição

"Um plugin para Paper 1.21.4 chamado WarpMenu. /warps abre um menu de 6 linhas com um botão por warp, 45 por página, com os botões de anterior, próxima e fechar na última linha. Os admins adicionam warps com /setwarp <name> <material> e removem com /delwarp. Clicar em um warp teleporta após uma espera de 3 segundos que é cancelada se o jogador se mexer. Os jogadores não podem pegar nem mover nenhum item do menu. Warps salvos em warps.yml, título do menu, nomes dos botões e mensagens no config.yml."

Testando menus com jogadores de teste

Os jogadores de teste do Codexe podem abrir um menu e clicar em um slot, e depois conferir se um menu abriu, se apareceu uma mensagem ou se um item foi entregue. Adicione um teste com as suas palavras, como "um jogador normal usa /warps, clica no slot 0 e vê a mensagem de teleporte", e ele roda de novo toda vez que o Codexe entrega uma alteração.

Perguntas

Isso funciona na 1.8?

Menus de baú existem em todas as versões desde a 1.8. A API muda em detalhes (nomes de materiais, títulos), então escreva a versão no pedido.

Posso fazer menus com Skript?

Sim, com o add-on skript-gui, que vem instalado no servidor de teste de Skript do Codexe. Um plugin é melhor para menus grandes ou muito usados.

Um menu pode ter uma textura personalizada?

Só com um resource pack que mude os itens ou o fundo do inventário. A parte do plugin é a mesma: slots, itens e cliques.

Crie o seu menu

Este prompt abre pronto para enviar:

“Um plugin para Paper 1.21.4 chamado WarpMenu: /warps abre um menu de 6 linhas com um botão por warp, 45 por página, botões de anterior/próxima/fechar na última linha, /setwarp com nome e material e /delwarp para admins, espera de 3 segundos para o teleporte que é cancelada ao se mexer, nenhum item pode ser pego ou movido, warps salvos em warps.yml, títulos e mensagens no config.yml.”

Gere isto com o Codexe
Como criar um plugin de menu GUI para Minecraft | Codexe