GroupeZ Docs
ConfigurationsButtonsButton Types

Bouton SWITCH

Bouton qui affiche differents items selon des conditions

Le type de bouton SWITCH affiche differents items en fonction d'une valeur de placeholder. Cela vous permet de creer des boutons dynamiques qui changent d'apparence selon les donnees du joueur ou d'autres conditions.

Utilisation

items:
  toggle:
    type: SWITCH
    slot: 13
    key: "%zmenu_player_value_notifications%"
    buttons:
      "true":
        item:
          material: LIME_DYE
          name: "&a&lNotifications : ON"
          lore:
            - "&7Cliquez pour desactiver"
        actions:
          - type: data
            action: SET
            key: "notifications"
            value: "false"
          - type: refresh

      "false":
        item:
          material: GRAY_DYE
          name: "&7&lNotifications : OFF"
          lore:
            - "&7Cliquez pour activer"
        actions:
          - type: data
            action: SET
            key: "notifications"
            value: "true"
          - type: refresh

    # Etat par defaut
    item:
      material: GRAY_DYE
      name: "&7&lNotifications : OFF"

Proprietes

key

Requis. Le placeholder a evaluer pour determiner quel bouton afficher.

key: "%zmenu_player_value_setting%"

buttons

Requis. Une map de valeurs vers des configurations de boutons. La cle est le resultat du placeholder, et la valeur est la configuration du bouton a afficher.

buttons:
  "value1":
    item:
      material: DIAMOND
    actions:
      - type: message
        messages: ["La valeur est 1"]
  "value2":
    item:
      material: EMERALD
    actions:
      - type: message
        messages: ["La valeur est 2"]

Etat par defaut

L'etat par defaut (quand la valeur du placeholder ne correspond a aucune cle dans la section buttons) est defini par les proprietes standard du bouton (item, actions, etc.) placees directement au niveau du bouton.

items:
  mon-switch:
    type: SWITCH
    slot: 13
    key: "%placeholder%"
    buttons:
      "valeur1":
        item:
          material: DIAMOND
    # Ceci est l'etat par defaut
    item:
      material: BARRIER
      name: "&cEtat inconnu"

Exemples

Parametre a bascule

items:
  toggle-pvp:
    type: SWITCH
    slot: 13
    key: "%zmenu_player_value_pvp_enabled%"
    buttons:
      "true":
        item:
          material: DIAMOND_SWORD
          name: "&c&lPvP : ACTIVE"
          lore:
            - "&7Vous pouvez etre attaque par les joueurs"
            - ""
            - "&e▸ Cliquez pour desactiver"
          glow: true
        actions:
          - type: data
            action: SET
            key: "pvp_enabled"
            value: "false"
          - type: message
            messages:
              - "&aLe PvP a ete desactive !"
          - type: sound
            sound: BLOCK_NOTE_BLOCK_PLING
          - type: refresh

      "false":
        item:
          material: SHIELD
          name: "&a&lPvP : DESACTIVE"
          lore:
            - "&7Vous etes protege des joueurs"
            - ""
            - "&e▸ Cliquez pour activer"
        actions:
          - type: data
            action: SET
            key: "pvp_enabled"
            value: "true"
          - type: message
            messages:
              - "&cLe PvP a ete active !"
          - type: sound
            sound: ENTITY_ENDER_DRAGON_GROWL
          - type: refresh

    # Etat par defaut si le placeholder ne correspond ni a "true" ni a "false"
    item:
      material: SHIELD
      name: "&a&lPvP : DESACTIVE"
    actions:
      - type: data
        action: SET
        key: "pvp_enabled"
        value: "true"
      - type: refresh

Bouton multi-etats

items:
  difficulty:
    type: SWITCH
    slot: 22
    key: "%zmenu_player_value_difficulty%"
    buttons:
      "easy":
        item:
          material: LIME_WOOL
          name: "&a&lDifficulte : FACILE"
          lore:
            - "&7Actuel : Mode facile"
            - ""
            - "&e▸ Cliquez pour passer en Normal"
        actions:
          - type: data
            action: SET
            key: "difficulty"
            value: "normal"
          - type: refresh

      "normal":
        item:
          material: YELLOW_WOOL
          name: "&e&lDifficulte : NORMAL"
          lore:
            - "&7Actuel : Mode normal"
            - ""
            - "&e▸ Cliquez pour passer en Difficile"
        actions:
          - type: data
            action: SET
            key: "difficulty"
            value: "hard"
          - type: refresh

      "hard":
        item:
          material: RED_WOOL
          name: "&c&lDifficulte : DIFFICILE"
          lore:
            - "&7Actuel : Mode difficile"
            - ""
            - "&e▸ Cliquez pour passer en Facile"
        actions:
          - type: data
            action: SET
            key: "difficulty"
            value: "easy"
          - type: refresh

    # Etat par defaut
    item:
      material: YELLOW_WOOL
      name: "&e&lDifficulte : NORMAL"
    actions:
      - type: data
        action: SET
        key: "difficulty"
        value: "hard"
      - type: refresh

Affichage base sur le rang

items:
  rank-display:
    type: SWITCH
    slot: 4
    key: "%luckperms_primary_group_name%"
    buttons:
      "default":
        item:
          material: COAL
          name: "&7&lMembre"
          lore:
            - "&7Votre rang actuel"

      "vip":
        item:
          material: IRON_INGOT
          name: "&a&lVIP"
          lore:
            - "&7Votre rang actuel"
          glow: true

      "mvp":
        item:
          material: GOLD_INGOT
          name: "&6&lMVP"
          lore:
            - "&7Votre rang actuel"
          glow: true

      "admin":
        item:
          material: DIAMOND
          name: "&b&lAdmin"
          lore:
            - "&7Votre rang actuel"
          glow: true

    # Etat par defaut
    item:
      material: COAL
      name: "&7&lMembre"

Indicateur de progression

items:
  quest-status:
    type: SWITCH
    slot: 31
    key: "%zmenu_player_value_quest_stage%"
    buttons:
      "0":
        item:
          material: PAPER
          name: "&7&lQuete : Non commencee"
          lore:
            - "&7Commencez votre aventure !"
            - ""
            - "&e▸ Cliquez pour commencer"
        actions:
          - type: data
            action: SET
            key: "quest_stage"
            value: "1"
          - type: message
            messages:
              - "&aQuete commencee ! Parlez a l'ancien du village."
          - type: refresh

      "1":
        item:
          material: WRITABLE_BOOK
          name: "&e&lQuete : En cours"
          lore:
            - "&7Parlez a l'ancien du village"
            - ""
            - "&7Progression : &e1/3"

      "2":
        item:
          material: WRITABLE_BOOK
          name: "&e&lQuete : En cours"
          lore:
            - "&7Collectez 10 bles"
            - ""
            - "&7Progression : &e2/3"

      "3":
        item:
          material: ENCHANTED_BOOK
          name: "&a&lQuete : Terminee !"
          lore:
            - "&7Revenez pour votre recompense"
            - ""
            - "&e▸ Cliquez pour recuperer"
          glow: true
        actions:
          - type: console-command
            commands:
              - "give %player% diamond 5"
          - type: data
            action: SET
            key: "quest_stage"
            value: "done"
          - type: message
            messages:
              - "&aVous avez recu 5 diamants !"
          - type: refresh

      "done":
        item:
          material: BOOK
          name: "&8&lQuete : Completee"
          lore:
            - "&7Vous avez complete cette quete"

    # Etat par defaut
    item:
      material: PAPER
      name: "&7&lQuete : Non commencee"

Notes importantes

  1. Utilisez l'action refresh - Incluez toujours une action refresh lors du changement d'etat
  2. Mettez les valeurs chaines entre guillemets - Les valeurs comme "true" et "false" necessitent des guillemets
  3. Fournissez une valeur par defaut - Definissez toujours un default pour les valeurs inattendues
  4. Integration des donnees joueur - Fonctionne tres bien avec les placeholders %zmenu_player_value_*%

Cas d'utilisation courants

  • Parametres a bascule (on/off)
  • Selecteurs multi-options
  • Indicateurs de progression
  • Affichages bases sur le rang
  • Machines a etats
  • Recompenses conditionnelles

Bonnes pratiques

  1. Rafraichissez toujours apres les changements d'etat
  2. Utilisez des cles descriptives pour les donnees joueur
  3. Fournissez un retour visuel (sons, messages)
  4. Incluez un etat par defaut pour les nouveaux joueurs
  5. Utilisez une distinction visuelle claire entre les etats

Fonctionnalites associees

Prochaines etapes

Sur cette page

GroupeZ MCP

La documentation dans ton IA

Le MCP permet à ton IA de chercher dans la documentation GroupeZ et de lire les exemples à jour pour t’aider à configurer tes plugins.

Lecture seule · Sans clé API côté documentation

1. Copie l’adresse du serveur

Transport : HTTP (Streamable HTTP). Authentification : aucune. Ton outil utilise son propre modèle et ses propres limites d’abonnement.

  1. Ouvre Plugins dans ChatGPT sur le web, puis + → Ajouter un serveur MCP personnalisé.
  2. Nomme-le « GroupeZ Documentation », colle l’URL ci-dessus et choisis « Aucune authentification ». Crée puis installe le plugin.
  3. Dans une conversation, tape @ et sélectionne ce plugin avant d’envoyer ta question. Si nécessaire, active search, get_page et list_pages dans ses paramètres.
Guide officiel de cet outil

3. Pose une question

Utilise le MCP GroupeZ pour m’aider à créer un inventaire zMenu. Recherche les pages pertinentes, lis les exemples et cite tes sources.
Autres clients et dépannage

Pour les clients utilisant mcpServers, adapte cet exemple à leur format :

{
  "mcpServers": {
    "groupez-docs": {
      "url": ""
    }
  }
}

Les outils disponibles sont search, get_page et list_pages. Après une mise à jour, actualise les outils du connecteur. Si ton IA n’y accède pas, vérifie que le connecteur est activé dans la conversation et que ton compte autorise les MCP personnalisés. Ouvrir l’URL dans un navigateur n’est pas un test MCP.