Skip to content

Stepnicka012/Hytale-Launcher-Core

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Hytale Launcher Core

Apoyamos completamente al equipo de Hytale y recomendamos que compres el juego oficial cuando esté disponible.

Descripción

Hytale Launcher Core es un paquete completo que permite instalar, parchear y ejecutar Hytale. Hemos desarrollado diversas herramientas internas y APIs que la comunidad de desarrolladores puede utilizar para crear proyectos similares o integrar funcionalidades relacionadas.

Características Principales

  • Gestión de versiones: Descarga e instalación de diferentes versiones de Hytale (release y pre-release)
  • Sistema de parches: Modificación automática de binarios para redireccionar a servidores personalizados
  • Gestión de dependencias: Instalación automática de Java y Butler cuando sea necesario
  • Sistema de autenticación: Soporte para modo online (con servidor de autenticación) y offline
  • Manejo de procesos: Control completo sobre el proceso del juego con monitoreo en tiempo real
  • Eventos extensibles: Sistema de eventos para integrar con interfaces de usuario

APIs Públicas Desarrolladas

Para facilitar el desarrollo de la comunidad, hemos creado las siguientes APIs:

1. Java-Hytale Runtime

https://bvcrytgetpzniqfqdsng.supabase.co/storage/v1/object/public/json/manifest/java-runtime/Java-${version}-${type}-manifest.json

Provee información sobre las versiones de Java requeridas por Hytale.

2. Hytale Manifest

https://bvcrytgetpzniqfqdsng.supabase.co/storage/v1/object/public/json/manifest/hytale-manifest.json

Contiene el manifiesto completo con todas las versiones disponibles de Hytale, información de compatibilidad y metadatos.

Arquitectura del Sistema

Componentes Principales

  1. HytaleDownloader: Maneja la descarga de versiones de Hytale desde los servidores
  2. ButlerManager: Gestiona la instalación y uso de Butler para extraer archivos PWR
  3. JavaManager: Administra la instalación y verificación de Java
  4. PatcherManager: Aplica parches a los ejecutables de cliente y servidor
  5. HytaleLauncher: Coordina todo el proceso de lanzamiento del juego

Flujo de Descarga y Extracción

El proceso completo sigue estos pasos:

  1. Obtención del manifiesto: Se descarga el archivo JSON con todas las versiones disponibles
  2. Construcción de URL: Se genera la URL específica para la versión y plataforma solicitada
  3. Descarga del PWR: Se obtiene el archivo comprimido que contiene el juego completo
  4. Extracción con Butler: Se utiliza Butler para descomprimir el archivo PWR
  5. Aplicación de parches: Se modifican los ejecutables para redireccionar a servidores personalizados
  6. Verificación de dependencias: Se asegura que Java esté disponible y en la versión correcta
  7. Ejecución: Se lanza el juego con los parámetros adecuados

Esquema del Proceso de Descarga

Node Tree.png

Requisitos del Sistema

  • Node.js: Versión 18.0.0 o superior
  • Sistema operativo: Windows, macOS o Linux
  • Espacio en disco: ~1.5GB para instalación completa ( Del Juego )
  • Conexión a internet: Para descarga inicial y actualizaciones

Instalación

# Clonar el repositorio
git clone https://github.com/Stepnicka012/Hytale-Launcher-Core.git

# Instalar dependencias
npm install

# Construir el proyecto
npm run build

Uso Básico

import { HytaleLauncher, Folder } from './index.js';

// Configurar rutas
const javaDir = Folder.getToolsPath();
const launcher = new HytaleLauncher(javaDir);

// Configurar opciones de lanzamiento
const options = {
    username: 'MiUsuario',
    gameDir: '/ruta/al/juego',
    userDir: '/ruta/al/perfil',
    offline: false,
    repairServer: true
};

// Configurar callbacks
const callbacks = {
    onStdout: (data) => console.log('Salida:', data),
    onStderr: (data) => console.error('Error:', data),
    onLaunchStatus: (status) => console.log('Estado:', status),
    onExit: (code) => console.log('Código de salida:', code)
};

// Lanzar el juego
try {
    await launcher.launchGame(options, callbacks);
} catch (error) {
    console.error('Error al lanzar el juego:', error);
}

Estructura del Proyecto

hytale-launcher-core/
├── Manager/
│   ├── ButlerManager.ts      # Gestión de Butler
│   ├── JavaManager.ts        # Gestión de Java
│   └── PatcherManager.ts     # Sistema de parches
├── Utils/
│   ├── EventEmitter.ts       # Sistema de eventos
│   └── Folder.ts            # Utilidades de rutas
├── HytaleDownloader.ts      # Descargador principal
├── HytaleLauncher.ts        # Lanzador principal
└── index.ts                 # Punto de entrada

Eventos Disponibles

Eventos del Launcher

  • launch-start: Inicio del proceso de lanzamiento
  • status: Actualizaciones de estado general
  • java-found: Java encontrado/verificado
  • tokens-*: Eventos relacionados con autenticación
  • process-*: Eventos del proceso del juego

Eventos del Parcheador

  • client-detected: Cliente encontrado durante el escaneo
  • client-patched: Cliente parcheado exitosamente
  • server-detected: Servidor encontrado durante el escaneo
  • server-patched: Servidor parcheado exitosamente
  • patchAll-finished: Finalización del proceso de parcheo completo

Configuración Avanzada

Opciones de Descarga

const downloadOptions = {
    versionId: '1.0.0',
    type: 'release',
    outputPath: '/ruta/personalizada',
    extractPath: '/ruta/extraccion',
    keepPWR: false,
    maxRetries: 5,
    enableResume: true
};

Opciones de Parcheo

const patchOptions = {
    dryRun: false,
    recurse: true,
    includeUnknownJars: true,
    includeClassFiles: false
};

Consideraciones de Seguridad

  1. Autenticación: El sistema soporta tanto autenticación online como offline
  2. Tokens JWT: Generación y validación de tokens para sesiones de juego
  3. Verificación de integridad: Chequeo de archivos descargados y parcheados
  4. Manejo seguro de credenciales: Almacenamiento local seguro de sesiones

Limitaciones Conocidas

  1. Requisitos de ingeniería inversa: Se requiere conocimiento avanzado para modificar los parches
  2. Dependencia de APIs externas: El sistema depende de nuestras APIs públicas
  3. Actualizaciones del juego: Los parches pueden requerir actualización con nuevas versiones de Hytale
  4. Compatibilidad: Algunas versiones antiguas pueden no ser compatibles

Desarrollo y Contribución

Requisitos para Desarrolladores

  • Conocimiento avanzado de TypeScript/Node.js
  • Experiencia en ingeniería inversa de binarios
  • Comprensión de protocolos de red y autenticación
  • Familiaridad con formatos de archivo (PWR, JAR, EXE)

Áreas de Mejora

  • Soporte para más arquitecturas de CPU
  • Mejora en la gestión de memoria para grandes descargas
  • Sistema de plugins para funcionalidades extendidas
  • Interfaz gráfica integrada

Soporte y Recursos

  • Documentación completa: Disponible en docs.sanasol.ws
  • Comunidad Discord: Únete a discord.gg/98SsAX7Ks9
  • Reporte de issues: Utiliza el sistema de issues de GitHub
  • Wiki del proyecto: Guías y tutoriales detallados

Licencia y Términos

Este proyecto se distribuye bajo los términos de la licencia GPL-3.0. Sin embargo:

  1. Uso educativo: Este proyecto está destinado principalmente para fines educativos
  2. Respeto a los desarrolladores: Apoyamos a los desarrolladores oficiales de Hytale
  3. Comprar el juego oficial: Recomendamos encarecidamente comprar el juego cuando esté disponible
  4. Uso responsable: No utilices este software para infringir derechos de autor de Stepnicka012
  5. Este proyecto no esta afiliado ni respaldado por Hypixel Studios Canada Inc.

Agradecimientos

  • Al equipo de Hytale por crear un juego increíble
  • A la comunidad de desarrolladores por su continuo apoyo
  • A todos los contribuidores que han ayudado a mejorar este proyecto

Nota: Este software está en desarrollo activo. Las APIs y funcionalidades pueden cambiar sin previo aviso. Siempre verifica la documentación más reciente antes de implementar en producción. oh unete a nuestro discord para tener avisos de Hytale-Launcher-Core

About

Professional Hytale Launcher Core - Autonomous PWR download, patch, and launch system

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors