Aller au contenu principal

Configuration

Trois fichiers/dossiers principaux :

  • plugins/kginfoservs_queststrack/config.yml — Configuration generale du plugin
  • plugins/kginfoservs_queststrack/quests_config.yml — Textes, etapes et objectifs des quetes
  • plugins/kginfoservs_queststrack/lang/<locale>.yml — Fichiers de traduction de l’interface

config.yml — Reference complete

Voici la structure complete du fichier config.yml avec toutes les options disponibles.

Categorie par defaut (defaultCategory)

defaultCategory: "other"

Categorie utilisee pour les quetes qui ne specifient pas questParameters.questCategory dans leur configuration BetonQuest. La valeur doit correspondre a la cle de configuration d'une categorie (pas le displayName).

Categories du menu (menuItems.categories)

Les categories organisent les quetes dans le menu GUI. Vous pouvez definir jusqu'a 4 categories. Chaque categorie est entierement personnalisable.

menuItems:
categories:
story:
displayName: "Story"
material: WRITABLE_BOOK
customModelData: 0
autoTrack: true
secondary:
displayName: "Secondary"
material: BOOK
customModelData: 0
autoTrack: false
dailyQuests:
displayName: "Daily"
material: CLOCK
customModelData: 0
autoTrack: false
other:
displayName: "Other"
material: BOOKSHELF
customModelData: 0
autoTrack: false

Proprietes d'une categorie

ProprieteObligatoireDefautDescription
displayNameNonCle de configurationNom affiche dans le menu GUI. C'est cette valeur que vous utilisez dans questCategory de BetonQuest.
materialOuiMateriau Minecraft pour l'icone (ex: WRITABLE_BOOK, CLOCK)
customModelDataNon0Custom model data pour resource pack
autoTrackNonfalseSi true, les quetes de cette categorie sont automatiquement ajoutees au suivi du scoreboard quand elles sont activees
displayName et questCategory

La valeur de questCategory dans BetonQuest doit correspondre exactement au displayName de la categorie (sensible a la casse et aux accents).

Exemple : si votre categorie a displayName: "Journaliere", vos quetes doivent avoir questCategory: "Journaliere" (pas "journaliere" ni "Journalière").

Si aucun displayName n'est defini, la cle de configuration est utilisee (ex: dailyQuests).

Sous-categories

Chaque categorie peut avoir des sous-categories pour une organisation plus fine :

menuItems:
categories:
dailyQuests:
displayName: "Daily"
material: CLOCK
customModelData: 0
autoTrack: false
subcategories:
monsters:
displayName: "Monsters"
material: ZOMBIE_HEAD
farming:
displayName: "Farming"
material: NETHERITE_HOE
mining:
displayName: "Mining"
material: NETHERITE_PICKAXE

Pour placer une quete dans une sous-categorie, utilisez le format hierarchique avec un point dans BetonQuest :

# Dans le package.yml de la quete BetonQuest
questParameters:
questCategory: "Daily.Monsters"

Le format est : displayName_categorie.displayName_souscategorie

  1. Le joueur ouvre /quests
  2. Selectionne la categorie "Daily"
  3. Voit les sous-categories (Monsters, Farming, Mining)
  4. Selectionne une sous-categorie
  5. Voit les quetes de cette sous-categorie

Chaque sous-categorie affiche automatiquement une barre de progression indiquant le pourcentage de quetes terminees.

Boutons du menu

menuItems:
toggleCompleted:
visible:
material: LIME_DYE
customModelData: 0
hidden:
material: GRAY_DYE
customModelData: 0
nextPage:
material: PAPER
customModelData: 0
prevPage:
material: PAPER
customModelData: 0
closeButton:
material: BARRIER
customModelData: 0
BoutonDescription
toggleCompleted.visibleIcone quand les quetes terminees sont visibles
toggleCompleted.hiddenIcone quand les quetes terminees sont masquees
nextPageBouton page suivante
prevPageBouton page precedente
closeButtonBouton fermer le menu

Fichiers de langue (lang/)

Les traductions de l’interface (menus, commandes, scoreboard, messages de suivi, logs console) sont gerees par des fichiers de langue individuels situes dans :

plugins/kginfoservs_queststrack/lang/<locale>.yml

Locales integrees

Le plugin inclut 5 langues par defaut :

FichierLangue
lang/fr-FR.ymlFrancais
lang/en-US.ymlAnglais
lang/de-DE.ymlAllemand
lang/pt-BR.ymlPortugais (Bresil)
lang/pl-PL.ymlPolonais

Selection de la langue

La langue utilisee est determinee par le reglage language dans la configuration de BetonQuest (plugins/BetonQuest/config.yml). Ce reglage est global au serveur.

# Dans plugins/BetonQuest/config.yml
language: fr-FR

Si le fichier de langue correspondant n’existe pas, le plugin utilise en-US comme fallback.

Categories de cles

Chaque fichier de langue contient les categories suivantes :

PrefixeDescription
command.*Messages des commandes (/quests, /kgquests, etc.)
tracking.*Messages lies au suivi des quetes (ajout, retrait, limites)
menu.*Textes de l’interface GUI (titres, statuts, boutons, format du lore)
scoreboard.*Textes du scoreboard (titre, separateur, messages vide/desactive)
console.*Messages de demarrage et logs console

Ajouter une nouvelle langue

  1. Copiez un fichier existant (par exemple lang/en-US.yml)
  2. Renommez-le avec le code locale souhaite (par exemple lang/es-ES.yml)
  3. Traduisez toutes les valeurs dans le fichier
  4. Dans la configuration de BetonQuest, definissez language: es-ES
  5. Rechargez le plugin avec /questsreload
Format MiniMessage

Les cles menu.* supportent le format MiniMessage. Exemples :

  • <gold>Texte dore</gold>
  • <#55C4FF>Couleur hex</#55C4FF>
  • <gradient:#800080:#D33D22>Gradient</gradient>
  • <b>Gras</b>, <st>Barre</st>, <i>Italique</i>

Scoreboard

Le scoreboard affiche en temps reel les objectifs des quetes suivies par le joueur.

scoreboard:
enabled: true
title: "<gradient:#800080:#D33D22>◈KGInfoServs Quests◈</gradient>"
separator: "<gradient:#800080:#D33D22>--------------</gradient>"
ProprieteDefautDescription
enabledtrueActive/desactive le scoreboard globalement pour tous les joueurs. Si false, aucun scoreboard n'est cree.
titleGradient violet-rougeTitre du scoreboard (format MiniMessage)
separatorGradient violet-rougeSeparateur entre les quetes dans le scoreboard (format MiniMessage)
Performance

Quand scoreboard.enabled: false, aucune ressource n'est utilisee pour le scoreboard (pas de ticks, pas de paquets reseau, pas de memoire cache). C'est la methode recommandee si vous utilisez un plugin de scoreboard externe comme TAB.

Scoreboard event-driven

Le scoreboard ne genere aucun tick. Il se met a jour uniquement quand un evenement survient (activation de quete, progression, changement d'etape). Meme active, il n'a quasiment aucun impact sur les performances.

PlaceholderAPI

placeholders:
enabled: true
ProprieteDefautDescription
enabledtrueActive/desactive les placeholders %kgquetes_*%

Desactivez si vous n'utilisez pas PlaceholderAPI pour reduire les appels Redis/BDD.

Placeholders disponibles

Prefixe : %kgquetes_

PlaceholderDescription
%kgquetes_title%Titre de la quete actuellement suivie
%kgquetes_objective_1%Premiere ligne d'objectif de la quete suivie
%kgquetes_objective_2%Deuxieme ligne d'objectif
%kgquetes_objective_N%N-ieme ligne d'objectif

Pool de connexion base de donnees (database)

database:
pool:
maxSize: 30
minIdle: 5
connectionTimeoutMs: 10000
idleTimeoutMs: 300000
ProprieteDefautDescription
maxSize30Nombre maximum de connexions dans le pool HikariCP
minIdle5Nombre minimum de connexions inactives maintenues
connectionTimeoutMs10000Temps d'attente maximum pour obtenir une connexion (10s)
idleTimeoutMs300000Ferme les connexions inactives apres 5 minutes
Dimensionnement selon le nombre de joueurs
  • ~100 joueurs : valeurs par defaut (maxSize: 30)
  • 500+ joueurs : augmentez maxSize a 50
  • 1000+ joueurs : augmentez maxSize a 80-100

Mise a jour automatique (updater)

updater:
auto-download: false
ProprieteDefautDescription
auto-downloadfalseSi true, telecharge automatiquement les nouvelles versions dans plugins/update/. Le JAR sera applique au prochain redemarrage du serveur.

La verification de mise a jour s'effectue automatiquement au demarrage. Si une nouvelle version est disponible, un message s'affiche dans la console et les administrateurs en sont notifies a la connexion.

Vous pouvez aussi forcer la verification avec /kgquests update.

Redis

redis:
enabled: true
host: "127.0.0.1"
port: 6379
password: ""
ProprieteDefautDescription
enabledtrueActive/desactive la synchronisation Redis
host"127.0.0.1"Adresse du serveur Redis
port6379Port du serveur Redis
password""Mot de passe Redis (vide si aucun)

Voir Multi-serveur pour la configuration detaillee.


quests_config.yml — Textes et etapes des quetes

Ce fichier definit le contenu textuel, les etapes et les objectifs de chaque quete affichee dans le menu et le scoreboard.

Support multilingue

Tous les champs texte (title, locked_description, finished_text, textes d'etapes, inprogress/completed des objectifs) supportent deux formats :

Format simple (une seule langue) :

title: "<gold>Le Tresor Perdu</gold>"

Format multilingue (style BetonQuest) :

title:
fr-FR: "<gold>Le Tresor Perdu</gold>"
en-US: "<gold>The Lost Treasure</gold>"

La langue est lue depuis la configuration BetonQuest (language: fr-FR dans config.yml de BetonQuest). Le fallback est : langue configuree → premiere langue disponible → valeur par defaut.

Retrocompatibilite

L'ancien format (texte simple sans cles de langue) reste entierement fonctionnel. Vous pouvez migrer progressivement vos quetes vers le format multilingue.

Structure d'une quete

quests:
ma_quete:
title:
fr-FR: "<gold>Le Tresor Perdu</gold>"
en-US: "<gold>The Lost Treasure</gold>"
locked_description:
fr-FR: "Trouvez l'indice pour debloquer cette quete."
en-US: "Find the clue to unlock this quest."
finished_text:
fr-FR: "Felicitations ! Vous avez trouve le tresor !"
en-US: "Congratulations! You found the treasure!"
steps:
'1':
text:
fr-FR:
- "Parlez au marchand du village"
- "Achetez une carte au tresor"
en-US:
- "Talk to the village merchant"
- "Buy a treasure map"
'2':
text:
fr-FR:
- "Suivez la carte jusqu'a la foret"
- "Trouvez l'entree de la grotte"
en-US:
- "Follow the map to the forest"
- "Find the cave entrance"

Reference des cles

CleObligatoireDescription
titleOuiTitre de la quete (supporte MiniMessage, multilingue)
locked_descriptionNonTexte affiche quand la quete est verrouillee (multilingue)
finished_textNonTexte affiche quand la quete est terminee (multilingue, supporte | pour le multiline)
stepsOuiEtapes de la quete avec objectifs

Format des etapes (steps)

Les etapes sont numerotees a partir de 1. Trois formats sont possibles :

Format simple (liste de textes)

steps:
'1':
- "Parlez au marchand"
- "Achetez une carte"

Format avec section text (multilingue)

steps:
'1':
text:
fr-FR:
- "Parlez au marchand"
- "Achetez une carte"
en-US:
- "Talk to the merchant"
- "Buy a map"
Format text simple

La section text accepte aussi une simple liste (sans cles de langue) :

text:
- "Parlez au marchand"
- "Achetez une carte"

Format avec objectifs trackables

Ce format permet de suivre la progression individuelle de chaque objectif :

steps:
'1':
text:
fr-FR:
- "Parlez au marchand"
en-US:
- "Talk to the merchant"
objectives:
- id: "kill_zombies"
inprogress:
fr-FR: "Tuer des zombies (%betonquest_ma_quete:objective.kill_zombies.amount%/10)"
en-US: "Kill zombies (%betonquest_ma_quete:objective.kill_zombies.amount%/10)"
completed:
fr-FR: "Tuer <green>10/10 Zombies <white>✔"
en-US: "Kill <green>10/10 Zombies <white>✔"
- id: "collect_wood"
inprogress:
fr-FR: "Collecter du bois (%betonquest_ma_quete:objective.collect_wood.amount%/20)"
en-US: "Collect wood (%betonquest_ma_quete:objective.collect_wood.amount%/20)"
completed:
fr-FR: "Collecter <green>20/20 Bois <white>✔"
en-US: "Collect <green>20/20 Wood <white>✔"
ProprieteDescription
idIdentifiant de l'objectif (doit correspondre a l'objectif BetonQuest)
inprogressTexte affiche quand l'objectif est en cours (multilingue, supporte les placeholders)
completedTexte affiche quand l'objectif est complete (multilingue)
Placeholders BetonQuest dans les objectifs

Utilisez les placeholders BetonQuest pour afficher la progression en temps reel :

  • %betonquest_PACKAGE:objective.ID.amount% — Progression actuelle
  • %betonquest_PACKAGE:objective.ID.absoluteamount% — Total requis
  • %betonquest_PACKAGE:constant.KEY% — Constantes de quete

Exemple : Tuer des zombies (3/10) se met a jour automatiquement.

Exemple complet

quests:
histoire_chapitre1:
title:
fr-FR: "<gold>Le Reveil du Heros</gold>"
en-US: "<gold>The Hero's Awakening</gold>"
locked_description:
fr-FR: "Commencez votre aventure en parlant au guide."
en-US: "Start your adventure by talking to the guide."
finished_text:
fr-FR: |
Vous avez fait vos premiers pas !
Continuez votre aventure.
en-US: |
You took your first steps!
Continue your adventure.
steps:
'1':
text:
fr-FR:
- "Parlez au guide du village"
- "Acceptez la quete"
en-US:
- "Talk to the village guide"
- "Accept the quest"
'2':
text:
fr-FR:
- "Visitez la forge"
en-US:
- "Visit the forge"
objectives:
- id: "visit_forge"
inprogress:
fr-FR: "Se rendre a la forge"
en-US: "Go to the forge"
completed:
fr-FR: "<green>- Forge visitee <white>✔"
en-US: "<green>- Forge visited <white>✔"
- id: "get_sword"
inprogress:
fr-FR: "Obtenir une epee"
en-US: "Get a sword"
completed:
fr-FR: "<green>- Epee obtenue <white>✔"
en-US: "<green>- Sword obtained <white>✔"
'3':
objectives:
- id: "kill_dummies"
inprogress:
fr-FR: "Battre des mannequins (%betonquest_histoire_chapitre1:objective.kill_dummies.amount%/3)"
en-US: "Beat training dummies (%betonquest_histoire_chapitre1:objective.kill_dummies.amount%/3)"
completed:
fr-FR: "Battre <green>3/3 Mannequins <white>✔"
en-US: "Beat <green>3/3 Dummies <white>✔"

daily_minerai:
title:
fr-FR: "<aqua>Collecte Quotidienne</aqua>"
en-US: "<aqua>Daily Collection</aqua>"
locked_description:
fr-FR: "Disponible chaque jour."
en-US: "Available every day."
finished_text:
fr-FR: "Beau travail, mineur !"
en-US: "Good work, miner!"
steps:
'1':
objectives:
- id: "mine_iron"
inprogress:
fr-FR: "Miner du fer (%betonquest_daily_minerai:objective.mine_iron.amount%/32)"
en-US: "Mine iron (%betonquest_daily_minerai:objective.mine_iron.amount%/32)"
completed:
fr-FR: "Miner <green>32/32 Fer <white>✔"
en-US: "Mine <green>32/32 Iron <white>✔"
- id: "mine_gold"
inprogress:
fr-FR: "Miner de l'or (%betonquest_daily_minerai:objective.mine_gold.amount%/16)"
en-US: "Mine gold (%betonquest_daily_minerai:objective.mine_gold.amount%/16)"
completed:
fr-FR: "Miner <green>16/16 Or <white>✔"
en-US: "Mine <green>16/16 Gold <white>✔"

Appliquer les changements

  1. Modifiez config.yml, quests_config.yml ou les fichiers dans lang/
  2. Executez /questsreload
  3. Verifiez en jeu

Voir aussi