Status Update: 8th January 2022 - SpongeAPI 8 Released!

Hey all! Today, we have some exciting news to share, namely, the release of SpongeAPI 8 and what comes next, but first, a word for our sponsors.

Shoutout: Sponsors and Donators

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!

Log4J Vulnerability (Log4Shell)

Before we get into the more exciting news, we do need to talk about the Log4J vulnerability which rocked the Java world about a month ago.

As you most likely be aware by now, Minecraft and much of the wider world was stunned by the Log4J vulnerability, dubbed Log4Shell. We took quick action to attempt to protect servers and clients, and have issued multiple updates to our 1.12.2 builds to update Log4J on the server. We more recently discovered that the version of the H2 driver that we ship with Sponge implementations for Minecraft 1.12.2 were also vulnerable, we have since patched these versions too.

If you are still running 1.12.2 servers, we highly recommend that you update Sponge to version 7.4.7 and Forge to build 2860 (if applicable). It is an extremely serious vulnerability, so please update ASAP.

We will monitor the situation and issue futher recommended builds for 1.12.2 if necessary. We have also recently updated log4j on our 1.16.5 and later builds (we do not include H2 in our 1.16.5/1.18.1 builds so no updating was required there).

Minecraft 1.16.5 & API 8

Release of API 8.0

We’ve finally done it! After years of hard work, we’ve released API-8 for Minecraft 1.16.5. There are countless changes, too many to note here, so we’ll point budding developers at our javadocs. We have also started on updrating our docs pages, but it is a huge undertaking, so please be advised that it may take a little bit of time to bring them up to date.

While putting a “significant changes” list here would be my normal practice, the reality is that all plugins will have to change in some way. However, some of the bigger changes are:

  • Plugin metadata file is now sponge_plugins.json and is no longer generated from the plugin annotation, which now only contains the plugin ID
  • Lifecycle events have now completely changed, with events that now tell you what they are expecting of you at a given point, rather than just “pre-init”, “init”, “post-init” etc.
  • A completely revamped command system that supports client-side command completions
  • The Text API is now supplied by the Kyori Adventure library
  • Custom data has been completely revamped, with simplified registration and the ability for keys to reflect external data sources using DataProviders
  • Replacement of the registry system to deeply integrate with the Minecraft registry
  • Better awareness of the client
  • Configurate has been updated to version 4.1
  • And much, much more.

Lookout for the migration guide on the docs which talks about some of the larger changes that you’ll need to be aware of.

You may be wondering why we’re targeting 1.16.5 for API 8, given Minecraft 1.18 is here. It’s down to the fact that the folks over at Forge are still continuing to support 1.16.5 as their LTS, and so that means we expect that the majority of mods will target 1.16.5 as a stable base to develop on, while changes in 1.18 are being worked on.

No Recommended Builds for SpongeVanilla and SpongeForge on API-8 Today

Sorry Server Owners, you’ll have to wait a little longer for recommended builds. Today’s milestone is one for developers - we guarantee that we will not break the API any more, we have released version 8. However, our implementation is not quite what we’d like to recommend yet, we think it’s a little too rough around the edges.

However, we do have builds for 1.16.5 available in experimental/beta states, so please read on!

Upcoming Change to Sponge Folders/Directories

Right now, you install plugins into the /mods directory, i.e. the same place that you installed your forge mods. This has its roots in the origins of Sponge, where Sponge was just a mod for Forge. As we’ve gotten bigger and gained SpongeVanilla, this never changed.

However, with the changes to Forge for 1.16.5 and later, we’ve found that we have had to revisit this decision. While this has not been implemented yet (part of why we haven’t issued a recommended build as of yet), plugins will go in the /plugins directory in future. There will also be other directory changes to more cleanly separate Forge and Sponge.

To track the progress of this change, please see this pull request.

SpongeVanilla on 1.16.5: Reference builds

With regards to Vanilla, we know that people won’t want to run their servers on the older 1.16.5 when 1.18 is out, so we won’t be putting much effort into API-8 builds on SpongeVanilla. However, we will continue to produce builds as SpongeForge is built, and so 1.16.5 builds will also be made for SpongeVanilla. We envisage the plugin developers will be particularly interested in these builds to test support for their plugins, ready for production ready builds of SpongeForge.

SpongeVanilla builds are available on our Downloads website

SpongeForge on 1.16.5

We do have highly experimental builds of SpongeForge for 1.16.5, but we know we have some way to go, particularly with regards to compatibility with mods. We know many of you have been coming across problems, please know that we’re still working on it!

Experimental SpongeForge builds are available on our Downloads website

Minecraft 1.17.1 1.18 & SpongeAPI 9

Forge is dropping support for 1.17.1, in favour of 1.16.5 as their LTS and 1.18.1 as the new version of Minecraft, so it makes sense for us to skip over Minecraft 1.17.1 and target 1.18.1. This means API 9 will be for Minecraft 1.18.

We don’t expect many changes between API 8 and API 9 that will break plugins, with one notable exception: world generation. We expect the world gen API that we ship with Sponge to continue to change for the next few API versions, as it’s very clear that Mojang is still not done making significant changes that will break the assumptions of any API that we design. Anyone using the world gen API should be aware that it may break considerably between major versions of the API.

However, we do have experimental SpongeVanilla builds for you, thanks to @zml and @Morpheus getting our tooling up and running and tweaking our code to fit with the new version! You can get them here, then please, tell us how broken they are!

Minecraft 1.12.2 & SpongeAPI 7

API 7.4

We have recently released SpongeAPI 7.4 for any developers that still wish to target Minecraft 1.12.2. SpongeAPI 7.4 is our final API release for the API 7 series. It contains the following updates:

  • Add getWorldUUID to SaveChunkEvent
  • Bump configurate to 3.7.2
  • Add missing locked field in Score
  • Add missing scoreboard criteria
  • Expose entity tags

You can get this from our Maven repo at https://repo.spongepowered.org/repository/maven-public/

Please note that API-7 is now end-of-life. We will not be issuing any more API updates for version 7 of our API.

SpongeForge and SpongeVanilla Recommended Build 7.4.7

We have also released recommended builds for SpongeForge and SpongeVanilla for Minecraft 1.12.2.

You can get these recommended builds from our downloads site:

End of Life for API 7 and Minecraft 1.12.2

While the Sponge team haven’t really worked on API 7 and Minecraft 1.12.2 for a while, it is time for us to officially wave them off. It has been our longest lived version and has served us well, but as we move into the world of API 8 and beyond, we no longer can support our older version.

SpongeAPI 7 will see no more releases and should now be considered End of Life. We will consider merging PRs in from developers who contribute fixes, which will then become available on our download pages. We will keep up with the various vulnerabilities that are being discovered in Log4J and other related libraries but we will not otherwise be focussing on 7.x builds. Our focus is now fully on API 8+.

Sponge Downloads

We have a download site again! @gabizou has been working hard on SystemOfADownload, our replacement downloads indexer after our previous one failed, and we have updated the downloads site to make use of it! All of our builds since 1.8.9 are available via the downloads site.

Our downloads site is available in the same place as before: SpongeDownloads or https://dl.spongepowered.org

For now, we only support downloading SpongeVanilla and SpongeForge via our site, but we hope to add our other products to the system over time too.

Sponge Docs

With the release of API 8, we now need to turn our attention to Sponge Docs. The Sponge Documentation needs some love to make it worthy of API 8 and beyond! Come chat with us in the #docs channel in Discord about what needs to be done!

Also, we have some good news on the Docs Translation front!

Crowdin have generously provided us an Enterprise plan, and we want to use it. Indeed, we plan to launch this very soon. If you’re a previous translator, you will have had an e-mail from @Inscrutable regarding the transfer. If you’re interested in translating the docs for us for the first time, come talk to us in #docs on our Discord server and we’ll get you set up!

Please note that the old SpongeDocs Crowdin setup will soon be retired and archived.

Final Thought

It’s been a long time coming, but we finally have API 8 out and ready for developers! We know that server owners are really interested in this update and would like recommended builds, we hope to be able to start providing them soon! We also expect API 9 to not be far behind for those of you with an interest in the latest Minecraft has to offer in 1.18.1.

Cheers, we hope to have more good news for you soon!

8 Likes