Immersive Portals

Immersive Portals

5M Downloads

Incompatibility with Clothesline

JamiesWhiteShirt opened this issue ยท 3 comments

commented

This issue was reported to Clothesline, pointing to Immersive Portals as a potential cause for an incompatibility. I haven't attempted to reproduce this myself, but I found a potential cause.

I dove into your code and found this Overwrite https://github.com/qouteall/ImmersivePortalsMod/blob/ef4be7b26179af049c458d9c23d7cf11c5eba5fe/src/main/java/com/qouteall/immersive_portals/mixin/chunk_sync/MixinThreadedAnvilChunkStorage_C.java#L116-L126
Which is incompatible with these Injects https://github.com/JamiesWhiteShirt/clothesline-fabric/blob/c0c637ee5d51fe3073e4e4150825e58deb821a97/src/main/java/com/jamieswhiteshirt/clothesline/mixin/server/world/ThreadedAnvilChunkStorageMixin.java#L29-L47

Surprisingly, the conflict did not cause anything to crash so it must have conflicted silently.

This is not the first time Clothesline has had conflicts because of ThreadedAnvilChunkStorage. ThreadedAnvilChunkStorage has become a major mixin target. I have proposed that Fabric API should provide an API for ThreadedAnvilChunkStorage related events that can be implemented by mods who modify it such as Lithium and Immersive Portals. JellySquid was positive to the idea.

commented

I don't know whether mixin allows injecting to an overwritten method. If I make my mixin priority higher then the conflict may be solved.

commented

Probably fixed

commented

Tested it, and it does indeed appear to be fixed.