Poradnik

Jak zrobić plugin z menu GUI do Minecrafta

Zaktualizowano: 18 października 2026

Menu serwera (warpy, sklepy, zestawy, ustawienia) to ekwipunki skrzyni, które plugin otwiera i kontroluje. Każdy slot zawiera przedmiot działający jak przycisk. Wyglądają prosto, ale menu, które nie anuluje każdego rodzaju kliknięcia, pozwala graczom zabrać przyciski ze sobą. Ten poradnik wyjaśnia, jak działają menu i jak je zbudować oraz przetestować.

Zacznij od tego przykładu.

Wygeneruj to w Codexe

Krok po kroku

  1. 1.Naszkicuj menu

    Menu w skrzyni ma od 1 do 6 rzędów po 9 slotów (od 9 do 54). Wpisz, jaki przedmiot trafia do którego slotu, co robi każde kliknięcie i które sloty są tylko dekoracją, na przykład szybami.

  2. 2.Utwórz ekwipunek z holderem

    Otwórz go przez Bukkit.createInventory(holder, size, title), używając własnej klasy InventoryHolder. To po holderze plugin wie, że kliknięcie nastąpiło w jego menu, a nie w zwykłej skrzyni.

  3. 3.Obsłuż kliknięcia

    W InventoryClickEvent sprawdź holder, anuluj zdarzenie, a potem wykonaj akcję przypisaną do slotu. Po akcji zamknij menu albo je odśwież.

  4. 4.Zablokuj każdy inny sposób przenoszenia przedmiotów

    Anuluj też InventoryDragEvent i obsłuż kliknięcia z Shiftem, klawisze numeryczne oraz kliknięcia we własnym ekwipunku gracza, gdy menu jest otwarte.

  5. 5.Dodaj strony, jeśli lista jest długa

    Dla warpów lub przedmiotów w sklepie, które się nie mieszczą, zarezerwuj dolny rząd na przyciski poprzednia, następna i zamknij.

  6. 6.Otwieraj je komendą

    Na przykład /warps albo przedmiotem lub NPC. Daj komendzie uprawnienie, jeśli menu nie jest dla wszystkich.

  7. 7.Zbuduj je i przeklikaj

    Pozwól Codexe skompilować plugin, wejdź na serwer testowy i kliknij każdy przycisk. Gracze testowi też mogą otworzyć menu i klikać sloty za ciebie.

Zasady, dzięki którym menu jest bezpieczne

  • Rozpoznawaj menu po holderze, nigdy po tytule: tytuł może skopiować każda skrzynia z zmienioną nazwą.
  • Anuluj kliknięcie przed czymkolwiek innym, żeby błąd w akcji nigdy nie zostawił przedmiotu na kursorze gracza.
  • Anuluj przeciąganie i kliknięcia z Shiftem z ekwipunku gracza, inaczej da się wepchnąć przedmioty do menu.
  • Nie ufaj przedmiotowi w slocie: wyszukuj akcję po numerze slotu albo po tagu na przedmiocie.
  • Wolną pracę (odczyty z bazy, zapytania sieciowe) wykonuj poza głównym wątkiem i aktualizuj menu, gdy się skończy.

Menu z konfiguracji

Właściciele serwerów lubią zmieniać menu bez nowego builda. Poproś, żeby każde menu było zdefiniowane w pliku konfiguracyjnym, z rozmiarem, tytułem i, dla każdego przycisku, slotem, materiałem, nazwą, opisem i akcją:

KluczPrzykładCo robi
size27Liczba slotów, wielokrotność 9
slot13Gdzie trafia przycisk, licząc od 0
materialENDER_PEARLWyświetlany przedmiot
actionwarp:spawnCo robi kliknięcie: warp, komenda, inne menu

Przykładowy opis

„Plugin na Paper 1.21.4 o nazwie WarpMenu. /warps otwiera menu z 6 rzędami, z jednym przyciskiem na warp, 45 na stronę, z przyciskami poprzednia, następna i zamknij w dolnym rzędzie. Admini dodają warpy przez /setwarp <name> <material> i usuwają przez /delwarp. Kliknięcie warpu teleportuje po 3 sekundach rozgrzewki, która przerywa się przy ruchu. Gracze nie mogą zabrać ani przesunąć żadnego przedmiotu w menu. Warpy zapisywane w warps.yml, tytuł menu, nazwy przycisków i wiadomości w config.yml.”

Testowanie menu z graczami testowymi

Gracze testowi Codexe mogą otworzyć menu i kliknąć slot, a potem sprawdzić, czy otworzyło się menu, pojawiła się wiadomość albo został wydany przedmiot. Dodaj test własnymi słowami, na przykład „zwykły gracz wpisuje /warps, klika slot 0 i widzi wiadomość o teleportacji”, a będzie uruchamiany ponownie za każdym razem, gdy Codexe dostarczy zmianę.

Pytania

Czy to działa na 1.8?

Menu w skrzyni istnieją w każdej wersji od 1.8. API różni się w szczegółach (nazwy materiałów, tytuły), więc wpisz wersję w prośbie.

Czy mogę zrobić menu w Skript?

Tak, z dodatkiem skript-gui, który jest zainstalowany na serwerze testowym Skript w Codexe. Przy dużych lub mocno używanych menu lepszy jest plugin.

Czy menu może wyglądać jak własna tekstura?

Tylko z paczką zasobów, która zmienia przedmioty albo tło ekwipunku. Po stronie pluginu wszystko jest tak samo: sloty, przedmioty i kliknięcia.

Zrób swoje menu

Ten prompt otworzy się gotowy do wysłania:

“Plugin na Paper 1.21.4 o nazwie WarpMenu: /warps otwiera menu z 6 rzędami, z jednym przyciskiem na warp, 45 na stronę, przyciski poprzednia/następna/zamknij w dolnym rzędzie, /setwarp z nazwą i materiałem oraz /delwarp dla adminów, 3 sekundy rozgrzewki teleportu przerywane ruchem, żadnego przedmiotu nie da się zabrać ani przesunąć, warpy zapisywane w warps.yml, tytuły i wiadomości w config.yml.”

Wygeneruj to w Codexe
Jak zrobić plugin z menu GUI do Minecrafta | Codexe