$ show HMCL-dev/HMCL
HMCL (Hello Minecraft! Launcher) is a cross-platform Minecraft launcher written in Java using JavaFX. It manages game instances (install, update, launch), downloads game files and mod loaders (Forge, Fabric, NeoForge, Quilt, LiteLoader, etc.), supports multiple authentication methods (offline, Microsoft, Yggdrasil, authlib-injector), and handles modpacks (CurseForge, Modrinth, MultiMC, etc.). The architecture is a monolith with three modules: HMCL (UI), HMCLCore (core logic), and HMCLBoot (bootstrap). It features a custom task framework for async operations, an event bus, a wizard system for multi-step dialogs, and extensive hardware detection (CPU, GPU, memory) across Windows, macOS, and Linux. The codebase is well-structured but contains copied external libraries (JFoenix skins, APNG reader) and some tight coupling between UI and core modules.
The LLM identified 3 files worth highlighting for reuse:
Custom async task framework supporting dependencies, stages, progress tracking, and cancellation. Used throughout the application for download, install, and UI refresh operations. Reusable as a standalone pattern for any Java project needing composable async workflows.
Typed event bus with priority-based listeners and weak references. Allows decoupled communication between components. Reusable for event-driven architectures in Java applications.
State-machine based wizard framework with navigation, settings map, and finish/cancel callbacks. Used for installation workflows (modpack, mod loader, game version changes). Reusable for any multi-step dialog or setup wizard.