I don't normally like to do updates so close to gather, but after the last update I still wanted to address the "var1, var2" problem.
I knew that CraftBukkit had a way around this, so after a quick chat with md_5 he pointed me in the right direction.
While I originally wanted to tackle the var issue, I guess we got more speed in the process, so yay!
CHANGED:
- Switch from FernFlower (by fesh0r) to a patched version by PaperMC (which is forked from SpigotMC), this did a few things:
- Method params and local variables in methods are no longer var1,var2,var3, but instead try to match class names.
- Previously:
someMethod(BlockPos var1, Player var2)
- Now:
someMethod(BlockPos blockpos, Player player)
- Previously:
- More speed. This version of FernFlower seems to be much faster (results will obviously vary per machine):
This version of FernFlower uses multiple threads to speed up the process- 1.21.1 Server: 2 minutes, 49 seconds -> 34 seconds
- 1.21.1 Client: 5 minutes, 12 seconds -> 57 seconds
- Method params and local variables in methods are no longer var1,var2,var3, but instead try to match class names.
- Added a lil bit of color (it's not much, don't get too excited)
- Versions are now initialized after the app is open.
- A little loading message will appear while the versions are being pulled from Mojang servers. This will only take a second.
- This was done in the event there are many more versions, and the app hangs to create while waiting for those versions.
- Initially the versions were loaded before the app even appeared on screen. If your machine is slow or theres a slow internet connection, the app would appear to not be loading.
- Added two more console commands "releases" and "snapshots" to show their respective versions only
- macOS app is now smaller (apparently I was missing an option, which in turn double packages dependencies)
- Bumped up RAM for macOS app (2G -> 3G, app often ran out of memory while running)
- Changed the logger for decompiling to a custom logger:
- Now the app shows progress as the decompiler is running (not so boring to look at now)
- Better color in console for logging making it easier to spot errors/warnings
- Added legacy versions:
- Versions 1.14.4+ use Mojang mappings
- Versions below that will use Searge mappings (and warning, they're absolute crap) (also I only added last major releases for 1.7.10 to 1.13.2 as I had to generate the mappings myself, long process, may add more upon request)