A Minecraft Java Edition proxy intended for connecting old Minecraft Version servers, that only support legacy bungeecord forwarding, to Velocity Modern Forwarding Networks.
Important
This proxy will not work for you out of the box, please consult the Proxy Compatibility section first.
Note
This project is, even though not tested for all versions, intended to work for Minecraft versions 1.7.2 to 1.12.2, as these are supported by Velocity, but don't support Modern Forwarding. As I am not testing all of these versions, please report any issues and I will get to fixing them.
Caution
The connection to this Proxy may be more secure through the use of the Modern Forwarding protocol, but the connection from this proxy to the backend server is still insecure. Please make sure you have everything configured properly before you let people connect
Look at the Running section for more information on how to run the proxy.
- If a
Config.tomlfile, which can also be seen in this repository, does not exist, start the application once, it will create a default config file and then exit. - Fill out the config options, this should be pretty self-explanatory, but here is an overview:
listen_address: You can configure the address this proxy is reachable at here, this is what your Modern Proxy forwards the connections to.backend_address: The address of your backend server, this is your Minecraft server that only supports legacy bungeecord forwarding.forwarding_secret: This is the secret found inforwarding.secretin your Velocity configuration. You can also configure this through the environment variableFORWARDING_SECRET.trusted_ips: This is a list of ip addresses that connections are allowed from, this should be the address of your Modern Proxy(s). Although not recommended, you can leave this empty to allow all connections if you know what you are doing or for development.log_level: The logging verbosity of this proxy. Should not need to be adjusted unless you are developing or reporting an error.
- Point your MODIFIED Modern Proxy to whatever ip address and port you configured in
listen_address. - Make sure your backend server is configured to accept legacy bungeecord connections and is running at the specified
backend_address. - Start the application (again), it should now be running and listening for connections, connecting your legacy server to it and your modern proxy.
This application will most likely not work for you out of the box, I only tried this with Velocity, I suspect other proxies like Gate will have similar issues. Your Proxy will definitely need to support the modern forwarding protocol for this to work!
I recommend compiling Velocity yourself, the changes that need to be done are minor and easy to understand. You can inspect them in the diff and apply them yourself to whatever version of Velocity you want to use, it is probably similar for most versions.
If you want to compile the proxy yourself:
-
Install Rust (latest stable version)
-
Clone this repository:
git clone https://github.com/GrandmasterB42/forwarding_translation_proxy.git cd forwarding_translation_proxy -
Build the application:
cargo build --release
-
The binary will be available at
target/release/forwarding_translation_proxy
Download the pre-compiled binary for your platform from the latest release
Extract the binary to your desired location
Pull and run the Docker image from GitHub Container Registry:
docker run -p <host-port>:<container-port> \
-v $/path/on/your/host/Config.toml:/app/Config.toml \
-e FORWARDING_SECRET=<your-secret> \
ghcr.io/grandmasterb42/forwarding_translation_proxy:latestThanks to all the awesome people that made the following resources available!