Dirty Quilt Hacks

Dirty Quilt Hacks

Mod

Gives access to a lot of reflective tooling.

Client or server CursedUtility

492 downloads
6 followers
Created2 years ago
Updated2 years ago

Follow Save
Host your Minecraft server on BisectHosting - get 25% off your first month with code MODRINTH.

A small library built as a Quilt mod which gives modders access to Unsafe (both the sun one and the jdk internal one, assuming it's exported at compile time) and easily supports runtime module exporting and trusted MethodHandles.Lookup calls.

Current features

  • Unsafe.sun() for a sun.misc.Unsafe instance
  • Unsafe.jdk() for a jdk.internal.misc.Unsafe instance (needs export — see below)
  • Unsafe.lookup() for the trusted MethodHandles.Lookup instance
  • Field getting and setting with force
  • Enum widening
  • Function accessor for allowing runtime use of JDK's internal ASM copy
  • Shortcut methods for getting MethodHandle instances through the trusted lookup
  • Runtime module exporting / opening
  • Forceful SecurityManager setting

Exporting modules

At runtime, call ModuleWidener.exportModule with either a class in the requested package, a class in the module and a string of the package, or the module instance and a string of the package.

At compile time, use javac compile arguments:

tasks.withType(JavaCompile).configureEach {
    it.options.compilerArgs << "addExports" << "TheModuleGoesHere/ThePackageToExport=ALL-UNNAMED"
    // This cannot be used with the release field. Instead use source / target compatibility fields in the java object.
}

External resources



Project members

sschr15

Owner


Technical information

License
MPL-2.0
Client side
optional
Server side
optional
Project ID