GroupeZ Docs
Configuration

Configuration Principale

Options de configuration principales pour zAuctionHouse V4

Le fichier de configuration principal config.yml contrôle le comportement central de zAuctionHouse V4.

Debug & Monitoring

# Active les logs détaillés et messages d'erreur dans la console
enable-debug: false

# Active le monitoring de performance et la journalisation
# Enregistre les temps d'exécution pour les opérations lourdes
enable-performance-debug: false

# Active la vérification automatique des versions
enable-version-checker: true

# Configuration du filtre de debug de performance
performance-debug:
  filter:
    # Mode de filtre : DISABLED, WHITELIST, BLACKLIST
    mode: DISABLED
    # Liste des opérations à filtrer (supporte les wildcards)
    operations:
      - "loadItems.*"
      - "SortedItemsCache.*"

Opérations de Performance

Noms d'opérations disponibles pour le filtrage :

OpérationDescription
loadItems.loadPlayersTemps de chargement des données joueur
loadItems.loadItemsFromDBTemps de chargement des objets depuis la base de données
loadItems.processItemsTemps de traitement des objets chargés
loadItems.totalTemps total de chargement
loadItems.rebuildSortedItemsCacheTemps de reconstruction du cache trié
SortedItemsCache.rebuildTemps de reconstruction du cache d'objets triés
applyCategoriesTemps d'application des filtres de catégorie
computeCategoryCount[categoryId]Temps de comptage des objets par catégorie
openInventory.<nom fichier>Temps d'ouverture d'un inventaire spécifique

Paramètres Généraux

# Format de date pour les horodatages (Java SimpleDateFormat)
# Exemples :
#   "dd/MM/yyyy HH:mm:ss" -> "25/12/2024 14:30:45"
#   "MM-dd-yyyy hh:mm a"  -> "12-25-2024 02:30 PM"
date-format: dd/MM/yyyy HH:mm:ss

# Fuseau horaire utilisé pour l'affichage des dates.
# Définir à "auto" pour utiliser le fuseau horaire par défaut du serveur.
# Exemples : "UTC", "Europe/Paris", "America/New_York", "Asia/Tokyo"
timezone: auto
ValeurDescription
autoUtilise le fuseau horaire par défaut du serveur (par défaut)
UTCTemps Universel Coordonné
Europe/ParisHeure d'Europe Centrale (UTC+1/UTC+2)
America/New_YorkHeure de l'Est (UTC-5/UTC-4)
Asia/TokyoHeure Standard du Japon (UTC+9)

Vous pouvez utiliser n'importe quel identifiant Java TimeZone valide. Ce paramètre affecte tous les placeholders de date formatés par le serveur : %date%, %formatted-expire-date%, etc. (Le placeholder de webhook Discord %expires_at% n'est pas affecté, car il utilise désormais un horodatage dynamique Discord rendu dans le fuseau horaire local de chaque utilisateur.)

Configuration de la Base de Données

# Type de stockage : SQLITE, MYSQL, MARIADB
storage-type: SQLITE

# Nom du serveur pour les configurations multi-serveur
server-name: skyblock

# Paramètres de connexion à la base de données (MySQL/MariaDB uniquement)
database-configuration:
  table-prefix: zauctionhouse_
  host: 192.168.10.10
  port: 3306
  user: homestead
  password: secret
  database: zauctionhouse
  debug: false
  # Durée de vie maximale d'une connexion du pool, en secondes (défaut : 1800)
  max-lifetime: 1800

Durée de vie des connexions

max-lifetime définit combien de temps une connexion MySQL/MariaDB reste dans le pool avant d'être retirée et remplacée. Baissez-la si votre base, ou un proxy devant elle (pare-feu, load balancer), ferme les connexions inactives avant 30 minutes, ce qui se traduit par des erreurs de connexion fermée dans la console.

ValeurEffet
180030 minutes, comme quand l'option est absente
0Les connexions sont gardées jusqu'à la fermeture du pool
Moins de 30Refusé par HikariCP, qui revient à 30 minutes

Gardez-la quelques minutes sous le wait_timeout de la base. L'option n'a aucun effet en SQLITE. Elle peut aussi être définie dans le fichier partagé database-configuration.yml à la racine du serveur.

Types de Stockage

TypeDescriptionIdéal pour
SQLITEBase de données locale basée sur fichierServeur unique, aucune configuration requise
MYSQLServeur de base de données MySQLMulti-serveur, grands hôtels des ventes
MARIADBServeur de base de données MariaDBMulti-serveur, grands hôtels des ventes

Pour la synchronisation multi-serveur, utilisez MySQL/MariaDB avec l'addon Redis.

Couleurs des Messages

Définissez des raccourcis de couleur personnalisés pour les messages :

message-colors:
  - key: <primary>
    color: '#24d65d'
  - key: <secondary>
    color: '#656665'
  - key: <error>
    color: '#ff0000'
  - key: <success>
    color: '#00ff00'

Utilisez-les dans n'importe quel message : <primary>Bienvenue <secondary>à l'hôtel des ventes !

Configuration des Commandes

Un redémarrage du serveur est requis après modification des paramètres de commandes !

commands:
  main-command:
    aliases:
      - ah
      - hdv
      - auction
      - zauction

  sell:
    # Ouvrir l'interface quand on exécute /ah sell sans arguments
    enable-sell-inventory: false
    aliases:
      - sell
      - s
      - vendre
    arguments:
      - name: price
        display-name: prix
        required: true
        auto-completion:
          - 1000
          - 10000
          - 25000
      - name: amount
        display-name: quantité
        required: false
        auto-completion:
          - '1'
          - '%max-stack-size%'
      - name: economy
        display-name: économie
        required: false
        auto-completion:
          - vault

  claim:
    aliases:
      - claim
      - c
      - recuperer

  page:
    aliases:
      - page
      - p

Commandes d'Inventaire Personnalisées

Créez des raccourcis vers des inventaires spécifiques :

  inventories:
    - enable: true
      permission: "zauctionhouse.selling"
      description: "Ouvrir les objets en vente"
      aliases:
        - 'selling'
      inventory: SELLING_ITEMS

    - enable: true
      permission: "zauctionhouse.expired"
      description: "Ouvrir les objets expirés"
      aliases:
        - 'expired'
      inventory: EXPIRED_ITEMS

    - enable: true
      permission: "zauctionhouse.purchased"
      description: "Ouvrir les objets achetés"
      aliases:
        - 'purchased'
      inventory: PURCHASED_ITEMS

    - enable: true
      permission: "zauctionhouse.history"
      description: "Ouvrir l'historique"
      aliases:
        - 'history'
      inventory: HISTORY

Raccourcis de Prix

Permettez aux joueurs d'utiliser une notation abrégée pour les grands prix :

number-sell-multiplication:
  enable: true
  formats:
    - format: K
      multiplication: 1000
    - format: M
      multiplication: 1000000
    - format: B
      multiplication: 1000000000
    - format: T
      multiplication: 1000000000000
    # ... continue jusqu'à TR (Tredecillion)

Exemples :

  • /ah sell 1K = 1 000
  • /ah sell 2.5M = 2 500 000
  • /ah sell 1B = 1 000 000 000

Prix Décimaux

Contrôlez si les joueurs peuvent mettre en vente un objet à un prix contenant des décimales (par ex. 10.5) :

# Mettez false pour forcer uniquement les nombres entiers.
allow-decimal-prices: true

Lorsque ce paramètre est sur false, toute mise en vente dont le prix final possède une partie décimale est refusée sur tous les chemins de vente (la commande /ah sell et l'inventaire de vente), et le joueur reçoit le message price-decimal-not-allowed. Les raccourcis de prix qui donnent un nombre entier restent autorisés (par ex. 2.5K = 2500). Par défaut : true.

Paramètres d'Expiration

Tous les temps sont en secondes.

expiration:
  # Annonces de vente
  auction:
    default-expiration: 172800  # 2 jours
    permission:
      enable: false
      permissions:
        - permission: zauctionhouse.expiration.vip
          expiration: 3600       # 1 heure
        - permission: zauctionhouse.expiration.elite
          expiration: 7200       # 2 heures
        - permission: zauctionhouse.expiration.legend
          expiration: 259200     # 3 jours

  # Annonces d'enchères (fonctionnalité future)
  bid:
    default-expiration: 172800

  # Annonces de location (fonctionnalité future)
  rent:
    default-expiration: 172800

  # Nettoyage des objets expirés
  expire:
    default-expiration: 604800   # 1 semaine

  # Nettoyage des objets achetés
  purchase:
    default-expiration: 604800   # 1 semaine

Valeurs de Temps Courantes

TempsSecondes
1 heure3600
1 jour86400
2 jours172800
3 jours259200
1 semaine604800
30 jours2592000

Limites d'Objets

Configurez combien d'objets les joueurs peuvent mettre en vente :

permissions:
  auction:
    - permission: zauctionhouse.max.5
      limit: 5
    - permission: zauctionhouse.max.10
      limit: 10
    - permission: zauctionhouse.max.15
      limit: 15

  rent:
    - permission: zauctionhouse.max.5
      limit: 5
    # ...

  bid:
    - permission: zauctionhouse.max.5
      limit: 5
    # ...

Restrictions de Monde

Empêchez la mise en vente d'objets dans des mondes spécifiques (les joueurs peuvent toujours parcourir/acheter) :

banned-worlds:
  auction:
    - "world_the_end"
  rent:
    - "world_the_end"
  bid:
    - "world_the_end"

Lore d'Affichage des Objets

Personnalisez le lore ajouté aux objets dans l'hôtel des ventes :

item-lore:
  # Force la quantité affichée de l'objet à 1 dans l'inventaire de l'hôtel des ventes.
  # La quantité réelle est conservée en interne et donnée à l'acheteur lors de l'achat.
  # Utile pour garder un affichage propre et uniforme.
  force-amount-one: false

  # Objets dans la liste principale
  listed-auction-item:
    - ""
    - "<white>⌂ #92ffffVendeur#8c8c8c: #2CCED2%seller%"
    - "<white>☆ #92ffffPrix#8c8c8c: #2CCED2%price%"
    - "<white>⌚ #92ffffExpire#8c8c8c: #969696%time-remaining%"
    - ""
    - "%status%"

  # Ventes en masse (plusieurs objets)
  multiple-listed-auction-item:
    - ""
    - "<white>⌂ #92ffffVendeur#8c8c8c: #2CCED2%seller%"
    - "<white>☆ #92ffffPrix#8c8c8c: #2CCED2%price%"
    - "<white>⌚ #92ffffExpire#8c8c8c: #969696%time-remaining%"
    - ""
    - "#8c8c8c• #2CCED2ᴄʟɪᴄ ɢᴀᴜᴄʜᴇ #92ffffᴘᴏᴜʀ ᴠᴏɪʀ ʟᴇ ᴄᴏɴᴛᴇɴᴜ"
    - "%status%"

  # Objets expirés
  expired-item:
    - ""
    - "<white>⌚ #92ffffExpire#8c8c8c: #969696%time-remaining%"
    - ""
    - "#8c8c8c• #2CCED2Cliquez pour récupérer cet objet"

  # Objets achetés
  purchased-item:
    - ""
    - "<white>⌚ #92ffffExpire#8c8c8c: #969696%time-remaining%"
    - ""
    - "#8c8c8c• #2CCED2Cliquez pour récupérer cet objet"

  # Vos objets en vente
  selling-item:
    - ""
    - "<white>⌚ #92ffffExpire#8c8c8c: #969696%time-remaining%"
    - ""
    - "#8c8c8c• #2CCED2Cliquez pour récupérer cet objet"

  # Objet en cours d'achat
  being-purchased-item:
    - ""
    - "<white>⌚ #92ffffExpire#8c8c8c: #969696%time-remaining%"
    - ""
    - "#8c8c8c• #ff3535Votre objet est en cours d'achat, vous ne pouvez pas le récupérer."

  # Objets dans l'historique
  history-item:
    - ""
    - "<white>⌂ #92ffffAcheteur#8c8c8c: #2CCED2%buyer%"
    - "<white>☆ #92ffffPrix#8c8c8c: #2CCED2%price%"
    - "<white>⌚ #92ffffDate#8c8c8c: #969696%date%"

  # Messages de statut dynamiques
  status:
    seller: "#8c8c8c• #2CCED2ᴄʟɪᴄ #92ffffᴘᴏᴜʀ ʀᴇ́ᴄᴜᴘᴇ́ʀᴇʀ ᴄᴇᴛ ᴏʙᴊᴇᴛ"
    buyer: "#8c8c8c• #2CCED2ᴄʟɪᴄ #92ffffᴘᴏᴜʀ ᴀᴄʜᴇᴛᴇʀ ᴄᴇᴛ ᴏʙᴊᴇᴛ"
    right-seller: "#8c8c8c• #2CCED2ᴄʟɪᴄ ᴅʀᴏɪᴛ #92ffffᴘᴏᴜʀ ʀᴇ́ᴄᴜᴘᴇ́ʀᴇʀ ᴄᴇᴛ ᴏʙᴊᴇᴛ"
    right-buyer: "#8c8c8c• #2CCED2ᴄʟɪᴄ ᴅʀᴏɪᴛ #92ffffᴘᴏᴜʀ ᴀᴄʜᴇᴛᴇʀ ᴄᴇᴛ ᴏʙᴊᴇᴛ"

  # Noms des types de log
  log-type-names:
    SALE: "Objet Mis en Vente"
    PURCHASE: "Objet Acheté"
    REMOVE_LISTED: "Retiré de la Vente"
    REMOVE_SELLING: "Objet en Vente Récupéré"
    REMOVE_EXPIRED: "Objet Expiré Récupéré"
    REMOVE_PURCHASED: "Achat Récupéré"

Placeholders Disponibles

PlaceholderDescription
%seller%Nom du vendeur
%buyer%Nom de l'acheteur
%price%Prix formaté
%price-price-raw%Valeur brute du prix
%price-price-with-decimal-format%Prix avec formatage décimal (ex : 10 000)
%price-price-with-reduction%Prix avec réduction (ex : 10.0k)
%time-remaining%Temps avant expiration
%formatted-expire-date%Date d'expiration formatée
%date%Date de la transaction
%status%Message d'action dynamique
%item_count%Nombre total d'objets dans l'annonce
%economy-name%Nom interne de l'économie
%economy-display-name%Nom d'affichage de l'économie
%items%Noms d'affichage des objets
%type%Type d'entrée de log
%player%Joueur impliqué
%target%Joueur cible (admin)

Performance

Seuls les placeholders réellement utilisés dans vos templates de lore sont calculés au moment du rendu. Le plugin pré-détecte les placeholders référencés par chaque section de lore au chargement de la configuration. Si votre lore expired-item n'utilise que %time-remaining%, le plugin n'utilisera pas de ressources pour calculer %price%, %seller%, etc.

Format de Temps

Configurez l'affichage du temps :

time:
  second: seconde
  seconds: secondes
  minute: minute
  minutes: minutes
  hour: heure
  hours: heures
  day: jour
  days: jours

  # Chaînes de format (style printf)
  time-day: '%02dᴊ %02dʜ %02dᴍ'      # >= 1 jour
  time-hour: '%02dʜ %02dᴍ %02ds'     # >= 1 heure
  time-minute: '%02dᴍ %02ds'          # >= 1 minute
  time-second: '%02ds'                # < 1 minute

Comportement des Actions

action:
  # Actualiser l'inventaire après les actions
  update-inventory-on-action: true

  # Réinitialiser le filtre de catégorie à la réouverture de l'hôtel des ventes
  reset-category-on-open: true

  # Réinitialiser le filtre de recherche à la réouverture de l'hôtel des ventes
  reset-search-on-open: true

  # Retrait d'objets des annonces
  remove-listed-item:
    give-item: false           # Donner à l'inventaire ou objets expirés
    open-inventory: true       # Rouvrir l'inventaire après
    open-confirm-inventory: true  # Afficher la confirmation

  # Retrait des objets expirés
  remove-expired-item:
    open-inventory: true
    player-inventory-must-have-free-space: true

  # Achat d'objets
  purchased-item:
    give-item: false           # Donner à l'inventaire ou objets achetés
    # Utilisé uniquement avec give-item: true.
    # true : l'achat est refusé si l'objet ne rentre pas dans l'inventaire.
    # false : l'achat passe et l'objet va dans les objets achetés
    #         (message purchase-inventory-full) s'il ne rentre pas.
    player-inventory-must-have-free-space: true
    open-inventory: true
    money-item:
      enable: true
      duration: 60             # Ticks pour afficher l'erreur
      item:
        material: BARRIER
        name: "#ff3535✘ Vous n'avez pas assez d'argent !"
    money-message: true
    money-sound:
      enable: true
      category: MASTER
      sound: minecraft:entity.villager.no
      volume: 1
      pitch: 1

  # Retrait des objets en vente
  selling-item:
    open-inventory: true
    player-inventory-must-have-free-space: true

Configuration Auto-Claim

auto-claim:
  # Auto-déposer l'argent en attente à la connexion
  enable: false
  delay-ticks: 20              # Attendre avant de réclamer
  notify-player: true          # Message lors de l'auto-réclamation
  notify-pending: true         # Notifier l'argent en attente
  notify-delay-ticks: 40
  deposit-reason: "Argent d'enchères réclamé"

Notification de Ventes

sales-notification:
  # Notifier des ventes hors ligne à la connexion
  enable: true
  delay-ticks: 60

Diffusion (Broadcast)

Envoie des messages à tous les joueurs en ligne lorsqu'un objet est mis en vente ou acheté. Les joueurs peuvent désactiver individuellement ces messages avec /ah option.

broadcast:
  sell:
    # Si vrai, un message est envoyé à tous les joueurs en ligne lorsqu'un objet est mis en vente
    enable: false

    # Si vrai, le vendeur ne verra pas le message de diffusion
    exclude-seller: true

  purchase:
    # Si vrai, un message est envoyé à tous les joueurs en ligne lorsqu'un objet est acheté
    enable: false

    # Si vrai, l'acheteur ne verra pas le message de diffusion
    exclude-buyer: true

  # Messages personnalisés par catégorie (format MiniMessage).
  # Si un objet appartient à une catégorie listée ici, le message personnalisé
  # est utilisé à la place du message par défaut dans messages.yml.
  # La clé de catégorie doit correspondre à un ID défini dans categories.yml.
  # Placeholders disponibles : %seller%, %buyer%, %items%, %price%, %category%
  category-messages:
    sell: {}
    purchase: {}

Messages personnalisés par catégorie

Vous pouvez définir des messages de diffusion personnalisés pour des catégories spécifiques. Lorsqu'un objet appartient à une catégorie configurée, le message personnalisé est utilisé à la place du message par défaut de messages.yml.

broadcast:
  category-messages:
    sell:
      weapons: "<red><bold>ARME</bold></red> <white>%seller% <yellow>a mis en vente %items% <yellow>pour <gold>%price%<yellow> !"
      armor: "<blue><bold>ARMURE</bold></blue> <white>%seller% <yellow>a mis en vente %items% <yellow>pour <gold>%price%<yellow> !"
      enchanted-books: "<light_purple><bold>ENCHANT</bold></light_purple> <white>%seller% <yellow>a mis en vente %items% <yellow>pour <gold>%price%<yellow> !"
    purchase:
      weapons: "<red><bold>ARME</bold></red> <white>%buyer% <yellow>a acheté %items% <yellow>de <white>%seller% <yellow>pour <gold>%price%<yellow> !"
      armor: "<blue><bold>ARMURE</bold></blue> <white>%buyer% <yellow>a acheté %items% <yellow>de <white>%seller% <yellow>pour <gold>%price%<yellow> !"
      enchanted-books: "<light_purple><bold>ENCHANT</bold></light_purple> <white>%buyer% <yellow>a acheté %items% <yellow>de <white>%seller% <yellow>pour <gold>%price%<yellow> !"

Les clés de catégorie doivent correspondre aux ID définis dans categories.yml (ex : weapons, armor, blocks, enchanted-books, misc).

Placeholders de diffusion

PlaceholderDescriptionDisponible dans
%seller%Nom du vendeurVente & Achat
%buyer%Nom de l'acheteurAchat uniquement
%items%Nom de l'objetVente & Achat
%price%Prix formatéVente & Achat
%category%Nom de la catégorieVente & Achat

Configuration du Tri

sort-items:
  # Tri par défaut : ASCENDING_PRICE, ASCENDING_DATE, DECREASING_DATE, DECREASING_PRICE
  default-sort: DECREASING_DATE

  # Noms d'affichage des types de tri
  translations:
    ASCENDING_PRICE: "ᴘʀɪx ᴄʀᴏɪssᴀɴᴛ"
    ASCENDING_DATE: "ᴅᴀᴛᴇ ᴄʀᴏɪssᴀɴᴛᴇ"
    DECREASING_DATE: "ᴅᴀᴛᴇ ᴅᴇ́ᴄʀᴏɪssᴀɴᴛᴇ"
    DECREASING_PRICE: "ᴘʀɪx ᴅᴇ́ᴄʀᴏɪssᴀɴᴛ"

Paramètres de Migration

Migrer les données depuis zAuctionHouse V3 :

migration:
  zauctionhouse-v3:
    source-type: SQLITE        # MYSQL, MARIADB, SQLITE, ou JSON
    table-prefix: "zauctionhouse_"
    sqlite-path: "plugins/zAuctionHousev3/database.db"

    # Paramètres MySQL/MariaDB
    host: "localhost"
    port: 3306
    database: "zauctionhouse"
    user: "root"
    password: ""

    # Paramètres JSON
    json-folder: "plugins/zAuctionHouseV3"

Pour migrer, exécutez :

/ah admin migrate zauctionhousev3 confirm

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.