Skip to content
 
 

Repository files navigation

ProxyTransport for WaterdogPE

A WaterdogPE plugin that connects the proxy to its downstream servers over raw TCP or QUIC instead of RakNet.

Bedrock client ──RakNet──▶ WaterdogPE (+this plugin) ──TCP/QUIC──▶ downstream server

Setup

Drop the jar into the proxy's plugins/ folder and restart. The plugin registers two downstream server types, tcp and quic.

Pointing servers at it

Server info objects have to be created through this plugin, so add it as a dependency of the plugin that registers your servers:

depends:
  - ProxyTransport

Then create your servers through the factory for the transport you want, instead of new ServerInfo(...):

ServerInfoFactory QUIC_INFO_FACTORY = ServerInfoType.fromString("quic").getServerInfoFactory();

ServerInfo server = QUIC_INFO_FACTORY.createServerInfo(name, address, publicAddress);

Use "tcp" for the TCP transport. If you have your own ServerInfo subclass, it needs to extend this plugin's type instead.

QUIC

QUIC needs an extra JVM flag on the proxy on Java 17+, because the QUIC native has to be loaded into Netty's class loader:

--add-opens java.base/jdk.internal.loader=ALL-UNNAMED

If the flag is missing, QUIC is skipped.

Downstream servers

The downstream server has to speak ProxyTransport too:

Protocol

The wire protocol and the shared implementation live in ProxyTransport-Common.

About

Transport layer extension for WDPE to utilize raw TCP & QUIC instead of RakNet

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages