How guillaume-wlt/minecraft-launcher works
This is a Swing Minecraft launcher whose main workflow is: initialize launcher state, fetch Mojang version metadata, let the user choose a version and username, download and interpret the selected game’s client, libraries, assets and Java runtime, prepare native libraries/classpath, then start Minecraft. The README documents these workflow phases and the GUI, settings, console and media-background capabilities. Several detailed download/interpret steps are represented by their source directories because their individual implementations were not sampled; edges reflect documented sequencing or shown calls.
Main entry points: WorkflowRunner.java Workflow runner · InterpretVersionJSONProcess.java Version interpretation · ButtonsListener.java User actions · StartingClientProcess.java Minecraft process
Components 24
Launcher interface
- Main launcher UI
src/main/java/fr/guillaumewlt/ui/MainWindow.java - User actions
src/main/java/fr/guillaumewlt/ui/eventhandler/ButtonsListener.java - Video background
src/main/java/fr/guillaumewlt/ui/panels/BackgroundPanel.java - Launcher console
src/main/java/fr/guillaumewlt/ui/windows/ConsoleWindow.java - Settings window
src/main/java/fr/guillaumewlt/ui/windows/SettingsWindow.java - Settings persistence
src/main/java/fr/guillaumewlt/parser/SettingsJSONParser.java
Workflow control
- Application entry
src/main/java/fr/guillaumewlt/Main.java - Workflow runner
src/main/java/fr/guillaumewlt/workflow/WorkflowRunner.java - Launcher context
src/main/java/fr/guillaumewlt/workflow/LauncherContext.java - Process base
src/main/java/fr/guillaumewlt/processing/Processes.java - Initialization steps
src/main/java/fr/guillaumewlt/processing/steps/InitProcess.java
Metadata and downloads
- Version metadata
src/main/java/fr/guillaumewlt/processing/download/DownloadManifestProcess.java - Version interpretation
src/main/java/fr/guillaumewlt/processing/interpret/InterpretVersionJSONProcess.java - Client JAR
src/main/java/fr/guillaumewlt/processing/download/DownloadClientJarProcess.java - Libraries
src/main/java/fr/guillaumewlt/processing/download/DownloadLibrariesProcess.java - Game assets
src/main/java/fr/guillaumewlt/processing/download/DownloadClientAssetsProcess.java - Java runtime
src/main/java/fr/guillaumewlt/processing/download/DownloadJREFilesProcess.java - Verified download engine
src/main/java/fr/guillaumewlt/download/DownloadProcess.java
Game preparation and launch
- Native extraction
src/main/java/fr/guillaumewlt/extractor/NativesLibsExtract.java - Classpath assembly
src/main/java/fr/guillaumewlt/processing/steps/ClassPathBuildingProcess.java - Minecraft process
src/main/java/fr/guillaumewlt/processing/steps/StartingClientProcess.java
Other components
- Player
- Mojang API
- Minecraft client
Connections 26
- Player → Main launcher UI: uses
- Main launcher UI → User actions: registers actions
- User actions → Launcher context: updates selection
src/main/java/fr/guillaumewlt/ui/eventhandler/ButtonsListener.java - User actions → Workflow runner: releases workflow
src/main/java/fr/guillaumewlt/ui/eventhandler/ButtonsListener.java - Application entry → Workflow runner: starts
src/main/java/fr/guillaumewlt/Main.java - Workflow runner → Initialization steps: runs steps
- Workflow runner → Version metadata: runs phase
- Version metadata → Mojang API: fetches manifest
- Workflow runner → Main launcher UI: shows selection UI
- Workflow runner → Version interpretation: runs selected-version phase
- Version interpretation → Client JAR: precedes download
- Version interpretation → Libraries: interprets and downloads
- Version interpretation → Game assets: interprets and downloads
- Version interpretation → Java runtime: resolves and downloads
- Client JAR → Verified download engine: uses
src/main/java/fr/guillaumewlt/processing/download/DownloadClientJarProcess.java - Game assets → Verified download engine: uses
src/main/java/fr/guillaumewlt/processing/download/DownloadClientAssetsProcess.java - Workflow runner → Native extraction: runs preparation
- Workflow runner → Classpath assembly: runs preparation
- Workflow runner → Minecraft process: launches client step
- Minecraft process → Minecraft client: starts process
src/main/java/fr/guillaumewlt/processing/steps/StartingClientProcess.java - Minecraft process → Launcher console: redirects game output
src/main/java/fr/guillaumewlt/processing/steps/StartingClientProcess.java - Settings window → Settings persistence: reads settings
src/main/java/fr/guillaumewlt/ui/windows/SettingsWindow.java - Video background → Settings persistence: loads settings
src/main/java/fr/guillaumewlt/ui/panels/BackgroundPanel.java - Video background → User actions: shares controls
src/main/java/fr/guillaumewlt/ui/panels/BackgroundPanel.java - Workflow runner → Launcher context: shares workflow state
- Process base → Launcher context: holds reference
src/main/java/fr/guillaumewlt/processing/Processes.java