# ===========================================
# COMANDOS PARA CONFIGURAR MISIONES DE EJEMPLO
# ===========================================
# Ejecuta estos comandos en orden para configurar el sistema híbrido de variables
# con misiones que se actualizan automáticamente

# ===========================================
# 1. CONFIGURACIÓN INICIAL DE VARIABLES
# ===========================================

# Variables del servidor
/dp var create server_name "Mi Servidor RPG" string global true
/dp var create server_tps "{tps}" string global false
/dp var create online_players "{online_players}" string global false
/dp var create max_players "{max_players}" string global false

# Variables de ejemplo para misiones
/dp var create wood_quest_target 15 int global true
/dp var create zombie_quest_target 5 int global true
/dp var create skeleton_quest_target 3 int global true

# Variables de jugador (estas se crearán automáticamente cuando se usen)
/dp var create player_wood_collected 0 int player true
/dp var create player_zombie_kills 0 int player true
/dp var create player_skeleton_kills 0 int player true

# Variables calculadas para progreso
/dp var create player_wood_progress "§eMadera: {player_wood_collected}/{wood_quest_target}" string player false
/dp var create player_zombie_progress "§cZombies: {player_zombie_kills}/{zombie_quest_target}" string player false
/dp var create player_skeleton_progress "§bEsqueletos: {player_skeleton_kills}/{skeleton_quest_target}" string player false

# ===========================================
# 2. CREACIÓN DE MISIONES CON VARIABLES
# ===========================================

# Misión 1: Tutorial de Bienvenida (sin variables complejas)
/dp mission create tutorial_welcome "§6¡Bienvenido a {server_name}!"
/dp mission add tutorial_welcome "§aMuévete por el mapa para aprender los controles"
/dp mission add tutorial_welcome "§aRompe tu primer bloque de tierra"
/dp mission add tutorial_welcome "§aDi /help para ver los comandos disponibles"

# Misión 2: Recolector de Madera (con variables dinámicas)
/dp mission create wood_collector "§6🌳 Recolector de Madera"
/dp mission add wood_collector "§aRecoge madera de roble: {player_wood_progress}"

# Misión 3: Primeras Batallas (con múltiples objetivos)
/dp mission create first_kills "§6⚔️ Primeras Batallas"
/dp mission add first_kills "§aMata zombies: {player_zombie_progress}"
/dp mission add first_kills "§aMata esqueletos: {player_skeleton_progress}"

# ===========================================
# 3. CONFIGURACIÓN DE PANTALLA
# ===========================================

# HUD de información del servidor
/dp show @a server_info 80 5 0.8 true false "§6🏠 {server_name} §7| §b👥 {online_players}/{max_players}"

# HUD de progreso de misiones (se actualiza automáticamente)
/dp show @a mission_progress 5 80 0.9 true true "§eMisiones Activas - Usa /dp mission list"

# ===========================================
# 4. PRUEBA DEL SISTEMA
# ===========================================

# Ver todas las variables
/dp var list

# Ver todas las misiones
/dp mission list

# Ver estadísticas del sistema
/dp var stats

# ===========================================
# 5. EJEMPLOS DE MODIFICACIÓN MANUAL
# ===========================================

# Simular progreso (reemplaza TU_JUGADOR por tu nombre)
/dp var set player_wood_collected 3 player TU_JUGADOR
/dp var set player_zombie_kills 2 player TU_JUGADOR
/dp var set player_skeleton_kills 1 player TU_JUGADOR

# Ver cómo se actualizan las misiones
/dp mission list

# ===========================================
# 6. LIMPIEZA (opcional)
# ===========================================

# Para eliminar todo y empezar de nuevo:
# /dp mission clear
# /dp var clear global
# /dp var clear player

# ===========================================
# 7. EVENTOS AUTOMÁTICOS (CÓDIGO JAVA)
# ===========================================
#
# Para que las variables se actualicen automáticamente,
# agrega este código a tu plugin:
#
# @EventHandler
# public void onBlockBreak(BlockBreakEvent event) {
#     if (event.getBlock().getType() == Material.OAK_LOG) {
#         plugin.getVariableManager().modifyPlayerVariable(
#             event.getPlayer().getName(),
#             "player_wood_collected",
#             VariableOperation.ADD,
#             "1"
#         );
#     }
# }
#
# @EventHandler
# public void onEntityDeath(EntityDeathEvent event) {
#     if (event.getEntity().getKiller() instanceof Player) {
#         Player player = event.getEntity().getKiller();
#         String mobType = event.getEntity().getType().name().toLowerCase();
#
#         if (mobType.contains("zombie")) {
#             plugin.getVariableManager().modifyPlayerVariable(
#                 player.getName(),
#                 "player_zombie_kills",
#                 VariableOperation.ADD,
#                 "1"
#             );
#         } else if (mobType.contains("skeleton")) {
#             plugin.getVariableManager().modifyPlayerVariable(
#                 player.getName(),
#                 "player_skeleton_kills",
#                 VariableOperation.ADD,
#                 "1"
#             );
#         }
#     }
# }
