iPortalTeam / ImmersivePortalsMod

Non-Euclidean in Minecraft. See through portals and teleport seamlessly.
https://qouteall.fun/immptl/
Apache License 2.0
426 stars 100 forks source link

Crash when loading into a world with ServerCore #1301

Closed KryptoSynth closed 1 year ago

KryptoSynth commented 1 year ago

According to your testing, does the issue occur with ONLY Immersive Portals mod and Fabric API?

No

Describe the issue

Game crashes when trying to load into a world if ServerCore and Immersive Portals are installed together. Happens with both Fabric and Quilt Loader.

Steps to reproduce the behavior:

  1. Install Quilt or Fabric and add their respective API (.jar file) into the mods folder.
  2. Add just the ServerCore and Immersive Portals (.jar files) into the mods folder.
  3. Run Minecraft and try to load into a world or create a new one.
  4. Crash.

Versions Immersive Portals: 2.5.1 ServerCore: 1.3.4 Minecraft: 1.19.3

latest.log crash-2023-03-12_19.31.52-server.txt

qouteall commented 1 year ago
Caused by: org.spongepowered.asm.mixin.throwables.MixinApplyError: Mixin [servercore.mixins.json:features.misc.ChunkMapMixin from mod servercore] from phase [DEFAULT] in config [servercore.mixins.json] FAILED during APPLY
    at org.spongepowered.asm.mixin.transformer.MixinProcessor.handleMixinError(MixinProcessor.java:638)
    at org.spongepowered.asm.mixin.transformer.MixinProcessor.handleMixinApplyError(MixinProcessor.java:589)
    at org.spongepowered.asm.mixin.transformer.MixinProcessor.applyMixins(MixinProcessor.java:379)
    ... 15 more
Caused by: org.spongepowered.asm.mixin.injection.throwables.InvalidInjectionException: @At("INVOKE") on net/minecraft/class_3898::servercore$preventClientLag with priority 1000 cannot inject into net/minecraft/class_3898::method_18715(Lnet/minecraft/class_3222;Lorg/apache/commons/lang3/mutable/MutableObject;Lnet/minecraft/class_2818;)V merged by qouteall.imm_ptl.core.mixin.common.chunk_sync.MixinChunkMap_C with priority 1100 [PREINJECT Applicator Phase -> servercore.mixins.json:features.misc.ChunkMapMixin from mod servercore -> Prepare Injections ->  -> handler$bam000$servercore$preventClientLag(Lnet/minecraft/class_3222;Lorg/apache/commons/lang3/mutable/MutableObject;Lnet/minecraft/class_2818;Lorg/spongepowered/asm/mixin/injection/callback/CallbackInfo;)V -> Prepare]
LizzieSpace commented 1 year ago

Seems to be a mixin override issue. I wonder if it'll work allright if one disabled that feature on servercore

qouteall commented 1 year ago

https://github.com/Wesley1808/ServerCore/blob/bf4314321120b6e82cd1b6a3e9992e4e3218d270/common/src/main/java/me/wesley1808/servercore/mixin/features/misc/ChunkMapMixin.java#L65

qouteall commented 1 year ago

According to this https://github.com/Wesley1808/ServerCore/blob/bf4314321120b6e82cd1b6a3e9992e4e3218d270/common/src/main/java/me/wesley1808/servercore/mixin/ServerCoreMixinPlugin.java#L44

This issue is already fixed as ServerCore disables that mixin when ImmPtl is present.

qouteall commented 1 year ago

I am considering incorporating that ServerCore optimization into ImmPtl