Návod
Jak vytvořit plugin s GUI menu pro Minecraft
Aktualizováno 18. října 2026
Menu na serveru (warpy, obchody, kity, nastavení) jsou inventáře truhel, které plugin otevírá a ovládá. Každý slot obsahuje předmět, který funguje jako tlačítko. Vypadají jednoduše, ale menu, které nezruší každý druh kliknutí, nechá hráče odnést si tlačítka domů. Tento návod vysvětluje, jak menu fungují a jak si ho nechat sestavit a otestovat.
Začni tímto příkladem.
Vygeneruj to s CodexeKrok za krokem
1.Načrtni menu
Menu v truhle má 1 až 6 řad po 9 slotech (9 až 54). Napiš, který předmět patří do kterého slotu, co dělá každé kliknutí a které sloty jsou jen dekorace, třeba skleněné tabule.
2.Vytvoř inventář s holderem
Otevři ho přes
Bukkit.createInventory(holder, size, title)s vlastní třídouInventoryHolder. Podle holderu plugin pozná, že kliknutí proběhlo v jeho menu, a ne v obyčejné truhle.3.Zpracuj kliknutí
V
InventoryClickEventzkontroluj holder, zruš událost a pak spusť akci pro daný slot. Po akci menu zavři nebo obnov.4.Zablokuj všechny ostatní způsoby přesunu předmětů
Zruš i
InventoryDragEventa ošetři shift-kliknutí, číselné klávesy a kliknutí ve vlastním inventáři hráče, dokud je menu otevřené.5.Přidej stránky, pokud je seznam dlouhý
Pro warpy nebo předměty v obchodě, které se nevejdou, vyhraď spodní řadu pro tlačítka předchozí, další a zavřít.
6.Otevírej ho příkazem
Například
/warps, nebo z předmětu či NPC. Pokud menu není pro všechny, dej příkazu oprávnění.7.Sestav ho a proklikej
Nech Codexe plugin zkompilovat, připoj se na testovací server a klikni na každé tlačítko. Menu za tebe můžou otevřít a proklikat sloty i testovací hráči.
Pravidla, díky kterým je menu bezpečné
- Menu poznávej podle holderu, nikdy podle titulku: titulek okopíruje jakákoli přejmenovaná truhla.
- Kliknutí zruš dřív, než uděláš cokoli jiného, aby chyba v akci nikdy nenechala předmět hráči na kurzoru.
- Zruš tažení a shift-kliknutí z inventáře hráče, jinak jde předměty do menu natlačit.
- Nevěř předmětu ve slotu: akci hledej podle čísla slotu nebo podle štítku na předmětu.
- Pomalou práci (čtení z databáze, webové požadavky) spouštěj mimo hlavní vlákno a menu aktualizuj, až skončí.
Menu z konfigurace
Majitelé serverů rádi mění menu bez nového sestavení. Požádej, aby každé menu bylo definované v konfiguračním souboru, s velikostí, titulkem a u každého tlačítka se slotem, materiálem, názvem, lore a akcí:
| Klíč | Příklad | Co dělá |
|---|---|---|
size | 27 | Počet slotů, násobek 9 |
slot | 13 | Kam tlačítko patří, počítáno od 0 |
material | ENDER_PEARL | Zobrazený předmět |
action | warp:spawn | Co kliknutí udělá: warp, příkaz, jiné menu |
Příklad popisu
„Plugin pro Paper 1.21.4 jménem WarpMenu. /warps otevře menu se 6 řadami a jedním tlačítkem na každý warp, 45 na stránku, s tlačítky předchozí, další a zavřít ve spodní řadě. Admini přidávají warpy přes /setwarp <name> <material> a odebírají je přes /delwarp. Kliknutí na warp teleportuje po 3sekundovém čekání, které se při pohybu zruší. Hráči nemůžou z menu vzít ani přesunout žádný předmět. Warpy uložené ve warps.yml, titulek menu, názvy tlačítek a zprávy v config.yml.“
Testování menu s testovacími hráči
Testovací hráči Codexe umí otevřít menu a kliknout na slot a pak zkontrolovat, že se otevřelo menu, objevila se zpráva nebo dostali předmět. Přidej test vlastními slovy, třeba „běžný hráč spustí /warps, klikne na slot 0 a uvidí zprávu o teleportu“, a spustí se znovu pokaždé, když Codexe dodá změnu.
Otázky
Funguje to na 1.8?
Menu v truhle existují v každé verzi od 1.8. API se liší v detailech (názvy materiálů, titulky), proto napiš verzi do zadání.
Můžu menu udělat radši ve Skriptu?
Ano, s doplňkem skript-gui, který má testovací server Codexe pro Skript nainstalovaný. Na velká nebo hodně používaná menu je lepší plugin.
Může menu vypadat jako vlastní textura?
Jen s resource packem, který změní předměty nebo pozadí inventáře. Na straně pluginu je to stejné: sloty, předměty a kliknutí.
Vytvoř své menu
Toto zadání se otevře připravené k odeslání:
“Plugin pro Paper 1.21.4 jménem WarpMenu: /warps otevře menu se 6 řadami a jedním tlačítkem na každý warp, 45 na stránku, tlačítka předchozí/další/zavřít ve spodní řadě, /setwarp s názvem a materiálem a /delwarp pro adminy, 3sekundové čekání na teleport, které se při pohybu zruší, žádný předmět nejde vzít ani přesunout, warpy uložené ve warps.yml, titulky a zprávy v config.yml.”
Vygeneruj to s Codexe