Aller au contenu

Fond de GUI personnalisé dans DeluxeMenus avec ItemsAdder

Minecraft n’a aucun réglage pour mettre une image de fond dans un menu, et pourtant beaucoup de serveurs ont des menus de coffre qui ressemblent à de vrais écrans personnalisés. L’astuce, c’est une font image dans le titre du menu : ItemsAdder transforme ton PNG en caractère, et des offsets négatifs déplacent ce caractère par-dessus le coffre. Ce guide te montre la mise en place pas à pas pour DeluxeMenus.

Mis à jour:

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 :

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’image elle-même va dans plugins/ItemsAdder/contents/mymenus/resourcepack/assets/mymenus/textures/gui/shop.png.

  • scale_ratio est la hauteur à laquelle l’image est dessinée. Utilise la vraie hauteur en pixels du PNG pour que rien ne soit étiré.
  • y_position dé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: false garde 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.

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 au début garde l’image dans ses vraies couleurs. Sans lui, l’image est teintée avec la couleur du titre.
  2. %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é.
  3. %img_gui_shop% est le fond lui-même.
  4. Le second offset ramène le curseur en arrière, pour que &8Shop s’é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 :

plugins/DeluxeMenus/config.yml
gui_menus:
  shop:
    file: shop.yml
  1. Lance /iazip pour qu’ItemsAdder régénère le resource pack avec la nouvelle image.
  2. Lance /dm reload. Ouvre le menu une fois avec /dm open shop pour vérifier.
  3. register_command: true enregistre /shop comme une vraie commande, mais seulement au démarrage du serveur. Redémarre le serveur une fois après avoir ajouté un nouveau menu.
  4. Reconnecte-toi, accepte le resource pack et ouvre le menu.

Erreurs fréquentes et solutions

Ce que tu voisCause et solution
Le titre affiche %img_gui_shop% en textePlaceholderAPI 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’imageLe 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 joueursIls 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éeLe 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 sombreIl manque &f devant l’image.
/shop est une commande inconnueLe serveur n’a pas été redémarré après l’ajout du menu, ou le menu manque dans config.yml.
ItemsAdder refuse la font imagey_position est plus grand que scale_ratio, ou l’image dépasse 256×256.

Questions fréquentes

Les joueurs doivent-ils télécharger quelque chose pour un fond de GUI personnalisé ?

Oui, le resource pack du serveur généré par ItemsAdder. Sans lui, le titre affiche un carré de remplacement ou rien du tout. ItemsAdder peut envoyer le pack automatiquement quand les joueurs se connectent.

Pourquoi le titre de mon menu DeluxeMenus affiche-t-il %img_…% en texte ?

Le placeholder n’est pas remplacé. Vérifie que PlaceholderAPI est installé, qu’ItemsAdder est chargé et que le nom après img_ correspond exactement au nom de la font image dans ta config.

Puis-je utiliser le même fond pour des menus avec moins de lignes ?

Seulement si l’image correspond au nombre de lignes. Un coffre de trois lignes est plus court qu’un coffre de six, il lui faut donc son propre PNG et son propre scale_ratio. Le GUI Maker exporte la bonne hauteur pour chaque nombre de lignes.

Est-ce que ça marche sans ItemsAdder ?

La même astuce fonctionne avec les glyphes de Nexo ou d’Oraxen. Sans aucun plugin de resource pack, tu peux quand même créer un menu propre avec des vitres colorées, que le GUI Maker exporte avec l’option « Aucun ».

Sources

Vérifié avec la documentation officielle :