config.yml 5 secciones YAML

config.yml

Referencia completa del archivo de configuración principal de EventUI. Controla el modo de UI, comportamiento de eventos, mensajes al chat y opciones de debug.

Ubicación: plugins/EventUI/config.yml — Usa /ev reload para aplicar cambios sin reiniciar el servidor.

Archivo completo de referencia

config.yml — todas las opciones
ui:
  mode: "custom"           # "hardcoded" | "custom"
  custom:
    screenId: "main-menu"  # ID del archivo en /uis/ (sin .yml)
    fallback: true         # true = usa hardcoded si custom falla

events:
  always_active: true      # true = inicio automático de eventos

messages:
  enabled: true            # false = silencia todos los mensajes

  progress:
    enabled: true
    format: "<dark_gray>[<green>EventUI</green>]</dark_gray> <white><description></white> <gray>(<current>/<target>)</gray>"

  objective_completed:
    enabled: true
    format: "<gold>[EventUI]</gold> <green>¡Objetivo completado! ✔</green>"

  event_started:
    enabled: true
    format: "<yellow>[EventUI]</yellow> <green>Misión iniciada: </green><white><event_name></white>"

  event_completed:
    enabled: true
    format: "<gold><bold>[EventUI] ¡Evento completado: <event_name>!</bold></gold>"

  event_failed:
    enabled: true
    format: "<red>[EventUI]</red> <dark_red>Evento fallado: <event_name></dark_red>"

  event_locked:
    enabled: true
    format: "<red>[EventUI]</red> <gray>Este evento está bloqueado. Completa los anteriores primero.</gray>"

# ⚠️ Las secciones tracking y debug no están implementadas aún
tracking:
  updateInterval: 40
  locationCheckInterval: 40

debug:
  logMessages: false
  logTracking: false
  logUIConfig: false

ui — Configuración de interfaz

ui.mode

ui.mode Obligatorio

Define qué tipo de interfaz usa el plugin cuando un jugador abre la pantalla de EventUI.

ValorDescripciónCuándo usarlo
"hardcoded"UI por defecto integrada en el plugin. No requiere ningún archivo en uis/.Testing inicial
"custom"Carga el archivo indicado en screenId desde la carpeta uis/.Producción

ui.custom.screenId

ui.custom.screenId Requerido si mode=custom

Nombre del archivo de UI a cargar, sin la extensión .yml. El archivo debe existir en plugins/EventUI/uis/.

Ejemplo — carga uis/main-menu.yml
ui:
  mode: "custom"
  custom:
    screenId: "main-menu"

ui.custom.fallback

ui.custom.fallback Obligatorio

Si true, el plugin usa la UI hardcoded cuando la custom tiene un error de sintaxis o no se encuentra. Si false, lanza un error y bloquea el inicio.

ValorComportamiento
trueFalla silenciosamente y usa la UI por defecto. Recomendado en producción.
falseLanza error en consola. Útil para detectar errores en desarrollo.

events — Comportamiento de eventos

events.always_active

events.always_active Opcional

Valor global por defecto para el inicio automático de eventos. Puede ser sobreescrito por cada evento individual con always_active: true/false en su YAML.

ValorComportamiento
trueLos eventos se inician automáticamente cuando el jugador realiza una acción relevante.
falseLos eventos requieren inicio manual con /ev start <id>.

messages — Mensajes al chat

messages.enabled

messages.enabled Obligatorio

Interruptor global. Si es false, silencia absolutamente todos los mensajes de EventUI al chat, independientemente de la configuración individual de cada tipo.

Tipos de mensaje

Cada tipo de mensaje tiene dos campos: enabled (boolean) y format (string con MiniMessage). Los formatos soportan placeholders específicos:

TipoCuándo se envíaPlaceholders disponibles
progressCada vez que el jugador avanza en un objetivo<description>, <current>, <target>
objective_completedAl completar un objetivo individual
event_startedAl iniciar un evento<event_name>
event_completedAl completar todos los objetivos de un evento<event_name>
event_failedAl fallar un evento<event_name>
event_lockedAl intentar iniciar un evento bloqueado por dependencias
Ejemplo — formato de progreso personalizado
messages:
  enabled: true
  progress:
    enabled: true
    format: "<dark_gray>[<green>EventUI</green>]</dark_gray> <white><description></white> <gray>(<current>/<target>)</gray>"

tracking y debug — No implementados

Las secciones tracking y debug están definidas en el archivo pero sus valores no son leídos por el sistema actualmente. El plugin usa valores hardcodeados. Están planeadas para versiones futuras.
KeyDescripciónDefault hardcodeadoEstado
tracking.updateIntervalIntervalo en ticks para actualizar el tracking40❌ No leído
tracking.locationCheckIntervalIntervalo para REACH_LOCATION40❌ No conectado al scheduler
debug.logMessagesLoguear mensajes del bridge plugin↔modfalse❌ No leído
debug.logTrackingLoguear incrementos de progresofalse❌ No leído
debug.logUIConfigLoguear carga y validación de UIsfalse❌ No leído

Configuración recomendada para producción

config.yml — producción
ui:
  mode: "custom"
  custom:
    screenId: "main-menu"
    fallback: true

events:
  always_active: true

messages:
  enabled: true
  progress:
    enabled: true
    format: "<dark_gray>[<green>EventUI</green>]</dark_gray> <white><description></white> <gray>(<current>/<target>)</gray>"
  objective_completed:
    enabled: true
  event_started:
    enabled: true
  event_completed:
    enabled: true
  event_failed:
    enabled: true
  event_locked:
    enabled: true