iMoonDay / Soulbound

MIT License
0 stars 3 forks source link

Add Traveler's Backpack support #1

Closed Kneelawk closed 1 year ago

Kneelawk commented 1 year ago

This PR

This PR adds support for soulbound-enchanted backpacks from the Traveler's Backpack mod.

Testing

iMoonDay commented 1 year ago

I had a problem trying to get the forge version to support Traveler's Backpack mod: Unable to locate obfuscation mapping for @Inject target onPlayerDeath. Do you know how to fix it? The code for the forge branch has been uploaded.

Kneelawk commented 1 year ago

I've been looking over this and I'll admit I'm not very familiar with the Forge side of things. I haven't been able to figure out what is wrong on the Forge branch so far, but I'm hoping to try again later.

The thing I'm worrying about is that Forge might not let the mod mixin into other mods. In which case, I don't really know how to go about cancelling the backpack placement.

Kneelawk commented 1 year ago

Oh wait, I just realized, the @Mixin(BackpackUtils.class) should probably be @Mixin(value = BackpackUtils.class, remap = false) on both fabric and forge. Though I guess it still works on fabric, but I would not be surprised if this is what was causing the issues on forge.

iMoonDay commented 1 year ago

Now there is a new error:

WARNING: Unknown module: cpw.mods.securejarhandler specified to --add-exports
WARNING: Unknown module: cpw.mods.securejarhandler specified to --add-opens
WARNING: Unknown module: cpw.mods.securejarhandler specified to --add-opens

Exception in thread "main" java.lang.ExceptionInInitializerError
    at cpw.mods.niofs.union.UnionFileSystemProvider.newFileSystemInternal(UnionFileSystemProvider.java:115)
    at cpw.mods.niofs.union.UnionFileSystemProvider.newFileSystem(UnionFileSystemProvider.java:105)
    at cpw.mods.jarhandling.impl.Jar.<init>(Jar.java:84)
    at cpw.mods.jarhandling.SecureJar.from(SecureJar.java:70)
    at cpw.mods.jarhandling.SecureJar.from(SecureJar.java:66)
    at cpw.mods.jarhandling.SecureJar.from(SecureJar.java:58)
    at cpw.mods.jarhandling.SecureJar.from(SecureJar.java:50)
    at cpw.mods.bootstraplauncher.BootstrapLauncher.main(BootstrapLauncher.java:84)
Caused by: java.lang.reflect.InaccessibleObjectException: Unable to make field static final java.lang.invoke.MethodHandles$Lookup java.lang.invoke.MethodHandles$Lookup.IMPL_LOOKUP accessible: module java.base does not "opens java.lang.invoke" to unnamed module @56cbfb61
    at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:354)
    at java.base/java.lang.reflect.AccessibleObject.checkCanSetAccessible(AccessibleObject.java:297)
    at java.base/java.lang.reflect.Field.checkCanSetAccessible(Field.java:178)
    at java.base/java.lang.reflect.Field.setAccessible(Field.java:172)
    at cpw.mods.niofs.union.UnionFileSystem.<clinit>(UnionFileSystem.java:52)
    ... 8 more