I aimed to make this reasonably easy to use. And it’s more than easy for someone to make a quick GUI for the java program, so if you can/want; please do!
Drag and drop SpongePls.jar into your BUNGEECORD plugins folder.
Edit the Configuration to your preferences.
The reload command is a little wobbly. So let’s just not use that.
The configuration supports regex as well as normal server names. If the server name doesn’t match the server being joined then the extra data won’t be sent. You don’t want to send this data if the server is vanilla or SpigotMC.
Sponge supports IPForwarding yes. However the issue is; Forge + IPForwarding isn’t possible. This resolves that.
Sponge already supports the method used to overcome it, however bungeecord doesn’t. So a pull request was made, however it would break backwards compat, and would require modification of spigot aswell. A plugin is much more dynamic, configurable and supportive. Thus we have SpongePls.
Just to give a bit more background for those that are interested to explain why this has come about:
When Forge support was initially introduced, it was for 1.7. 1.7 Forge required a forge client and made no changes to the initial handshake packet. If a vanilla client tried to connect, it would find it was unable to. This also meant that Cauldron could just take Spigot’s IP forwarding mechanism, which does make changes to this initial packet. Everything is well.
Lex made a change in Forge 1.8 to allow vanilla clients. In order for forge servers to be able to work out if the client is a Forge client, Forge now mutates this handshake packet too to add a marker to say “Hey, I’m a Forge client!”, so Forge knows to treat it as such. This breaks Bungee’s IP forwading support - the changes clash with each other. This is why we’ve tried to come up with a way to allow both to work together. The downside would be that older Spigot builds would not then support Forge clients connecting - but I provided a patch for Spigot that would overcome this too, again, something that hasn’t been accepted as of yet.
The fundamental code that provides this IP forwarding support in this plugin is exactly what I wrote for the PR, all this plugin does it do some bytecode replacement to add it instead and put some config around it. It’s just a different approach. While I would rather see this as part of the Bungee becase IP forwarding support is a fundamental part of Bungee (and I’ve been waiting for md-5 to respond to questions on the PR), this plugin definately fills the gap until we get something that everyone can agree on.
Precisely, however it’s a pretty large ask wanting BungeeCord to implement your patch. Not only will bungeecord have to change, Spigot, VanillaCord, other custom implementations of servers that use IP forawrding, and everything less than the newer minecraft server versions with the patch to allow this will no longer.
Yes it’s only a couple lines, but I can almost guarantee at least 50% of the users of them jars have absolutely no clue how to patch their, now severely outdated and incompatible jar.
Oh, don’t get me wrong, I knew it was a big ask, but as I said before, I made the point up front - I’ve not tried to be sneaky about it. I know others are unable to patch their jars, but at this stage, this would have only affected 1.8 servers, and so I felt there was a good chance that it would get accepted. I also provided a Spigot patch, which is the main consumer of this system, though I do accept VanillaCord and other implmentations exist.
I do have another idea that came to me yesterday that might let me do it in a zero config way that won’t (hopefully) break backwards compatibility, but I just need time to sit down and try it in all scenarios. Unfortunately, my job and my life gets in the way sometimes!
It’s unfortunate that a plugin is the best way seems to be the way to solve it right now because I think that IP forwarding should really being done on the bungee level, not a plugin level, but it takes the pressure off for now. I, and I’m sure others do too, thank you for taking the time to do it. At least I don’t have to maintain a custom fork…
(Oh, and you can @ mention to reply to multiple users, if it helps.)
I need this plugin, it’s all I’ve been waiting for to get my Pixelmon server connected onto my hub and other servers. I have an issue, and tested many times, making sure everything was done properly. First I tested just a base forge server with SpongeForge and connected it to my hub servers and it worked. But Ip forwarding didn’t even though both config’s have IP Forwarding enabled it said it wasn’t. But I could still connect to my hub and switch over to the Forge server. But, once I added the Pixelmonmod to the Forge server I get thrown a Kicked whilst connecting to Pixelmon: This server requires Forge installed. Any idea’s what could be the issue here?