37 lines
2.1 KiB
Markdown
37 lines
2.1 KiB
Markdown
# libmc
|
|
|
|
[中文](zh/README-zh.md)
|
|
|
|
A lightweight, modern Minecraft client protocol library designed for Kotlin Native & JVM. The core protocol library
|
|
module relies on the following dependencies:
|
|
|
|
- Standard Library (`kotlin-stdlib`)
|
|
- I/O (`kotlinx-io`) - Efficiently wraps each packet into a Buffer
|
|
- Coroutines (`kotlinx-coroutines`) - Enables high-performance asynchronous operations
|
|
|
|
## Required APIs
|
|
|
|
| Module Name | Required | Notes |
|
|
|:-------------|:------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
|
| TCP Socket | Yes | The `protocol` module does not have a built-in TCP Socket implementation. [Implement TCP Socket](Impl-TCP-Socket.md) |
|
|
| AES-128-CFB8 | Conditional | Required only when logging into an `online-mode` server to encrypt/decrypt traffic. [Implement AES-128-CFB8](Impl-Crypto.md#AES-128-CFB8) |
|
|
| RSA 1024 | Conditional | Required only when logging into an `online-mode` server to encrypt the shared secret with the server's public key. [Implement RSA 1024](Impl-Crypto.md#RSA1024) |
|
|
| SHA1 | Conditional | Required only when logging into an `online-mode` server to compute the Server ID hash. [Implement SHA1](Impl-Crypto.md#SHA1) |
|
|
| HTTP Client | Conditional | Required only when logging into an `online-mode` server to send join request to mojang's session server. [Implement HTTP Client](Impl-HTTP-Client.md) |
|
|
|
|
# Get started
|
|
|
|
# Protocol
|
|
|
|
> `libmc-protocol` is current under development. It only supports the latest Minecraft version
|
|
> (Current supported Minecraft version: `26.2`, Protocol Version: `776`)
|
|
|
|
[Start using libmc-protocol](en/Get-started.md)
|
|
|
|
# Assemble all context APIs
|
|
|
|
[Assemble context APIs](en/Assemble-context.md)
|
|
|
|
## NBT & SNBT
|
|
|
|
[NBT & SNBT](en/NBT-SNBT.md) |