Como um glyph se torna o fundo de um menu
Um menu de baú escreve o título no canto superior esquerdo, e esse título pode conter caracteres do resource pack do servidor. Um glyph é um carácter destes, desenhado a partir do teu PNG. Coloca um glyph grande no título e o cliente pinta-o por cima de todo o ecrã do baú.
Dois valores definem a posição. Um shift negativo move o cursor para a esquerda antes do glyph, para que a imagem comece na borda do baú e não no recuo do título. O ascent do glyph move-o na vertical até cobrir o menu. Os slots continuam a ser slots a sério: onde a imagem mostra um botão, o menu tem um slot vazio com material: air que continua a executar ações ao clicar.
Se usares o ItemsAdder, lê a versão deste guia para o ItemsAdder. A ideia é a mesma; só mudam a config e os nomes dos placeholders.
O que precisas
- DeluxeMenus e PlaceholderAPI no teu servidor. O DeluxeMenus interpreta placeholders do PlaceholderAPI em
menu_title. - Nexo ou Oraxen, que constroem o resource pack e fornecem os placeholders de glyph e de shift.
- Para o Oraxen: os glyphs em títulos de inventário funcionam nativamente em Paper 1.21.2 ou mais recente. Servidores mais antigos precisam do PacketEvents, segundo a documentação do Oraxen.
- Um PNG de fundo com no máximo 256×256 píxeis. Texturas maiores não são permitidas num único glyph.
Passo 1: Desenha o fundo
Cria o menu no criador de GUI: escolhe as linhas, um preset ou tema e desenha botões grandes sobre vários slots. Na exportação, escolhe Nexo ou Oraxen, define um namespace (por exemplo mymenus) e um nome de menu (por exemplo shop).
O PNG tem 256 píxeis de largura e entre 164 píxeis (uma linha) e 254 píxeis (seis linhas) de altura. A margem à volta do baú dá espaço às molduras para saírem do contorno normal do menu.
Passo 2a: Config do glyph no Nexo
O Nexo lê glyphs de qualquer ficheiro YAML na sua pasta de glyphs. A textura escreve-se como namespace:path, aqui o PNG em plugins/Nexo/pack/assets/mymenus/textures/gui/shop.png:
gui_shop:
texture: mymenus:gui/shop
ascent: 45
height: 254heighté a altura desenhada. Usa a altura real do PNG em píxeis.ascentmove o glyph para cima. O Nexo diz que a altura nunca pode ser menor do que o ascent.- Os placeholders são
%nexo_gui_shop%para o glyph e%nexo_shift_<pixels>%para espaço, que pode ser negativo.
Passo 2b: Config do glyph no Oraxen
O Oraxen lê glyphs de plugins/Oraxen/glyphs/. O caminho da textura é relativo a pack/textures/, por isso o PNG vai para plugins/Oraxen/pack/textures/gui/shop.png:
gui_shop:
texture: gui/shop
ascent: 45
height: 254- O Oraxen exige que
heightseja maior ou igual aascent; é o Minecraft que o impõe. - O placeholder do glyph é
%oraxen_gui_shop%. Os shifts têm dois placeholders:%oraxen_shift_<pixels>%move para a direita e%oraxen_neg_shift_<pixels>%move para a esquerda. Cada um suporta até 2047 píxeis. - Existe uma chave
charpara escolheres tu o carácter, mas é opcional.
Passo 4: Regista o menu e recarrega
gui_menus:
shop:
file: shop.yml- Reconstrói o pack:
/nexo reload(ou/nexo reload pack) no Nexo,/oraxen reload allno Oraxen. - Executa
/dm reloade testa com/dm open shop. - Reinicia o servidor uma vez. O DeluxeMenus só regista
/shopa partir deregister_command: trueao arrancar. - Volta a entrar para receberes o novo resource pack.
Erros comuns e soluções
| O que vês | Causa e solução |
|---|---|
%nexo_gui_shop% ou %oraxen_gui_shop% como texto | Falta o PlaceholderAPI, ou o ID do glyph no placeholder não corresponde à chave no ficheiro do glyph. |
| Uma caixa vazia ou um símbolo errado | O pack não foi reconstruído ou o jogador tem o pack antigo. Recarrega o plugin e volta a entrar. |
| O glyph do Oraxen só falta nos títulos dos menus | O servidor é mais antigo do que Paper 1.21.2 e o PacketEvents não está instalado. |
| A imagem está desalinhada | O shift ou o ascent não correspondem ao PNG. Exporta outra vez a partir do mesmo design. |
| A imagem está mais escura do que o PNG | Falta o &f antes do primeiro placeholder. |
| O glyph é rejeitado ao carregar | O ascent é maior do que o height, ou o PNG é maior do que 256×256. |
/shop não faz nada | O menu não está no config.yml, ou o servidor não foi reiniciado depois de o adicionares. |