config.yml 6 secciones YAML v1.0.1

config.yml

Referencia completa del archivo de configuración principal de EventUI. Controla el modo de UI, comportamiento de eventos, mensajes al chat, sistema de skills 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 (v1.0.1)
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>"

skills:
  point_type_aliases:
    "Puntos de Combate": "combat_points"
    "Puntos de Habilidad": "skill_points"
    "Puntos de Recoleccion": "gathering_points"

  xp_conversion:
    enabled: true
    levels_per_point: 1
    point_type: "Puntos de Combate"
    only_on_level_up: true

  mob_kill:
    enabled: true
    point_type: "Puntos de Combate"
    allowed_mobs:
      - minecraft:zombie
      - minecraft:skeleton
      - "#minecraft:bosses"
    base_points: 1
    point_distribution:
      Puntos de Habilidad: 1
      Puntos de combate: 1
      gathering_points: 0.5
    multipliers:
      minecraft:zombie: 1
      minecraft:ender_dragon: 50
      "#minecraft:bosses": 40
    natural_only: false
    cooldowns_per_mob:
      minecraft:ender_dragon: 3600
      minecraft:zombie: 10

  player_kill:
    enabled: true
    point_type: "combat_points"
    points_per_kill: 5
    cooldown_per_victim_seconds: 300

  block_mine:
    enabled: true
    point_type: "Puntos de Recoleccion"
    base_points: 1
    allowed_blocks:
      - minecraft:diamond_ore
      - "#minecraft:logs"
    multipliers:
      minecraft:diamond_ore: 5
      "#minecraft:logs": 1
    require_correct_tool: true
    cooldown_per_block_seconds: 0

  fishing:
    enabled: true
    point_type: "Puntos de Recoleccion"
    base_points: 1
    multipliers:
      "#minecraft:fishes": 1
    luck_bonus: true

  crop_harvest:
    enabled: true
    point_type: "Puntos de Recoleccion"
    base_points: 1
    multipliers:
      minecraft:wheat: 1
      minecraft:nether_wart: 3
    require_mature: true
    manual_only: false

  animal_breed:
    enabled: true
    point_type: "Puntos de Recoleccion"
    base_points: 2
    multipliers:
      "#minecraft:passive": 2
      minecraft:horse: 3
    cooldown_per_entity_seconds: 0

  event_complete:
    enabled: true
    point_type: "Puntos de Habilidad"
    base_points: 10
    difficulty_multipliers:
      easy: 1
      medium: 2
      hard: 3
    require_completion: true

  objective_complete:
    enabled: false
    point_type: "Puntos de Habilidad"
    base_points: 2
    require_event_completion: false

  playtime:
    enabled: true
    point_type: "Puntos de Habilidad"
    points_per_minutes: 30
    daily_cap: 60
    require_activity: false
    activity_threshold_seconds: 60

  connections:
    style:
      type: "orthogonal"
      thickness: 2
      color: "#FFFFFF"
      opacity: 0.7
      dashed: false
    effects:
      glow: true
      animated: false
    state_colors:
      locked: "#555555"
      available: "#00FF00"
      partial: "#FFFF00"
      maxed: "#00FFFF"
    show_on_hover: false

# ⚠️ 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>"

skills — Sistema de skill trees

La sección skills configura el sistema de árboles de habilidades, incluyendo tipos de puntos, fuentes de puntos y visuales de conexiones.

skills.point_type_aliases

Mapeo de nombres amigables a IDs internos de tipos de puntos. Permite usar nombres legibles en lugar de IDs técnicos.

Ejemplo
skills:
  point_type_aliases:
    "Puntos de Combate": "combat_points"
    "Puntos de Habilidad": "skill_points"
    "Puntos de Recoleccion": "gathering_points"

Fuentes de puntos

Cada fuente de puntos tiene propiedades comunes y específicas. Las fuentes disponibles son: xp_conversion, mob_kill, player_kill, block_mine, fishing, crop_harvest, animal_breed, event_complete, objective_complete, playtime.

Propiedad comúnDescripción
enabledActiva/desactiva la fuente de puntos
point_typeTipo de puntos otorgados (puede ser un alias)
point_distributionMapa para múltiples tipos de puntos simultáneos
base_pointsPuntos base otorgados
multipliersMultiplicadores por entidad/bloque específico (soporta tags)
cooldowns_per_*Cooldowns por entidad específica en segundos

skills.connections

Configura los visuales de las conexiones entre nodos en los skill trees.

PropiedadDescripción
style.type"straight", "curved", "orthogonal"
style.thicknessGrosor de las líneas (1-5)
style.colorColor de las líneas en formato hex
style.opacityOpacidad (0.0-1.0)
style.dashedLíneas punteadas
effects.glowBrillo en conexiones activas
effects.animatedFlujo animado
state_colorsColores por estado: locked, available, partial, maxed
show_on_hoverResaltar conexiones al hacer hover

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