Skip to content

A NetEase (China) Minecraft protocol extension library for CloudburstMC/Protocol

Notifications You must be signed in to change notification settings

AllayMC/ProtocolExtension

Repository files navigation

Protocol Extension

A NetEase (China) Minecraft protocol extension library for CloudburstMC/Protocol.

Features

  • NetEase client compression support (raw deflate format)
  • NetEase login chain validation with NetEase public key

Supported Protocols

Protocol Version Minecraft Version
v766 1.21.50

Installation

Gradle (Kotlin DSL)

repositories {
    mavenCentral()
}

dependencies {
    implementation("org.allaymc:protocol-extension:0.1.0")
}

Maven

<dependency>
    <groupId>org.allaymc</groupId>
    <artifactId>protocol-extension</artifactId>
    <version>0.1.0</version>
</dependency>

Usage

Using NetEase Codec

import org.allaymc.protocol.extension.v766.Bedrock_v766_NetEase;
import org.cloudburstmc.protocol.bedrock.codec.BedrockCodec;

BedrockCodec codec = Bedrock_v766_NetEase.CODEC;
session.setCodec(codec);

Using NetEase Compression

import org.allaymc.protocol.extension.NetEaseCompression;
import org.cloudburstmc.protocol.bedrock.netty.codec.compression.BatchCompression;

BatchCompression compression = new NetEaseCompression();
session.getPeer().setCompression(new SimpleCompressionStrategy(compression));

Validating NetEase Login Chain

import org.allaymc.protocol.extension.NetEaseEncryptionUtils;
import org.cloudburstmc.protocol.bedrock.util.ChainValidationResult;

ChainValidationResult result = NetEaseEncryptionUtils.validateChain(chainData);
if (result.signed()) {
    // Chain is valid and signed by NetEase
}

Detecting NetEase Clients

NetEase clients use RakNet protocol version 8:

int NETEASE_RAKNET_VERSION = 8;
boolean isNetEaseClient = session.getPeer().getRakVersion() == NETEASE_RAKNET_VERSION;

License

LGPL 3.0 - see LICENSE for details.

Credits

About

A NetEase (China) Minecraft protocol extension library for CloudburstMC/Protocol

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages