iPortalTeam / ImmersivePortalsMod

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

Incompatible with Cardboard(bukkit4fabric) #501

Open qouteall opened 3 years ago

lauchlan105 commented 3 years ago

I encountered this today so I'll share what I've seen

These are mostly server-side issues but there is a client-side issue there as well which might be the same as the server-side issues.

Disclaimer

Quick disclaimer - I thought I had no other plugins installed but I had worldedit-7.2.1 and worldguard-7.0.4 also installed. More information below. Secondly, I've removed the full log files since they include some IPs and I can't be bothered filtering them out. If you would like them, let me know and I can sanitize them before I post them.

Description (3 separate problems)

Cardboard, IP, Fabric API, Worldedit, Worldguard - the world fails to generate

With these plugins installed on the first run after accepting the eula, I got the following error...

[09:42:21] [Server thread/ERROR]: Encountered an unexpected exception
java.lang.RuntimeException: Missing dimension immersive_portals:alternate1
        at com.qouteall.immersive_portals.McHelper.getServerWorld(McHelper.java:742) ~[0bd61809-81cd-494a-8a1c-87b9fc81d819.jar:?]
        at com.qouteall.imm_ptl_peripheral.alternate_dimension.AlternateDimensions.lambda$init$0(AlternateDimensions.java:102) ~[immersive-portals-0.55-mc1.16.4-fabric.jar:?]
        at com.qouteall.immersive_portals.my_util.Signal.lambda$emit$0(Signal.java:18) ~[0bd61809-81cd-494a-8a1c-87b9fc81d819.jar:?]
        at java.util.ArrayList.forEach(ArrayList.java:1541) ~[?:?]
        at com.qouteall.immersive_portals.my_util.Signal.emit(Signal.java:18) ~[0bd61809-81cd-494a-8a1c-87b9fc81d819.jar:?]
        at net.minecraft.server.MinecraftServer.handler$zil000$onServerTick(MinecraftServer.java:4323) ~[intermediary-server.jar:?]
        at net.minecraft.server.MinecraftServer.method_3813(MinecraftServer.java:894) ~[intermediary-server.jar:?]
        at net.minecraft.class_3176.method_3813(class_3176.java:312) ~[intermediary-server.jar:?]
        at net.minecraft.server.MinecraftServer.method_3748(MinecraftServer.java:811) ~[intermediary-server.jar:?]
        at net.minecraft.server.MinecraftServer.method_29741(MinecraftServer.java:670) ~[intermediary-server.jar:?]
        at net.minecraft.server.MinecraftServer.method_29739(MinecraftServer.java:257) ~[intermediary-server.jar:?]
        at java.lang.Thread.run(Thread.java:834) [?:?]

This error came immediately after Done! was printed. I removed Cardboard, started the server, let the world generation complete, ensured I could log in and play, stopped the server, disabled the nether in server.properties, added Cardboard back in and ran into a different issue...

Server halts when generating the end world (same 5 plugins)

No error is thrown, but the server halts on generating the end world - usually between 90%-100%. I unfortunately don't know how to get any more information on this.

[02:08:45] [Server thread/INFO]: Preparing level "world"
[02:08:45] [Server thread/WARN]: Unable to find spawn biome
[02:08:46] [Server thread/INFO]: Preparing start region for dimension minecraft:overworld
[02:08:47] [Server thread/INFO]: Preparing spawn area: 0%
[02:08:47] [Server thread/INFO]: Preparing spawn area: 0%
[02:08:47] [Server thread/INFO]: Preparing spawn area: 0%
[02:08:47] [Server thread/INFO]: Preparing spawn area: 0%
[02:08:48] [Worker-Main-2/INFO]: Preparing spawn area: 48%
[02:08:48] [Worker-Main-2/INFO]: Preparing spawn area: 58%
[02:08:49] [Worker-Main-2/INFO]: Preparing spawn area: 61%
[02:08:49] [Server thread/INFO]: Time elapsed: 3296 ms
[02:08:49] [Server thread/INFO]: Preparing start region for dimension minecraft:the_end
[02:08:49] [Server thread/INFO]: Preparing spawn area: 0%
[02:08:50] [Server thread/INFO]: Preparing spawn area: 0%
[02:08:50] [Worker-Main-2/INFO]: Preparing spawn area: 0%
[02:08:50] [Worker-Main-2/INFO]: Preparing spawn area: 83%
[02:08:51] [Worker-Main-2/INFO]: Preparing spawn area: 83%
[02:08:51] [Worker-Main-2/INFO]: Preparing spawn area: 83%
[02:08:52] [Server thread/INFO]: Preparing spawn area: 91%
[02:08:53] [Server thread/INFO]: Preparing spawn area: 96%
[02:08:54] [Server thread/INFO]: Preparing spawn area: 96%
[02:08:54] [Server thread/INFO]: Preparing spawn area: 96% <-- halts here. Can't issue commands, can't Ctrl+C - have to kill process

Server loads, but client can't join (after removing Worldedit & Worldguard - see disclaimer)

After realising I also had worldedit-7.2.1 and worldguard-7.0.4 installed, I removed them so I had only had cardboard, fabric api, and immersive portals (versions listed below) and the server started just fine. However, this time I can't join with my client...

Server exception when I join with only Fabric API and Immersive Portals installed client-side (same versions as below)

[03:08:24] [Server thread/WARN]: Failed to handle packet for /<my ip address>:53538
java.lang.NullPointerException: The validated object is null
        at org.apache.commons.lang3.Validate.notNull(Validate.java:225) ~[intermediary-server.jar:?]
        at org.apache.commons.lang3.Validate.notNull(Validate.java:206) ~[intermediary-server.jar:?]
        at com.qouteall.hiding_in_the_bushes.MyNetwork.createDimSync(MyNetwork.java:119) ~[f5e65f50-65c5-4f9e-b9ab-34cfc47d5361.jar:?]
        at net.minecraft.class_3324.handler$zim000$onConnectionEstablished(class_3324.java:2985) ~[intermediary-server.jar:?]
        at net.minecraft.class_3324.method_14570(class_3324.java:182) ~[intermediary-server.jar:?]
        at net.minecraft.class_3248.handler$zcg000$acceptPlayer_BF(class_3248.java:712) ~[intermediary-server.jar:?]
        at net.minecraft.class_3248.method_14384(class_3248.java) ~[intermediary-server.jar:?]
        at net.minecraft.class_3248.redirect$zhp000$handlePlayerJoin(class_3248.java:1062) ~[intermediary-server.jar:?]
        at net.minecraft.class_3248.method_18785(class_3248.java:65) ~[intermediary-server.jar:?]
        at net.minecraft.class_2535.method_10754(class_2535.java:228) ~[intermediary-server.jar:?]
        at net.minecraft.class_3242.method_14357(class_3242.java:173) ~[intermediary-server.jar:?]
        at net.minecraft.server.MinecraftServer.method_3813(MinecraftServer.java:882) ~[intermediary-server.jar:?]
        at net.minecraft.class_3176.method_3813(class_3176.java:312) ~[intermediary-server.jar:?]
        at net.minecraft.server.MinecraftServer.method_3748(MinecraftServer.java:811) ~[intermediary-server.jar:?]
        at net.minecraft.server.MinecraftServer.method_29741(MinecraftServer.java:670) ~[intermediary-server.jar:?]
        at net.minecraft.server.MinecraftServer.method_29739(MinecraftServer.java:257) ~[intermediary-server.jar:?]
        at java.lang.Thread.run(Thread.java:834) [?:?]
[02:59:02] [Server thread/INFO]: lauchlan105 lost connection: Internal server error
[02:59:02] [Server thread/INFO]: lauchlan105 left the game

Client can't play any world (single, or multi-player) with Cardboard installed I'm not sure if cardboard is needed client-side but I figured I would try and add it since I couldn't join the server without it. So, if I run my client with Cardboard, Fabric API and ImmersivePortals, then I can't even open a single-player world The game crashes with no information - except for Game exited with error code 0


Versions Used

Why did I use build 140 of Cardboard?

I had to use build 140 of Cardboard because later versions had issues on start-up. This is not related to ImmersivePortals since I was trying to start the server with Cardboard alone. They seem to be aware of this issue as their latest build includes a commit message that sounds related to the error I was receiving. I don't have any logs for this unfortunately.

qouteall commented 3 years ago

Try to disable the alternate dimension (in config/immersive_portals_fabric.json) and see what happens

lauchlan105 commented 3 years ago

Whoops, I probably should've posted my config too...

{
  "maxPortalLayer": 5,
  "lagAttackProof": true,
  "portalRenderLimit": 200,
  "indirectLoadingRadiusCap": 8,
  "compatibilityRenderMode": false,
  "doCheckGlError": false,
  "portalSearchingRange": 128,
  "longerReachInCreative": false,
  "renderYourselfInPortal": true,
  "activeLoading": true,
  "teleportationDebug": false,
  "correctCrossPortalEntityRendering": true,
  "multiThreadedNetherPortalSearching": true,
  "edgelessSky": false,
  "mirrorInteractableThroughPortal": false,
  "looseMovementCheck": false,
  "pureMirror": false,
  "enableAlternateDimensions": false,
  "reducedPortalRendering": false,
  "visibilityPrediction": true,
  "chunkUnloadDelayTicks": 300,
  "forceMergePortalRendering": false,
  "dimensionRenderRedirect": {
    "immersive_portals:alternate1": "minecraft:overworld",
    "immersive_portals:alternate2": "minecraft:overworld",
    "immersive_portals:alternate3": "minecraft:overworld",
    "immersive_portals:alternate4": "minecraft:overworld",
    "immersive_portals:alternate5": "minecraft:overworld"
  },
  "netherPortalMode": "normal",
  "endPortalMode": "normal"
}

I just removed the values for dimensionRenderRedirect and left it as {}. The server started but I got the same Failed to handle packet for /<my ip address>:53538 error as above when joining. I then tried turning on the debug flags to see if that would change anything but it caused the overworld generation to stop at 97%.

I have now replaced the config with what was above and it's halting again at overworld generation. Perhaps I'm facing other issues. It does say Unable to find spawn biome each time which seems odd.

lauchlan105 commented 3 years ago

I wasn't looking carefully enough before - there's a crash reports dir so let me dump some of those in.

I just tried running things separately and things worked fine. Before that I was getting some world generation issues, which I've found some logs on. I've also run just cardboard alongside the fabric API to see if the issue is with the api plugin, rather than IP - unfortunately, it doesn't make a difference.

Failed to handle packet for /<my ip>:57370

but with more debug logs this time. This is the issue I'm getting at the moment whenever I have both mods installed. Previously I was getting issues where the generation stopped (more info on that below) but I "resolved" that by deleting the world.

[12:50:55] [User Authenticator #1/DEBUG]: Opening connection to https://sessionserver.mojang.com/session/minecraft/hasJoined?serverId=-7af728760853ddf9a0d07282c766d58b6aea22f5&username=lauchlan105
[12:50:55] [User Authenticator #1/DEBUG]: Reading data from https://sessionserver.mojang.com/session/minecraft/hasJoined?serverId=-7af728760853ddf9a0d07282c766d58b6aea22f5&username=lauchlan105
[12:50:56] [User Authenticator #1/DEBUG]: Successful read, server response was 200
[12:50:56] [User Authenticator #1/DEBUG]: Response: {
  "id" : "cf5ad6319a304930859c763f7a1e3f51",
  "name" : "lauchlan105",
  "properties" : [ {
    "name" : "textures",
    "value" : "ewogICJ0aW1lc3RhbXAiIDogMTYwOTkzNzQ1NjE0NCwKICAicHJvZmlsZUlkIiA6ICJjZjVhZDYzMTlhMzA0OTMwODU5Yzc2M2Y3YTFlM2Y1MSIsCiAgInByb2ZpbGVOYW1lIiA6ICJsYXVjaGxhbjEwNSIsCiAgInNpZ25hdHVyZVJlcXVpcmVkIiA6IHRydWUsCiAgInRleHR1cmVzIiA6IHsKICAgICJTS0lOIiA6IHsKICAgICAgInVybCIgOiAiaHR0cDovL3RleHR1cmVzLm1pbmVjcmFmdC5uZXQvdGV4dHVyZS9jOWYxYmU4Zjk0NmYxYWYzN2YzNjI5NjIyYWE5ZDJiMmQ2YzYyY2RjYjIzMjkwNjk5OTI2ZjhjZDk4NGYwYzYwIgogICAgfQogIH0KfQ==",
    "signature" : "ucu52Cr4IPbXh0+rA7gRVbrlDhHt2gQ/fC0Rc0CknTJwxEx4iB3fBuLLc6GvdCvdpfGn2Ehd9+k8YFHyhgj0T9jTS9hjFGSOCpb3lNFoPtiVduQSBJDalg2tJzizTEHimZdOwDM7sB3kl1McLt/zJ/g3VoEMR/n0BvaBaTNrR6zjWQQscogDO//UzUsE6B3HC08U5GDNmSHWe6YNiBbmgvx1RVbgINcDPMhHZ8uJfi62OwSucjdOx9WMXX1HnqkzWyEQg7j436cZpiE/iFkf4xdj4EW6yU2LXI0scBnGXrq+1UYwkr+ggqig+SFdHs3sjqx2x2NhFaPZBhJC/ji/pCEMF+UViUYgXkp/JgXq0em8BMnqab1SUTsI8BtF5XGHQBK6MFo+ETNMwQLnouk2zCpSPsn1JnF3PycZO873ULNvSMSXcRexuqrqxqJCzq0av9zeqX9VnlbLuvbZFmKwixS5L95NYWaAoU4n9hPC9KmT9CjYh++3Zdc+x2UQLJaUd+o7wxa1G4B1eZIvW0xM0+8OmyPnVWUeK11r6wxAdg92/s1/d9zy8B9voxKNKldCEjdntRfk1SVKnr0ivc3pWkHakJ7NiNuM4/hLmUHk0gYncY8dnMtMcfCtzxNLysy2YpLEYBxhSW73kquABLVRrDal46SAATR/Cy6rqUBsQhA="
  } ]
}
[12:50:56] [User Authenticator #1/INFO]: [STDOUT]: false / User Authenticator #1
[12:50:56] [User Authenticator #1/INFO]: UUID of player lauchlan105 is cf5ad631-9a30-4930-859c-763f7a1e3f51
[12:50:56] [Server thread/DEBUG]: Sent accepted channels to the client for "com.mojang.authlib.GameProfile@72a4d26b[id=cf5ad631-9a30-4930-859c-763f7a1e3f51,name=lauchlan105,properties={textures=[com.mojang.authlib.properties.Property@2a371cfd]},legacy=false] (/<my ip>:57370)"
[12:50:56] [Netty Epoll Server IO #2/DEBUG]: Handling inbound login query with id 0
[12:50:56] [Netty Epoll Server IO #2/DEBUG]: Received accepted channels from the client for "com.mojang.authlib.GameProfile@72a4d26b[id=cf5ad631-9a30-4930-859c-763f7a1e3f51,name=lauchlan105,properties={textures=[com.mojang.authlib.properties.Property@2a371cfd]},legacy=false] (/<my ip>:57370)"
[12:50:56] [Server thread/INFO]: lauchlan105[/<my ip>:57370] logged in with entity id 16 at (-12.232864996764633, 64.0, 83.19632809556113)
[12:50:56] [Server thread/WARN]: Failed to handle packet for /<my ip>:57370
java.lang.NullPointerException: The validated object is null
        at org.apache.commons.lang3.Validate.notNull(Validate.java:225) ~[intermediary-server.jar:?]
        at org.apache.commons.lang3.Validate.notNull(Validate.java:206) ~[intermediary-server.jar:?]
        at com.qouteall.hiding_in_the_bushes.MyNetwork.createDimSync(MyNetwork.java:119) ~[b5dc64a7-6a68-47b7-9298-2734a8d04422.jar:?]
        at net.minecraft.class_3324.handler$zim000$onConnectionEstablished(class_3324.java:2985) ~[intermediary-server.jar:?]
        at net.minecraft.class_3324.method_14570(class_3324.java:182) ~[intermediary-server.jar:?]
        at net.minecraft.class_3248.handler$zcg000$acceptPlayer_BF(class_3248.java:712) ~[intermediary-server.jar:?]
        at net.minecraft.class_3248.method_14384(class_3248.java) ~[intermediary-server.jar:?]
        at net.minecraft.class_3248.redirect$zhp000$handlePlayerJoin(class_3248.java:1062) ~[intermediary-server.jar:?]
        at net.minecraft.class_3248.method_18785(class_3248.java:65) ~[intermediary-server.jar:?]
        at net.minecraft.class_2535.method_10754(class_2535.java:228) ~[intermediary-server.jar:?]
        at net.minecraft.class_3242.method_14357(class_3242.java:173) ~[intermediary-server.jar:?]
        at net.minecraft.server.MinecraftServer.method_3813(MinecraftServer.java:882) ~[intermediary-server.jar:?]
        at net.minecraft.class_3176.method_3813(class_3176.java:312) ~[intermediary-server.jar:?]
        at net.minecraft.server.MinecraftServer.method_3748(MinecraftServer.java:811) ~[intermediary-server.jar:?]
        at net.minecraft.server.MinecraftServer.method_29741(MinecraftServer.java:670) ~[intermediary-server.jar:?]
        at net.minecraft.server.MinecraftServer.method_29739(MinecraftServer.java:257) ~[intermediary-server.jar:?]
        at java.lang.Thread.run(Thread.java:834) [?:?]
[12:50:56] [Server thread/DEBUG]: Disabled auto read
[12:50:56] [Netty Epoll Server IO #2/DEBUG]: Enabled auto read
[12:50:56] [Server thread/INFO]: lauchlan105 lost connection: Internal server error
[12:50:56] [Server thread/INFO]: lauchlan105 left the game

java.lang.NullPointerException: Exception generating new chunk

I'm not 100% what triggered this but I'm confident that this is what was is happening when the world generation halts. crash-2021-01-06_12.46.37-server.txt

qouteall commented 3 years ago

Post the full log.

lauchlan105 commented 3 years ago

I've already posted the full crash dump of the chunk exception - the rest of the logs for the connection error are just the normal server startup logs as far as I'm concerned, but sure... runtime.txt

Its 1am where I'm at so I'll be offline for a couple hours. I hope this helps. If this isn't what you wanted just specify what it is you're after and I'll grab it tomorrow if I have the time.

qouteall commented 3 years ago

Seems that immersive portals's injection on server loaded was not invoked because Start Completing Dimension Id Record does not show up in the log.

K3llerk1nd98 commented 3 years ago

In 1.16.1 I got cardboard and immersive portals working. But in newer versions it give errors again