Przejdź do treści

Tło GUI w DeluxeMenus z Nexo lub Oraxen

Własne ekrany menu w Minecrafcie to sprytny trik: obrazek tła jest pojedynczym znakiem w tytule menu. Nexo i Oraxen nazywają takie znaki glifami. Ten poradnik pokazuje konfigurację glifu w obu pluginach, placeholdery przesunięcia, które ustawiają obrazek na miejscu, i to, jak połączyć wszystko z DeluxeMenus.

Aktualizacja:

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:

plugins/Nexo/glyphs/gui_shop.yml
gui_shop:
  texture: mymenus:gui/shop
  ascent: 45
  height: 254
  • height to wysokość rysowania. Użyj prawdziwej wysokości PNG w pikselach.
  • ascent przesuwa 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:

plugins/Oraxen/glyphs/gui_shop.yml
gui_shop:
  texture: gui/shop
  ascent: 45
  height: 254
  • Oraxen wymaga, żeby height było większe lub równe ascent; 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 3: Tytuł menu w DeluxeMenus

Tytuł łączy kolor, przesunięcie w lewo, glif, przesunięcie z powrotem i tekst tytułu. Dla Nexo:

plugins/DeluxeMenus/gui_menus/shop.yml
menu_title: '&f%nexo_shift_-48%%nexo_gui_shop%%nexo_shift_-201%&8Shop'
open_command: 'shop'
register_command: true
size: 54
items:
  button_1_buy:
    material: air
    slots: [10, 11, 19, 20]
    priority: 1
    click_commands:
      - '[openguimenu] shop_buy'

W Oraxen zmienia się tylko tytuł, bo przesunięcia w lewo mają własny placeholder:

plugins/DeluxeMenus/gui_menus/shop.yml
menu_title: '&f%oraxen_neg_shift_48%%oraxen_gui_shop%%oraxen_neg_shift_201%&8Shop'
  1. &f zachowuje własne kolory obrazka, zamiast barwić go kolorem tytułu.
  2. Pierwsze przesunięcie cofa kursor o 48 pikseli w lewo: Kreator GUI liczy 8 pikseli na wcięcie tytułu skrzyni plus 40 pikseli marginesu swojego płótna.
  3. Drugie przesunięcie przywraca kursor, więc &8Shop leży na obrazku. Jego wartość zależy od szerokości obrazka; Kreator GUI ją oblicza.

Nexo i Oraxen mają też tagi MiniMessage, takie jak <glyph:gui_shop> i <shift:-48>. Kreator GUI zapisuje formę %…%, bo DeluxeMenus dokumentuje placeholdery PlaceholderAPI w menu_title.

Krok 4: Zarejestruj menu i przeładuj

plugins/DeluxeMenus/config.yml
gui_menus:
  shop:
    file: shop.yml
  1. Przebuduj paczkę: /nexo reload (albo /nexo reload pack) w Nexo, /oraxen reload all w Oraxen.
  2. Wpisz /dm reload i przetestuj przez /dm open shop.
  3. Zrestartuj serwer jeden raz. DeluxeMenus rejestruje /shop z register_command: true tylko przy starcie.
  4. Wejdź ponownie, żeby dostać nową paczkę zasobów.

Typowe błędy i rozwiązania

Co widziszPrzyczyna i rozwiązanie
%nexo_gui_shop% albo %oraxen_gui_shop% jako tekstBrakuje PlaceholderAPI albo ID glifu w placeholderze nie pasuje do klucza w pliku glifu.
Pusty kwadrat albo zły symbolPaczka nie została przebudowana albo gracz ma starą paczkę. Przeładuj plugin i wejdź ponownie.
Glif Oraxen brakuje tylko w tytułach menuSerwer jest starszy niż Paper 1.21.2 i nie ma zainstalowanego PacketEvents.
Obrazek jest przesuniętyPrzesunięcie albo ascent nie pasuje do PNG. Wyeksportuj ponownie z tego samego projektu.
Obrazek jest ciemniejszy niż PNGBrakuje &f przed pierwszym placeholderem.
Glif jest odrzucany przy wczytywaniuascent jest większy niż height albo PNG jest większy niż 256×256.
/shop nic nie robiMenu nie ma w config.yml albo serwer nie został zrestartowany po jego dodaniu.

Najczęstsze pytania

Czy konfiguracja różni się w Nexo i Oraxen?

Tylko w szczegółach. Nexo zapisuje teksturę jako namespace:ścieżka i używa %nexo_shift_N% z liczbami ujemnymi. Oraxen przyjmuje ścieżkę względną wobec pack/textures/ i ma %oraxen_neg_shift_N% do przesuwania w lewo.

Dlaczego mój glif nie wyświetla się w tytule DeluxeMenus?

Zwykle placeholder nie jest zamieniany (brak PlaceholderAPI albo złe ID glifu), paczka zasobów nie została przebudowana albo gracz nie wczytał nowej paczki. W Oraxen na serwerach starszych niż Paper 1.21.2 do tytułów potrzebny jest PacketEvents.

Jakiej komendy przeładowania potrzebuję?

W Nexo /nexo reload, która przeładowuje wszystko, albo /nexo reload pack tylko dla paczki. W Oraxen /oraxen reload all. Potem /dm reload dla pliku menu.

Czy mogę użyć tekstury większej niż 256×256 pikseli?

Nie jako jednego glifu. Minecraft ogranicza glify do 256×256 pikseli. Tło menu z Kreatora GUI mieści się w tym limicie przy każdej liczbie rzędów.

Źródła

Sprawdzone w oficjalnej dokumentacji: