Since many servers these days consist of multiple instances brought together by the BungeeCord (or LilyPad) proxy, I was wondering how this would work with Sponge.
Will Sponge fully support clients connecting through Bungee and joining the server? Will Sponge create its own proxy system? How will Sponge deal with modded clients and Bungee?
Please leave suggestions and opinions on this as well.
@blood and I did some work to allow Forge 1.7 and Bungee to communicate with each other not too long ago - a PR has been opened that is just awaiting review. I suspect that the Forge handshake will change for 1.8 - but the change to support that on Bungee’s end should (hopefully) be trivial now that we have the framework in place.
I doubt this is as much of a Sponge issue as it is Forge - I don’t see Sponge wanting or needing to do anything special when connecting above and beyond the Forge handshake, much like Bukkit. Once the user has connected, Bungee/LilyPad are just proxies, passing the packets through as required.
The only consideration, at least with Bungee, is that Spigot has support for ip/UUID forwarding that makes running a Bungee network that little bit better. Forge doesn’t have the capability to deal with the extra payload Bungee sends, as it stands. Again though, that’s something that would probably have to go into FML, unless a coremod can alter the behaviour of the login state (I have little working knowledge of FML/Forge, so I couldn’t possibly comment on that).
Bungee and LilyPad are both written with the intent to operate as a control door to other servers. Yes they were written with a certain intended server at the far end, but this also implies that once Sponge has its networking needs defined Bungee and LilyPad would both be able to adjust to accommodate.
The only situation in which this is likely is if Sponge adds more steps to the login sequence - that was the problem that we had to solve when adding code to Bungee to allow it to connect with Forge. The only thing I can think of is if Sponge adds a step to send it’s plugin/mod list, but I would expect that they would be sent as part of Forge’s list instead.
I don’t think Sponge will change any login sequences, and I suspect that we’d only need to react to changes in the FML protocol, rather than Sponge. As long as someone keeps up with that and submits code to the relevant project to continue to allow Forge to connect over Bungee, as I said above, I don’t think there is anything special that needs to be considered for Sponge/Bungee/Lilypad integration.
TL;DR: If the proxy supports the relevant Forge version, then it’ll likely support Sponge too with no other changes.
@Presidentx Sponge is a coremod so what you really should be asking is if Forge will be supporting BungeeCord and the answer is yes as it has been since 1.6.
I assume the IP and UUID forwarding thing is just a basic event capture?
For example, if there was a PlayerPreLoginEvent, it could allow the reported IP address and UUID to be modified, or maybe just a method on the Player class. Does Bungeecord include the info early in the handshake?