iPortalTeam / ImmersivePortalsMod

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

Immsersive Portals crashing when Universal Graves mod added to server #1520

Closed Zxurian closed 7 months ago

Zxurian commented 7 months ago

Is it a mod compatibility issue?

Yes

If it's a mod compatibility issue, please provide the link(s) to the incompatible mod(s)

Universal Graves - https://modrinth.com/mod/universal-graves

Minecraft version

1.20.4

Describe the issue

Server Runtime Log: https://mclo.gs/fT6p3fd Server Crash Log: https://mclo.gs/4wHbqZS Client Log: https://mclo.gs/HCOJGvZ

When I add the "Universal Graves", server starts up fine, but as soon as I join the server, the server instantly crashes. I'm not entirely sure whether the issue is with Universal Graves or Immersive Portals, but given the initial crash was java.lang.NoClassDefFoundError: qouteall/q_misc_util/dimension/DimensionIdRecord I figured I'd start here.

On the client side, I hit connect to server, and it goes through the connection process, but as soon as it would normally drop me into the game, it instead immediately disconnects.

qouteall commented 7 months ago

Turns out that the crash happens in polymer's iPortal compat code. As iPortal code changed, that stopped working.

java.lang.NoClassDefFoundError: qouteall/q_misc_util/dimension/DimensionIdRecord
    at eu.pb4.polymer.core.impl.compat.ImmersivePortalsUtils.sendBlockPackets(ImmersivePortalsUtils.java:16) ~[polymer-core-0.7.5+1.20.4-2bba185de40c5160.jar:?]
    at eu.pb4.polymer.core.impl.networking.PacketPatcher.sendExtra(PacketPatcher.java:78) ~[polymer-core-0.7.5+1.20.4-2bba185de40c5160.jar:?]
    at net.minecraft.class_8609.handler$cdi000$polymer-core$polymer$extra(class_8609.java:3088) ~[client-intermediary.jar:?]
    at net.minecraft.class_8609.method_52391(class_8609.java:128) ~[client-intermediary.jar:?]
    at net.minecraft.class_8609.method_14364(class_8609.java:113) ~[client-intermediary.jar:?]
    at qouteall.imm_ptl.core.chunk_loading.PlayerChunkLoading.sendChunkPacket(PlayerChunkLoading.java:194) ~[immersive-portals-5.1.5-mc1.20.4-fabric.jar:?]
    at qouteall.imm_ptl.core.chunk_loading.PlayerChunkLoading.lambda$doChunkSending$0(PlayerChunkLoading.java:166) ~[immersive-portals-5.1.5-mc1.20.4-fabric.jar:?]
    at qouteall.q_misc_util.Helper.removeIfWithEarlyExit(Helper.java:823) ~[immersive-portals-5.1.5-mc1.20.4-fabric.jar:?]
    at qouteall.imm_ptl.core.chunk_loading.PlayerChunkLoading.doChunkSending(PlayerChunkLoading.java:124) ~[immersive-portals-5.1.5-mc1.20.4-fabric.jar:?]
    at qouteall.imm_ptl.core.chunk_loading.ImmPtlChunkTracking.immediatelyUpdateForPlayer(ImmPtlChunkTracking.java:151) ~[immersive-portals-5.1.5-mc1.20.4-fabric.jar:?]
    at net.minecraft.class_3324.handler$bda000$immersive_portals$onOnPlayerConnect(class_3324.java:1033) ~[client-intermediary.jar:?]
    at net.minecraft.class_3324.method_14570(class_3324.java:282) ~[client-intermediary.jar:?]
    at net.minecraft.class_8610.mixinextras$bridge$method_14570$28(class_8610.java) ~[client-intermediary.jar:?]
    at net.minecraft.class_8610.md1590c6$polymer-networking$lambda$polymerNet$prePlayHandshakeHackfest$0$0(class_8610.java:1044) ~[client-intermediary.jar:?]
    at eu.pb4.polymer.networking.impl.EarlyPlayConnectionMagic.lambda$handle$0(EarlyPlayConnectionMagic.java:36) ~[polymer-networking-0.7.5+1.20.4-11d2a2ffcbee75cf.jar:?]
    at eu.pb4.polymer.networking.impl.EarlyPlayConnectionMagic.handle(EarlyPlayConnectionMagic.java:39) ~[polymer-networking-0.7.5+1.20.4-11d2a2ffcbee75cf.jar:?]
    at net.minecraft.class_8610.wrapOperation$cfm000$polymer-networking$polymerNet$prePlayHandshakeHackfest(class_8610.java:1031) ~[client-intermediary.jar:?]
    at net.minecraft.class_8610.method_52408(class_8610.java:128) ~[client-intermediary.jar:?]
    at net.minecraft.class_8736.method_53043(class_8736.java:20) ~[client-intermediary.jar:?]
    at net.minecraft.class_8736.method_11054(class_8736.java:7) ~[client-intermediary.jar:?]
    at net.minecraft.class_2600.method_11072(class_2600.java:24) ~[client-intermediary.jar:?]
    at net.minecraft.class_3738.run(class_3738.java:18) ~[client-intermediary.jar:?]
    at net.minecraft.class_1255.method_18859(class_1255.java:156) ~[client-intermediary.jar:?]
    at net.minecraft.class_4093.method_18859(class_4093.java:23) ~[client-intermediary.jar:?]
    at net.minecraft.server.MinecraftServer.method_24306(MinecraftServer.java:797) ~[client-intermediary.jar:?]
    at net.minecraft.server.MinecraftServer.method_18859(MinecraftServer.java:165) ~[client-intermediary.jar:?]
    at net.minecraft.class_1255.method_16075(class_1255.java:130) ~[client-intermediary.jar:?]
    at net.minecraft.server.MinecraftServer.method_20415(MinecraftServer.java:779) ~[client-intermediary.jar:?]
    at net.minecraft.server.MinecraftServer.method_16075(MinecraftServer.java:773) ~[client-intermediary.jar:?]
    at net.minecraft.class_1255.method_18857(class_1255.java:139) ~[client-intermediary.jar:?]
    at net.minecraft.server.MinecraftServer.method_16208(MinecraftServer.java:758) ~[client-intermediary.jar:?]
    at net.minecraft.server.MinecraftServer.method_29741(MinecraftServer.java:687) ~[client-intermediary.jar:?]
    at net.minecraft.server.MinecraftServer.method_29739(MinecraftServer.java:270) ~[client-intermediary.jar:?]
    at java.lang.Thread.run(Thread.java:833) ~[?:?]
Caused by: java.lang.ClassNotFoundException: qouteall.q_misc_util.dimension.DimensionIdRecord
    at jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641) ~[?:?]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[?:?]
    at net.fabricmc.loader.impl.launch.knot.KnotClassDelegate.loadClass(KnotClassDelegate.java:226) ~[fabric-loader-0.15.2.jar:?]
    at net.fabricmc.loader.impl.launch.knot.KnotClassLoader.loadClass(KnotClassLoader.java:119) ~[fabric-loader-0.15.2.jar:?]
    at java.lang.ClassLoader.loadClass(ClassLoader.java:520) ~[?:?]
    ... 34 more
qouteall commented 7 months ago

https://github.com/Patbox/polymer/blob/dev/1.20.3/polymer-core/src/main/java/eu/pb4/polymer/core/impl/compat/ImmersivePortalsUtils.java

qouteall commented 7 months ago

I am going to temporarily workaround it by re-adding the iPortal classes and fields.

qouteall commented 7 months ago

Possibly fixed in this version https://github.com/iPortalTeam/ImmersivePortalsMod/releases/tag/v5.1.6-mc1.20.4