Status Update: 5th March 2022

For everyone still getting used to the idea of it being 2022, it seems that March is already upon us and with it a bunch more news!

Shoutout for Sponsors and Donators

We would like to again thank our current sponsors, Bisect Hosting, MC Server Hosting , Apex Minecraft Hosting, Minecraft Index, CreeperHost, JetBrains and YourKit who support us, either financially or with free access to their tools, in our ambition to be the greatest Minecraft plugin platform! Our current sponsors can be found on our home page , along with on our download pages. If you want to sponsor us, you can find out more here.

If you feel like you want to donate a little for our cause (other than your love and gratitude), we do have a Patreon that you can subscribe to. If you’d rather not subscribe but would like to donate via PayPal, you can send donations to [email protected]. And if you can’t donate, don’t worry! You can help us by testing builds, giving feedback, or just providing encouragement when we talk about stuff in our Discord channels !

Important Updates

While the API is now stable, we are still working away on the implementation and we have two important changes incoming that everyone should take note of.

Timings are Going Away

In API-8 and beyond, we elected to move the Timings API that some plugins used into its own library. This library was purposely sat outside of the API so that we determine what our strategy would be regarding it.

We have decided that the best course of action is to remove the Timings library completely.

Server Owners: this means that /sponge timings will no longer function. With the increasing migration of users to using external plugins to sample method times, or by using profilers such as VisualVM or YourKit, Timings is no longer a preferred choice for users and so we feel that its removal is the best option for our project.

In Minecraft 1.18 and later, Mojang added the jfr command (see part way down https://www.minecraft.net/en-us/article/minecraft-snapshot-21w37a) which uses in-built Java tools to do profiling - so this is also an option in some cases.

Plugin Developers: if you are using the Timings library you should no longer do so, as we will remove it from the server.

Note that some plugins that use timings may cease to function if they are not updated. However, we are aware of only a handul of cases where this is may be the case, we don’t expect this to be a widespread issue.

You can track these changes at remove timings by ImMorpheus · Pull Request #3613 · SpongePowered/Sponge · GitHub

Changes to Sponge Server Folder Structure

In order to support the Forge ecosystem better, we will shortly be changing the folder structure that Sponge creates on your server. The biggest change that you’ll notice is that Sponge plugins will no longer go in the /mods folder, but a /plugins folder. We are doing this as we have observed that keeping Sponge plugins in the mods directory with modern Forge may cause issues.

In a nutshell, the following changes will be made:

Function API-7 location API-8 location
Plugin directory (including hybrid/mixin plugins) /mods /plugins
Plugin config directory /config /plugin-configs
Sponge config /config/sponge /sponge/config

We’ll also put Sponge specific stuff in the /sponge directory as much as possible.

You can track the changes at Split out our directory structure vs. Forge by Zidane · Pull Request #3526 · SpongePowered/Sponge · GitHub

API-8/1.16.5

As mentioned in our last announcement, API-8 has been released and with that we are currently working on our implementations. SpongeForge remains our primary focus for this version, however we will be releasing SpongeVanilla reference builds as part of our development process.

If you are a plugin developer, now is the time to build and port your plugins to API-8. Setting up your workspace is now substantially easier/ Your efforts also provide valuable feedback to us as using your plugins in server environments will help us to test the stability and functionality of our implementations as we work towards releasing stable builds.

If you are a server admin wishing to try out the experimental builds, we continue to advise that you ensure you have regular backups. If you uncover any bugs during testing, we appreciate your reports.

SpongeVanilla 1.16.5 Experimental Builds
SpongeForge 1.16.5 Experimental Builds

API-9

With API-8 frozen, progress on API-9 is well on the way. Our current plan for API-9 is to keep it broadly consistent with 8 where possible, with World Gen being the most substantial change. There will be some minor improvements over API-8 in other areas but code should be substantially more portable between 8 and 9 than between 7 and 8.

Our aim is to freeze API-9 this month, so if you have any concerns or changes you’d like considered, please get in touch with us as soon as you can.

SpongeVanilla 1.18.1 Experimental Builds are available for testing, though are not advised for production servers. If you’d like to test the builds out and help report bugs we would greatly appreciate it.

The recent Minecraft 1.18.2 update has introduced breaking world generation changes which require us to assess the direction we will take with regards for this part of the API. We hope to let you know about the changes soon!

SpongeDocs and the Great Translation Migration

Translators of the SpongeDocs should now have access to the fancy new Crowdin Enterprise setup we were generously offered. The new instance is up and running, and live! Many thanks are due to @felixoi for coordinating with Crowdin to sort out problems with migration (we sort of broke it). There may still be a few hiccups in the system, so if you experience difficulty or encounter unexpected weirdness, please let the docs staff know (via Crowdin, Discord, or the Forum). If the difficulties are related to your account please directly contact Crowdin.

We recommend that all users migrating to the new translations to try to use the (last) link that was sent to you by Crowdin, as it will allow your translation progress to migrate with you. No translations will be lost, but the migration method carries over your translation profile data. And our apologies for all the broken migration messages sent out by Crowdin, it was an automated part of the process that could not be disabled.

Please note that the old SpongeDocs translation site is no longer in use, and has been removed to prevent confusion. You should be automatically redirected to the new site.

On another note, the SpongeDocs are now being updated for API-8. If you see a page you know needs attention, please make an issue - or go one better, and make a PR to update it. There’s a lot to go through, particularly on the plugin development pages, as significant changes were made in developing SpongeAPI 8. If you’re unsure, join the docs channel on Discord and ask away - we’re always here to help.

3 Likes