crowbarmaster / BedrockManagementService

A multiple host, multiple server, Minecraft bedrock server management service and GUI manager.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Unable to run older version of Bedrock Server

tiamat2012 opened this issue · comments

Hi @crowbarmaster I hope you are having a good weekend! I was until just a few minutes ago, thanks to Mojang!

I am not going to update to 1.18.11.01 or newer because Mojang broke (fixed?) the furnace XP farm and bedrock pales in comparison to the XP farms in Java and related bugs they will keep to make Java players happy. The grind to generate XP that they keep forcing on bedrock players is getting to be too much. I may have to abandon BDS altogether if they keep taking the fun out of playing survival. Especially if we accidentally update a mobile or XBOX client (because there is no way to go back to a previous version).

In BMS, I have had CheckUpdate set to false in the global settings for a while now to prevent this bedrock update. I also have UpdateCron=0 2 * * * , which if CheckUpdate is false, should not matter.

BMS (still running v. 2.6.8061.8349) still updated my server when I restarted it to increase my backup max count. Luckily I still have the Update_1.18.2.03.zip file in the MCSFiles folder.

Using the Update ZIP file and the last backup, I was able to restore the BDS server folder and it is working again if I run the BDS server by hand. But that is without BMS managing it, so I don't get the cool features like automatic backups.

I set UpdateCron=0 0 31 12 * so that it should not even try to update until Dec 31 (there is no year field in cron). But that didn't work either, as it still checks and downloads the update when you start the service:

Service: Checking MCS Version and fetching update if needed...
Service: New version detected! Now fetching from https://minecraft.azureedge.net/bin-win/bedrock-server-1.18.11.01.zip...
Service: Automatic backups Enabled, next backup in: 583.511 seconds.

I also tried the latest build release (v 2.6.8069.6858), and it too forces the upgrade. So I am unable to use BMS anymore :-(

Please don't work in it today on my account! Enjoy a computer/code free weekend, and I hope your new job is going well!

Sometime in the future, please see if you can fix it so that I can run an older version of BDS without updating it and let me know, so I can once again enjoy all of what BMS offers.

Actually, your already well in luck! My ambitions with making a new backup manager had already lead to designing a way to have servers handle service-related settings. I know it's common practice to lock different versions in the java world, however it went along with the lack of time I had to give this ability. With what I have done now, it's really cut and paste at this point!

commented

I am not going to update to 1.18.11.01 or newer because Mojang broke (fixed?) the furnace XP farm and bedrock pales in comparison to the XP farms in Java and related bugs they will keep to make Java players happy. The grind to generate XP that they keep forcing on bedrock players is getting to be too much.

Well. There's a new glitch.

Yeah, but I think it might have been fixed in 1.18.11.01, or will be soon. It’s much worse than the previous xp farm that actually took a little bit of effort. You notice there is no official mention of 1.18.11 in the release notes, except for Switch. So BDS server being on this version makes me question exactly what is different from 1.18.10? So when they patch that serious bug, then we are left with nothing.

Ironically, we were collecting the resources to build the piglin gold farm to see if that would be a good replacement, but we needed to go get all the obsidian and that’s when I restarted the server to increase the backups. Oops!!!

My furnace xp farm is using a blast furnace. So the price we pay for getting the xp is not being able to collect the ores we smelted. We have several stacks of iron and gold in the chest that we can’t touch or we will lose the stored xp. It’s a good balance of effort vs xp. Copper being so abundant with a fortune 3 pick ax is the slight downside, but otherwise, mojang could use this setup as a balanced xp furnace farm.

I will be including a way to specify which version the server should run! I just ran a quick test, and it would seem as if Mojang has decided to keep old versions around on their servers. as I just downloaded version 1.17.31.01 using the same download string used to fetch the latest build. My updater method will soon look for the selected version, and attempt to fetch it. If that fails, BMS will attempt (by design) to unpack the version from the BDSUpdates (Might change this to BDSBuilds before I release it), as long as it exists here, all will work as intended. Already as we speak, the new Backup manager works (Could use some tweaking still.) and changes to the update/deployment system are almost done!

1.18.12 fixed the furnace xp bug from 1.18.10. I knew it wouldn’t last long!

Good morning folks!

With these latest developments, I have started rewriting the way updates are handled. Checking updates will now simply alert the service of the latest known version, instead of pushing the version right away. If one chooses to use the latest, but only wants to be informed of an update, there will be the option to block automatic deployment of a new update. I will push a message to the info box stating an update is ready. If you choose to, you can force a server's version. BMS will simply extract from an archive based on this version. I have some time today to crunch this through!

Service log I just created:

Service: Core file(s) found missing. Rebuilding!
Service: Requested build package was not found. BMS will attempt to fetch it now...
Service: Extracting server files to build core files, 0% completed...
Service: Extracting server files to build core files, 17% completed...
Service: Extracting server files to build core files, 33% completed...
Service: Extracting server files to build core files, 50% completed...
Service: Extracting server files to build core files, 67% completed...
Service: Extracting server files to build core files, 83% completed...
Service: Extracting server files to build core files, 100% completed...
Service: Extraction completed.
Service: Now building necessary files
Service: Resetting listener!
Service: TCP listener task started.
Service: Recieved start signal for server MyAwesomeServer.
Service: Server MyAwesomeServer decected incorrect version! Replacing build...
Service: Extracting server files for server MyAwesomeServer, 0% completed...
Service: Extracting server files for server MyAwesomeServer, 17% completed...
Service: Extracting server files for server MyAwesomeServer, 33% completed...
Service: Extracting server files for server MyAwesomeServer, 50% completed...
Service: Extracting server files for server MyAwesomeServer, 67% completed...
Service: Extracting server files for server MyAwesomeServer, 83% completed...
Service: Extracting server files for server MyAwesomeServer, 100% completed...
Service: Extraction of files for MyAwesomeServer completed.
Service: Recieved start signal for server MyAwesomeServer.
Service: Bedrock Management Service version 2.6.8083.21223 has started.
Service: Working directory: C:\Users\Crowbar\source\repos\crowbarmaster\BedrockManagementService\BedrockService\bin\Debug\net6.0-windows\win-x64
Service: Shutdown initiated...
Service: Server MyAwesomeServer received quit signal.
Service: TCP Listener task canceled!
Service: Service shutdown completed successfully.
Service: Stopping service...
Service: Shutdown initiated...

Corresponding server log:

MyAwesomeServer: setting up server logging...
MyAwesomeServer: [2022-02-17 11:47:44:005 INFO] Starting Server
MyAwesomeServer: [2022-02-17 11:47:44:005 INFO] Version 1.18.12.01
MyAwesomeServer: [2022-02-17 11:47:44:005 INFO] Session ID 08c5a0c2-6529-4a0f-876c-121ba1da69c8
MyAwesomeServer: [2022-02-17 11:47:44:006 INFO] Level Name: Bedrock Level
MyAwesomeServer: [2022-02-17 11:47:44:007 WARN] 'whitelist.json' will be deprecated. Please migrate to 'allowlist.json'.
MyAwesomeServer: [2022-02-17 11:47:44:008 INFO] Game mode: 1 Creative
MyAwesomeServer: [2022-02-17 11:47:44:008 INFO] Difficulty: 2 NORMAL
MyAwesomeServer: setting up server logging...
MyAwesomeServer: [2022-02-17 11:47:49:502 INFO] Starting Server
MyAwesomeServer: [2022-02-17 11:47:49:503 INFO] Version 1.17.31.01
MyAwesomeServer: [2022-02-17 11:47:49:503 INFO] Session ID d75eb339-c8fa-4a90-aa46-2278cb0df527
MyAwesomeServer: [2022-02-17 11:47:49:503 INFO] Level Name: Bedrock Level
MyAwesomeServer: [2022-02-17 11:47:49:505 INFO] Game mode: 1 Creative
MyAwesomeServer: [2022-02-17 11:47:49:505 INFO] Difficulty: 2 NORMAL
MyAwesomeServer: [INFO] Experiment(s) active: CnC_, ddi_, biom, scpt, ucft, gtst, mola
MyAwesomeServer: [INFO] opening worlds/Bedrock Level/db
MyAwesomeServer: [INFO] IPv4 supported, port: 19132
MyAwesomeServer: [INFO] IPv6 supported, port: 19133
MyAwesomeServer: [INFO] Server started.
MyAwesomeServer: [INFO] IPv4 supported, port: 58559
MyAwesomeServer: [INFO] IPv6 supported, port: 58560
MyAwesomeServer: §2--- Showing help page 1 of 23 (/help <page>) ---
MyAwesomeServer: /? <page: int>
MyAwesomeServer: /? [command: CommandName]
MyAwesomeServer: /alwaysday [lock: Boolean]
MyAwesomeServer: /camerashake add <player: target> [intensity: float] [seconds: float] [shakeType: CameraShakeType]
MyAwesomeServer: /camerashake stop [player: target]
MyAwesomeServer: /changesetting allow-cheats <value: Boolean>
MyAwesomeServer: /changesetting difficulty <value: Difficulty>
MyAwesomeServer: §2Tip: Use the <tab> key while typing a command to auto-complete the command or its arguments
MyAwesomeServer: [INFO] Server stop requested.
MyAwesomeServer: [INFO] Stopping server...
MyAwesomeServer: Quit correctly

Service updated my server to the latest, I then forced the version. BMS detected the force, and fetched the selected version directly from Mojang! It checks for the build archive to exist beforehand, in the event the download isn't available.

There is a risk in your process. If the latest version changes the database files in any way at startup, then when you revert back to the older version, the files may be reported as corrupted, and people are unable to use that world anymore except with the latest version.

Well I suppose there would be a risk to the exact method above, however I suppose I should point out that the update to latest was not performed as part of the procedure here. That happened in a separate instance to test server updating as it would normally (my bad, lol). This action downgraded the server simply because it was found not to be the manually configured version 😄 This was done after manually setting the server config's SelectedServerVersion in the config to 1.17.31.01. I will toss up a disclaimer, but I would hope most would understand the risks of blatantly downgrading a server 😃

I understand now. I misunderstood the logs as it always doing the upgrade, and then downgrading back. But that’s not the case. If I am already running 1.18.2 and I set it in the config, then it will never run the code for a newer release.

Correct you are! As a precaution, if your current configs have automatic updates turned off, Automatic deployment will follow suit, preventing the dreaded update. CheckUpdates is now a bit truer to its name, and will simply nag in the log and GUI infobox that an update is ready. A new AutoDeployUpdates setting will determine if the service should deploy the new version or not. Things are actually falling into place here, and should be pretty close (once again, lol) to pushing this!

New beta released tonight! Should take care of everything here, and so I will close this issue now! Thanks folks!