Skip to content

Releases: unascribed/NilLoader

v1.3.4

02 Jan 00:46
1e47539
Compare
Choose a tag to compare

Hi, I'm back. 2024 sucked.

  • Updated all dependencies, providing support for newer versions of Java
  • Dropped the Legacy FML log adapter, as it causes too many issues

v1.3.3

01 Jul 02:36
e5c6340
Compare
Choose a tag to compare
  • Improved frame computation with more complex class hierarchies, especially involving interfaces. Thanks, Geolykt! (GH-1)
  • Added support for injecting new try-catch blocks with Mini. Thanks, jaskarth! (#4)
  • Disabled a broken patch that made NilLoader completely nonfunctional alongside modern Forge — this allows pure patches to work, but things that try to load new classes will still break
  • Minor tweak to an error message

v1.3.2

12 Feb 13:32
11a8dc8
Compare
Choose a tag to compare
  • Fixed SearchResult::next returning the same result on forward searches for a single insn
  • Added @OriginallySynthetic annotation for NilGradle 1.4.1
  • Minor error message tweak

v1.3.1

31 Jan 07:50
d7fc87b
Compare
Choose a tag to compare
  • Fixed bizarre behavior between class transformers in the same class hierarchy by reimplementing ASM's getCommonSuperClass to not load classes
  • Optimized running many ASM-based transformers on the same class
  • Removed debug code

v1.3.0

30 Jan 10:28
f45fb98
Compare
Choose a tag to compare
  • Hijacking! NilLoader can now be chain-loaded from another mod loader. Currently only confirmed working in Forge 1.4.7.
  • Class transformers can now implement ClassRetransformer to opt-in to retransforming already loaded classes. This allows patching Java classes.
  • Remapping is now partially exposed in the API
  • Better Mini error messages

v1.2.2

01 Jun 04:14
98a9bb9
Compare
Choose a tag to compare
  • Add modifyClassStructure override point to MiniTransformer
  • Made all insn factory helper methods in MiniTransformer final for less clutter
  • Made Patch an annotation for IDE autocomplete support
  • Add -Dnil.debug.dump.all to dump all classes, even ones that are not patched
  • Fixed transform failures not dumping before classes for debugging
  • Fixed possible NPE when remapping classes

v1.2.1

28 May 06:42
4f7643c
Compare
Choose a tag to compare
  • Fabric Loader coexistence support
  • Very limited ModLauncher coexistence support
  • Class transformers can now be classloader-aware

v1.2.0

27 May 08:09
8b6e32e
Compare
Choose a tag to compare
  • Quiltflower decompilation is now async, so it won't slow down game loading
  • Added -Dnil.debug.dump.modRemapped and -Dnil.debug.decompile.modRemapped to inspect remapped mod classes
  • Added -Dnil.discoverPath to add additional mod directories if desired
  • Removed duplicate class transforming step
  • Made error logging in transformers more robust
  • Added support for access widening (requires NilGradle 1.3.0)

v1.1.6

22 May 05:12
bfb685a
Compare
Choose a tag to compare
  • Fixed off-by-one in PatchContext#jumpBefore introduced in v1.1.1
  • Better error message for missing entrypoint classes

v1.1.5

20 May 17:45
ccfa9c1
Compare
Choose a tag to compare
  • Added -Dnil.debug.decompile=true to download Quiltflower and use it to dump decompiled before/after classes to .nil/debug-out
  • Added -Dnil.debug.mappings=/path/to/mappings.tsrg to remap dumped classes (decompiled or not) that are written to debug-out
    • Only TSrg is supported because that's one of the base formats supported by Lorenz; you can get a TSrg mapping of your work mapping from NilGradle (no matter the source format) in build/nil/debug/mappings/work.tsrg
  • Added -Dnil.debug.decompile.flipDirLayout=true / -Dnil.debug.dump.flipDirLayout=true (synonymous)
    • Flips the directory layout from being class-name/before.class and class-name/after.class to be before/class-name.class and after/class-name.class
    • This works better with diff tools such as Meld