As usual for major versions, this release is not network compatible with the previous one, so make sure to update all your SubServers Apps when you decide to update.
Since it's safe to say that paying for a plugin that's no longer being developed is probably a bad idea, here is our solution. You may remember that, all the way at the bottom of our previous release notes, we released something called the RemotePlayer API for developers. From now on, SubServers apps will be relying solely on that — with a few additions of course.
SubServers.Sync will now sync player connection data network-wide, in addition to the existing dynamic server library, effectively replacing RedisBungee. You can still use RedisBungee if you have plugins with a need for it, though.
Server Termination, Revisited
Don't you just hate it when you use
/end but suddenly realize one of your servers isn't responding? You try your best but BungeeCord just won't let you send the command. Not anymore. You can now send commands while SubServers is shutting down.
Additionally, Linux users can now use
/sub terminate to terminate a session directly instead of letting the JVM potentially screw up the operation. Pretty neat, huh?
Some other things happened
- You can now use
/greloadwithout restarting your whole network
/sub updatecan now be used to change the template of subservers
- The permissions required for
/sub teleporthave changed to make it more accessible
- Temporary servers are no longer stored in
- Smart Fallback now has more customization options
- Some recent UI bugs in SubServers.Client have been fixed
- SubServers.Client now provides PlaceholderAPI placeholders
- SubServers.Client now uses TitleAPI instead of TitleManager on older servers
- SubData can now hit higher speeds than ever before
- VanillaCord had a big update of its own
- SubServers can now fully load itself before
onEnable()is called for plugins
- Plugins that register drivers should now do so
- Two new common APIs have been introduced
- Objects are now fully initialized before sending events such as
SubEditServerEventno longer fires for changes made through the API
- GalaxiEngine has had some structural changes
An Anniversary Edition!
This release roughly marks 5 years of SubServers. Did you know?
-> The very first version of SubServers (Classic) was 1.8.3a in the middle of 2015.
-> The first version of SubServers 2, the rewrite, was 2.11.2a at the start of 2017.
-> The rest of the family of apps as they are now were released not too soon after; later that year.
Like usual with these major versions, this release is not network compatible with the previous one, so make sure to update all your SubServers Apps when you decide to update.
The Power Management Update
Exactly two years ago, SubServers 2.12.1e introduced the concept of grouping servers together. Since then, it could be used to do... well, nothing. But that changes now.
Introducing the redesigned command and permission format. You can now select multiple servers using a comma separated list, a group they belong to, or a host that provides for them in a single node/command. For detailed information on the new format, visit this shiny new wiki page.
SubCreator File Replacement
As plugins tackle more complex issues, they require more metadata in their configs. SubCreator can now provide that metadata to them by making replacements of specific variables in specific files. Although it won't do so by default. To see how to take advantage of this new functionality, see the updated SubCreator wiki page.
Additionally, SubCreator can now replace old/modified server files with newer/fresh template files when updating a server. Again, though, it won't do so by default.
On BungeeCord Fork Compatibility
In the update notes for the SubServers 2.15a revisions, you may remember that BungeeCord has recently changed some of their internal methods regarding server object creation — and that was a big problem for us.
Since then, we have actually found a fix for this problem. So, you don't have to keep track of all those messy version numbers anymore to use SubServers.
But wait, there's more
- The server-side teleport command
/sub teleporthas finally arrived (from SubServers Classic!)
/sub deleteis now available on the other console-based apps
- SubServers.Host can now load local templates from
- Removing a default template's
Versionproperty will now keep it from being updated
- The driver
BUILT-INis now known as
- SubCreator will now install a properly signed version of SubServers.Client
/sub reload templatesfor redownloading template files (for SubServers.Host)
/sub reloadfor reloading
- The RemotePlayer Data API is now available
- The SmartFallback API has been rewritten to become more useful
- The "Master" Proxy can now be requested by name
- SubData 2 and GalaxiEngine have been updated
Even Java has betrayed us...
This release is not network compatible with the previous one, so make sure to keep your SubServers Apps up-to-date. Despite that, though, this release is all about maintaining compatibility. The following items were changes to our dependencies that we had to create fixes for to remain compatible.
Time moves forward
- Waterfall no longer uses BungeeCord's default behavior for handling servers
- BungeeCord has altered their internal methods for creating servers
- SubData now uses a potentially faster method of handling control characters
- Java has placed some new, inconsistent restrictions on those who launch processes
Hold on, 2.15? What ever happened to 2.14?
Well, as the keen-eyed among you who went searching for it have noticed, 2.14 has been available in a stable state for ages in the form of snapshot builds, while 2.13 stuck around as something of an LTS build. This release structure doesn't really make sense for SubServers, though, so we'll be returning to the regular release format after this version.
All that aside, though, this is the release with all of the shiny new features I hinted at previously. This release is not network compatible with the previous release (2.13), so you're going to have to get all your SubServers Apps updated for this. Also, since it's been quite a while, tracking these changes has gotten quite difficult. As such, this change log is most likely incomplete.
These days it's more important than ever to to keep your servers up-to-date. But yet, SubCreator only keeps one version of each release in it's cache. Wouldn't it be nice if we could just run SubCreator again over the same server files?
Yeah, that would be pretty nice. That's why we added
The update command can be used once a day to rebuild and cache yourself a newer build of your server software (where supported). You can then take that updated cache and use it to update the rest of your servers as well. Edit the
Template option in your
servers.yml to use this feature on existing servers.
The Paper Template
The long requested Paper template is finally here. As you may already know, paper is a fork that provides various features, optimizations, and configurations that Spigot does not, similar to what Waterfall is to BungeeCord. The most immediately obvious one being that you're not required to run a Buildtools like program to get your hands on it.
Like other templates that have been added after the fact, those of you who are updating will have to download this template yourselves, or remove/rename the
Templates folder to obtain this new template.
This release comes with the latest iteration of SubData: SubData 2. Aside from being a little faster than it's predecessor, it is also a lot more flexible in it's formatting. Allowing for even the largest of files to be sent over the network with ease. It can also be used in multi-channel mode, for when one data stream just isn't enough.
To those of you who hate me because of how frequently I update
lang.yml or wern't really into the whole idea of visiting the wiki in your free time to compare and update your configs manually but still want the new features, this is for you.
Instead of just replacing your config file with a newer one, we're now going to auto-update your old one with new values based on what you already had. Also, this has the side effect of neatly sorting your config values as well! Hooray!
But wait, there's more
- You can now make the
[Version]SubCreator argument optional for templates that don't require it
- Added smarter fallback server selection
- Added RSA/AES type encryption
- Servers may now be deleted immediately from API and through their
- Servers have been moved to their own config file (
Recently Deletednow clears deleted servers periodically (even without restarting)
- SubServers Apps can now start up semi-normally while SubServers.Bungee is offline
- Several new environment variables are available to SubServers and SubCreator (for batch/shell scripting)
- Processes launched by SubServers Apps now make a conscious effort to use the same Java version as the app that launched them
- SubServers.Client based apps are now on par with many API features of SubServers.Bungee
SubStartedEventfor SubServers with SubServers.Client installed
SubNetworkLoginEventfor all SubServers Apps
- Many SubServers util classes are now being provided by GalaxiEngine
- Some ME1312.net services have been moved
This release fills a gap where the more feature-packed 2.14 isn't ready yet but an urgent fix is required for anyone wanting to use SubServers.Client in Minecraft 1.14.
So until then, let's just keep using the 2.13 versioning. What could possibly go wrong? Besides, 1.14 shouldn't be used in production servers yet anyway, right?
What's new in this version
- You can now space out
- There's a fancy new warning ping message for when your back-end servers are known to be offline
Fixes in this version
- Fixed something that broke in 1.14
- Fixed an issue related to changes in version formatting within the Sponge Web API
- SubServers who are known offline are now invalidated as options for fallback when a server goes down
This release makes SubServers even more configurable than it was before. Additionally, this release also should have better memory performance than previous versions of SubServers.
The new environment
For the first time since it's inception, the SubServers executable command handler has been updated. Now, commands are executed in the environment of the system (
cmd on windows,
sh for anyone else). Additionally, there are custom variables injected into these environments specific to each SubServer that you may use in your scripts (for SubServers) (for SubCreator).
What else is new in this version
/sub restartshort-hand command has finally been added
/sub killcan now stop all servers using the wildcard character:
- SubCreator now uses the full-fat
Executablecommand to launch scripts instead of just a file location
- Windows users can now use the
shcommands in the
Log-Creatoris now a per-host config option
- Console-only commands now have tab completes
- Outdated copies of the default templates no longer get loaded by default
Fixes in this version
- SubServers can now properly terminate child processes on Windows
- SubServers now handles symlinks correctly
/sub sudooverrides the
logoption again like it should
- Moved logging flags to their own variables in SubServers.Host (fixes possible errors with multi-threading)
- Threads created by SubServers are now properly named
- There are links where necessary to SubServers' main dependencies in the Javadocs
- Players can now be whitelisted through the API when using the
Executableclass has been rewritten to be more useful
Utilnow has short-hand methods for reflection
Versionis now a type embedded into
We've fixed some things
- Internal loggers now tie up loose ends properly
- Access rules for restricted servers have been corrected
- Fixed an NPE regarding SubServers.Client and auto-detecting the server link
- SubServers.Host now has proper command auto-completion support
- SubServers.Host has been updated to GalaxiEngine 3.2.0a
- SubServers.Client should now be unaffected by server-side chat modification plugins
lang.ymlnow supports the expandable
- SubCreator's replacement of
port=xxxxxnow results in
port=25565xxxxxfor values in
- The source code for the
Templatesdirectory is easier to get at now (no more modifying zip files)
This release has a focus on allowing SubServers to do more of the work for you. There are new configuration options available for the new features.
SubServers just got smarter
- It can forward your ports for you (only when UPnP is available)
- It can pick it's own port number in SubCreator
- It will choose a fallback server based on how confident it is that you'll be able to connect
What's been fixed
- Only select from stable Sponge versions in SubCreator
- Fixed bug with unicode escapes when saving YAML
This release has a bunch of little changes to make SubServers better. This release is not network compatible with the previous release, so you will have to make sure all your SubServers apps get updated.
What's new in this version
/sub infoto make it more useful
- Proxies now have a bigger presence throughout SubServers when using 2 or more
- SubServers.Sync can now sync over commonly altered BungeeCord config values
- Stopping a server or kicking users server-side will now send them to the fallback server (unless they were actually on the fallback server) when
Auto-Restarthas been replaced with
Fixes in this version
- Add support for the new WaterfallConsole revision
- Fixed a syntax issue with
wgetin SubCreator (delete the Templates folder to get this fix)
- Look for the old Gson location when using older Bukkit/Spigot builds
- There is now a proper API for the client side apps (See SubAPI.class)
- SubServers.Host is now built on GalaxiEngine 3 (which means plugins now go through that)
- The SubServers dataset download packet has been separated by type
- Only send the reload packet when the API is ready to be called
- Packets now have better support for transferring raw binary data
- Packets are now converted MessagePack instead of JSON before they are sent
- Packet handles are now namespaced
- The Temporary flag has been replaced with a StopAction value
The final release of 2.13a has come. This release includes fixes related to changes in backend distribution and to the Templates folder.
Sponge template in this version will now build SpongeVanilla (Sponge without Forge). SpongeForge has moved to the
Forge template. To get this template, you can download it or backup and remove the templates folder for it to be regenerated.