Back to Index

lately-4

winsrewu
winsrewu

September 17, 2025

The developer provides a progress update on their project, detailing backend bug fixes, a switch to a new ORM, and plans to adopt Vue. Frontend work is paused. They discuss challenges in mod development with Fabric, including plans for cross-version support and an automated testing system. A significant portion of the update is dedicated to resolving issues with a multi-threaded downloader created to expedite dependency downloads, which required extensive rewrites to fix bugs related to caching and certificate handling.

Okay.
I just fixed some backend bugs. I haven't logged in since #3, so many things weren’t tested. Switching to a new ORM was quite a disruptive change...
Frontend development has been paused. I wrote a few animations, but since we have agents now, efficiency should improve. The next step is to directly switch to Vue.

There hasn’t been much news from Fabric, so I’ve been slacking off on mod development (I wanted to write a mod with different dependencies for the client and server, but Fabric isn’t very supportive of that).

Also, I’m currently planning to add cross-version support for mods. The idea is to combine several Gradle subprojects and extract common code to make it easier, so I don’t have to create branches for each version.
Moreover, I have an idea for automated testing. Basically, it would automatically launch the game, enter a world, execute test code, and send the results via sockets.
This requires first writing a mod that supports all versions.
I’ve almost finished writing all the build.gradle files, along with a subproject for 1.14.4. Fabric might also support 1.14.4—I’m not sure, and I’m too lazy to check. My plan is to start with 1.14.4, test it, see how high the version support goes, and then branch out to the next version.
However, while writing the build.gradle files, I ran into some issues with remapping and other annoying stuff. Remapping, in particular, is prone to crashes, and when it fails, the cache becomes invalid, forcing me to re-download minecraft.jar.
The URL is hardcoded by Fabric Loom, which is really annoying. Every time, I have to wait about ten minutes. That’s why I wrote the proxy layer multi-threaded downloader mentioned in the previous programming development post.
But that still has a lot of bugs. After finishing the first version, I posted about it, but the initial version wasn’t quite suitable for daily use—issues like handling packets with headers and bodies, POST requests, the requirement to fully download everything before returning (which could cause timeouts), and self-signed certificates not supporting all domains, only specified ones.
Then I wrote some new code, modified the cache, rewrote certificate issuance and proxy handling, but it broke both daily use and Loom. I spent about a week making fixes here and there, rewriting a lot of things, and now it’s finally working properly.

View on GitHub