Skip to content
This repository was archived by the owner on Aug 20, 2026. It is now read-only.

Repository files navigation

MC AuthLib

MC AuthLib is a library designed to make the integration of different account types in Minecraft easier.
Based on Elixir - a discontinued project by UnlegitMC.

Used by

  • LiquidBounce - A free Minecraft Hacked Client for Fabric 26.2

Features

  • Login to Minecraft using different account types
  • Favorite Account
  • Ban Tracker
  • Replicated Yggdrasil API for usage in newer versions of Minecraft
  • Pulls UUIDs from Mojang API for Cracked Accounts

Supported account types

  • Microsoft (Premium via Xbox Sign In)
  • The Altening (Alt-service)
  • Cracked (Username)
  • Session (Access Token)

Installation

Add the repository once and depend on the artifact shown below.

Gradle (Kotlin DSL)

repositories {
maven("https://maven.ccbluex.net/releases")
}
dependencies {
implementation("net.ccbluex:mc-authlib:1.5.0")
}

Gradle (Groovy DSL)

repositories {
maven {
url "https://maven.ccbluex.net/releases"
}
}
dependencies {
implementation 'net.ccbluex:mc-authlib:1.5.0'
}

Maven

<repositories>
<repository>
<id>ccbluex-maven</id>
<url>https://maven.ccbluex.net/releases</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>net.ccbluex</groupId>
<artifactId>mc-authlib</artifactId>
<version>1.5.0</version>
</dependency>
</dependencies>

Usage

LiquidBounce's AccountManager uses MC AuthLib in practice.

1. Account creation

object AccountRegistry {
privateval accounts = mutableListOf<MinecraftAccount>()
funaddMicrosoftAccount(openBrowser: (String) ->Unit, onComplete: (Result<MinecraftAccount>) ->Unit) {
MicrosoftAccount.buildFromOpenBrowser(object:MicrosoftAccount.OAuthHandler {
overridefunopenUrl(url:String) = openBrowser(url)
overridefunauthResult(account:MicrosoftAccount) {
accounts += account
onComplete(Result.success(account))
}
overridefunauthError(error:String) {
onComplete(Result.failure(IllegalStateException(error)))
}
})
}
funaddCrackedAccount(username:String, onlineLookup:Boolean = false): MinecraftAccount=CrackedAccount(username, onlineLookup).also { cracked ->
cracked.refresh()
accounts += cracked
}
funaddSessionAccount(token:String): MinecraftAccount=SessionAccount(token).also { session ->
session.refresh()
accounts += session
}
}

2. Log in with Minecraft

funlogin(account:MinecraftAccount): SessionBundle {
val (compatSession, service) = account.login()
// Adapt compat session to the actual Minecraft client session.val clientSession = net.minecraft.client.session.Session(
compatSession.username,
compatSession.uuid.toString(),
compatSession.token,
compatSession.type
)
MinecraftClient.getInstance().session = clientSession
}

3. Store and load accounts

funsaveAccounts(path:Path, accounts:List<MinecraftAccount>) {
val jsonArray =JsonArray()
accounts.forEach { jsonArray.add(it.toJson()) }
Files.writeString(path, jsonArray.toString())
}
funloadAccounts(path:Path): MutableList<MinecraftAccount> {
if (!Files.exists(path)) returnmutableListOf()
val jsonArray =JsonParser.parseString(Files.readString(path)).asJsonArray
return jsonArray.map { MinecraftAccount.fromJson(it.asJsonObject) }.toMutableList()
}

About

Kotlin library providing Minecraft authentication functionality

Topics

Resources

Stars

11 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages