Vai al contenuto

Sfondo GUI personalizzato in DeluxeMenus con ItemsAdder

Minecraft non ha nessuna impostazione per mettere un’immagine di sfondo in un menu, eppure tantissimi server hanno menu a cassa che sembrano schermate personalizzate. Il trucco è una font image nel titolo del menu: ItemsAdder trasforma il tuo PNG in un carattere e gli offset negativi spostano quel carattere sopra la cassa. Questa guida te lo fa configurare passo dopo passo per DeluxeMenus.

Aggiornato:

Come funziona una GUI con texture

Un menu a cassa mostra il suo titolo nell’angolo in alto a sinistra. Il titolo è testo, e il testo può contenere caratteri del resource pack del server. ItemsAdder può trasformare qualsiasi PNG in un carattere del genere, chiamato font image. Metti una font image grande nel titolo e il client la disegna sopra la schermata della cassa.

Servono altri due elementi per allineare tutto. Un offset negativo sposta il cursore a sinistra prima dell’immagine, così l’immagine parte dal bordo sinistro della cassa invece che dopo il rientro del titolo. La y_position della font image la sposta in alto o in basso finché non copre tutto il menu.

Gli slot restano slot normali. Dove la tua immagine mostra un pulsante, il menu ha uno slot vuoto e cliccabile con material: air e le sue azioni al clic.

Cosa ti serve

  • DeluxeMenus e PlaceholderAPI su un server Spigot o Paper.
  • ItemsAdder, che costruisce il resource pack e fornisce i placeholder %img_…%.
  • Una distribuzione del resource pack funzionante, così i giocatori scaricano davvero il pack (ItemsAdder offre il self-hosting e altre opzioni di hosting).
  • Un PNG di sfondo. Minecraft non permette glyph di font più grandi di 256×256 pixel, quindi l’immagine deve starci dentro.

Passo 1: crea l’immagine di sfondo

Disegna il menu nel creatore di GUI: scegli le righe, un tema o un preset, e disegna pulsanti grandi su più slot. Scegli ItemsAdder come esportazione, inserisci il tuo namespace (per esempio mymenus) e il nome del menu (per esempio shop).

Il PNG esportato è largo 256 pixel. L’altezza dipende dalle righe, da 164 pixel per una riga a 254 pixel per sei. Lo spazio in più intorno alla cassa permette a cornici e decorazioni di sporgere dal normale contorno del menu.

Passo 2: registra la font image in ItemsAdder

Copia il PNG nel tuo namespace e aggiungi una voce font_images. Ecco cosa esporta il creatore di GUI per un menu a sei righe:

plugins/ItemsAdder/contents/mymenus/configs/gui_shop.yml
info:
  namespace: mymenus
font_images:
  gui_shop:
    path: gui/shop
    show_in_gui: false
    suggest_in_command: false
    scale_ratio: 254
    y_position: 45

L’immagine vera e propria va in plugins/ItemsAdder/contents/mymenus/resourcepack/assets/mymenus/textures/gui/shop.png.

  • scale_ratio è l’altezza con cui viene disegnata l’immagine. Usa l’altezza reale in pixel del PNG, così niente viene stirato.
  • y_position sposta l’immagine in verticale. ItemsAdder richiede che sia minore o uguale a scale_ratio, perché il gioco non permette di più.
  • show_in_gui: false tiene lo sfondo fuori dalla lista delle emoji di ItemsAdder.

Passo 3: metti l’immagine nel titolo del menu DeluxeMenus

DeluxeMenus elabora i placeholder di PlaceholderAPI in menu_title. ItemsAdder fornisce %img_<nome>% per l’immagine e %img_offset_<pixel>% per lo spazio vuoto, che può essere negativo.

plugins/DeluxeMenus/gui_menus/shop.yml
menu_title: '&f%img_offset_-48%%img_gui_shop%%img_offset_-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'
  1. &f all’inizio mantiene l’immagine con i suoi colori reali. Senza, l’immagine viene tinta con il colore del titolo.
  2. %img_offset_-48% sposta il cursore di 48 pixel a sinistra prima dell’immagine. Il creatore di GUI usa questo valore per la sua area di disegno: 8 pixel per il rientro del titolo della cassa più il margine di 40 pixel che aggiunge su ogni lato.
  3. %img_gui_shop% è lo sfondo stesso.
  4. Il secondo offset riporta indietro il cursore, così &8Shop viene scritto sopra l’immagine, dove sta di solito il titolo. Il valore dipende dalla larghezza della tua immagine; il creatore di GUI lo calcola per te.

Se nel creatore di GUI disegni il titolo direttamente nell’immagine, il titolo finisce dopo il placeholder dello sfondo e non c’è un secondo offset.

Passo 4: registra il menu e ricostruisci il pack

DeluxeMenus carica solo i menu elencati nel suo config.yml:

plugins/DeluxeMenus/config.yml
gui_menus:
  shop:
    file: shop.yml
  1. Esegui /iazip, così ItemsAdder ricostruisce il resource pack con la nuova immagine.
  2. Esegui /dm reload. Apri il menu una volta con /dm open shop per controllarlo.
  3. register_command: true registra /shop come comando vero, ma solo all’avvio del server. Dopo aver aggiunto un nuovo menu, riavvia il server una volta.
  4. Rientra, accetta il resource pack e apri il menu.

Errori comuni e soluzioni

Cosa vediCausa e soluzione
Il titolo mostra %img_gui_shop% come testoManca PlaceholderAPI, oppure il nome è sbagliato. Il placeholder usa il nome della font image dalla config, senza namespace.
Un riquadro vuoto o un simbolo sbagliato al posto dell’immagineIl pack non è stato ricostruito, oppure il giocatore ha un pack vecchio. Esegui /iazip e rientra.
Alcuni giocatori non vedono nessuna immagineHanno rifiutato il resource pack del server. Controlla l’hosting del pack e le impostazioni del server nel client.
L’immagine è spostataIl primo offset o y_position non corrisponde ai margini del tuo PNG. Esporta di nuovo invece di andare a tentativi con i numeri.
L’immagine è grigia o più scuraManca &f davanti all’immagine.
/shop è un comando sconosciutoIl server non è stato riavviato dopo aver aggiunto il menu, oppure il menu manca in config.yml.
ItemsAdder rifiuta la font imagey_position è più grande di scale_ratio, oppure l’immagine supera 256×256.

Domande frequenti

I giocatori devono scaricare qualcosa per uno sfondo GUI personalizzato?

Sì, il resource pack del server che costruisce ItemsAdder. Senza, il titolo mostra un quadratino segnaposto o niente. ItemsAdder può inviare il pack automaticamente quando i giocatori entrano.

Perché il titolo di DeluxeMenus mostra %img_…% come testo?

Il placeholder non viene sostituito. Controlla che PlaceholderAPI sia installato, che ItemsAdder sia caricato e che il nome dopo img_ sia esattamente il nome della font image nella tua config.

Posso usare lo stesso sfondo per menu con meno righe?

Solo se l’immagine corrisponde alle righe. Una cassa a tre righe è più bassa di una a sei, quindi le serve un PNG suo e un suo scale_ratio. Il creatore di GUI esporta l’altezza giusta per ogni numero di righe.

Funziona anche senza ItemsAdder?

Lo stesso trucco funziona con i glyph di Nexo o Oraxen. Senza nessun plugin per resource pack puoi comunque costruire un menu pulito con pannelli di vetro colorati, che il creatore di GUI esporta con l’opzione «Nessuno».

Fonti

Verificato sulla documentazione ufficiale: