Config.yml
Reference du fichier de configuration principal
Le fichier config.yml est le fichier de configuration principal de zMenu. Il controle les parametres globaux du plugin, la configuration de la base de donnees, les options de performance et plus encore.
Emplacement du fichier
plugins/zMenu/config.yml
Reference complete de la configuration
#######################################
# Parametres de debug #
#######################################
# Activer les messages de debug dans la console
enable-debug: false
# Activer les informations de timing de debug
enable-debug-time: false
#######################################
# Parametres de stockage #
#######################################
# Type de stockage pour les donnees joueur
# Options : SQLITE, MYSQL, MARIADB, NONE
storage-type: SQLITE
# Configuration de la base de donnees (pour MySQL/MariaDB)
database-configuration:
table-prefix: "zmenu_"
host: "localhost"
port: 3306
user: "username"
password: "password"
database: "zmenu"
#######################################
# Parametres de formatage #
#######################################
# Activer le format MiniMessage (Paper/Purpur uniquement)
# Cela permet le formatage moderne comme <gradient:red:blue>
enable-mini-message-format: true
#######################################
# Parametres de performance #
#######################################
# Mettre en cache les item stacks pour de meilleures performances
enable-cache-item-stack: true
# Activer le cache PlaceholderAPI
enable-cache-placeholder-api: false
# Duree du cache PlaceholderAPI (ticks, 20 = 1 seconde)
cache-placeholder-api: 20
# Mettre en cache les donnees des joueurs hors ligne (secondes)
cache-offline-player: 300
#######################################
# Parametres de clic #
#######################################
# Activer le cooldown de clic pour prevenir le spam de clics
enable-cooldown-click: true
# Duree du cooldown (millisecondes)
cooldown-click-milliseconds: 100
#######################################
# Parametres de securite #
#######################################
# Activer la protection anti-duplication
enable-anti-dupe: true
# Logger quand les joueurs ouvrent des inventaires
enable-player-open-inventory-logs: true
#######################################
# Parametres de menu #
#######################################
# Nom de l'inventaire du menu principal par defaut
main-menu: "example"
# Utiliser la touche d'echange de main secondaire (F) pour ouvrir le menu principal
use-swap-item-off-hand-key-to-open-main-menu: false
# Recharger automatiquement un inventaire quand son fichier est modifie, ajoute ou supprime
hot-reload:
enable: false
delay-milliseconds: 500
# Nombre de dialogues dialog_list pouvant etre imbriques les uns dans les autres
dialog-list-max-depth: 4Options de configuration expliquees
Parametres de debug
enable-debug
Active les messages de debug detailles dans la console. Utile pour resoudre les problemes.
enable-debug: falseQuand activer :
- Resolution de problemes de chargement d'inventaire
- Debug de problemes de placeholder
- Signalement de bugs au developpeur
enable-debug-time
Affiche les informations de timing pour les operations.
enable-debug-time: falseParametres de stockage
storage-type
Determine comment les donnees joueur sont stockees.
| Type | Description |
|---|---|
SQLITE | Base de donnees locale basee sur fichier (par defaut) |
MYSQL | Serveur MySQL |
MARIADB | Serveur MariaDB |
NONE | Pas de stockage persistant |
storage-type: SQLITERecommandations :
- Serveur unique : Utilisez
SQLITE - Reseau/BungeeCord : Utilisez
MYSQLouMARIADB - Pas de donnees joueur necessaires : Utilisez
NONE
database-configuration
Parametres de connexion MySQL/MariaDB.
database-configuration:
table-prefix: "zmenu_"
host: "localhost"
port: 3306
user: "minecraft"
password: "mot_de_passe_securise"
database: "minecraft_db"| Option | Description |
|---|---|
table-prefix | Prefixe pour les tables de la base de donnees |
host | Adresse du serveur de base de donnees |
port | Port de la base de donnees (defaut : 3306) |
user | Nom d'utilisateur de la base de donnees |
password | Mot de passe de la base de donnees |
database | Nom de la base de donnees |
Parametres de formatage
enable-mini-message-format
Active le formatage MiniMessage pour le texte. Fonctionne uniquement sur Paper/Purpur/Pufferfish.
enable-mini-message-format: trueQuand active, vous pouvez utiliser :
name: "<gradient:red:blue>Texte en degrade</gradient>"
lore:
- "<rainbow>Arc-en-ciel !</rainbow>"
- "<bold><gold>Or en gras</gold></bold>"Parametres de performance
enable-cache-item-stack
Met en cache les ItemStacks crees pour ameliorer les performances.
enable-cache-item-stack: trueRecommandation : Gardez active sauf si vous rencontrez des problemes.
enable-cache-placeholder-api
Met en cache les resultats de PlaceholderAPI pour reduire la charge d'analyse.
enable-cache-placeholder-api: falseActiver ceci signifie que les placeholders ne se mettront pas a jour instantanement. Utilisez avec precaution.
cache-placeholder-api
Duree de mise en cache des resultats de placeholder (en ticks).
cache-placeholder-api: 20 # 1 secondecache-offline-player
Combien de temps mettre en cache les donnees des joueurs hors ligne (secondes).
cache-offline-player: 300 # 5 minutesParametres de clic
enable-cooldown-click
Empeche le spam de clics en ajoutant un cooldown entre les clics.
enable-cooldown-click: truecooldown-click-milliseconds
La duree du cooldown entre les clics.
cooldown-click-milliseconds: 100 # 0.1 secondesAjustez selon vos besoins :
- Plus bas = Plus reactif, risque de double-clics accidentels
- Plus haut = Plus sur, peut sembler lent
Parametres de securite
enable-anti-dupe
Active le systeme anti-duplication d'items.
enable-anti-dupe: trueCela detecte et empeche les exploits courants de duplication d'items impliquant les GUIs d'inventaire.
enable-player-open-inventory-logs
Enregistre quand les joueurs ouvrent des inventaires zMenu.
enable-player-open-inventory-logs: trueUtile pour :
- Surveiller l'activite des joueurs
- Debugger les problemes
- Audit de securite
Parametres de menu
main-menu
L'inventaire par defaut ouvert par le type de bouton MAIN_MENU et le raccourci touche F.
main-menu: "example"Cela doit correspondre a un nom de fichier d'inventaire (sans .yml) dans votre dossier inventories/.
use-swap-item-off-hand-key-to-open-main-menu
Permet aux joueurs d'appuyer sur F (touche d'echange de main secondaire) pour ouvrir le menu principal.
use-swap-item-off-hand-key-to-open-main-menu: falseQuand activer :
- Vous voulez un acces facile au menu sans commandes
- Votre serveur a un menu hub principal
Quand garder desactive :
- Les joueurs ont besoin de la touche F pour l'echange d'items reel
- Vous utilisez des packs de ressources personnalises avec des raccourcis touche F
hot-reload
Le hot reload a sa propre page avec tous les details : Hot Reload.
Surveille le dossier inventories/ (et tous ses sous-dossiers) et applique vos modifications sans aucune commande :
- Fichier modifie : l'inventaire est recharge.
- Nouveau fichier : l'inventaire est charge.
- Fichier supprime (ou dossier supprime) : l'inventaire est decharge.
hot-reload:
enable: false
delay-milliseconds: 500| Option | Description |
|---|---|
enable | Active le rechargement a chaud. Desactive par defaut. |
delay-milliseconds | Temps d'attente apres la derniere modification d'un fichier avant de le recharger. Les editeurs de texte enregistrent souvent un fichier en plusieurs etapes, cela evite de le recharger plusieurs fois. |
Bon a savoir :
- Les joueurs qui regardent un inventaire au moment ou il est recharge voient la nouvelle version s'ouvrir instantanement, sur la meme page et avec les memes inventaires precedents (un bouton retour ouvre aussi la nouvelle version). Si l'inventaire est decharge (fichier supprime,
enable: false), il est ferme. - Un fichier qui ne peut pas etre charge (erreur de syntaxe YAML, type de bouton inconnu, taille invalide...) n'est pas applique : la version precedente reste chargee et l'erreur est affichee dans la console jusqu'a ce que vous corrigiez le fichier.
- Seul le dossier
inventories/est surveille. Les fichiers despecify-path-menus, les patterns et les commandes necessitent toujours/zm reload. - L'activation ou la desactivation de l'option prend effet apres
/zm reloadou/zm reload config(ou en deux secondes depuis le dialogue de configuration en jeu). - En plus des evenements du systeme de fichiers, le dossier est scanne toutes les deux secondes. Les modifications sont donc detectees meme la ou le systeme de fichiers n'envoie aucun evenement : conteneurs Docker (Pterodactyl, bind mounts), WSL, partages reseau, fichiers envoyes en SFTP.
- Un fichier est recharge quand son contenu ou sa date de modification change. Enregistrer a nouveau un fichier sans modification le recharge quand meme, mais une meme version n'est jamais rechargee deux fois.
Logs console :
Chaque action est affichee dans la console avec le prefixe [HotReload] :
[zMenu] [HotReload] Inventory hot reload enabled, watching .../plugins/zMenu/inventories (native recursive watch, 12 file(s), 12 loaded inventory(ies), scan every 2000ms, delay 500ms).
[zMenu] [HotReload] Change detected on example.yml, reloading the inventory...
[zMenu] [HotReload] Inventory example.yml reloaded in 14ms, reopened for 1 player(s).Vous verrez aussi les erreurs YAML, les fichiers qui n'ont pas pu etre charges, les inventaires decharges apres une suppression, et les fichiers desactives (enable: false) ou en attente d'un prerequis de chargement. Avec enable-debug a true, chaque evenement de fichier, chaque changement trouve par le scan et chaque fichier ignore (inchange) est aussi affiche.
Depannage : si rien ne se passe quand vous enregistrez un fichier, verifiez d'abord que la ligne Inventory hot reload enabled apparait au demarrage ou apres /zm reload. Activez ensuite enable-debug pour voir si les modifications sont detectees.
Quand activer :
- Pendant la creation ou la modification de menus, pour voir vos changements instantanement
- Sur un serveur de test/developpement
dialog-list-max-depth
Nombre de dialogues dialog_list pouvant etre imbriques les uns dans les autres (une liste dans une liste dans une liste...). Par defaut : 4.
dialog-list-max-depth: 4Cela ne limite pas le nombre de dialogues qu'une liste contient. Une liste envoie tous les dialogues qu'elle contient, y compris le contenu des listes imbriquees, dans le paquet qui l'ouvre : une imbrication profonde rend ce paquet plus gros et peut deconnecter le joueur. Les listes imbriquees au-dela de cette valeur sont ignorees.
Exemples de configurations
Serveur basique (SQLite)
enable-debug: false
storage-type: SQLITE
enable-mini-message-format: true
enable-cache-item-stack: true
enable-anti-dupe: true
enable-cooldown-click: true
cooldown-click-milliseconds: 100
main-menu: "main"Serveur reseau (MySQL)
enable-debug: false
storage-type: MYSQL
database-configuration:
table-prefix: "zmenu_"
host: "mysql.monreseau.com"
port: 3306
user: "zmenu_user"
password: "mot_de_passe_securise_ici"
database: "minecraft_network"
enable-mini-message-format: true
enable-cache-item-stack: true
enable-cache-placeholder-api: true
cache-placeholder-api: 40
enable-anti-dupe: true
main-menu: "hub_menu"Axe sur les performances
enable-debug: false
storage-type: SQLITE
enable-cache-item-stack: true
enable-cache-placeholder-api: true
cache-placeholder-api: 60
cache-offline-player: 600
enable-cooldown-click: true
cooldown-click-milliseconds: 150Developpement/Test
enable-debug: true
enable-debug-time: true
hot-reload:
enable: true
storage-type: SQLITE
enable-cache-item-stack: false
enable-cache-placeholder-api: false
enable-cooldown-click: false
enable-player-open-inventory-logs: trueRecharger la configuration
Apres avoir effectue des modifications :
/zm reload configOu rechargez tout :
/zm reloadLes changements de configuration de base de donnees necessitent un redemarrage du serveur pour prendre effet.
Bonnes pratiques
- Commencez avec les valeurs par defaut : Changez uniquement ce dont vous avez besoin
- Activez le cache sur les gros serveurs : Ameliore les performances
- Utilisez MySQL pour les reseaux : Permet le partage de donnees entre serveurs
- Gardez l'anti-dupe active : Protege votre economie
- Testez le mode debug : Utile lors de la configuration, desactivez en production
- Definissez un cooldown de clic approprie : Equilibrez reactivite et securite
Depannage
Echec de connexion a la base de donnees
- Verifiez que les identifiants sont corrects
- Verifiez que le serveur de base de donnees fonctionne
- Assurez-vous que la base de donnees existe
- Verifiez que le pare-feu autorise les connexions
- Verifiez que l'utilisateur a les permissions appropriees
Les placeholders ne se mettent pas a jour
- Desactivez temporairement le cache des placeholders
- Verifiez que PlaceholderAPI est installe
- Verifiez que l'expansion est telechargee
Problemes de performance
- Activez le cache d'item stack
- Activez le cache de placeholder
- Augmentez le cooldown de clic
- Verifiez les boucles d'inventaire (A ouvre B ouvre A)
Prochaines etapes
- Configurez les Commandes personnalisees
- Configurez le stockage des Donnees joueur
- Apprenez l'API de developpement