Desarrolladores

Compilar desde el código

Prepara Node, pnpm y Rust, inicia el launcher en modo desarrollo, ejecuta las comprobaciones, crea instaladores y compila el mod TRS Client.

El TRS Launcher es una app de Tauri 2: un núcleo en Rust hace el trabajo y una aplicación de una sola página con Nuxt 4 es la interfaz. El TRS Client del juego es un proyecto de Gradle aparte en el mismo repositorio.

Qué hay en cada sitio

CarpetaQué es
app/Frontend en Nuxt 4 (SPA, sin SSR)
src-tauri/src/App de Tauri: comandos, registro de tareas, traducción de errores, plugins
src-tauri/crates/core/trs-core: el núcleo del launcher, independiente de la interfaz
src-tauri/resources/client-mod/Jars del TRS Client ya compilados que incluye el launcher
client-mod/TRS Client: núcleo común y builds para Fabric, Forge y NeoForge
packaging/Recetas para AUR y Flatpak, archivos de escritorio de Linux
tests/Pruebas del frontend (Vitest)

La web y la API de TRS están en api/ en la rama website (mira más abajo).

Requisitos

  • Node.js 22 o más nuevo y pnpm (la versión está fijada en package.json; corepack enable la prepara)
  • Rust (stable, toolchain MSVC) con rustup
  • Visual Studio Build Tools con «Desarrollo para el escritorio con C++»
  • WebView2 (preinstalado en Windows 10 y 11)

Iniciar el launcher en modo desarrollo

Descarga el código

git clone https://github.com/theredstonee/TRS-Launcher.git
cd TRS-Launcher

Instala las dependencias

pnpm install

Esto también ejecuta nuxt prepare.

Inícialo

pnpm app:dev

Esto inicia el servidor de desarrollo de Nuxt en http://localhost:3000 y abre la ventana de Tauri con recarga en caliente. La primera vez compila la parte de Rust y tarda un rato.

Pon TRS_LAUNCHER_HOME en una carpeta aparte para que tus datos de prueba no se mezclen con tus datos reales del launcher.
Los builds de desarrollo sin una cuenta con sesión iniciada arrancan el juego en el modo demo oficial de Minecraft. Los builds publicados siempre necesitan una cuenta que tenga el juego.

Ejecutar las comprobaciones

Son las mismas comprobaciones que ejecuta la CI en cada push y pull request.

pnpm typecheck
pnpm test

La cadena de inicio se puede probar sin interfaz. Descarga e inicia la versión indicada en su propia carpeta de datos:

cd src-tauri
cargo run -p trs-core --example launch -- <carpeta-de-datos> 1.21.1 [vanilla|fabric|quilt|forge|neoforge] [segundos]

Para probar las reglas del asistente de errores con un registro o un informe de fallos (también en src-tauri):

cargo run -p trs-core --example crash_scan -- <registro-o-informe> [--memory MB --system MB]

Crear instaladores

pnpm app:build

El instalador NSIS queda en src-tauri/target/release/bundle.

Las versiones oficiales firman los archivos de actualización con la clave privada del proyecto. Sin esa clave, el build puede terminar con un error por falta de clave privada después de crear los instaladores. Desactiva los archivos de actualización en tus propios builds: pnpm tauri build --config '{"bundle":{"createUpdaterArtifacts":false}}' (en lugar del texto JSON también vale la ruta de un archivo JSON con el mismo contenido).

CurseForge necesita una clave de API al compilar: la variable de entorno CURSEFORGE_API_KEY o el archivo ~/.tauri/curseforge-api-key (%USERPROFILE%\.tauri\curseforge-api-key en Windows). Sin clave, el build funciona igual y simplemente oculta CurseForge.

Compilar el TRS Client

No necesitas compilar el mod para compilar el launcher: los jars ya compilados están en src-tauri/resources/client-mod/.

Requisito: un JDK 21 o más nuevo para ejecutar Gradle. Las toolchains de Gradle descargan JDK 17, 21 o 25 para compilar si faltan.

Cada familia de cargadores es un build de Gradle propio con su propio wrapper:

CarpetaCargador y versionesCompilar
client-mod/ (raíz, fabric/)Fabric 1.14.4–26.3./gradlew collectLauncherJars
client-mod/neoforge/NeoForge 1.20.2–26.3./gradlew collectLauncherJars
client-mod/forge/Forge 1.20–26.3./gradlew :collectLauncherJars
client-mod/forge-mojmap-legacy/Forge 1.14.4, 1.15.2, 1.16.x, 1.17.1, 1.18.x, 1.19.x./gradlew collectLauncherJars
client-mod/forge-1.13.2/Forge 1.13.2./gradlew build
client-mod/legacy/Forge 1.8.9–1.12.2./gradlew collectLauncherJars
client-mod/legacy-1.7.10/Forge 1.7.10./gradlew build

Para el build de Fabric en client-mod/:

./gradlew build                      # todas las versiones + las pruebas unitarias de common/
./gradlew :fabric:1.21.1:build       # una sola versión
./gradlew :fabric:1.21.1:runClient   # iniciar esa versión de Minecraft con el mod (carpeta de juego: client-mod/run)
./gradlew collectLauncherJars        # escribir dist/*.jar y dist/builds.json para el launcher
En Windows, usa .\gradlew o gradlew.bat en lugar de ./gradlew. Compila los proyectos uno tras otro: todos escriben en el mismo client-mod/dist/.

Web y API

La web y la API de TRS son un proyecto aparte de Nuxt 4/Nitro en la rama website. Tiene su propio package.json y lockfile y necesita Node.js 24.11 o más nuevo.

git checkout website
cd api
pnpm install
pnpm typecheck && pnpm lint && pnpm test

Los endpoints públicos de la API se describen en API pública.