Jak glif staje się tłem menu
Menu skrzyni wypisuje tytuł w lewym górnym rogu, a ten tytuł może zawierać znaki z paczki zasobów serwera. Glif to właśnie taki znak, narysowany z twojego PNG. Wstaw duży glif do tytułu, a klient namaluje go na całym ekranie skrzyni.
Pozycję ustawiają dwie wartości. Ujemne przesunięcie (shift) przesuwa kursor w lewo przed glifem, więc obrazek zaczyna się przy krawędzi skrzyni, a nie za wcięciem tytułu. ascent glifu przesuwa go w pionie, aż zakryje menu. Sloty zostają prawdziwymi slotami: tam, gdzie obrazek pokazuje przycisk, menu ma pusty slot z material: air, który nadal wykonuje akcje po kliknięciu.
Jeśli używasz ItemsAdder, przeczytaj wersję tego poradnika dla ItemsAdder. Zasada jest ta sama, różnią się tylko konfiguracja i nazwy placeholderów.
Czego potrzebujesz
- DeluxeMenus i PlaceholderAPI na serwerze. DeluxeMenus przetwarza placeholdery PlaceholderAPI w
menu_title. - Nexo albo Oraxen, które budują paczkę zasobów i udostępniają placeholdery glifów i przesunięć.
- Dla Oraxen: według dokumentacji Oraxen glify w tytułach ekwipunku działają natywnie na Paper 1.21.2 lub nowszym. Starsze serwery potrzebują PacketEvents.
- PNG tła o rozmiarze maksymalnie 256×256 pikseli. Większe tekstury nie są dozwolone dla pojedynczego glifu.
Krok 1: Zaprojektuj tło
Zbuduj menu w Kreatorze GUI: wybierz liczbę rzędów, szablon albo motyw i narysuj duże przyciski na kilku slotach. W eksporcie wybierz Nexo albo Oraxen, ustaw namespace (na przykład mymenus) i nazwę menu (na przykład shop).
PNG ma 256 pikseli szerokości i od 164 pikseli (jeden rząd) do 254 pikseli (sześć rzędów) wysokości. Margines wokół skrzyni daje ramkom miejsce, żeby wystawały poza zwykły obrys menu.
Krok 2a: Konfiguracja glifu w Nexo
Nexo wczytuje glify z dowolnego pliku YAML w swoim folderze glyphs. Tekstura jest zapisywana jako namespace:ścieżka, tutaj PNG w plugins/Nexo/pack/assets/mymenus/textures/gui/shop.png:
gui_shop:
texture: mymenus:gui/shop
ascent: 45
height: 254heightto wysokość rysowania. Użyj prawdziwej wysokości PNG w pikselach.ascentprzesuwa glif w górę. Według Nexo wysokość nigdy nie może być mniejsza niż ascent.- Placeholdery to
%nexo_gui_shop%dla glifu i%nexo_shift_<piksele>%dla odstępu, który może być ujemny.
Krok 2b: Konfiguracja glifu w Oraxen
Oraxen wczytuje glify z plugins/Oraxen/glyphs/. Ścieżka tekstury jest względna wobec pack/textures/, więc PNG trafia do plugins/Oraxen/pack/textures/gui/shop.png:
gui_shop:
texture: gui/shop
ascent: 45
height: 254- Oraxen wymaga, żeby
heightbyło większe lub równeascent; wymusza to sam Minecraft. - Placeholder glifu to
%oraxen_gui_shop%. Przesunięcia mają dwa placeholdery:%oraxen_shift_<piksele>%przesuwa w prawo,%oraxen_neg_shift_<piksele>%w lewo. Każdy obsługuje do 2047 pikseli. - Istnieje klucz
char, którym sam wybierasz znak, ale jest opcjonalny.
Krok 4: Zarejestruj menu i przeładuj
gui_menus:
shop:
file: shop.yml- Przebuduj paczkę:
/nexo reload(albo/nexo reload pack) w Nexo,/oraxen reload allw Oraxen. - Wpisz
/dm reloadi przetestuj przez/dm open shop. - Zrestartuj serwer jeden raz. DeluxeMenus rejestruje
/shopzregister_command: truetylko przy starcie. - Wejdź ponownie, żeby dostać nową paczkę zasobów.
Typowe błędy i rozwiązania
| Co widzisz | Przyczyna i rozwiązanie |
|---|---|
%nexo_gui_shop% albo %oraxen_gui_shop% jako tekst | Brakuje PlaceholderAPI albo ID glifu w placeholderze nie pasuje do klucza w pliku glifu. |
| Pusty kwadrat albo zły symbol | Paczka nie została przebudowana albo gracz ma starą paczkę. Przeładuj plugin i wejdź ponownie. |
| Glif Oraxen brakuje tylko w tytułach menu | Serwer jest starszy niż Paper 1.21.2 i nie ma zainstalowanego PacketEvents. |
| Obrazek jest przesunięty | Przesunięcie albo ascent nie pasuje do PNG. Wyeksportuj ponownie z tego samego projektu. |
| Obrazek jest ciemniejszy niż PNG | Brakuje &f przed pierwszym placeholderem. |
| Glif jest odrzucany przy wczytywaniu | ascent jest większy niż height albo PNG jest większy niż 256×256. |
/shop nic nie robi | Menu nie ma w config.yml albo serwer nie został zrestartowany po jego dodaniu. |