Patbox / polymer

Library for creating better server side content! (For Fabric)
GNU Lesser General Public License v3.0
264 stars 28 forks source link

[MC 1.21.0] [Fabric] crash logging into world with immersive portals built from source #148

Open cplir-c opened 1 month ago

cplir-c commented 1 month ago

I'm hoping to run PolyFactory with Immersive Portals installed, but they seem to conflict?

Versions: Minecraft 1.21 Fabric Loader 0.16.0 Fabric API 0.102.0+1.21

Polymer 0.9.9+1.21 PolyFactory 0.4.0-pre.5.1+1.21 More Tools (Polymer) 1.5.0+1.21 Immersive Portals built from source @ git commit hash 89c35c2

I have more mods, but they don't seem to be in the crash stacktrace.

Crash stacktrace:

[18:27:14] [Server thread/ERROR]: Mixin apply for mod polymer-core failed polymer-core.mixins.json:block.ChunkDataSenderMixin from mod polymer-core -> net.minecraft.class_8608: org.spongepowered.asm.mixin.injection.throwables.InvalidInjectionException @At("INVOKE") on net/minecraft/class_8608::skipChunkClearing with priority 1000 cannot inject into net/minecraft/class_8608::method_52387(Lnet/minecraft/class_3222;Lnet/minecraft/class_1923;)V merged by qouteall.imm_ptl.core.mixin.common.chunk_sync.MixinPlayerChunkSender with priority 1000 [INJECT_PREPARE Applicator Phase -> polymer-core.mixins.json:block.ChunkDataSenderMixin from mod polymer-core -> Prepare Injections -> wrapWithCondition$god000$polymer-core$skipChunkClearing(Lnet/minecraft/class_3244;Lnet/minecraft/class_2596;)Z -> Prepare ->  -> { target: method_52387(Lnet/minecraft/class_3222;Lnet/minecraft/class_1923;)V }]
org.spongepowered.asm.mixin.injection.throwables.InvalidInjectionException: @At("INVOKE") on net/minecraft/server/network/ChunkDataSender::skipChunkClearing with priority 1000 cannot inject into net/minecraft/server/network/ChunkDataSender::unload(Lnet/minecraft/server/network/ServerPlayerEntity;Lnet/minecraft/util/math/ChunkPos;)V merged by qouteall.imm_ptl.core.mixin.common.chunk_sync.MixinPlayerChunkSender with priority 1000 [INJECT_PREPARE Applicator Phase -> polymer-core.mixins.json:block.ChunkDataSenderMixin from mod polymer-core -> Prepare Injections -> wrapWithCondition$god000$polymer-core$skipChunkClearing(Lnet/minecraft/server/network/ServerPlayNetworkHandler;Lnet/minecraft/network/packet/Packet;)Z -> Prepare ->  -> { target: unload(Lnet/minecraft/server/network/ServerPlayerEntity;Lnet/minecraft/util/math/ChunkPos;)V }]
    at org.spongepowered.asm.mixin.injection.code.Injector.findTargetNodes(Injector.java:312) ~[sponge-mixin-0.15.0+mixin.0.8.7.jar:0.15.0+mixin.0.8.7]
    at org.spongepowered.asm.mixin.injection.code.Injector.find(Injector.java:248) ~[sponge-mixin-0.15.0+mixin.0.8.7.jar:0.15.0+mixin.0.8.7]
    at org.spongepowered.asm.mixin.injection.struct.InjectionInfo.prepare(InjectionInfo.java:475) ~[sponge-mixin-0.15.0+mixin.0.8.7.jar:0.15.0+mixin.0.8.7]
    at com.llamalad7.mixinextras.injector.v2.WrapWithConditionInjectionInfo.prepare(WrapWithConditionInjectionInfo.java:27) ~[mixinextras-0.5.0-beta.1-dd252d07adfd6330.jar:?]
    at org.spongepowered.asm.mixin.transformer.MixinTargetContext.prepareInjections(MixinTargetContext.java:1407) ~[sponge-mixin-0.15.0+mixin.0.8.7.jar:0.15.0+mixin.0.8.7]
    at org.spongepowered.asm.mixin.transformer.MixinApplicatorStandard.prepareInjections(MixinApplicatorStandard.java:731) ~[sponge-mixin-0.15.0+mixin.0.8.7.jar:0.15.0+mixin.0.8.7]
    at org.spongepowered.asm.mixin.transformer.MixinApplicatorStandard.applyMixin(MixinApplicatorStandard.java:315) ~[sponge-mixin-0.15.0+mixin.0.8.7.jar:0.15.0+mixin.0.8.7]
    at org.spongepowered.asm.mixin.transformer.MixinApplicatorStandard.apply(MixinApplicatorStandard.java:246) ~[sponge-mixin-0.15.0+mixin.0.8.7.jar:0.15.0+mixin.0.8.7]
    at org.spongepowered.asm.mixin.transformer.TargetClassContext.apply(TargetClassContext.java:437) ~[sponge-mixin-0.15.0+mixin.0.8.7.jar:0.15.0+mixin.0.8.7]
    at org.spongepowered.asm.mixin.transformer.TargetClassContext.applyMixins(TargetClassContext.java:418) ~[sponge-mixin-0.15.0+mixin.0.8.7.jar:0.15.0+mixin.0.8.7]
    at org.spongepowered.asm.mixin.transformer.MixinProcessor.applyMixins(MixinProcessor.java:363) ~[sponge-mixin-0.15.0+mixin.0.8.7.jar:0.15.0+mixin.0.8.7]
    at org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClass(MixinTransformer.java:234) ~[sponge-mixin-0.15.0+mixin.0.8.7.jar:0.15.0+mixin.0.8.7]
    at org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClassBytes(MixinTransformer.java:202) ~[sponge-mixin-0.15.0+mixin.0.8.7.jar:0.15.0+mixin.0.8.7]
    at net.fabricmc.loader.impl.launch.knot.KnotClassDelegate.getPostMixinClassByteArray(KnotClassDelegate.java:422) ~[fabric-loader-0.16.0.jar:?]
    at net.fabricmc.loader.impl.launch.knot.KnotClassDelegate.tryLoadClass(KnotClassDelegate.java:323) ~[fabric-loader-0.16.0.jar:?]
    at net.fabricmc.loader.impl.launch.knot.KnotClassDelegate.loadClass(KnotClassDelegate.java:218) ~[fabric-loader-0.16.0.jar:?]
    at net.fabricmc.loader.impl.launch.knot.KnotClassLoader.loadClass(KnotClassLoader.java:119) ~[fabric-loader-0.16.0.jar:?]
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525) ~[?:?]
    at MC/net.minecraft.server.network.ServerPlayNetworkHandler.<init>(ServerPlayNetworkHandler.java:246) ~[client-intermediary.jar:?]
    at MC/net.minecraft.server.PlayerManager.onPlayerConnect(PlayerManager.java:182) ~[client-intermediary.jar:?]
    at MC/net.minecraft.server.network.ServerConfigurationNetworkHandler.mixinextras$bridge$method_14570$32(ServerConfigurationNetworkHandler.java) ~[client-intermediary.jar:?]
    at MC/net.minecraft.server.network.ServerConfigurationNetworkHandler.wrapOperation$hdh000$polymer-networking$polymerNet$prePlayHandshakeHackfest(ServerConfigurationNetworkHandler.java:1038) ~[client-intermediary.jar:?]
    at MC/net.minecraft.server.network.ServerConfigurationNetworkHandler.onReady(ServerConfigurationNetworkHandler.java:152) ~[client-intermediary.jar:?]
    at MC/net.minecraft.network.packet.c2s.config.ReadyC2SPacket.apply(ReadyC2SPacket.java:22) ~[client-intermediary.jar:?]
    at MC/net.minecraft.network.packet.c2s.config.ReadyC2SPacket.apply(ReadyC2SPacket.java:8) ~[client-intermediary.jar:?]
    at MC/net.minecraft.network.NetworkThreadUtils.method_11072(NetworkThreadUtils.java:27) ~[client-intermediary.jar:?]
    at MC/net.minecraft.server.ServerTask.run(ServerTask.java:18) ~[client-intermediary.jar:?]
    at MC/net.minecraft.util.thread.ThreadExecutor.executeTask(ThreadExecutor.java:162) ~[client-intermediary.jar:?]
    at MC/net.minecraft.util.thread.ReentrantThreadExecutor.executeTask(ReentrantThreadExecutor.java:23) ~[client-intermediary.jar:?]
    at net.minecraft.server.MinecraftServer.executeTask(MinecraftServer.java:864) ~[client-intermediary.jar:?]
    at net.minecraft.server.MinecraftServer.executeTask(MinecraftServer.java:173) ~[client-intermediary.jar:?]
    at MC/net.minecraft.util.thread.ThreadExecutor.runTask(ThreadExecutor.java:136) ~[client-intermediary.jar:?]
    at net.minecraft.server.MinecraftServer.runOneTask(MinecraftServer.java:846) ~[client-intermediary.jar:?]
    at net.minecraft.server.MinecraftServer.runTask(MinecraftServer.java:840) ~[client-intermediary.jar:?]
    at MC/net.minecraft.util.thread.ThreadExecutor.runTasks(ThreadExecutor.java:145) ~[client-intermediary.jar:?]
    at net.minecraft.server.MinecraftServer.runTasks(MinecraftServer.java:810) ~[client-intermediary.jar:?]
    at net.minecraft.server.MinecraftServer.runTasksTillTickEnd(MinecraftServer.java:815) ~[client-intermediary.jar:?]
    at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:702) ~[client-intermediary.jar:?]
    at net.minecraft.server.MinecraftServer.method_29739(MinecraftServer.java:281) ~[client-intermediary.jar:?]
    at java.base/java.lang.Thread.run(Thread.java:1570) [?:?]
[18:27:14] [Server thread/ERROR]: Couldn't place player in world
java.lang.RuntimeException: Mixin transformation of net.minecraft.server.network.ChunkDataSender failed
    at net.fabricmc.loader.impl.launch.knot.KnotClassDelegate.getPostMixinClassByteArray(KnotClassDelegate.java:427) ~[fabric-loader-0.16.0.jar:?]
    at net.fabricmc.loader.impl.launch.knot.KnotClassDelegate.tryLoadClass(KnotClassDelegate.java:323) ~[fabric-loader-0.16.0.jar:?]
    at net.fabricmc.loader.impl.launch.knot.KnotClassDelegate.loadClass(KnotClassDelegate.java:218) ~[fabric-loader-0.16.0.jar:?]
    at net.fabricmc.loader.impl.launch.knot.KnotClassLoader.loadClass(KnotClassLoader.java:119) ~[fabric-loader-0.16.0.jar:?]
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:525) ~[?:?]
    at MC/net.minecraft.server.network.ServerPlayNetworkHandler.<init>(ServerPlayNetworkHandler.java:246) ~[client-intermediary.jar:?]
    at MC/net.minecraft.server.PlayerManager.onPlayerConnect(PlayerManager.java:182) ~[client-intermediary.jar:?]
    at MC/net.minecraft.server.network.ServerConfigurationNetworkHandler.mixinextras$bridge$method_14570$32(ServerConfigurationNetworkHandler.java) ~[client-intermediary.jar:?]
    at MC/net.minecraft.server.network.ServerConfigurationNetworkHandler.wrapOperation$hdh000$polymer-networking$polymerNet$prePlayHandshakeHackfest(ServerConfigurationNetworkHandler.java:1038) ~[client-intermediary.jar:?]
    at MC/net.minecraft.server.network.ServerConfigurationNetworkHandler.onReady(ServerConfigurationNetworkHandler.java:152) ~[client-intermediary.jar:?]
    at MC/net.minecraft.network.packet.c2s.config.ReadyC2SPacket.apply(ReadyC2SPacket.java:22) ~[client-intermediary.jar:?]
    at MC/net.minecraft.network.packet.c2s.config.ReadyC2SPacket.apply(ReadyC2SPacket.java:8) ~[client-intermediary.jar:?]
    at MC/net.minecraft.network.NetworkThreadUtils.method_11072(NetworkThreadUtils.java:27) ~[client-intermediary.jar:?]
    at MC/net.minecraft.server.ServerTask.run(ServerTask.java:18) ~[client-intermediary.jar:?]
    at MC/net.minecraft.util.thread.ThreadExecutor.executeTask(ThreadExecutor.java:162) ~[client-intermediary.jar:?]
    at MC/net.minecraft.util.thread.ReentrantThreadExecutor.executeTask(ReentrantThreadExecutor.java:23) ~[client-intermediary.jar:?]
    at net.minecraft.server.MinecraftServer.executeTask(MinecraftServer.java:864) ~[client-intermediary.jar:?]
    at net.minecraft.server.MinecraftServer.executeTask(MinecraftServer.java:173) ~[client-intermediary.jar:?]
    at MC/net.minecraft.util.thread.ThreadExecutor.runTask(ThreadExecutor.java:136) ~[client-intermediary.jar:?]
    at net.minecraft.server.MinecraftServer.runOneTask(MinecraftServer.java:846) ~[client-intermediary.jar:?]
    at net.minecraft.server.MinecraftServer.runTask(MinecraftServer.java:840) ~[client-intermediary.jar:?]
    at MC/net.minecraft.util.thread.ThreadExecutor.runTasks(ThreadExecutor.java:145) ~[client-intermediary.jar:?]
    at net.minecraft.server.MinecraftServer.runTasks(MinecraftServer.java:810) ~[client-intermediary.jar:?]
    at net.minecraft.server.MinecraftServer.runTasksTillTickEnd(MinecraftServer.java:815) ~[client-intermediary.jar:?]
    at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:702) ~[client-intermediary.jar:?]
    at net.minecraft.server.MinecraftServer.method_29739(MinecraftServer.java:281) ~[client-intermediary.jar:?]
    at java.base/java.lang.Thread.run(Thread.java:1570) [?:?]
Caused by: org.spongepowered.asm.mixin.transformer.throwables.MixinTransformerError: An unexpected critical error was encountered
    at org.spongepowered.asm.mixin.transformer.MixinProcessor.applyMixins(MixinProcessor.java:392) ~[sponge-mixin-0.15.0+mixin.0.8.7.jar:0.15.0+mixin.0.8.7]
    at org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClass(MixinTransformer.java:234) ~[sponge-mixin-0.15.0+mixin.0.8.7.jar:0.15.0+mixin.0.8.7]
    at org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClassBytes(MixinTransformer.java:202) ~[sponge-mixin-0.15.0+mixin.0.8.7.jar:0.15.0+mixin.0.8.7]
    at net.fabricmc.loader.impl.launch.knot.KnotClassDelegate.getPostMixinClassByteArray(KnotClassDelegate.java:422) ~[fabric-loader-0.16.0.jar:?]
    ... 26 more
Caused by: org.spongepowered.asm.mixin.throwables.MixinApplyError: Mixin [polymer-core.mixins.json:block.ChunkDataSenderMixin from mod polymer-core] from phase [DEFAULT] in config [polymer-core.mixins.json] FAILED during APPLY
    at org.spongepowered.asm.mixin.transformer.MixinProcessor.handleMixinError(MixinProcessor.java:638) ~[sponge-mixin-0.15.0+mixin.0.8.7.jar:0.15.0+mixin.0.8.7]
    at org.spongepowered.asm.mixin.transformer.MixinProcessor.handleMixinApplyError(MixinProcessor.java:589) ~[sponge-mixin-0.15.0+mixin.0.8.7.jar:0.15.0+mixin.0.8.7]
    at org.spongepowered.asm.mixin.transformer.MixinProcessor.applyMixins(MixinProcessor.java:379) ~[sponge-mixin-0.15.0+mixin.0.8.7.jar:0.15.0+mixin.0.8.7]
    at org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClass(MixinTransformer.java:234) ~[sponge-mixin-0.15.0+mixin.0.8.7.jar:0.15.0+mixin.0.8.7]
    at org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClassBytes(MixinTransformer.java:202) ~[sponge-mixin-0.15.0+mixin.0.8.7.jar:0.15.0+mixin.0.8.7]
    at net.fabricmc.loader.impl.launch.knot.KnotClassDelegate.getPostMixinClassByteArray(KnotClassDelegate.java:422) ~[fabric-loader-0.16.0.jar:?]
    ... 26 more
Caused by: org.spongepowered.asm.mixin.injection.throwables.InvalidInjectionException: @At("INVOKE") on net/minecraft/server/network/ChunkDataSender::skipChunkClearing with priority 1000 cannot inject into net/minecraft/server/network/ChunkDataSender::unload(Lnet/minecraft/server/network/ServerPlayerEntity;Lnet/minecraft/util/math/ChunkPos;)V merged by qouteall.imm_ptl.core.mixin.common.chunk_sync.MixinPlayerChunkSender with priority 1000 [INJECT_PREPARE Applicator Phase -> polymer-core.mixins.json:block.ChunkDataSenderMixin from mod polymer-core -> Prepare Injections -> wrapWithCondition$god000$polymer-core$skipChunkClearing(Lnet/minecraft/server/network/ServerPlayNetworkHandler;Lnet/minecraft/network/packet/Packet;)Z -> Prepare ->  -> { target: unload(Lnet/minecraft/server/network/ServerPlayerEntity;Lnet/minecraft/util/math/ChunkPos;)V }]
    at org.spongepowered.asm.mixin.injection.code.Injector.findTargetNodes(Injector.java:312) ~[sponge-mixin-0.15.0+mixin.0.8.7.jar:0.15.0+mixin.0.8.7]
    at org.spongepowered.asm.mixin.injection.code.Injector.find(Injector.java:248) ~[sponge-mixin-0.15.0+mixin.0.8.7.jar:0.15.0+mixin.0.8.7]
    at org.spongepowered.asm.mixin.injection.struct.InjectionInfo.prepare(InjectionInfo.java:475) ~[sponge-mixin-0.15.0+mixin.0.8.7.jar:0.15.0+mixin.0.8.7]
    at com.llamalad7.mixinextras.injector.v2.WrapWithConditionInjectionInfo.prepare(WrapWithConditionInjectionInfo.java:27) ~[mixinextras-0.5.0-beta.1-dd252d07adfd6330.jar:?]
    at org.spongepowered.asm.mixin.transformer.MixinTargetContext.prepareInjections(MixinTargetContext.java:1407) ~[sponge-mixin-0.15.0+mixin.0.8.7.jar:0.15.0+mixin.0.8.7]
    at org.spongepowered.asm.mixin.transformer.MixinApplicatorStandard.prepareInjections(MixinApplicatorStandard.java:731) ~[sponge-mixin-0.15.0+mixin.0.8.7.jar:0.15.0+mixin.0.8.7]
    at org.spongepowered.asm.mixin.transformer.MixinApplicatorStandard.applyMixin(MixinApplicatorStandard.java:315) ~[sponge-mixin-0.15.0+mixin.0.8.7.jar:0.15.0+mixin.0.8.7]
    at org.spongepowered.asm.mixin.transformer.MixinApplicatorStandard.apply(MixinApplicatorStandard.java:246) ~[sponge-mixin-0.15.0+mixin.0.8.7.jar:0.15.0+mixin.0.8.7]
    at org.spongepowered.asm.mixin.transformer.TargetClassContext.apply(TargetClassContext.java:437) ~[sponge-mixin-0.15.0+mixin.0.8.7.jar:0.15.0+mixin.0.8.7]
    at org.spongepowered.asm.mixin.transformer.TargetClassContext.applyMixins(TargetClassContext.java:418) ~[sponge-mixin-0.15.0+mixin.0.8.7.jar:0.15.0+mixin.0.8.7]
    at org.spongepowered.asm.mixin.transformer.MixinProcessor.applyMixins(MixinProcessor.java:363) ~[sponge-mixin-0.15.0+mixin.0.8.7.jar:0.15.0+mixin.0.8.7]
    at org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClass(MixinTransformer.java:234) ~[sponge-mixin-0.15.0+mixin.0.8.7.jar:0.15.0+mixin.0.8.7]
    at org.spongepowered.asm.mixin.transformer.MixinTransformer.transformClassBytes(MixinTransformer.java:202) ~[sponge-mixin-0.15.0+mixin.0.8.7.jar:0.15.0+mixin.0.8.7]
    at net.fabricmc.loader.impl.launch.knot.KnotClassDelegate.getPostMixinClassByteArray(KnotClassDelegate.java:422) ~[fabric-loader-0.16.0.jar:?]
    ... 26 more
[18:27:14] [Server thread/INFO]: com.mojang.authlib.GameProfile@[...] lost connection: Invalid player data
[18:27:14] [Server thread/INFO]: Stopping singleplayer server as player logged out
[18:27:14] [Render thread/INFO]: Cleaning up client dimension info
[18:27:14] [Render thread/INFO]: Client world updated but not counted as cleanup
[18:27:14] [Render thread/WARN]: Client disconnected with reason: Invalid player data
cplir-c commented 1 month ago

Looking into it, Immersive Portals overwrites a bunch of PlayerChunkSender because 'its implementation assumes only one dimension is loaded'.

Patbox commented 1 month ago

Can't really support something thats neither released or made with compatibility in mind

cplir-c commented 1 month ago

I'll see if I can turn the overwrites into inject-and-cancel