Guida

Come creare un plugin Minecraft con menu GUI

Aggiornato il 18 ottobre 2026

I menu del server (warp, negozi, kit, impostazioni) sono inventari a cassa che il plugin apre e controlla. Ogni slot contiene un oggetto che fa da pulsante. Sembrano semplici, ma un menu che non annulla ogni tipo di clic permette ai giocatori di portarsi a casa i pulsanti. Questa guida spiega come funzionano i menu e come farne creare e provare uno.

Parti da questo esempio.

Generalo con Codexe

Passo per passo

  1. 1.Disegna il menu

    Un menu a cassa ha da 1 a 6 righe da 9 slot (da 9 a 54). Scrivi quale oggetto va in quale slot, cosa fa ogni clic e quali slot sono solo decorazione, come i pannelli di vetro.

  2. 2.Crea l'inventario con un holder

    Aprilo con Bukkit.createInventory(holder, size, title), usando una tua classe InventoryHolder. L'holder è il modo in cui il plugin capisce che un clic è avvenuto nel suo menu e non in una cassa normale.

  3. 3.Gestisci i clic

    In InventoryClickEvent controlla l'holder, annulla l'evento, poi esegui l'azione di quello slot. Dopo l'azione chiudi il menu o aggiornalo.

  4. 4.Blocca ogni altro modo di spostare oggetti

    Annulla anche InventoryDragEvent e gestisci shift-clic, tasti numerici e clic nell'inventario del giocatore mentre il menu è aperto.

  5. 5.Aggiungi le pagine se la lista è lunga

    Per warp od oggetti del negozio che non ci stanno, riserva l'ultima riga ai pulsanti indietro, avanti e chiudi.

  6. 6.Aprilo da un comando

    Per esempio /warps, oppure da un oggetto o da un NPC. Dai un permesso al comando se il menu non è per tutti.

  7. 7.Compila e cliccaci dentro

    Lascia che Codexe compili il plugin, entra nel server di prova e clicca ogni pulsante. Anche i giocatori di prova possono aprire il menu e cliccare gli slot al posto tuo.

Le regole che rendono sicuro un menu

  • Riconosci il menu dal suo holder, mai dal titolo: il titolo lo può copiare qualsiasi cassa rinominata.
  • Annulla il clic prima di fare qualsiasi altra cosa, così un errore nell'azione non lascia mai l'oggetto sul cursore del giocatore.
  • Annulla i trascinamenti e gli shift-clic dall'inventario del giocatore, altrimenti si possono spingere oggetti dentro il menu.
  • Non fidarti dell'oggetto nello slot: cerca l'azione in base al numero dello slot o a un tag sull'oggetto.
  • Esegui il lavoro lento (letture dal database, richieste web) fuori dal thread principale e aggiorna il menu quando ha finito.

Menu dalla configurazione

Ai proprietari dei server piace cambiare i menu senza una nuova build. Chiedi che ogni menu sia definito in un file di configurazione, con dimensione, titolo e, per ogni pulsante, slot, materiale, nome, lore e azione:

ChiaveEsempioCosa fa
size27Numero di slot, un multiplo di 9
slot13Dove va il pulsante, contando da 0
materialENDER_PEARLL'oggetto mostrato
actionwarp:spawnCosa fa un clic: un warp, un comando, un altro menu

Esempio di descrizione

"Un plugin per Paper 1.21.4 chiamato WarpMenu. /warps apre un menu da 6 righe con un pulsante per ogni warp, 45 per pagina, con i pulsanti indietro, avanti e chiudi nell'ultima riga. Gli admin aggiungono i warp con /setwarp <name> <material> e li tolgono con /delwarp. Cliccando un warp si viene teletrasportati dopo un'attesa di 3 secondi che si annulla se ci si muove. I giocatori non possono prendere né spostare nessun oggetto del menu. Warp salvati in warps.yml, titolo del menu, nomi dei pulsanti e messaggi in config.yml."

Provare i menu con i giocatori di prova

I giocatori di prova di Codexe possono aprire un menu e cliccare uno slot, poi controllare che si sia aperto un menu, sia comparso un messaggio o sia stato dato un oggetto. Aggiungi un test con parole tue, come "un giocatore normale esegue /warps, clicca lo slot 0 e vede il messaggio di teletrasporto", e verrà rieseguito ogni volta che Codexe consegna una modifica.

Domande

Funziona sulla 1.8?

I menu a cassa esistono in ogni versione dalla 1.8. L'API cambia nei dettagli (nomi dei materiali, titoli), quindi scrivi la versione nella richiesta.

Posso fare i menu con Skript?

Sì, con l'addon skript-gui, che il server di prova Skript di Codexe ha già installato. Per menu grandi o molto usati è meglio un plugin.

Un menu può avere una texture personalizzata?

Solo con una resource pack che cambia gli oggetti o lo sfondo dell'inventario. Lato plugin non cambia niente: slot, oggetti e clic.

Crea il tuo menu

Questo prompt si apre pronto da inviare:

“Un plugin per Paper 1.21.4 chiamato WarpMenu: /warps apre un menu da 6 righe con un pulsante per warp, 45 per pagina, pulsanti indietro/avanti/chiudi nell'ultima riga, /setwarp con nome e materiale e /delwarp per gli admin, attesa di 3 secondi prima del teletrasporto che si annulla se ci si muove, nessun oggetto si può prendere o spostare, warp salvati in warps.yml, titoli e messaggi in config.yml.”

Generalo con Codexe
Come creare un plugin con menu GUI per Minecraft | Codexe