Com un glif es converteix en fons de menú
Un menú de cofre escriu el seu títol a la cantonada superior esquerra, i aquest títol pot contenir caràcters del paquet de recursos (resource pack) del servidor. Un glif és un d’aquests caràcters, dibuixat a partir del teu PNG. Si poses un glif gran al títol, el client el pinta sobre tota la pantalla del cofre.
Dos valors el col·loquen. Un shift negatiu mou el cursor cap a l’esquerra abans del glif, així la imatge comença a la vora del cofre i no al sagnat del títol. L’ascent del glif el mou en vertical fins que cobreix el menú. Els slots continuen sent slots reals: on la imatge mostra un botó, el menú té un slot buit amb material: air que continua executant accions en fer-hi clic.
Si fas servir ItemsAdder, llegeix la versió d’aquesta guia per a ItemsAdder. La idea és la mateixa; només canvien la configuració i els noms dels placeholders.
Què necessites
- DeluxeMenus i PlaceholderAPI al teu servidor. DeluxeMenus interpreta els placeholders de PlaceholderAPI a
menu_title. - Nexo o Oraxen, que generen el paquet de recursos i ofereixen els placeholders de glifs i de shift.
- Per a Oraxen: segons la seva documentació, els glifs als títols d’inventari funcionen de manera nativa a Paper 1.21.2 o superior. Els servidors més antics necessiten PacketEvents.
- Un PNG de fons de 256×256 píxels com a màxim. Un sol glif no admet textures més grans.
Pas 1: dissenya el fons
Crea el menú al Creador de GUI: tria les files, una plantilla o un tema i dibuixa botons grans sobre diversos slots. A l’exportació tria Nexo o Oraxen, posa un namespace (per exemple mymenus) i un nom de menú (per exemple shop).
El PNG fa 256 píxels d’amplada i entre 164 píxels (una fila) i 254 píxels (sis files) d’alçada. El marge al voltant del cofre deixa lloc perquè els marcs sobresurtin del contorn normal del menú.
Pas 2a: configuració del glif a Nexo
Nexo llegeix els glifs de qualsevol fitxer YAML de la seva carpeta de glifs. La textura s’escriu com a namespace:ruta, aquí el PNG a plugins/Nexo/pack/assets/mymenus/textures/gui/shop.png:
gui_shop:
texture: mymenus:gui/shop
ascent: 45
height: 254heightés l’alçada amb què es dibuixa. Fes servir l’alçada real en píxels del PNG.ascentpuja el glif. Nexo indica que l’alçada mai no ha de ser més petita que l’ascent.- Els placeholders són
%nexo_gui_shop%per al glif i%nexo_shift_<píxels>%per a l’espai, que pot ser negatiu.
Pas 2b: configuració del glif a Oraxen
Oraxen llegeix els glifs de plugins/Oraxen/glyphs/. La seva ruta de textura és relativa a pack/textures/, així que el PNG va a plugins/Oraxen/pack/textures/gui/shop.png:
gui_shop:
texture: gui/shop
ascent: 45
height: 254- Oraxen exigeix que
heightsigui més gran o igual queascent; Minecraft ho imposa. - El placeholder del glif és
%oraxen_gui_shop%. Els desplaçaments tenen dos placeholders:%oraxen_shift_<píxels>%mou cap a la dreta i%oraxen_neg_shift_<píxels>%cap a l’esquerra. Cadascun admet fins a 2047 píxels. - Hi ha una clau
charper triar tu mateix el caràcter, però és opcional.
Pas 4: registra el menú i recarrega
gui_menus:
shop:
file: shop.yml- Regenera el paquet:
/nexo reload(o/nexo reload pack) a Nexo i/oraxen reload alla Oraxen. - Executa
/dm reloadi prova-ho amb/dm open shop. - Reinicia el servidor una vegada. DeluxeMenus registra
/shopa partir deregister_command: truenomés quan arrenca. - Torna a entrar per rebre el paquet de recursos nou.
Errors comuns i solucions
| Què veus | Causa i solució |
|---|---|
%nexo_gui_shop% o %oraxen_gui_shop% com a text | Falta PlaceholderAPI, o l’ID del glif al placeholder no coincideix amb la clau del fitxer del glif. |
| Una caixa buida o un símbol estrany | No s’ha regenerat el paquet o el jugador té l’antic. Recarrega el plugin i torna a entrar. |
| El glif d’Oraxen només falta als títols de menú | El servidor és anterior a Paper 1.21.2 i PacketEvents no està instal·lat. |
| La imatge està desplaçada | El shift o l’ascent no coincideixen amb el PNG. Torna a exportar des del mateix disseny. |
| La imatge es veu més fosca que el PNG | Falta &f abans del primer placeholder. |
| El glif es rebutja en carregar | ascent és més gran que height, o el PNG fa més de 256×256. |
/shop no fa res | El menú no és a config.yml, o no has reiniciat el servidor després d’afegir-lo. |