Become a premium member to remove ads

CU Updates #48 - SkyBlock and Future Update Changes


haloman30

Hey, everyone - we've got updates to share in regards to our Minecraft server, and some changes on how we'll be approaching game updates going forward.

 

First and foremost, you can now connect using MC 1.21.3! Some newer features from those updates may not be available yet - the reasoning of which we'll be going into a bit later - but if you tend to play on the latest version of Minecraft, you'll now be able to connect without issue. If you're still on MC 1.21.1, however, you'll still be able to play - which, for some of you, may give an indication as to what we've introduced. However, we're gonna save that for a bit later.

 

SkyBlock and The End in Survival

In terms of features and functionality, we've finally reintroduced The End in Survival, allowing for Durite (and the newly introduced Durite Temples) to be discovered - along with the other goodies in The End, of course.

 

However, more significantly, SkyBlock has finally been reintroduced - and has been given a brand new spawn area! Inside, you'll find an expanded shop, weather controls, the new selection of various crates, and most of the other stuff you've come to expect from Survival. Additionally, the old system for using Cobblestone as a currency is no more - kind of. SkyBlock now has a proper economy, much like Survival. Some SkyBlock challenges will reward money, however the primary way to obtain currency is, in fact, still through Cobblestone. Inside the shop, you'll find a sell shop that allows you to sell any Cobblestone for 1$ per block, sort of like a Cobblestone ATM of sorts.

 

Going forward, we'd like to expand this and allow for additional ways to earn currency - however we're going to be approaching this with care. For now, though - we figure it's good to get things switched over, removing the need to haul huge amounts of cobblestone back and forth to the shop.

 

What Took so Long?

Now, some of you are likely wondering - why is it that this took so long? We first updated to 1.21.1 in early September, and only two months later are major features and gamemodes finally being introduced. What gives?

Well, it all comes down to plugins that we rely on - as well as technical changes with Minecraft and some of these plugins.

 

The reason we had to delay The End in Survival for so long was because we rely on a plugin, Custom Ore Generator, in order to generate Durite Ore throughout The End. This plugin relies on something called NMS, which is short for net.minecraft.server - to avoid getting too technical, this means the plugin interacts directly with Minecraft code, rather than the Bukkit API. This Minecraft server code does not remain consistent between server versions and will break with every update, no matter how minor. There's no real way around this - outside of using only the Bukkit API. This API is what plugins are intended to run through, and in most cases, old plugins will just continue to work throughout many updates. There are exceptions to this, and larger updates can and do still cause breaking changes, but many plugins often do not need to be updated with every Minecraft version change. We've even got a few that have remained in place since CU relaunched in 2014, never having required any updates of any sort.

 

There have been a number of cases where plugins we relied on were discontinued or simply stopped functioning - where we ended up taking the plugin and running our own private fork, with our own customizations and compatibility fixes. The most significant example of this is MobMoney - the same plugin that old CU used for dropping money rewards upon killing mobs. We've continued to update it to add support for dropping money when mining certain blocks (mainly ores), as well as some security fixes to prevent some potential exploits.

 

In theory, we could have, with enough effort and time, done the same for Custom Ore Generator - but then, we're on the hook for continuing to maintain this fork. Additionally, the initial time investment is significant - and given that I work full-time outside of CU nowadays and have other projects I like to work on, this isn't ideal.

 

Thankfully, in the case of that plugin, there was a development build which was available - which has support for MC 1.21.1. Unfortunately, the same cannot be said for our SkyBlock plugin of choice, uSkyBlock - which hasn't been updated for 1.21 at all, and still requires MC 1.20.x. However, we didn't go to the effort of updating it ourselves, either - so, if that's the case, how do we have SkyBlock back again?

 

Changing our Update Approach

Thus far, our update approach has been fairly straightforward. A new Minecraft update comes out, we wait for Spigot/Paper to release stable builds for that new version, we wait for any major breaking plugins to update, and then we update. In the past, this was a fairly simple affair, and didn't take too long. However, with the switch to BungeeCord, despite this process being relatively simple, the time required to actually perform an update has ballooned - because we have to do this entire process for every individual gamemode.

 

This results in the entire server being offline for several hours at the point of an update - and if any major breaking changes come up, we're often stuck and unable to downgrade. This has come up a few times, and has resulted in some gamemodes being offline and unplayable for some length of time after the rest of the server is up-to-date. This, to say the least, is not ideal whatsoever. Additionally, Mojang has recently announced a new approach for updates on their end - with smaller, more frequent updates being released, similar to how they did updates in the early days. For Minecraft, that's great - for us, that means even more time and work required just to keep the server up-to-date.

 

So, we've decided that we are not going to keep these servers up-to-date.

 

Going forward, we're going to be relying on ViaVersion - which allows newer MC clients to connect to older servers. This means that we don't have to update the backend servers at all, or even all at once, in order to support the latest version of Minecraft. This is how we're able to support MC 1.21.3 already, and is why some of the newer features of the update won't work yet - most of our servers are still on 1.21.1. As for SkyBlock, it's still not up-to-date either - and so we've opted to just keep it on 1.20.4, in order to get it up and running once again.

 

As Spigot and Paper are updated, along with the plugins we rely on, we'll be doing updates more selectively - things such as Minigames and Hub will likely update very infrequently, and may end up remaining on 1.21.1 for a while. SkyBlock may end up falling into that category for a while as well, until uSkyBlock gets updated or if we decide to update it ourselves. Survival and Vanilla, we'll likely still try and keep these running on the latest version of Minecraft whenever possible, since having all of the new features is a bit more important with those gamemodes.

 

Our hope is that this will allow us to remain "up-to-date" much faster, and remove the need for us to update so many servers constantly - reducing workload for us, and reducing the likelihood of new bugs being introduced with updates. When we do major backend server updates, we'll continue to announce them, and world resets will be handled similar to before based on these updates. However, in cases where we simply support newer versions of Minecraft through ViaVersion, we likely won't announce it whatsoever outside of changelogs and the server MOTD.

 

 

For now, though, that's all we've got! If you run into any new issues as a result of us using ViaVersion (or if you find a more basic server bug somewhere), be sure to let us know on our bug tracker, or with /bugreport ingame!

Share this post


Link to post
Share on other sites

0 replies to this topic

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now