Comment fonctionne un GUI texturé
Un menu de coffre affiche son titre en haut à gauche. Ce titre est du texte, et le texte peut contenir des caractères issus du resource pack du serveur. ItemsAdder peut transformer n’importe quel PNG en un tel caractère, appelé font image. Mets une grande font image dans le titre, et le client la dessine par-dessus l’écran du coffre.
Deux éléments de plus permettent de tout aligner. Un offset négatif déplace le curseur vers la gauche avant l’image, pour que l’image commence au bord gauche du coffre et non après le retrait du titre. Le y_position de la font image la déplace vers le haut ou vers le bas jusqu’à ce qu’elle couvre tout le menu.
Les slots restent des slots normaux. Là où ton image montre un bouton, le menu a un slot vide et cliquable avec material: air et ses propres actions de clic.
Ce qu’il te faut
- DeluxeMenus et PlaceholderAPI sur un serveur Spigot ou Paper.
- ItemsAdder, qui génère le resource pack et fournit les placeholders
%img_…%. - Une distribution du resource pack qui fonctionne, pour que les joueurs téléchargent vraiment le pack (ItemsAdder propose l’auto-hébergement et d’autres options d’hébergement).
- Un PNG de fond. Minecraft n’autorise pas de glyphes de police plus grands que 256×256 pixels, donc l’image doit tenir dans cette taille.
Étape 1 : crée l’image de fond
Conçois le menu dans le GUI Maker : choisis le nombre de lignes, un thème ou un preset, et dessine de grands boutons sur plusieurs slots. Choisis ItemsAdder comme export, entre ton namespace (par exemple mymenus) et le nom du menu (par exemple shop).
Le PNG exporté fait 256 pixels de large. Sa hauteur dépend du nombre de lignes : de 164 pixels pour une ligne à 254 pixels pour six. L’espace en plus autour du coffre permet aux cadres et aux décorations de dépasser du contour normal du menu.
Étape 2 : déclare la font image dans ItemsAdder
Copie le PNG dans ton namespace et ajoute une entrée font_images. Voici ce que le GUI Maker exporte pour un menu de six lignes :
info:
namespace: mymenus
font_images:
gui_shop:
path: gui/shop
show_in_gui: false
suggest_in_command: false
scale_ratio: 254
y_position: 45L’image elle-même va dans plugins/ItemsAdder/contents/mymenus/resourcepack/assets/mymenus/textures/gui/shop.png.
scale_ratioest la hauteur à laquelle l’image est dessinée. Utilise la vraie hauteur en pixels du PNG pour que rien ne soit étiré.y_positiondéplace l’image verticalement. ItemsAdder exige qu’il soit inférieur ou égal àscale_ratio, car le jeu n’autorise pas plus.show_in_gui: falsegarde le fond hors de la liste d’emojis d’ItemsAdder.
Étape 3 : mets l’image dans le titre du menu DeluxeMenus
DeluxeMenus interprète les placeholders PlaceholderAPI dans menu_title. ItemsAdder fournit %img_<name>% pour l’image et %img_offset_<pixels>% pour un espace vide, qui peut être négatif.
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'&fau début garde l’image dans ses vraies couleurs. Sans lui, l’image est teintée avec la couleur du titre.%img_offset_-48%déplace le curseur de 48 pixels vers la gauche avant l’image. Le GUI Maker utilise cette valeur pour son canevas : 8 pixels pour le retrait du titre du coffre, plus la marge de 40 pixels qu’il ajoute de chaque côté.%img_gui_shop%est le fond lui-même.- Le second offset ramène le curseur en arrière, pour que
&8Shops’écrive par-dessus l’image, là où un titre doit se trouver. Sa valeur dépend de la largeur de ton image ; le GUI Maker la calcule pour toi.
Si tu intègres le titre directement dans l’image avec le GUI Maker, le titre se termine après le placeholder du fond et il n’y a pas de second offset.
Étape 4 : enregistre le menu et régénère le pack
DeluxeMenus ne charge que les menus listés dans son config.yml :
gui_menus:
shop:
file: shop.yml- Lance
/iazippour qu’ItemsAdder régénère le resource pack avec la nouvelle image. - Lance
/dm reload. Ouvre le menu une fois avec/dm open shoppour vérifier. register_command: trueenregistre/shopcomme une vraie commande, mais seulement au démarrage du serveur. Redémarre le serveur une fois après avoir ajouté un nouveau menu.- Reconnecte-toi, accepte le resource pack et ouvre le menu.
Erreurs fréquentes et solutions
| Ce que tu vois | Cause et solution |
|---|---|
Le titre affiche %img_gui_shop% en texte | PlaceholderAPI manque, ou le nom est faux. Le placeholder utilise le nom de la font image tiré de la config, sans le namespace. |
| Une case vide ou un mauvais symbole à la place de l’image | Le pack n’a pas été régénéré, ou le joueur a un ancien pack. Lance /iazip et reconnecte-toi. |
| Aucune image du tout pour certains joueurs | Ils ont refusé le resource pack du serveur. Vérifie l’hébergement de ton pack et les paramètres de serveur du client. |
| L’image est décalée | Le premier offset ou y_position ne correspond pas aux marges de ton PNG. Exporte à nouveau au lieu de deviner des nombres. |
| L’image est grise ou plus sombre | Il manque &f devant l’image. |
/shop est une commande inconnue | Le serveur n’a pas été redémarré après l’ajout du menu, ou le menu manque dans config.yml. |
| ItemsAdder refuse la font image | y_position est plus grand que scale_ratio, ou l’image dépasse 256×256. |