Would it be possible to get a --performUpgrade option that acts as --forceUpgrade, but only attempts the world upgrade if it hasn't already been ran for the current Minecraft version?
--forceUpgrade currently scans through the worlds every time the server restarts with the flag, which significantly slows down startup time. Obviously, it's not meant to be left in the startup parameters, but this isn't ideal for all setups.
--performUpgrade would simply need to check if the upgrade has already been attempted for the current server version, and if not, trigger the standard --forceUpgrade logic.
I'll pay a $100 USD bounty for this to be implemented.
Thanks!
It's not that simple. That flag would be just as slow as the existing one because it's not a single thing. Each chunk has to be force loaded, read to see if it's old or new, then either convert it or not, then closed.
Why? this is silly. forceUpgrade is limited in its use case as its only done once per version and also completely unnecessary.
there is no reason to keep it in server start params.
You should only be running that in one off cases to upgrade offline worlds honestly.
It's only possible if you can assume that a world marked as 'below 1.13.2' in level.dat (Verson鈫扞D=1631, Version鈫扤ame="1.13.2") has not been converted at all yet.
Other than that, each region/chunk is converted on the fly and there's no fast way to say whether level.dat=1.13.2 really means that the entire world only has new converted chunks.
What's your use case? Maybe there're better ways to do whatever you're trying to do.
It's not that simple. That flag would be just as slow as the existing one because it's not a single thing. Each chunk has to be force loaded, read to see if it's old or new, then either convert it or not, then closed.
Once the world conversion has completed the first time for a version, it could just save that that world has been converted somewhere.
E.g.
world_the_end-conversion_version=1.14
Then, on the next startup, if the version matches, it skips the conversion process / chunk scanning.
Why? this is silly. forceUpgrade is limited in its use case as its only done once per version and also completely unnecessary.
there is no reason to keep it in server start params.You should only be running that in one off cases to upgrade offline worlds honestly.
Numerous servers have no control over their startup parameters. For example, people on shared hosts.
Although it's not technically required, running a large map without running --forceUpgrade first results in terrible performance.
If servers do not have control of their startup parameters adding more will not help them.
If servers do not have control of their startup parameters adding more will not help them.
--forceUpgrade isn't something that server hosts can add to a config file and leave in, as it slows down every startup.
The idea is that --performUpgrade could be left in, as it would only run the upgrade when necessary.
This is similar to older versions of Minecraft where it would run a single world conversion upon startup.
has this feature been included in the 1.14.4 build yet ? if yes what build started to use it ?
Most helpful comment
--forceUpgrade isn't something that server hosts can add to a config file and leave in, as it slows down every startup.
The idea is that --performUpgrade could be left in, as it would only run the upgrade when necessary.
This is similar to older versions of Minecraft where it would run a single world conversion upon startup.