Quest Codex
L'extension Quest Codex fournit un système de GUI entièrement personnalisable permettant aux joueurs de parcourir, suivre et gérer des quêtes organisées par catégories hiérarchiques. Chaque menu est construit via des pools de disposition déclaratifs propulsés par l'extension GUI — aucun menu codé en dur, personnalisation infinie.
- Code source — Voir les sources sur GitHub.
- Télécharger les releases — Obtenir les derniers JAR.
Fonctionnalités
- Catégories hiérarchiques — Imbriquez des catégories via des relations parent/enfant. Les sous-catégories héritent de la visibilité de leur parent.
- Pools de disposition — Concevez chaque menu via des pools de disposition déclaratifs. Les placeholders (
SORT_SLOT,CATEGORY_SLOT,QUEST_SLOT) sont injectés automatiquement. - Listes de quêtes défilantes — Les emplacements de quêtes et de catégories suivent les viewports
scrollable,paginatedetframe— construisez des grilles de quêtes défilantes de toute taille (depuis la 0.3.0). - Tri dynamique — Faites défiler Tout → Non commencé → Actif → Terminé, avec un affichage de bouton par mode (libellé, description, item personnalisé).
- Suivi des quêtes — Suivez les quêtes actives avec des indicateurs de priorité, via le système de suivi natif de QuestExtension.
- Design sonore complet — Configurez des sons pour l'ouverture du menu, les clics, le défilement et les événements de suivi/désuivi de quête.
- Intégration BlueMap — Affichez des icônes de quête sur BlueMap avec des libellés dynamiques et des règles de visibilité (version BTC).
- Pools de disposition — Concevez chaque menu via des pools de disposition déclaratifs. Les placeholders (
Architecture
Bibliothèque d'entrées
Configuration
- Quest Codex Config — Sons globaux, nombre de lignes par défaut et modèles de messages.
Système de catégories
- Quest Category — Définit une catégorie avec titre, icône, parent et critères de visibilité.
- Quest Assignment — Lie des entrées de quête à une catégorie, avec ordre et surcharges par statut.
Menu et affichage
- Category Menu — Concevez des menus avec des pools de disposition déclaratifs, des emplacements de placeholders et des boutons de tri par mode.
- Quest Lore — Surchargez les lignes de description par quête et par statut.
Démarrage rapide
-
1. Ajouter une configuration globale (facultatif) — Créez une entrée Quest Codex Config dans un JSON de page pour personnaliser les sons et les messages. L'extension fonctionne d'emblée sans cela — elle utilise des valeurs par défaut raisonnables.
json { "type": "quest_codex", "id": "my_codex_config", "defaultRows": 5, "nowTrackingMessage": "<green>Now tracking: {quest}</green>" }Placez-la dans n'importe quelle page compilée sousplugins/Typewriter/pages/. → Quest Codex Config -
2. Définir des catégories — Ajoutez une entrée Quest Category. Elle définit un groupe logique de quêtes dans le codex avec son titre d'affichage, son icône et un parent optionnel pour l'imbrication. Champs clés : -
category— Nom interne unique (par ex.main_quests) -title— Titre d'affichage montré aux joueurs (MiniMessage) -icon— Item affiché dans la liste parente/catégorie -parent— Laissez vide pour le niveau supérieur, ou définissez-le pour imbriquer → Quest Category -
3. Assigner des quêtes — Ajoutez une entrée Quest Assignment pour lier vos quêtes QuestExtension à une catégorie. Contrôlez l'ordre et les surcharges par statut.
json { "type": "quest_assignment", "id": "assign_main", "category": "main_quests", "questRefs": ["quest:quest_main_1", "quest:quest_main_2"], "orders": [0, 1] }→ Quest Assignment -
4. Concevoir les menus — Ajoutez une entrée Category Menu pour chaque catégorie dont vous voulez une GUI personnalisée. Utilisez le pool de disposition pour placer : -
CATEGORY_SLOT— Icônes de catégorie auto-injectées (menu principal) -QUEST_SLOT— Boutons de quête auto-injectés (menu de catégorie) -SORT_SLOT— Bouton de tri dynamique auto-injecté - Items GUI standard — Items décoratifs, remplissages, boutons statiques Le pool de disposition utilise le guiType CUSTOM. Tout est positionnel : placez les items aux coordonnées (x, y). → Category Menu -
5. Ouvrir le menu — Accédez au codex via une commande :
/tw codex → menu principal du codex (depuis la 0.3.0) /tw codex <category> → une catégorie préciseExemples : -/tw codex main_quests— Ouvre la catégorie des quêtes principales -/tw codex daily_tasks— Ouvre les tâches quotidiennes > Menu principal : créez soit une entréecategory_menuavec unecategoryvide et des marqueursCATEGORY_SLOT, soit construisez le hub comme un menuopen_guide l'extension GUI dont les boutons exécutentcodex:open <category>et référencez-le dans lemainMenuTriggerde la config —/tw codexet le boutonBACKdu codex l'ouvriront alors.
Commandes
| Commande | Permission | Description |
|---|---|---|
/tw codex | typewriter.codex.open | Ouvrir le menu principal du codex (category_menu à catégorie vide, ou le mainMenuTrigger de la config). |
/tw codex <category> | typewriter.codex.open | Ouvrir directement une catégorie de quêtes précise. Tab-completion disponible. |
Placeholders
Préfixe : %typewriter_*%
Placeholders globaux
| Placeholder | Renvoie | Exemple |
|---|---|---|
%typewriter_total_quests% | Nombre total de quêtes toutes catégories confondues | 42 |
%typewriter_total_completed% | Total des quêtes terminées | 15 |
%typewriter_total_in_progress% | Total des quêtes en cours | 5 |
%typewriter_total_not_started% | Total des quêtes non commencées | 22 |
%typewriter_total_progress% | Terminées/Total formaté | 15/42 |
Placeholders par catégorie
Remplacez <name> par l'identifiant de la catégorie (par ex. main_quests).
| Placeholder | Renvoie | Exemple |
|---|---|---|
%typewriter_category_<name>% | Total des quêtes de la catégorie | 10 |
%typewriter_category_<name>_completed% | Terminées dans la catégorie | 3 |
%typewriter_category_<name>_in_progress% | En cours dans la catégorie | 2 |
%typewriter_category_<name>_not_started% | Non commencées dans la catégorie | 5 |
%typewriter_category_<name>_progress% | Progression formatée | 3/10 |
Alias :
_inprogress%et_notstarted%fonctionnent aussi.
Variables de modèle (dans les champs @Placeholder)
| Variable | Contexte | Remplacée par |
|---|---|---|
{quest} | Modèles de message | Le nom d'affichage de la quête |
{completed} | Messages de progression | Nombre de quêtes terminées |
{total} | Messages de progression | Total des quêtes de la catégorie |
Permissions
| Permission | Description |
|---|---|
typewriter.codex.open | Ouvrir le codex de quêtes. |
Dépendances
| Extension | Requis | Utilisation |
|---|---|---|
| QuestExtension | Requis | Moteur de quêtes principal. |
| GUI Extension | Requis | Rendu des menus et système de pool de disposition. |
| PlaceholderAPI | Optionnel | Pour les champs @Placeholder. |