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 CodexeKrok po kroku
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.Utwórz ekwipunek z holderem
Otwórz go przez
Bukkit.createInventory(holder, size, title), używając własnej klasyInventoryHolder. To po holderze plugin wie, że kliknięcie nastąpiło w jego menu, a nie w zwykłej skrzyni.3.Obsłuż kliknięcia
W
InventoryClickEventsprawdź holder, anuluj zdarzenie, a potem wykonaj akcję przypisaną do slotu. Po akcji zamknij menu albo je odśwież.4.Zablokuj każdy inny sposób przenoszenia przedmiotów
Anuluj też
InventoryDragEventi obsłuż kliknięcia z Shiftem, klawisze numeryczne oraz kliknięcia we własnym ekwipunku gracza, gdy menu jest otwarte.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.Otwieraj je komendą
Na przykład
/warpsalbo przedmiotem lub NPC. Daj komendzie uprawnienie, jeśli menu nie jest dla wszystkich.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ą:
| Klucz | Przykład | Co robi |
|---|---|---|
size | 27 | Liczba slotów, wielokrotność 9 |
slot | 13 | Gdzie trafia przycisk, licząc od 0 |
material | ENDER_PEARL | Wyświetlany przedmiot |
action | warp:spawn | Co 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