Handleiding

Een GUI-menuplugin voor Minecraft maken

Bijgewerkt 18 oktober 2026

Servermenu's (warps, winkels, kits, instellingen) zijn kistinventories die de plugin opent en bestuurt. Elk vak bevat een item dat als knop werkt. Ze lijken eenvoudig, maar een menu dat niet elk soort klik annuleert, laat spelers de knoppen mee naar huis nemen. Deze handleiding behandelt hoe menu's werken en hoe je er een laat bouwen en testen.

Begin met dit voorbeeld.

Genereer dit met Codexe

Stap voor stap

  1. 1.Schets het menu

    Een kistmenu heeft 1 tot 6 rijen van 9 vakken (9 tot 54). Schrijf op welk item in welk vak komt, wat elke klik doet en welke vakken alleen decoratie zijn, zoals glaspanelen.

  2. 2.Maak de inventory met een holder

    Open hem met Bukkit.createInventory(holder, size, title) en gebruik je eigen InventoryHolder-klasse. Via de holder weet de plugin dat een klik in zijn menu gebeurde en niet in een gewone kist.

  3. 3.Verwerk klikken

    Controleer in InventoryClickEvent de holder, annuleer het event en voer dan de actie voor dat vak uit. Sluit het menu of ververs het na de actie.

  4. 4.Blokkeer elke andere manier om items te verplaatsen

    Annuleer ook InventoryDragEvent en verwerk shift-klikken, cijfertoetsen en klikken in de eigen inventory van de speler terwijl het menu open is.

  5. 5.Voeg pagina's toe als de lijst lang is

    Reserveer voor warps of winkelitems die niet passen de onderste rij voor knoppen vorige, volgende en sluiten.

  6. 6.Open het met een commando

    Bijvoorbeeld /warps, of via een item of NPC. Geef het commando een permissie als het menu niet voor iedereen is.

  7. 7.Bouw het en klik er doorheen

    Laat Codexe de plugin compileren, join de testserver en klik op elke knop. Testspelers kunnen het menu ook voor je openen en op vakken klikken.

De regels die een menu veilig houden

  • Herken het menu aan zijn holder, nooit aan zijn titel: titels kunnen worden nagemaakt met elke hernoemde kist.
  • Annuleer de klik voordat je iets anders doet, zodat een fout in de actie het item nooit in de cursor van de speler achterlaat.
  • Annuleer slepen en shift-klikken vanuit de inventory van de speler, anders kunnen items het menu in worden geduwd.
  • Vertrouw het item in het vak niet: zoek de actie op aan de hand van het vaknummer of een tag op het item.
  • Voer traag werk (databaselezingen, webverzoeken) buiten de main thread uit en werk het menu bij als het klaar is.

Menu's uit de config

Servereigenaren passen menu's graag aan zonder nieuwe build. Vraag om elk menu in een configbestand te definiëren, met de grootte, de titel en per knop het vak, het materiaal, de naam, de lore en de actie:

SleutelVoorbeeldWat het doet
size27Aantal vakken, een veelvoud van 9
slot13Waar de knop komt, geteld vanaf 0
materialENDER_PEARLHet getoonde item
actionwarp:spawnWat een klik doet: een warp, een commando, een ander menu

Voorbeeldbeschrijving

"Een Paper 1.21.4-plugin genaamd WarpMenu. /warps opent een menu van 6 rijen met één knop per warp, 45 per pagina, met knoppen vorige, volgende en sluiten in de onderste rij. Admins voegen warps toe met /setwarp <name> <material> en verwijderen ze met /delwarp. Klikken op een warp teleporteert na een warmup van 3 seconden die bij beweging wordt geannuleerd. Spelers kunnen geen enkel item in het menu pakken of verplaatsen. Warps opgeslagen in warps.yml, menutitel, knopnamen en berichten in config.yml."

Menu's testen met testspelers

De testspelers van Codexe kunnen een menu openen en op een vak klikken, en dan controleren of er een menu openging, een bericht verscheen of een item werd gegeven. Voeg een test in je eigen woorden toe, zoals "een gewone speler voert /warps uit, klikt op vak 0 en ziet het teleportbericht", en die draait opnieuw elke keer dat Codexe een wijziging oplevert.

Vragen

Werkt dit op 1.8?

Kistmenu's bestaan op elke versie vanaf 1.8. De API verschilt in details (materiaalnamen, titels), dus zet de versie in het verzoek.

Kan ik menu's ook met Skript maken?

Ja, met de add-on skript-gui, die op de Skript-testserver van Codexe is geïnstalleerd. Voor grote of drukke menu's is een plugin beter.

Kan een menu eruitzien als een eigen texture?

Alleen met een resourcepack die de items of de achtergrond van de inventory verandert. Aan de pluginkant blijft alles hetzelfde: vakken, items en klikken.

Maak je menu

Deze prompt opent klaar om te versturen:

“Een Paper 1.21.4-plugin genaamd WarpMenu: /warps opent een menu van 6 rijen met één knop per warp, 45 per pagina, knoppen vorige/volgende/sluiten in de onderste rij, /setwarp met een naam en materiaal en /delwarp voor admins, teleport-warmup van 3 seconden die bij beweging wordt geannuleerd, geen enkel item kan worden gepakt of verplaatst, warps opgeslagen in warps.yml, titels en berichten in config.yml.”

Genereer dit met Codexe
Een GUI-menuplugin voor Minecraft maken | Codexe