Skip to content

A library designed for hosting Minecraft: Java Edition listeners.

Notifications You must be signed in to change notification settings

JustTalDevelops/expresso

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

49 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

expresso

A library designed for hosting Minecraft: Java Edition listeners (currently for 1.17.1).

Features

  • Hosting listeners.
  • All handshake, status, and login state packets.
  • Login verification.
  • Compression and encryption.
  • Chunk column reading/writing.
  • Dialing/connecting to listeners.
  • All play state packets.

Example

You can find a basic example in main.go. The example sends a chunk column for (0, 0) to every connection which has the block at (0, 1, 0) and (1, 3, 0) set to the block state of 10, which is minecraft:dirt.

Disclaimer

Do not expect anything completely working right now! Currently, there's only enough to get the player spawned in the world, and for chunk data to be sent to the client. There is also no support for connecting to listeners at the moment, however it is planned.

Credits

These projects helped me design expresso and gave the general idea of how to build a protocol library for Minecraft. Many thanks to all the authors and contributors of these projects!

An absolute godsend for any project interesting the Java Edition protocol. Contains a lot of useful information for getting on the right track, and documents the entire protocol, while still being mostly up to date.

Many parts of expresso are based off of go-mc, such as the BitStorage implementation or certain parts of the reader/writer. I would like to thank the authors of go-mc for their work, and for making it possible to write this library.

gophertunnel helped me with the general design of packets and reader/writers, as well as the implementation for NBT. If you're interested in the Bedrock protocol, I would definitely recommend using gophertunnel.

Much of the chunk implementation was inspired from this project. It's a pretty big library and much more established and complete compared to this implementation. I would recommend using it if you're interested in utilizing the protocol in Java and are looking for something more complete.

About

A library designed for hosting Minecraft: Java Edition listeners.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages