Skip to main content

A Modern Async Python Library for Minecraft Launcher Development

Project description

Async MC Launcher Core 🚀

A modern async Python library for custom Minecraft launchers

中文說明請見 README-Chinese.md

Test Build Python Package Ask DeepWiki

This project is a fork of JakobDev/minecraft-launcher-lib.

A Python library for building custom Minecraft launchers. Supports installing, launching Minecraft, and interacting with Mojang/Microsoft accounts.

Features

  • Easy installation
  • Generate Minecraft launch commands
  • Microsoft account login support
  • Supports Forge, Fabric, Quilt, and Liteloader
  • Supports alpha/beta and legacy versions
  • All functions are type-annotated and documented
  • PyPy support
  • Full online documentation and tutorials
  • Vanilla launcher profiles read/write support
  • mrpack modpacks support
  • All public APIs are statically typed
  • Rich examples
  • Open source

Installation

Install via pip:

pip install async-mc-launcher-core

Or with uv (faster install):

uv pip install async-mc-launcher-core

Microsoft Account Login Example

import logging
from launcher_core import microsoft_account
import asyncio
from launcher_core.setting import setup_logger
from launcher_core.mojang import have_minecraft

logger = setup_logger(enable_console=False, level=logging.INFO, filename="microsoft_account.log")

async def login_microsoft_account():
    AZURE_APP = microsoft_account.AzureApplication()
    Login = microsoft_account.Login(azure_app=AZURE_APP)
    login_url = await Login.get_login_url()
    print(f"Please open {login_url} in your browser and copy the URL you are redirected into the prompt below.")
    code_url = input()
    code = await microsoft_account.Login.extract_code_from_url(code_url)
    auth_code = await Login.get_ms_token(code)
    print(f"Refresh token: {auth_code['refresh_token']}")
    xbl_token = await microsoft_account.Login.get_xbl_token(auth_code["access_token"])
    xsts_token = await microsoft_account.Login.get_xsts_token(xbl_token["Token"])
    uhs = xbl_token["DisplayClaims"]["xui"][0]["uhs"]
    mc_token = await microsoft_account.Login.get_minecraft_access_token(xsts_token["Token"], uhs)
    await have_minecraft(mc_token["access_token"])
    login_data = {
        "access_token": mc_token["access_token"],
        "refresh_token": auth_code["refresh_token"],
        "expires_in": auth_code["expires_in"],
        "uhs": uhs,
        "xsts_token": xsts_token["Token"],
        "xbl_token": xbl_token["Token"]
    }
    return login_data["access_token"]

if __name__ == "__main__":
    access_token = asyncio.run(login_microsoft_account())
    print(f"Access token: {access_token}")

Documentation & More Examples

Comparison: This Fork vs. JakobDev/minecraft-launcher-lib

Feature/Design This Fork JakobDev Original
Python Version Support 3.10+, more complete type annotations 3.7+, partial type annotations
Logging System Built-in setup_logger, file & console output No built-in logging, user must implement
Microsoft Login Flow Example & API fully async/await All sync
Dependencies aiofiles, aiohttp, requests, requests-mock requests
Documentation Primarily in Chinese, tailored for TW/Chinese users English
Branch Strategy main/dev auto-sync (GitHub Actions) Single main branch
Others Optimized for async/await and type annotations Focus on broad compatibility

Please refer to both the original and this fork to choose the version that best fits your needs!

Contributing

PRs and issues are welcome!

Acknowledgements

Thanks to tomsik68 for documenting Minecraft launcher internals.

Thanks to JakobDev for the original code (BSD-2).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

async_mc_launcher_core-0.4rc0.tar.gz (77.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

async_mc_launcher_core-0.4rc0-py3-none-any.whl (78.7 kB view details)

Uploaded Python 3

File details

Details for the file async_mc_launcher_core-0.4rc0.tar.gz.

File metadata

File hashes

Hashes for async_mc_launcher_core-0.4rc0.tar.gz
Algorithm Hash digest
SHA256 d43da5cbbb1bb044ec8ee6cb298a5533627ba805bf2662ca0c949ab4073c7727
MD5 ae1f71a1ea6ed3a67ce2196f26ab63c9
BLAKE2b-256 d27207ec3d3d8699b50b8278ee8f1849437eac6dc756f413e069cb3e364a64dd

See more details on using hashes here.

File details

Details for the file async_mc_launcher_core-0.4rc0-py3-none-any.whl.

File metadata

File hashes

Hashes for async_mc_launcher_core-0.4rc0-py3-none-any.whl
Algorithm Hash digest
SHA256 32798b3892ec6777a4f8997f9a8fc64eaddf3f3ed6aea372baac4ce3e9175a36
MD5 2f52bbde12c0df9ec9d46218a6ee811e
BLAKE2b-256 a503b3483efc5f49d8eff12355c4dfa744754b351abf1f70be653c08c7338ccd

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page