SubServers.Bungee now puts code in 2 new places to better load/unload it's data.
When supported, this should give it better compatabilty with ordanary plugins. Also, it no longer has to 'shutdown' to handle /greload. Isn't that neat?
RedisBungee has been abandoned by it's developers. So we're abanding it too.
SubServers.Sync will now finally pick up the slack and sync basic player information between proxies over their SubData connection.
SubServers.Host can now seamlessly reconnect to SubServers.Bungee, even if it's been restarted, without restarting uneffected servers.
Also, you can now shutdown SubServers.Bungee without turning off remote servers. Isn't that neat?
The Download group of packets was in desperate need for a restructuring.
Now, instead of using `DownloadServerList` to list everything, different object types now are downloaded through their own seperate packets. (Improving network efficiency)
- Proxies connected to Redis are downloaded on startup/reload
- Named proxies are no longer removed on disconnect
- Proxies now show up in `/sub list`
- Proxies now have Add/Remove events in the API
- Proxies are included in the response of the `DownloadServerList` packet
This was a change I made to the Lang API a while back, and now it has made it's way into SubData.
Packets are now tied to channels (`n`) and then handles (`h`) within those channels.
This is how SubServers will implement the Validator API that I suggested. I had to make some assumptions though (like how I don't expect BungeeCord's api to have a setTabValidator() method).
/sub reload - can now perform soft reloads
/greload - still performs hard resets
Soft Reloads mean that SubServers will load new data from the config and attempt to merge it with what is already in memory.
This is good if you need to make some quick changes, since it will only stop servers if a major change has been made to them.
However, this has the potential to cause issues, which is why the Hard Reset will continue to be tied to bungeecord command.
This marks the beginning of SubServers.Host. As of now it is just a
simple plugin loading API, but it is planned to become a way to host
servers on other machines.
Also, SubAPI now checks to make sure variables aren't null in many
places.