/protocol

Netty handlers and utilities for the Minecraft data protocol 1.8+

Primary LanguageJavaApache License 2.0Apache-2.0

Luna Protocol Build Status

Netty handlers for the Minecraft data protocol 1.8+

Prerequisites

  • Netty 4.1
  • Java 8

Usage

Latest release from Maven Central:

<dependency>
    <groupId>io.lunamc</groupId>
    <artifactId>luna-protocol</artifactId>
    <version>0.1.0</version>
</dependency>

Latest development snapshot from OSSRH:

<repository>
    <id>ossrh</id>
    <url>https://oss.sonatype.org/content/groups/public/</url>
</repository>
<dependency>
    <groupId>io.lunamc</groupId>
    <artifactId>luna-protocol</artifactId>
    <version>0.2.0-SNAPSHOT</version>
</dependency>

Overview

  • io.lunamc.protocol.ProtocolUtils - Read and write Minecraft-specific data types (VarInt, VarLong, UUID, String and array types).
  • io.lunamc.protocol.handler.LengthLimitedFrameDecoder - Reads a (potentially) fragmented packet with a length up to 32,767 bytes.
  • io.lunamc.protocol.handler.PacketInboundHandlerAdapter - A base class for handling successfully decoded packets.
  • io.lunamc.protocol.handler.PacketLengthPrepender - Prepends the length as a VarInt in front of each outgoing ByteBuf.
  • io.lunamc.protocol.handler.cipher.CipherDecoder - Decrypts incoming ByteBufs.
  • io.lunamc.protocol.handler.cipher.CipherEncoder - Encrypts outgoing ByteBufs.
  • io.lunamc.protocol.handler.compression.PacketCompressor - Compresses outgoing ByteBufs.
  • io.lunamc.protocol.handler.compression.PacketDecompressor - Decompress incoming ByteBufs.

Documentation

Special Thanks