EncryptedKitten's Minecraft Server Emulator
What does it do?
It provides an implementation of:
- api.mojang.com
- authserver.mojang.com
- login.minecraft.net (Untested, legacy login host)
- pc.realms.minecraft.net (Partial, some endpoints are stub functions)
- session.minecraft.net
- sessionserver.mojang.com
- skins.minecraft.net
- snoop.minecraft.net (Untested, removed in modern versions)
- status.mojang.com (Provides a hardcoded green status for all hosts)
- textures.minecraft.net
It has a script to download data from:
- assets.minecraft.net
- launcher.mojang.com
- launchermeta.mojang.com (https://launchermeta.mojang.com/mc/game/version_manifest.json is needed for realms emulation in order to find the latest release)
- libraries.minecraft.net
- meta.multimc.org
- resources.download.minecraft.net
It also has a Web UI for adding users and basic configuration
- It must be set up with NGINX auth, as it does not has any auth built in.
- A general database management tool such as PHPMyAdmin is also recommended, as it can be useful for providing addition configuration and information that is not avalible in the Web UI.
Bind DNS Server Configs for setting it as your DNS Server
What does this mean?
You can run a server that handles the Minecraft authentication and server join systems, as well as has the API functions used to change your skin and whatnot.
What is required?
- NGINX
- PHP-FPM
- php-gmp
- php-curl
- mariadb
- The include directiory in the sites/mcse/global folder set as a PHP include path.
You can also optionally add bind9 for a DNS server.
You will also need to replace the authlib's yggdrasil_session_pubkey with the one you generate (If you want skins to show up in multiplayer for game versions 1.7.6 or higher), you can use Minecraft JavaAgent to do this.
You will also need to use MultiMC5 or the old JAR launcer, IIRC the new official one doesn't respect the system certificate store.
You will also need configure the program in mcse_config.ini, and generate the certificates for the hosts and the yggdrasil session keypair. Also the entries of the *.127.0.0.1.in-addr.arpa domain should be replaced, there are python scripts to do this in the root of the repository.
Additional Information
Information about Minecraft protocols: wiki.vg