Skip to content

LemniAnvil/Launcher

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

130 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Launcher Icon

Minecraft Launcher

A macOS Minecraft launcher with instance management, version downloads, CurseForge browsing, and Microsoft account authentication

Swift Platform License

English | 简体中文


Table of Contents


Features

Game Management

  • Instance Management - Create and delete instances, stored in MMC format for Prism Launcher compatibility
  • Prism Launcher Discovery - Load external Prism Launcher instances from the default instances directory
  • Game Launch - Build JVM/game arguments, extract natives, and launch Minecraft (including offline launch flow)
  • Java Detection - Detect installed Java runtimes and show compatibility hints
  • Version Management - Fetch Mojang version metadata, cache it locally, and download versions on demand

Account System

  • Microsoft Authentication - OAuth 2.0 + PKCE flow with Xbox Live and Minecraft Services support
  • Offline Accounts - Local offline profiles for quick launch
  • Multi-Account Management - Store multiple accounts and switch the active one
  • Token Refresh - Refresh Microsoft tokens and update stored account data
  • Skin and Cape Tools - Preview, activate, reset, download, and upload skins; browse and manage capes; manage a local skin library

Mods and Modpacks

  • Mod Loader Selection - Fetch loader versions for Forge/Fabric/NeoForge/Quilt and record loader metadata in MMC packs
  • CurseForge Browser - Search and browse modpacks and available files (requires a CurseForge API key)

Advanced Features

  • Proxy Support - HTTP/HTTPS/SOCKS5 proxy configuration with test and system proxy detection
  • Concurrent Downloads - Multi-threaded download system with retries and SHA1 verification
  • Internationalization - English and Simplified Chinese support
  • Logging System - Multi-level logging with categorized output

Screenshots

Instance Management

The instance management interface provides functionality for creating and managing game instances.

Instance Management

Instance list view showing all created Minecraft game instances

New Instance

Create new game instances through a dialog with version and optional mod loader selection.

New Instance Dialog

New instance dialog for selecting game version and optional mod loader

Java Detection

Automatically detect installed Java runtime environments with support for multiple Java versions.

Java Detection

Java detection interface displaying all available Java versions

Account Management

Support for multiple account management, making it easy to add, remove, and switch between accounts.

Account Management

Account management interface for adding, deleting, and switching game accounts

Account Info & Skins

Preview the active skin and manage account skins directly from the info panel.

Account Info & Skins

Account info view with skin preview and skin actions

Cape Collection

Browse all owned capes and manage the currently equipped cape.

Cape Collection

Cape gallery showing available capes

Skin Management

Manage local skin files, import new skins, and access the skins folder.

Skin Management

Skin management view for local skin assets

Settings

Storage and maintenance settings for managing launcher data locations and cache.

Settings

Settings view showing storage locations and maintenance actions

Activity Monitor

Inspect the launcher's process in macOS Activity Monitor.

Activity Monitor

Launcher process shown in macOS Activity Monitor

CurseForge Modpack Browser

Browse CurseForge modpacks and inspect available files/versions.

CurseForge Modpacks

CurseForge modpack browser with search and version selection


Quick Start

Requirements

  • macOS 13.0 (Ventura) or later
  • Xcode 15.0 or later
  • Swift 5.9 or later

Installation

  1. Clone the repository:
git clone https://github.com/LemniAnvil/Launcher.git
cd Launcher
  1. Open the project in Xcode:
open Launcher/Launcher.xcodeproj

Running the Project

  1. Select the Launcher scheme in Xcode
  2. Press ⌘+R to build and run
  3. Use the toolbar buttons to open Add Instance, Account Management, Account Info, Settings, and Installed Versions windows
  4. Create an instance and explore the available features

Usage Guide

Creating Game Instances

  1. Click the "Add Instance" button on the main interface
  2. Enter an instance name in the dialog
  3. Select a Minecraft version
  4. Choose a mod loader (optional):
    • None (Vanilla)
    • Forge
    • Fabric
    • NeoForge
    • Quilt
    • Note: Mod loader selection is stored in the MMC metadata; installer download is not automated yet
  5. Click "Create" to complete instance creation

Adding Accounts

Microsoft Account

  1. Open the "Account Management" interface
  2. Click "Sign in with Microsoft"
  3. Complete Microsoft login in your browser
  4. Return to the launcher to finish authorization
  5. Account successfully added - you can see your player name and skin

Offline Account

  1. Open the "Account Management" interface
  2. Click "Add Offline Account"
  3. Enter a player name
  4. Click "Add" to complete

Launching the Game

  1. Select an instance from the instance list to play
  2. Select an account from the account dropdown menu
  3. Click the "Launch" button
  4. Wait for the game to launch (first launch will automatically download required files)

CurseForge Modpacks

  1. Click the "Add Instance" button
  2. Switch to the "CurseForge" category
  3. Browse or search for desired modpacks
  4. Select a modpack to view available files/versions
  5. Note: this view currently focuses on browsing; one-click import is not wired yet

Configuring Proxy (Optional)

If you need to use a proxy to access Minecraft servers:

  1. Open the "Settings" interface
  2. Switch to the "Network Proxy" tab
  3. Enable proxy and select type (HTTP/HTTPS/SOCKS5)
  4. Enter proxy server address and port
  5. Click "Test Connection" to verify the proxy
  6. Save settings

Technical Stack

  • Language: Swift 5.9+
  • UI Framework: AppKit (Native macOS)
  • Concurrency: Swift Concurrency (async/await)
  • Cryptography: CryptoKit (SHA1 verification)
  • Networking: URLSession with custom configuration
  • Storage: FileManager, UserDefaults
  • Logging: Custom multi-level logging system
  • Internationalization: xcstrings catalog

Development

Completed Features

Core Features

  • Version list fetching and caching
  • Version details parsing
  • Version inheritance handling
  • Multi-threaded download system
  • SHA1 integrity verification
  • Real-time progress tracking
  • Comprehensive logging system
  • Version filtering by type
  • Proxy support (HTTP/HTTPS/SOCKS5)
  • Full internationalization (EN/ZH-CN)
  • Installation status checking

Game Launch

  • Game launch engine
  • Offline UUID generation
  • JVM arguments configuration
  • Game arguments processing
  • Native library extraction
  • Classpath construction
  • Platform compatibility check (macOS optimized)

Account System

  • Microsoft account authentication
  • OAuth 2.0 + PKCE security flow
  • Xbox Live integration
  • Minecraft Services authentication
  • Token refresh mechanism
  • Offline account support
  • Account management interface

Instance Management

  • Instance creation and deletion
  • MMC format support (compatible with Prism Launcher)
  • Instance list interface
  • Instance detail view (read-only configuration summary)
  • Game directory isolation (mods, saves, resourcepacks, etc.)

Mod Loaders

  • Loader metadata for Forge/Fabric/NeoForge/Quilt
  • Mod loader version listing

CurseForge Integration

  • CurseForge API client
  • Modpack search functionality
  • Modpack details retrieval
  • Pagination and sorting support
  • CurseForge browsing interface

Java Environment

  • Automatic Java installation detection
  • Multi-version Java detection
  • Java compatibility hints (based on major version ranges)
  • Java detection interface

Planned Features

Core Enhancements

  • Auto-update functionality
  • Pre-launch resource integrity check
  • Custom launch argument templates
  • Performance monitoring and log viewer

CurseForge Features

  • Modpack download and installation
  • Automatic modpack updates
  • Mod browsing and search
  • Individual mod install/update/uninstall

Resource Management

  • Resource pack browsing and management
  • Shader pack support
  • Data pack management
  • World backup and restore

Multiplayer

  • Server list management
  • Quick server connect
  • LAN game support

User Experience

  • Theme and appearance customization
  • More language support
  • Keyboard shortcut configuration
  • Instance import/export (support more formats)

Advanced Features

  • Batch operations (batch update, batch delete, etc.)
  • Instance template system
  • Cloud sync support
  • Plugin system

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Important Note The UI component library used in this project is not yet open source. If you would like to contribute to development, please contact me through Issues or other means.

Guidelines

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

This project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0) - see the LICENSE file for details.


Star History

Star History Chart


About

A Minecraft launcher

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Contributors

Languages