Come un glyph diventa lo sfondo di un menu
Un menu a cassa scrive il suo titolo nell’angolo in alto a sinistra, e quel titolo può contenere caratteri del resource pack del server. Un glyph è proprio un carattere del genere, disegnato a partire dal tuo PNG. Metti un glyph grande nel titolo e il client lo dipinge sopra tutta la schermata della cassa.
Due valori lo posizionano. Uno shift negativo sposta il cursore a sinistra prima del glyph, così l’immagine parte dal bordo della cassa e non dal rientro del titolo. L’ascent del glyph lo sposta in verticale finché non copre il menu. Gli slot restano slot veri: dove l’immagine mostra un pulsante, il menu ha uno slot vuoto con material: air che esegue comunque le azioni al clic.
Se invece usi ItemsAdder, leggi la versione per ItemsAdder di questa guida. L’idea è la stessa, cambiano solo la config e i nomi dei placeholder.
Cosa ti serve
- DeluxeMenus e PlaceholderAPI sul tuo server. DeluxeMenus elabora i placeholder di PlaceholderAPI in
menu_title. - Nexo oppure Oraxen, che costruiscono il resource pack e forniscono i placeholder per glyph e shift.
- Per Oraxen: secondo la documentazione di Oraxen, i glyph nei titoli degli inventari funzionano nativamente su Paper 1.21.2 o successivo. I server più vecchi hanno bisogno di PacketEvents.
- Un PNG di sfondo di al massimo 256×256 pixel. Texture più grandi non sono ammesse per un singolo glyph.
Passo 1: disegna lo sfondo
Costruisci il menu nel creatore di GUI: scegli le righe, un preset o un tema, e disegna pulsanti grandi su più slot. Sotto l’esportazione scegli Nexo o Oraxen, imposta un namespace (per esempio mymenus) e un nome del menu (per esempio shop).
Il PNG è largo 256 pixel e alto tra 164 pixel (una riga) e 254 pixel (sei righe). Il margine intorno alla cassa lascia spazio alle cornici per sporgere dal normale contorno del menu.
Passo 2a: config del glyph per Nexo
Nexo legge i glyph da qualsiasi file YAML nella sua cartella glyphs. La texture si scrive come namespace:percorso, qui il PNG in plugins/Nexo/pack/assets/mymenus/textures/gui/shop.png:
gui_shop:
texture: mymenus:gui/shop
ascent: 45
height: 254heightè l’altezza disegnata. Usa l’altezza reale in pixel del PNG.ascentsposta il glyph verso l’alto. Secondo Nexo, height non deve mai essere minore di ascent.- I placeholder sono
%nexo_gui_shop%per il glyph e%nexo_shift_<pixel>%per lo spazio, che può essere negativo.
Passo 2b: config del glyph per Oraxen
Oraxen legge i glyph da plugins/Oraxen/glyphs/. Il percorso della texture è relativo a pack/textures/, quindi il PNG va in plugins/Oraxen/pack/textures/gui/shop.png:
gui_shop:
texture: gui/shop
ascent: 45
height: 254- Oraxen richiede che
heightsia maggiore o uguale adascent; è Minecraft a imporlo. - Il placeholder del glyph è
%oraxen_gui_shop%. Per gli shift ci sono due placeholder:%oraxen_shift_<pixel>%sposta a destra,%oraxen_neg_shift_<pixel>%sposta a sinistra. Ognuno supporta fino a 2047 pixel. - Esiste una chiave
charper scegliere tu il carattere, ma è facoltativa.
Passo 4: registra il menu e ricarica
gui_menus:
shop:
file: shop.yml- Ricostruisci il pack:
/nexo reload(o/nexo reload pack) per Nexo,/oraxen reload allper Oraxen. - Esegui
/dm reloade prova con/dm open shop. - Riavvia il server una volta. DeluxeMenus registra
/shopdaregister_command: truesolo all’avvio. - Rientra per ricevere il nuovo resource pack.
Errori comuni e soluzioni
| Cosa vedi | Causa e soluzione |
|---|---|
%nexo_gui_shop% o %oraxen_gui_shop% come testo | Manca PlaceholderAPI, oppure l’ID del glyph nel placeholder non corrisponde alla chiave nel file del glyph. |
| Un riquadro vuoto o un simbolo sbagliato | Il pack non è stato ricostruito o il giocatore ha il pack vecchio. Ricarica il plugin e rientra. |
| Il glyph di Oraxen manca solo nei titoli dei menu | Il server è più vecchio di Paper 1.21.2 e PacketEvents non è installato. |
| L’immagine è spostata | Shift o ascent non corrispondono al PNG. Esporta di nuovo dallo stesso progetto. |
| L’immagine è più scura del PNG | Manca &f prima del primo placeholder. |
| Il glyph viene rifiutato al caricamento | ascent è più alto di height, oppure il PNG supera 256×256. |
/shop non fa niente | Il menu non è in config.yml, oppure il server non è stato riavviato dopo averlo aggiunto. |