AxalotLDev / Async

Async is a Fabric mod designed to improve entity processing performance.
https://modrinth.com/mod/async
GNU General Public License v3.0
19 stars 2 forks source link

Mixin incompatibilty with Lithium #2

Closed RubenRME closed 1 month ago

RubenRME commented 1 month ago

As described, incompatibility between Async and Lithium causing the server to crash as soon as a player joins

Logged as followed:

java.lang.NullPointerException: Cannot invoke "net.minecraft.class_3228.method_20627(long)" because "$$4" is null
    at knot//net.minecraft.class_3204.method_14045(class_3204.java:88)
    at knot//net.minecraft.class_3215.method_12127(class_3215.java:305)
    at knot//net.minecraft.class_3218.method_18765(class_3218.java:350)
    at knot//net.minecraft.server.MinecraftServer.method_3813(MinecraftServer.java:1021)
    at knot//net.minecraft.class_3176.method_3813(class_3176.java:299)
    at knot//net.minecraft.server.MinecraftServer.method_3748(MinecraftServer.java:912)
    at knot//net.minecraft.server.MinecraftServer.method_29741(MinecraftServer.java:697)
    at knot//net.minecraft.server.MinecraftServer.method_29739(MinecraftServer.java:281)
    at java.base/java.lang.Thread.run(Thread.java:1583)

A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------

-- Head --
Thread: Server thread
Stacktrace:
    at knot//net.minecraft.class_3204.method_14045(class_3204.java:88)
    at knot//net.minecraft.class_3215.method_12127(class_3215.java:305)
Mixins in Stacktrace:
    net.minecraft.class_3204:
        me.jellysquid.mods.lithium.mixin.minimal_nonvanilla.world.expiring_chunk_tickets.ChunkTicketManagerMixin (lithium.mixins.json)
        com.axalotl.async.mixin.ChunkTicketManagerMixin (async.mixins.json)
    net.minecraft.class_3215:
        com.axalotl.async.mixin.ServerChunkManagerMixin (async.mixins.json)
        xyz.nucleoid.fantasy.mixin.ServerChunkManagerMixin (fantasy.mixins.json)
        me.jellysquid.mods.lithium.mixin.alloc.chunk_ticking.ServerChunkManagerMixin (lithium.mixins.json)
        org.popcraft.chunky.mixin.ServerChunkManagerMixin (chunky.mixins.json)

Just like C2ME removing the mixin from Lithium fixes the issue. However due to how standardised Lithium is I'd say it's probably good to, just like C2ME, note it somewhere.

Sidenote: I understand this is a super early alpha, but will there ever be automatic Mixin detection/disabling? Or at the very least listing mods as incompatible in loom?

FurryMileon commented 1 month ago

It's peculiar that async disables the Lithium mixins which conflict with async functionality.

AxalotLDev commented 1 month ago

Try use new Pre-release

RubenRME commented 1 month ago

Can confirm new pre-release fixes the incompatibility!