Hexalite Network is an open-source modular network of Minecraft: Java Edition servers inspired by Mineclub, Wynncraft and Origin Realms. This project aims to bring the best experience possible to players without the need of mods. Summary
📚 Table of contents
💻 Technologies / Project stack✨ Contributors💸 Supporting🏟️ Contributing / Running locally🏗️ Project structure🎉 Third party📜 Licensing
💻 Technologies
All of our Minecraft servers are built on top of the Purpur server software, proxied by Velocity. We also use PostgreSQL as our database, and use Redis for our multiserver caching and session system. We usually make a request to our rest webservers instead of directly accessing the database in multiple servers to avoid unsynchronization or/and loss of data, and for communications we use RabbitMQ. We also appreciate the work and we are very grateful to the various open source libraries used in the project which you can find here.
✨ Contributors
Pedro Henrique |
Gabriel |
Breno S. |
Herocrife |
🏟️ Running locally
If you are interesting in contributing, please make sure to read our [contribution guide][contribution-guide] and join our Discord community for further information and interaction with the developers and artists, and whoever knows what they are doing.
Prerequisites
- Install the Java Development Kit. We recommend using the IBM's Semeru for the OpenJ9 virtual machine and Eclipse's Adoptium for the Hotspot VM. We recommend installing both though.
- Install the latest nightly build of Rust.
- Install Docker and Docker Compose for setting up the development environment in an easier way.
- Install ProtoBuf's
protoc
locally and add it to the $PATH.
Building the applications
- Compile the command-line interface first by going to the
cli
directory then runningcargo build --release
. This will generate a binary incli/target/release/hexalite
that will be referenced soon ashexalite
for simplicity. You can add it to the $PATH on UNIX-like environments by running thescripts/apply_cli.sh
script. - Link the required components to the ~/.hexalite folder by running
hexalite init
. This is required for getting all server resources internally without any dumb workarounds.
Command-line tool explanation
A explanation of every subcommand in the command-line tool can be obtained by running the hexalite help
command.
🏗️ Project structure
This section will cover the project structure and the files that are used in the project.
arcade/*
- Every single game the Minecraft server has.cli/*
- The command-line interface.branding
- Assets related to the Hexalite branding.common*
- Common files that are used by multiple components.docker
- Compose files for Docker, for an easier setup of the development environment.docs
- Documentation for features used in this project.kraken
- A library for easier Minecraft development.resource-pack
- The source code for the resource pack generator. Output is located atresource-pack/out
.rest-webserver
- The REST webserver for the server.rest-webclient
- A consumer library for the REST webserver.reusable-plugins
- A collection of reusable plugins for the server.web
- The web interface for the server.run
- A development environment for a Purpur setup.
💸 Supporting
Starring the repository
If you do not want to help us with money, you can just star the repository, it still means a lot to us!
Donations
You can support us by the GitHub sponsors program (pending) or on OpenCollective.
🎉 Third party
We depend on many third party libraries and applications, a complete list can be found here.
📜 Licensing
To know about the license of this project, you can read the LICENSE.md file.