Quest Codex
La extensión Quest Codex proporciona un sistema de GUI totalmente personalizable para que los jugadores exploren, rastreen y gestionen misiones organizadas por categorías jerárquicas. Cada menú se construye mediante pools de diseño declarativos impulsados por la extensión GUI — sin menús codificados, personalización infinita.
- Código fuente — Ver las fuentes en GitHub.
- Descargar releases — Obtener los últimos JAR.
Características
- Categorías jerárquicas — Anida categorías mediante relaciones padre/hijo. Las subcategorías heredan la visibilidad de su padre.
- Pools de diseño — Diseña cada menú mediante pools de diseño declarativos. Los placeholders (
SORT_SLOT,CATEGORY_SLOT,QUEST_SLOT) se inyectan automáticamente. - Listas de misiones desplazables — Las ranuras de misión y categoría siguen los viewports
scrollable,paginatedyframe— crea cuadrículas de misiones con desplazamiento de cualquier tamaño (desde la 0.3.0). - Orden dinámico — Alterna entre Todas → No iniciadas → Activas → Completadas, con una visualización de botón por modo (etiqueta, lore, objeto personalizado).
- Seguimiento de misiones — Rastrea las misiones activas con indicadores de prioridad mediante el sistema de seguimiento nativo de QuestExtension.
- Diseño de sonido completo — Configura sonidos para la apertura del menú, los clics, el desplazamiento y los eventos de seguimiento/dejar de seguir misión.
- Integración con BlueMap — Muestra iconos de misión en BlueMap con etiquetas dinámicas y reglas de visibilidad (versión BTC).
- Pools de diseño — Diseña cada menú mediante pools de diseño declarativos. Los placeholders (
Arquitectura
Biblioteca de entradas
Configuración
- Quest Codex Config — Sonidos globales, número de filas por defecto y plantillas de mensajes.
Sistema de categorías
- Quest Category — Define una categoría con título, icono, padre y criterios de visibilidad.
- Quest Assignment — Vincula entradas de misión a una categoría, con orden y sobrescrituras por estado.
Menú y visualización
- Category Menu — Diseña menús con pools de diseño declarativos, ranuras de placeholder y botones de orden por modo.
- Quest Lore — Sobrescribe las líneas de lore por misión y por estado.
Inicio rápido
-
1. Añadir configuración global (opcional) — Crea una entrada Quest Codex Config en un JSON de página para personalizar sonidos y mensajes. La extensión funciona de fábrica sin esto — usa valores por defecto razonables.
json { "type": "quest_codex", "id": "my_codex_config", "defaultRows": 5, "nowTrackingMessage": "<green>Now tracking: {quest}</green>" }Colócala en cualquier página compilada bajoplugins/Typewriter/pages/. → Quest Codex Config -
2. Definir categorías — Añade una entrada Quest Category. Define un grupo lógico de misiones en el códice con su título de visualización, su icono y un padre opcional para el anidamiento. Campos clave: -
category— Nombre interno único (p. ej.main_quests) -title— Título de visualización mostrado a los jugadores (MiniMessage) -icon— Objeto mostrado en la lista de padre/categoría -parent— Déjalo vacío para el nivel superior, o defínelo para anidar → Quest Category -
3. Asignar misiones — Añade una entrada Quest Assignment para vincular tus misiones de QuestExtension a una categoría. Controla el orden y las sobrescrituras por estado.
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. Diseñar menús — Añade una entrada Category Menu por cada categoría para la que quieras una GUI personalizada. Usa el pool de diseño para colocar: -
CATEGORY_SLOT— Iconos de categoría autoinyectados (menú principal) -QUEST_SLOT— Botones de misión autoinyectados (menú de categoría) -SORT_SLOT— Botón de orden dinámico autoinyectado - Objetos GUI estándar — Objetos decorativos, rellenos, botones estáticos El pool de diseño usa el guiType CUSTOM. Todo es posicional: coloca los objetos en coordenadas (x, y). → Category Menu -
5. Abrir el menú — Accede al códice mediante un comando:
/tw codex → menú principal del códice (desde la 0.3.0) /tw codex <category> → una categoría concretaEjemplos: -/tw codex main_quests— Abre la categoría de misiones principales -/tw codex daily_tasks— Abre las tareas diarias > Menú principal: crea una entradacategory_menucon unacategoryvacía y marcadoresCATEGORY_SLOT, o construye el hub como un menúopen_guide la extensión GUI cuyos botones ejecutencodex:open <category>y referéncialo en elmainMenuTriggerde la config —/tw codexy el botónBACKdel códice lo abrirán entonces.
Comandos
| Comando | Permission | Descripción |
|---|---|---|
/tw codex | typewriter.codex.open | Abrir el menú principal del códice (category_menu de categoría vacía, o el mainMenuTrigger de la config). |
/tw codex <category> | typewriter.codex.open | Abrir directamente una categoría de misiones concreta. Autocompletado disponible. |
Placeholders
Prefijo: %typewriter_*%
Placeholders globales
| Placeholder | Devuelve | Ejemplo |
|---|---|---|
%typewriter_total_quests% | Número total de misiones en todas las categorías | 42 |
%typewriter_total_completed% | Total de misiones completadas | 15 |
%typewriter_total_in_progress% | Total de misiones en progreso | 5 |
%typewriter_total_not_started% | Total de misiones no iniciadas | 22 |
%typewriter_total_progress% | Completadas/Total formateado | 15/42 |
Placeholders por categoría
Sustituye <name> por el identificador de la categoría (p. ej. main_quests).
| Placeholder | Devuelve | Ejemplo |
|---|---|---|
%typewriter_category_<name>% | Total de misiones en la categoría | 10 |
%typewriter_category_<name>_completed% | Completadas en la categoría | 3 |
%typewriter_category_<name>_in_progress% | En progreso en la categoría | 2 |
%typewriter_category_<name>_not_started% | No iniciadas en la categoría | 5 |
%typewriter_category_<name>_progress% | Progreso formateado | 3/10 |
Alias:
_inprogress%y_notstarted%también funcionan.
Variables de plantilla (en campos @Placeholder)
| Variable | Contexto | Sustituida por |
|---|---|---|
{quest} | Plantillas de mensaje | El nombre de visualización de la misión |
{completed} | Mensajes de progreso | Número de misiones completadas |
{total} | Mensajes de progreso | Total de misiones en la categoría |
Permisos
| Permission | Descripción |
|---|---|
typewriter.codex.open | Abrir el códice de misiones. |
Dependencias
| Extension | Requerido | Uso |
|---|---|---|
| QuestExtension | Requerido | Motor de misiones principal. |
| GUI Extension | Requerido | Renderizado de menús y sistema de pool de diseño. |
| PlaceholderAPI | Opcional | Para los campos @Placeholder. |