🧠 Evolución del Motor Visual:
- Branding del F3: Personalización total de la pantalla de depuración (Debug Screen) con la marca MeaCore para un look premium.
- FPS Limiter Dinámico: El juego reducirá automáticamente los FPS al minimizarse para ahorrar hasta un 90% de recursos del sistema.
- Bypass de Realms: Interfaz más limpia eliminando elementos innecesarios como el botón de Minecraft Realms.
- Inyección de Código Pro: Implementación de parches de optimización en tiempo de ejecución (Bytecode Injection) para mejorar el rendimiento base del juego.
✨ Próximas Mejoras:
- Soporte para Shaders y Resource Packs integrados.
- Exportación e Importación de perfiles para compartir modpacks fácilmente con amigos.
☁️ Migración completa a Cloudflare:
- Adiós a Netlify: Eliminado todo rastro de Netlify (
netlify.toml, funciones serverless, workflow de deploy). El sitio ahora funciona 100% en Cloudflare Workers.
- Worker reescrito: El Worker de Cloudflare maneja bug reports, sitemap dinámico, proxy de GitHub API, config de Supabase y assets estáticos con headers de seguridad.
- Sitemap dinámico + estático:
sitemap.xml se sirve como archivo estático para Googlebot, con fallback dinámico desde el Worker.
- URLs limpias:
/changelog en vez de /changelog.html. El Worker reescribe internamente sin redirecciones HTTP.
- Headers de seguridad:
X-Content-Type-Options, X-Frame-Options, Referrer-Policy, Permissions-Policy en todos los assets.
- Cache-Control inteligente: 1 año para CSS/JS/imágenes, 5 min para HTML, 1h para sitemap.
- SEO completo: Open Graph, Twitter Card, JSON-LD (SoftwareApplication + FAQPage + BreadcrumbList), hreflang, canonical, sitemap, robots.txt.
- Google Search Console: Archivo de verificación, sitemap enviado, solicitud de indexación.
🐛 Fix crítico: Límite de 8191 caracteres en Windows:
- Classpath vía Manifest JAR: Cuando el classpath supera los 3500 caracteres, el launcher genera un JAR temporal con
Class-Path en el manifiesto. Esto evita el error "La línea de comandos es demasiado larga" al iniciar Minecraft con Forge en Windows.
- Fix confirmado: Forge 1.12.2 con 54 librerías ahora inicia correctamente en Windows.
🔧 Corrección de errores del launcher:
- Fabric no soporta 1.12.2: Añadida validación
isFabricSupported(). Si el usuario intenta instalar Fabric en versiones anteriores a 1.14, muestra un mensaje claro: "Fabric no soporta Minecraft X.X.X. Usa Forge para versiones antiguas."
- Bug report via Cloudflare Worker: El formulario de reporte de bugs ahora funciona en Cloudflare Workers (no más 404). Necesita
GITHUB_TOKEN configurado como secreto.
- Versión duplicada corregida: Ya no muestra
vv1.5.9 en la web. El regex ahora limpia correctamente los prefijos bat- y v.
- GitHub API sin rate limit: El Worker cachea la respuesta de GitHub API. El navegador ya no llama directamente a la API, evitando el límite de 60 req/hora.
📄 Mejoras en la web:
- Favicon añadido: El logo del launcher ahora aparece en la pestaña del navegador.
- Botón de reseñas con estilo MeaCore: Ahora usa el azul corporativo
#0E639C.
- Reseñas auto-aprobadas: Ya no requieren moderación manual. Se envían con
approved: true.
- Supabase configurable: El Worker expone un endpoint
/api/config para que el frontend obtenga las credenciales de Supabase.
🧹 Limpieza y licencia:
- Nueva licencia: MIT con restricción de uso no comercial. Código abierto, contribuciones bienvenidas.
- CONTRIBUTING.md: Guía para contribuir con PRs (en español).
- CODE_OF_CONDUCT.md: Código de conducta Contributor Covenant v2.1.
- Issue + PR templates: Plantillas para reportar bugs y enviar pull requests.
🔄 Auto-Update completamente reconstruido:
- Fix de Rate Limit: El check de GitHub API ahora notifica errores al usuario en lugar de fallar en silencio. Se actualiza el cooldown incluso en errores para no saturar la API.
- Guard de Instalación: Nuevo bloqueo atómico que impide lanzar dos instaladores simultáneos si se hace doble clic en "Reiniciar Ahora".
- Linux Multi-Distro: Detección automática del gestor de paquetes (
apt, dnf, dpkg). Eliminado soporte inválido para pacman (no instala .deb).
- Elevación de Privilegios: Se usa
sudo en lugar de pkexec para evitar fallos por falta de agente polkit en sesiones SSH.
- Parámetros por Gestor:
dpkg -i ya no usa el flag inválido -y. Solo apt y dnf usan -y.
- Ruta de Relanzamiento Linux: Ahora se detecta dinámicamente la ubicación del ejecutable actual, en lugar de la ruta hardcodeada
/opt/meacore-launcher/bin/MeaCore Launcher.
- UTF-8 BOM: El script
.bat ahora incluye BOM para que chcp 65001 funcione correctamente en sistemas Windows con ANSI distinto.
- Unblock-File mejorado: Se añadió
-ExecutionPolicy Bypass al comando de PowerShell para evitar fallos en sistemas con restricciones de ejecución.
- Apagado Robusto:
Platform.exit() + System.exit(0) para garantizar que el JVM termine antes de la instalación.
- Espera ampliada: Sleep aumentado de 300ms a 2000ms para que el proceso hijo se desacople completamente.
- Pre-release a Stable: Ahora detecta correctamente el salto de
1.5.9-alpha → bat-1.5.9 (antes se quedaba atascado en la pre-release).
- Normalización de Versión: Se eliminaron los flags muertos
-beta, -rc, -snapshot, -pre, -dev del comparador de versiones. Soporte case-insensitive.
- Banner de Error Visible: Los errores de actualización ahora muestran un banner rojo en lugar de ocultarse silenciosamente.
- Botón "Buscar Actualizaciones": Ya no resetea el texto a los 3s; espera a que el check termine realmente.
🐛 Correcciones de Librerías y Dependencias:
- Fix de Reglas de Librerías: Corregido el evaluador de reglas (
RuleEvaluator) que excluía incorrectamente librerías nativas LWJGL al no coincidir el sistema operativo en reglas allow. Las librerías ahora se incluyen correctamente en todas las plataformas.
- Fix de Arquitectura x64: Tanto
RuleEvaluator como ArgumentRules ahora distinguen correctamente entre x86 (32 bits) y x64 (64 bits). Antes mapeaban x64 como "x86", excluyendo librerías nativas modernas.
- Classpath en Windows: Implementado workaround para el límite de 8191 caracteres en línea de comandos de Windows. Cuando el classpath supera los 3500 caracteres, se genera un JAR temporal con
Class-Path en el manifiesto en lugar de pasar todas las rutas en la línea de comandos.
- Variable
path renombrada: Cambiada a logging_config_path para evitar colisiones con otras variables de sustitución en los argumentos JVM.
- Importación TLauncher segura: Se eliminaron los flags JVM obsoletos (
-XX:-UseBiasedLocking, -XX:+PreserveFramePointer, UseFastAccessorMethods, UseFastEmptyMethods) que eran no-ops en Java 21 o degradaban rendimiento.
- Agent LanguageFilter eliminado: El agente Java era un no-op completo (ambos métodos vacíos). Se eliminó junto con su registro en
MANIFEST.MF.
🔧 Correcciones de Estabilidad:
- servers.dat ahora en GZIP: Minecraft espera el archivo
servers.dat comprimido con GZIP, no en crudo. La lista de servidores ahora funciona correctamente.
- Default de Argumentos: Cuando ninguna regla de argumento coincide, ahora se permite por defecto (antes se denegaba), siguiendo la especificación de Mojang.
- Thread Pool Acotado: Cambiado de
newCachedThreadPool (ilimitado) a newFixedThreadPool(16) para evitar creación de hilos infinita.
- ConcurrentHashMap:
activeProcesses cambió de HashMap a ConcurrentHashMap para seguridad entre hilos.
- CPU Affinity con BigInteger: La máscara de afinidad ahora usa
BigInteger en lugar de long, soportando sistemas con 64+ núcleos.
- macOS taskset eliminado: Se eliminó el uso de
taskset en macOS (no existe ese comando). CPU Affinity ahora solo se aplica en Linux.
- Deadlock prevention: Todos los procesos lanzados (
where java, tar, etc.) ahora consumen su salida stdout para evitar bloqueos por buffer lleno.
- Charset UTF-8 forzado: Los Scanners en
ModloaderInstallerService ahora usan explícitamente UTF-8 para evitar caracteres corruptos en consolas no inglesas.
- Disk Stats frescos:
SystemInfoService ahora relee el espacio en disco en cada llamada en lugar de usar valores cacheados.
- HTTP Status Check: Las descargas de JRE ahora verifican el código de estado HTTP antes de escribir el archivo (evita descargar páginas 404 como JRE).
- Buffer de Descarga optimizado: Reducido de 8MB a 256KB para menor uso de memoria con 16 hilos concurrentes.
- Logging de Errores: Las fallas en mirrors Maven ahora se registran en consola para facilitar diagnóstico.
🏪 MCStore:
- Fix de Mapeo de Versiones: Corregido el campo
latestVersion que obtenía un nombre de categoría ("Fabric") en lugar del número de versión del mod. Ahora usa latest_version de la API de Modrinth.
- Filename único: Los mods de rendimiento ahora incluyen el loader en el nombre del archivo para evitar colisiones.
🏗️ Modloaders:
- Parser XML Robusto:
ModloaderInstallerService y ModloaderVersionService ahora usan DocumentBuilderFactory (DOM parser) en lugar de String.indexOf para parsear XML de repositorios Maven. Esto previene roturas por cambios de formato XML.
- Orden de Versiones NeoForge: Las versiones ahora se recolectan en una lista, se ordenan numéricamente descendente y se toma la más reciente. Antes solo se conservaba la última línea del XML.
🛡️ Seguridad y Limpieza:
- Sanitización de Filenames: Los reportes de crash ahora sanitizan todos los caracteres inseguros de Windows (
\, :, *, ?, ", <, >, |).
- Guard de Supabase:
reportCrash() ahora verifica que la URL de Supabase esté configurada antes de enviar datos, igual que sendEvent().
- Asset Index intacto: El Deep Clean de idiomas ya no modifica el archivo
index.json en disco, solo filtra en memoria.
- Desktop.open con fallback: Si
java.awt.Desktop no está soportado (Wayland, SSH), usa xdg-open como alternativa.
🧹 Mejoras Internas:
- Logging acotado: La consola ahora se limpia automáticamente al superar 50000 caracteres para evitar degradación de rendimiento.
- Directorios base completos:
ensureBaseDirs() ahora crea también natives/ y runtime/ para evitar race conditions en el primer acceso.
- Temp dir específico: El JAR temporal de classpath se crea dentro del directorio de datos del launcher en lugar del
/tmp del sistema.
- InputStream cerrado:
Hashing.sha1Hex() ahora cierra correctamente el InputStream con try-with-resources.
- Iconos en CI Linux: Corregida la ruta de copia de iconos en el workflow de Linux (
src/main/resources/ → src/main/resources/com/experimento/launcher/ui/).
🚀 Optimizaciones de Rendimiento Extremo:
- Prioridad de Proceso Automática: El juego ahora se ejecuta con prioridad alta (Windows:
/high, Linux: nice -10) automáticamente, reduciendo el lag causado por otras aplicaciones en segundo plano.
- CPU Affinity Inteligente: El launcher detecta los núcleos físicos y asigna específicamente los mejores cores al proceso del juego, dejando 1 núcleo libre para el sistema operativo.
- Chunk Cache Optimizer: Nuevo sistema de pre-carga de chunks con argumentos JVM optimizados (
-DchunkPreloaderEnabled=true, -DasyncChunkLoading=true) para reducir tiempos de carga en mundos grandes.
- GC Tuning Avanzado: Mejoras significativas en todos los presets de JVM:
- LOW: G1GC con regiones de 4MB, pausas de 20ms, pre-touch obligatorio.
- BALANCED: G1GC avanzado con NUMA, Large Pages,-biased locking desactivado.
- HIGH: ZGC Automático si tienes 16GB+ RAM (latencia ultra-baja), G1GC optimizado para menos de 16GB.
- Bypass de Splash Screen: Añadido argumento
-Dsplash=false a todos los presets para eliminar la pantalla de carga de Mojang y reducir el tiempo de inicio.
🛡️ Auto-Update Power Patch:
- Ruta de Relanzamiento Dinámica: El launcher ahora detecta su ubicación exacta en el disco para reabrirse correctamente sin importar dónde lo hayas instalado (soluciona fallos en instalaciones personalizadas).
- UAC & Permissions Fix: Sistema ajustado para permitir que Windows solicite permisos de administrador si es necesario, evitando que el instalador se cierre en silencio.
- Taskkill Reforzado: Nuevo sistema de cierre con espera de 5s y terminación forzada para garantizar que ningún archivo quede bloqueado durante la actualización.
- Soporte UTF-8 & Quoting: Scripts de actualización totalmente compatibles con carpetas que contienen espacios o caracteres especiales.
🧹 Limpieza de Idiomas Automática:
- Limpieza de Archivos: Antes de cada inicio, el launcher elimina automáticamente los archivos de idiomas no utilizados, manteniendo solo inglés (obligatorio) y español (toda Latinoamérica).
🧩 Mejoras de Modding:
- Performance Mods Actualizados: Los mods de rendimiento (Sodium, Lithium, FerriteCore, Embeddium, ModernFix) ahora se instalan con compatibilidad completa hasta Minecraft 1.21.4.
🚀 Mejoras Generales:
- Rendimiento del Launcher: Se optimizó el motor interno para que el inicio sea más rápido y fluido.
- Velocidad de Carga: Mejoras significativas en los tiempos de descarga y procesamiento de archivos.
- Estabilidad Mejorada: El sistema de auto-actualización es ahora más inteligente, eliminando errores comunes y archivos innecesarios automáticamente.
🛡️ Seguridad y Nube:
- Protección de Datos: Implementación de sistemas de seguridad avanzados para proteger la infraestructura del launcher.
- Despliegue Automático: Mejoras en la entrega de nuevas versiones para que siempre tengas lo último sin esperas.
🏪 Mejoras en MCStore:
- Selector de Motor (Loader): ¡Por fin! Ahora puedes filtrar búsquedas específicamente para Forge, Fabric, Quilt o NeoForge. Ya no estás limitado a ver solo mods de Fabric.
- Instalación Inteligente: El instalador prioriza el motor que selecciones pero mantiene retrocompatibilidad si el mod tiene versiones alternativas.
📊 Telemetría y Soporte:
- Conexión Supabase: Integración inicial con Supabase para el envío automático de reportes de crash y estadísticas de uso (opcional).
- Reseñas en Web: Se ha habilitado la sección de reseñas en la web oficial para que la comunidad pueda dejar su feedback.
🛡️ Estabilidad y Manejo de Conflictos:
- Descarga Anti-Bloqueo: Se implementó un sistema de nombres dinámicos para las descargas de actualización. Esto evita el error de "Acceso Denegado" cuando el instalador previo queda bloqueado por Windows o el Antivirus.
- Reporte de Errores Mejorado: Los mensajes de error en la consola ahora son más humanos y descriptivos, ayudando a diagnosticar problemas de red o de archivos de forma inmediata.
🎯 Fix Final de Reapertura:
- Ruta de arranque corregida: Se ajustó la ruta interna que el actualizador usa para relanzar el launcher tras la instalación. Ahora busca tanto en la raíz como en la carpeta
app/, garantizando que el launcher se abra solo sin importar la estructura de carpetas de Windows.
🚀 Optimizaciones Mayores de Actualización:
- Apertura Automática: ¡El launcher ahora se reabre solo! Tras instalar la actualización, el proceso se relanza automáticamente tanto en Windows como en Linux.
- Descargas 32× más rápidas: Se aumentó el buffer de descarga de 16KB a 512KB, lo que acelera significativamente la bajada de actualizaciones y de Java en conexiones de alta velocidad.
- Cero Bloqueos de UI: El proceso de desbloqueo de Windows (SmartScreen) ahora ocurre en segundo plano mientras se descarga el archivo, eliminando el lag al hacer clic en "Reiniciar".
- Ciclo de reinicio optimizado: Reducido el tiempo de espera de 10s a solo 3s, haciendo que todo el proceso de actualización tome menos de 7 segundos en total.
⚙️ Estabilidad del Auto-Updater (Hotfix):
- Timeout extendido: Se aumentó el tiempo de espera de 4 a 10 segundos antes de iniciar la instalación, ideal para equipos con poca memoria RAM o procesadores lentos.
- Cierre forzado: El script de actualización ahora utiliza
taskkill para asegurar que el proceso del launcher esté completamente cerrado antes de intentar reemplazar los archivos, evitando bloqueos.
🛠️ Gestor de Mods Mejorado:
- Compatibilidad Segura: Se ha eliminado la regla que borraba o movía mods basándose en números dentro del nombre del archivo. Tu mod de `useful_backpacks` (y cualquier otro) ya no será etiquetado como incompatible por accidente.
- Mods de Rendimiento para Forge: La lista de auto-instalación de mods para Forge se actualizó para usar Embeddium y ModernFix. Se eliminó Rubidium porque estaba desactualizado y causaba descargas de archivos NeoForge incorrectos.
- Carpetas "Untracked": Si cambias de versión por error, el launcher ahora te protege moviendo los mods antiguos a una carpeta `mods_backup_untracked` para evitar crasheos fatales, sin borrar nada.
🛠️ Corrección Crítica del Instalador (Windows):
- Retraso de seguridad: El auto-actualizador ahora espera 3 segundos después de cerrar el launcher antes de ejecutar el instalador de InnoSetup en segundo plano. Esto previene el error donde el instalador fallaba silenciosamente por encontrar el archivo
.exe bloqueado "en uso" por el sistema.
- ⚠️ Nota para usuarios de v1.4.8 o menor: Debido a que este bug residía en el actualizador antiguo, es posible que la actualización automática a v1.4.9 te falle. Si notas que tu launcher no se actualiza, descarga esta versión manualmente desde la web una última vez. ¡A partir de la v1.4.9 las actualizaciones volverán a ser fluidas y automáticas!
🧩 Gestor de Mods Instalados (nuevo):
- Vista "Mis Mods": Nueva sección en la pestaña Modding que muestra todos los mods instalados en la instancia activa, con nombre y estado visual.
- Activar / Desactivar: Botón toggle 🟢/🔴 al lado de cada mod. El mod desactivado se renombra a
.jar.disabled y Minecraft lo ignora — sin borrar nada.
- Eliminar con clic derecho: Menú contextual al hacer clic derecho sobre un mod → "🗑 Eliminar mod seleccionado". Elimina el archivo permanentemente del disco.
- Abrir Carpeta: Botón directo para abrir la carpeta
mods/ de la instancia en el explorador de archivos.
- Auto-refresh: La lista se actualiza automáticamente al cambiar de perfil.
⚙️ Selector de Versión Específica de Modloaders (nuevo):
- Overlay en 2 pasos: Al hacer clic en "Instalar Modloader", ahora aparece un paso 1 para elegir el tipo (Forge / NeoForge / Fabric) y un paso 2 con un ComboBox de todas las versiones disponibles para tu versión de Minecraft.
- Forge: Lista completa de versiones desde
maven.minecraftforge.net, más reciente primero. Ahora puedes instalar exactamente 47.4.20 o cualquier otra.
- Fabric: Todas las versiones del Fabric Loader desde
meta.fabricmc.net, compatibles con tu MC version.
- NeoForge: Todas las versiones desde
maven.neoforged.net, filtradas por tu MC version.
- Carga asíncrona: Las versiones se cargan en segundo plano con un spinner — la UI no se bloquea.
- Botón "← Volver": Puedes regresar al paso 1 sin cancelar.
🌐 Red y Conectividad (mejorada):
- Fix de conexión a servidores: Eliminado
-Djava.net.preferIPv4Stack=true que desactivaba IPv6 completamente y podía romper la conexión a servidores externos como Aternos.
- Detección de IP mejorada: Sistema de puntuación para elegir la interfaz de red más adecuada — prioriza Ethernet y WiFi, penaliza VMs, Docker y VPN.
- Guía en consola: Al lanzar el juego, el log muestra instrucciones claras para LAN y un recordatorio del modo "Cracked" para Aternos.
- Nuevos args seguros:
-Djava.net.useSystemProxies=false para evitar proxies corporativos que interrumpen la conexión.
🌍 Idiomas (Deep Clean mejorado):
- Ahora solo se conservan los idiomas necesarios:
en_us (fallback), es_ar, es_cl, es_es, es_mx, es_uy, es_ve. El resto se elimina durante la instalación para ahorrar espacio en disco.
Mejoras de Red y LAN:
- Visibilidad LAN: Forzado el uso de IPv4 en el stack de red de Java para garantizar que los mundos LAN sean detectables en redes locales modernas.
- LanFixService: Nuevo servicio interno para detectar y mostrar la IP local del usuario al iniciar el juego.
- Ayuda de Conexión: Instrucciones dinámicas en consola para facilitar la "Conexión Directa" si el descubrimiento automático falla por restricciones de firewall.
Correcciones críticas:
- Auto-actualización reparada: Corregida la URL del repositorio GitHub que apuntaba al repo antiguo (keylertamayo) en lugar del actual (MeaCore-Enterprise). Ahora detecta actualizaciones correctamente.
- Icono de ventana: Corregida la ruta del icono que no se encontraba, causando que Windows mostrara un icono genérico feo en la barra de título.
- Fabric corregido: El instalador de Fabric ahora usa Java correcto según la versión de Minecraft (Java 8 para 1.12.2).
- NeoForge corregido: El instalador de NeoForge ahora detecta Java 17/21 automáticamente según la versión de Minecraft.
Corrección crítica de Forge:
- Java correcto para Forge: El instalador de Forge ahora detecta automáticamente la versión de Java necesaria según la versión de Minecraft (Java 8 para 1.12.2, Java 17 para 1.17-1.20.4).
- Error "Cannot run program java": Arreglado el error que impedía instalar Forge cuando Java 8 no estaba disponible.
- Fallback inteligente: Si Java 8 no está instalado, el launcher intenta usar Java 17 como alternativa para versiones antiguas.
Correcciones de Java:
- Soporte Java 21: El launcher ahora detecta correctamente cuando Minecraft 1.20.5+ y 1.21.x requieren Java 21.
- Diálogo de descarga: Arreglado el diálogo emergente que no mostraba Java 21 como opción de descarga para versiones modernas de Minecraft.
Mejoras en Workflows:
- Limpieza de releases: Los workflows ahora eliminan assets antiguos antes de subir nuevos, evitando acumulación de versiones en el release.
- Fixes YAML: Corregidos errores de sintaxis en los workflows de GitHub Actions.
Nuevo Instalador Windows (.EXE):
- Adiós al .MSI: El instalador de Windows ahora se distribuye como
.exe generado con Inno Setup. Resuelve los falsos positivos más comunes de SmartScreen y elimina la necesidad del ZIP portable.
- Instalación silenciosa: El auto-actualizador ejecuta el instalador con
/VERYSILENT /NORESTART /SUPPRESSMSGBOXES: cero ventanas, cero clics.
- ⚠️ Migración manual una sola vez: Los usuarios que vengan de la versión
.msi deben descargar este .exe a mano la primera vez. A partir de ahí, las actualizaciones vuelven a ser automáticas.
Reporta bugs sin salir de la web:
- Formulario integrado: Nueva sección Reportar un bug en la página principal. Adjunta capturas de pantalla y describe el problema sin crear cuenta de GitHub ni instalar nada.
- Auto-relleno inteligente: El formulario detecta tu sistema operativo y la última versión publicada del launcher para incluirlos automáticamente en el reporte.
- Issues automáticos: Cada reporte se convierte en un issue de GitHub real (con la captura adjunta), listo para que el equipo lo revise.
Optimización de CPU (Avanzada):
- Detección de Cores: Ahora el launcher distingue entre núcleos físicos y hilos lógicos para una optimización precisa.
- JVM Adaptativa: Los argumentos de hilos (GC y JIT) se calculan dinámicamente según tu procesador, mejorando drásticamente el rendimiento en equipos de 8, 12 o más núcleos.
- Prioridad de Proceso: Refinado el motor de arranque para asegurar que Minecraft use la potencia total del procesador sin interferencias del sistema.
Mejoras en el Ecosistema Java:
- Instalador Robusto: La descarga de JREs portátiles ahora es síncrona con la UI, mostrando una barra de progreso real que no desaparece hasta finalizar la instalación.
- Mirrors de Respaldo: Se han integrado servidores espejo (GitHub Releases) para Java 8 y 21 en caso de que el API oficial de Adoptium no esté disponible.
- Alertas de Instalación: Nuevas ventanas de confirmación al terminar descargas exitosas o fallidas para mantener al usuario informado.
Build & CI/CD:
- Tags simplificados: Los workflows de release ahora también disparan con tags
v* (ej. v1.4.0), no solo bat-*. Más natural y compatible con cualquier herramienta de versionado.
- Re-construir releases viejas: Nuevo disparador manual desde GitHub Actions que permite regenerar los instaladores de cualquier tag publicado sin tener que crear una versión nueva.
- Validación estricta: Si jpackage no produce el instalador esperado, el workflow falla en lugar de subir una release vacía.
- Corrección de empaquetado Windows: El workflow de Windows ahora pasa
--add-modules javafx.controls,javafx.fxml directamente a jpackage, asegurando que el runtime embebido incluya JavaFX y evitando instalaciones rotas.
Correcciones Críticas:
- Detección de Java 21: Se ha mejorado el reconocimiento de versiones modernas (1.20.5+ y snapshots) para asegurar que el launcher pida Java 21 automáticamente.
- Protección de Arranque: Ahora el launcher valida físicamente que el ejecutable de Java exista antes de intentar abrir el juego, evitando errores técnicos crípticos.
- UX de Errores: Si falta Java o el JRE portátil no se ha descargado, el launcher ahora muestra una alerta clara con instrucciones directas en lugar de un error de sistema.
Actualización para Windows:
- ZIP Portable Oficial: Debido a que Control Inteligente de Aplicaciones (Smart App Control) de Windows bloquea instaladores (.msi) Open Source de forma agresiva en equipos nuevos, hemos añadido un ZIP con la versión portable.
- Este paquete listo para jugar no requiere permisos de administrador ni instalación, ayudando a los usuarios afectados por Windows Defender SmartScreen.
Soporte NeoForge (nuevo):
- Modloader NeoForge: Nuevo botón en el overlay de inyección de modloaders. Instala automáticamente la última versión de NeoForge desde
maven.neoforged.net resolviendo dinámicamente el número de versión. Recomendado para modpacks modernos como ATM9, Sky Odyssey, All the Mods.
- NeoForge en Auto-Configuración: Cuando instalas un modpack desde la Tienda que requiere NeoForge, el launcher lo instala automáticamente igual que hace con Forge y Fabric.
Instalador de Mods de Rendimiento:
- 100% gratuitos y automáticos: Un solo botón en la pestaña Modding instala los mods correctos según el modloader del perfil — nunca se mezclan mods de Fabric con perfiles de Forge.
- Fabric: Sodium + Lithium + FerriteCore + Indium + ImmediatelyFast. Mejora esperada: +50–300% FPS en modpacks pesados.
- Forge (1.12.2–1.20.1): FerriteCore + Rubidium + Oculus.
- NeoForge (1.20.2+): FerriteCore + Embeddium + ModernFix.
- Detección inteligente de loader: El perfil ahora almacena el modloader activo. El instalador usa este dato directo en lugar de intentar adivinar por el nombre de versión.
JVM & Optimizaciones:
- Preset HIGH corregido: El flag crítico
-XX:+UnlockExperimentalVMOptions ahora se inyecta antes que -XX:+UseZGC y -XX:+ZGenerational. Sin este orden, ZGC no arrancaba.
- Memoria dinámica por hardware: El preset HIGH escala automáticamente hasta 12 GB en sistemas con 32+ GB de RAM. Balanced hasta 6 GB. LOW permanece conservador en 2 GB.
- Presets Balanced con Aikar's Flags completos: Añadidos
G1MixedGCCountTarget, InitiatingHeapOccupancyPercent, G1RSetUpdatingPauseTimePercent, MaxTenuringThreshold y useNUMA para reducir micro-parones.
- Java 21 automático: Minecraft 1.20.5+ y versiones superiores detectan automáticamente Java 21 como requerido y usan el JRE portátil si está descargado. Hay un botón específico en el overlay de Java.
- options.txt con 14 parámetros: AutoOptimizerService ahora escribe
entityDistanceMul, maxFps, glDebugVerbosity, useNativeTransport, biomeBlendRadius y más según el preset activo.
Descarga en paralelo (16 hilos):
- Librerías paralelas: El instalador de versiones ahora descarga todas las librerías del classpath simultáneamente con un pool de 16 hilos. En conexiones rápidas, la instalación inicial es hasta 8× más rápida.
- Assets paralelos: La sincronización de los miles de archivos de assets también usa 16 hilos.
Build & CI/CD:
- jpackage corregido: Añadidos los flags
--add-modules javafx.controls,javafx.fxml al instalador Windows (.msi) y Linux (.deb). Sin este flag, JavaFX no inicializaba correctamente en las instalaciones nativas.
- Linux workflow fix: Corregida la variable
${{ env.VERSION }} → "$VERSION" en el bloque de shell. Eliminado --resource-dir problemático del jpackage de Linux.
- Modrinth User-Agent dinámico: El cliente de Modrinth ahora usa
LauncherMetadata.VERSION en el header en lugar del string hardcodeado "1.2.2".
Compatibilidad Multiplataforma (Windows / Linux):
- Soporte Nativo Windows: El launcher detecta el SO en tiempo de ejecución. Las rutas de datos (
%APPDATA%\.minecraft, %APPDATA%\.tlauncher) y el directorio temporal (%TEMP%) se resuelven automáticamente sin configuración manual.
- JRE Portable Multiplataforma:
JavaRuntimeService descarga .zip en Windows (extracción Java pura) y .tar.gz en Linux. Detecta java.exe o java según el sistema.
- Auto-Updater Multiplataforma:
AutoUpdateService busca el asset correcto en GitHub Releases según el SO — .msi en Windows, .deb en Linux. Se ejecuta con msiexec /passive /norestart en Windows y pkexec apt install en Linux.
- UI Segura en Windows: Las propiedades GTK de JavaFX (
glass.gtk.wm_class, etc.) solo se inyectan en Linux, eliminando warnings de la JVM al arrancar en Windows.
CI/CD & Build System:
- Fix Crítico de Variables PowerShell: Corregido el bug donde
${{ env.VERSION }} no se expandía dentro de bloques run: de PowerShell — ahora usa $env:VERSION correctamente.
- Icono Windows (.ico): El workflow convierte
icon.png a icon.ico (256×256) con ImageMagick v7, requerimiento obligatorio de jpackage en Windows.
- Instalador .msi Mejorado: Añadidos
--win-per-user-install (sin UAC) y --win-shortcut/--win-menu. El artefacto se renombra a meacore-launcher-X.Y.Z.msi para que el auto-updater lo detecte de forma predecible.
- build.gradle.kts: Los args JVM GTK del task
JavaExec se condicionan a Linux — ./gradlew run ya funciona limpio en Windows sin warnings.
Compatibilidad y Core System:
- Fix de Classpath (LWJGL): Solucionado un conflicto crítico al cargar Forge en 1.12.2 que provocaba
ClassNotFoundException debido a un merge incorrecto de versiones entre plataformas.
- Arrancador Robusto: Reparado el crasheo en caliente (
NoClassDefFoundError) del Narrador en versiones antiguas. Ahora Minecraft 1.12.2 inicia exitosamente la GUI principal.
- Optimización de JVM: Reordenados los argumentos experimentales (G1GC) para evitar rechazos tempranos del motor de Java.
- FileSystem Seguro: Prevención de errores de escritura durante el aislamiento de versiones mediante la precreación proactiva de directorios.
Estabilidad y Aislamiento Crítico:
- Protector de Instancia: Implementado aislamiento estricto al estilo MultiMC. Si cambias la versión de un perfil, los mods y configs anteriores se mueven a backup automáticamente para evitar conflictos fatales.
- Detector de Incompatibles: El launcher ahora analiza la carpeta
mods antes del arranque y deshabilita automáticamente mods de versiones equivocadas (ej. mods de 1.20 en una instancia 1.12.2).
- Fix Sincronización UI: Resuelto el bug donde el selector de versión no se actualizaba correctamente al cambiar entre perfiles en la barra lateral.
- Reparación del Bucle de Update: Corregido el error que hacía que el launcher pidiera actualizarse infinitamente a la versión 1.3.3.
Optimización de Recursos Extrema:
- Adiós Narrador: Eliminada la librería
text2speech del motor de inicio. Ahorro inmediato de RAM y CPU al evitar la carga de clases y nativos innecesarios.
- Deep Clean de Assets: El motor ahora borra activamente archivos de idiomas no soportados (Chino, Ruso, etc.) para liberar espacio real en disco.
- Optimización F3: Refinado el recolector de basura (G1GC) para suavizar el gráfico de F3 y eliminar micro-tirones (stuttering).
- Hotfix de Estabilidad: Corregidos errores críticos de compilación en el motor de archivos.
Optimización y Pulido:
- Fix del Narrador (Linux): Ahora el launcher extrae automáticamente los archivos
libflite.so necesarios para el narrador de Minecraft, eliminando errores de consola.
- Gestión de Memoria: Implementado un sistema de alertas críticas cuando el sistema tiene menos de 1GB de RAM libre para prevenir crashes.
- Estabilidad de Assets: Mejorado el motor de sincronización para ser más resiliente ante archivos filtrados y optimizar espacio.
Novedades Críticas de Estabilidad:
- Aislamiento de Perfiles: El launcher ahora detecta cambios de versión y limpia automáticamente la carpeta
mods (respaldándola) para evitar crashes por mezcla de versiones.
- Fixes de Java 17: Se optimizaron los argumentos de la JVM para solucionar errores de módulos en mods modernos (1.20.1).
- Sincronización Total: Los perfiles ahora se auto-configuran con la versión de Java recomendada para máxima estabilidad.
- Limpieza de Código: Eliminación de código muerto y optimización de importaciones para un launcher más ligero.
- Corrección de Facade: Sincronizada la lógica de detección de Java entre la interfaz y el motor de arranque.
Actualización del Motor de Ejecución:
- Multi-Java: Soporte para Java 17 automático en versiones 1.17-1.20.4, solucionando errores de módulos.
- Descarga de Librerías Maven: Descarga automática de librerías faltantes como LWJGL.
- Extracción Nativa: Ahora el motor Java 8 se extrae usando
tar, lo que garantiza soporte para .tar.gz.
- Reinicio Robusto: Se corrigió el AutoUpdate para que el launcher se abra automáticamente tras la instalación mediante
setsid.
v1.2.5 - Java Hub & UI Fluidity ✨
Novedades y Mejoras:
- Java 8 Portable: Descarga automática de un motor Java 8 privado para versiones antiguas (1.12.2 y menores).
- Corrección de Interfaz: Se eliminó el color verde discordante de la barra de navegación.
v1.2.2 - Modernización "Dark Premium" 🚀
Novedades y Mejoras:
- Rediseño Visual Completo: Nueva interfaz inspirada en estándares modernos con esquema de colores Carbón Premium.
- Web Dinámica Inteligente: Despliegue de portal oficial con detección automática de versiones.
- Estabilidad en Linux: Solución crítica al bug de renderizado en entornos GNOME/Ubuntu.
v1.1.0 - El Nacimiento de MeaCore ✨
- Rebranding: Transición oficial a la marca MeaCore Launcher.
- Multi-Instancia: Aislamiento total de directorios de juego por perfil.