Guide

Comment créer un plugin de menu GUI Minecraft

Mis à jour le 18 octobre 2026

Les menus d'un serveur (warps, boutiques, kits, paramètres) sont des inventaires de coffre que le plugin ouvre et contrôle. Chaque case contient un objet qui sert de bouton. Ils ont l'air simples, mais un menu qui n'annule pas tous les types de clics laisse les joueurs repartir avec les boutons. Ce guide explique comment fonctionnent les menus et comment en faire compiler et tester un.

Partez de cet exemple.

Générer ceci avec Codexe

Étape par étape

  1. 1.Esquissez le menu

    Un menu de coffre compte de 1 à 6 rangées de 9 cases (de 9 à 54). Indiquez quel objet va dans quelle case, ce que fait chaque clic, et quelles cases sont purement décoratives, comme des vitres.

  2. 2.Créez l'inventaire avec un holder

    Ouvrez-le avec Bukkit.createInventory(holder, size, title), en utilisant votre propre classe InventoryHolder. C'est grâce au holder que le plugin sait qu'un clic a eu lieu dans son menu et non dans un coffre normal.

  3. 3.Gérez les clics

    Dans InventoryClickEvent, vérifiez le holder, annulez l'événement, puis exécutez l'action de cette case. Fermez ou rafraîchissez le menu après l'action.

  4. 4.Bloquez tous les autres moyens de déplacer des objets

    Annulez aussi InventoryDragEvent, et gérez les shift-clics, les touches numériques et les clics dans l'inventaire du joueur tant que le menu est ouvert.

  5. 5.Ajoutez des pages si la liste est longue

    Pour les warps ou les articles de boutique qui ne tiennent pas, réservez la rangée du bas aux boutons précédent, suivant et fermer.

  6. 6.Ouvrez-le avec une commande

    Par exemple /warps, ou depuis un objet ou un PNJ. Donnez une permission à la commande si le menu n'est pas pour tout le monde.

  7. 7.Compilez et cliquez partout

    Laissez Codexe compiler le plugin, rejoignez le serveur de test et cliquez sur chaque bouton. Les joueurs de test peuvent aussi ouvrir le menu et cliquer sur des cases à votre place.

Les règles qui sécurisent un menu

  • Identifiez le menu par son holder, jamais par son titre : n'importe quel coffre renommé peut copier un titre.
  • Annulez le clic avant toute autre chose, pour qu'une erreur dans l'action ne laisse jamais l'objet sur le curseur du joueur.
  • Annulez les glisser-déposer et les shift-clics depuis l'inventaire du joueur, sinon des objets peuvent être poussés dans le menu.
  • Ne vous fiez pas à l'objet présent dans la case : retrouvez l'action par le numéro de case ou par un tag sur l'objet.
  • Exécutez les traitements lents (lectures en base de données, requêtes web) hors du thread principal et mettez à jour le menu une fois qu'ils sont terminés.

Des menus définis dans la config

Les propriétaires de serveur aiment modifier les menus sans nouveau build. Demandez que chaque menu soit défini dans un fichier de config, avec la taille, le titre et, pour chaque bouton, la case, le matériau, le nom, le lore et l'action :

CléExempleRôle
size27Nombre de cases, un multiple de 9
slot13L'emplacement du bouton, en comptant à partir de 0
materialENDER_PEARLL'objet affiché
actionwarp:spawnCe que fait un clic : un warp, une commande, un autre menu

Exemple de description

« Un plugin Paper 1.21.4 appelé WarpMenu. /warps ouvre un menu de 6 rangées avec un bouton par warp, 45 par page, et des boutons précédent, suivant et fermer dans la rangée du bas. Les admins ajoutent des warps avec /setwarp <name> <material> et les retirent avec /delwarp. Cliquer sur un warp téléporte après un délai de 3 secondes qui s'annule si le joueur bouge. Les joueurs ne peuvent prendre ni déplacer aucun objet du menu. Warps sauvegardés dans warps.yml, titre du menu, noms des boutons et messages dans config.yml. »

Tester les menus avec des joueurs de test

Les joueurs de test de Codexe peuvent ouvrir un menu et cliquer sur une case, puis vérifier qu'un menu s'est ouvert, qu'un message est apparu ou qu'un objet a été donné. Ajoutez un test avec vos propres mots, par exemple « un joueur normal lance /warps, clique sur la case 0 et voit le message de téléportation », et il est relancé chaque fois que Codexe livre une modification.

Questions

Est-ce que ça marche en 1.8 ?

Les menus de coffre existent dans toutes les versions depuis la 1.8. L'API diffère sur des détails (noms des matériaux, titres), alors indiquez la version dans la demande.

Puis-je plutôt créer des menus avec Skript ?

Oui, avec l'add-on skript-gui, installé sur le serveur de test Skript de Codexe. Un plugin est préférable pour les menus volumineux ou très sollicités.

Un menu peut-il avoir une texture personnalisée ?

Seulement avec un resource pack qui modifie les objets ou le fond de l'inventaire. Côté plugin, rien ne change : cases, objets et clics.

Créez votre menu

Ce prompt s'ouvre prêt à être envoyé :

“Un plugin Paper 1.21.4 appelé WarpMenu : /warps ouvre un menu de 6 rangées avec un bouton par warp, 45 par page, boutons précédent/suivant/fermer dans la rangée du bas, /setwarp avec un nom et un matériau et /delwarp pour les admins, délai de téléportation de 3 secondes qui s'annule au mouvement, aucun objet ne peut être pris ni déplacé, warps sauvegardés dans warps.yml, titres et messages dans config.yml.”

Générer ceci avec Codexe
Comment créer un plugin de menu GUI pour Minecraft | Codexe