Weird behaviour (glitches) when warping to another dimension.
Nachtalb opened this issue ยท 15 comments
So it's not that easy to list what all goes wrong (as I don't know if there is more) but in this video, I'll showcase some of the weird glitches.
2021-06-16.18-21-01_Trim.mp4
- 00:00 Initial state overworld: lvl 54, hunger 18, thirst 12, can use creative fly
- 00:06 Warpped to end: lvl NaN, hunger 18, thirst "20", can not use creative fly
- 00:22 Warpped to xp farm in end: here I level up once and it gives the correct new level 55, lvl 55, hunger 18, thirst "20", can not use creative fly
- 00:35 Warpped back to overworld: (level gone again) lvl NaN, hunger 18, thirst "20", can not use creative fly
- 00:52 Switching to Creative and back to Survival: lvl NaN, hunger 18, thirst "20", creative fly works again now
- 01:03 Drinking water: lvl NaN, hunger 18, thirst 16 (thirst is correct again after drinking (+4 for each sip)), creative fly works again now
I marked all the changes bold. This only happens between dimension warps. Warping inside the same dimension works flawlessly. This whole ordeal also applies to your https://github.com/CodedSakura/FabricHomes mod.
lvl, hunger: well Minecraft vanilla of course :P
thirst: https://www.curseforge.com/minecraft/mc-mods/dehydration
creative fly: https://www.curseforge.com/minecraft/mc-mods/winged
i'm not sure about thirst & creative flight, but the xp (and also potion effect) desync i've fixed with FabricCrossDimTPFix
you probably have to ask the Dehydration devs & Winged devs to force a resync in ServerPlayerInteractionManager#setWorld
, essentially what i did here
keeping this open for others experiencing these issues
Why the separate mod tho? Wouldn't it be easier to add this directly to the mods (warp, homes etc.) or embed it instead of the need to download it separately.
I will create issues on the other projects with reference to this here ๐
if it was included into the mods / embedded it would probably create an issue if you have multiple of my mods installed (FabricWarps/FabricTPA/FabricHomes)
I don't believe so (or at least there is a way to not make it conflict). Eg. many mods include Cloth Config API as an embedded dependency: https://www.curseforge.com/minecraft/mc-mods/cloth-config/relations/dependents?filter-related-dependents=1
yes, it's possible, but as FabricCrossDimTPFix is mixin based (literally just a single mixin), while Cloth Config API doesn't use any mixins, i feel like multiple of the same mixin loaded would cause problems, or at least run the code multiple times (which increases network load (not super bad as it's probably called only like once a minute in an active server))
RIP. In that case, then could you add it as an optional dependency curseforge :) (and perhaps update it to 1.17 โค๏ธ)
first i'd have to upload it to CF, but it should work on 1.17, probably should indicate that on Modrinth
ahh nice.
Yeah, I read in many comments and descriptions on curseforge that it's quite the hassle to upload anything there :/
Welp I get net.fabricmc.loader.discovery.ModResolutionException: Could not find required mod: fabriccrossdimtpfix requires {minecraft @ [~1.16.2]}
, doesn't seem to work with 1.17 servers yet :)
tech_minecraft | net.fabricmc.loader.discovery.ModResolutionException: Could not find required mod: fabriccrossdimtpfix requires {minecraft @ [~1.16.2]}
tech_minecraft | at net.fabricmc.loader.discovery.ModResolver.findCompatibleSet(ModResolver.java:180) ~[fabric-server-launch.jar:?]
tech_minecraft | at net.fabricmc.loader.discovery.ModResolver.resolve(ModResolver.java:787) ~[fabric-server-launch.jar:?]
tech_minecraft | at net.fabricmc.loader.FabricLoader.setup(FabricLoader.java:211) ~[fabric-server-launch.jar:?]
tech_minecraft | at net.fabricmc.loader.FabricLoader.load(FabricLoader.java:201) [fabric-server-launch.jar:?]
tech_minecraft | at net.fabricmc.loader.launch.knot.Knot.init(Knot.java:126) [fabric-server-launch.jar:?]
tech_minecraft | at net.fabricmc.loader.launch.knot.KnotServer.main(KnotServer.java:28) [fabric-server-launch.jar:?]
tech_minecraft | at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
tech_minecraft | at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:?]
tech_minecraft | at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:?]
tech_minecraft | at java.lang.reflect.Method.invoke(Unknown Source) ~[?:?]
tech_minecraft | at net.fabricmc.loader.launch.server.FabricServerLauncher.launch(FabricServerLauncher.java:62) [fabric-server-launch.jar:?]
tech_minecraft | at net.fabricmc.loader.launch.server.FabricServerLauncher.setup(FabricServerLauncher.java:106) [fabric-server-launch.jar:?]
tech_minecraft | at net.fabricmc.loader.launch.server.FabricServerLauncher.main(FabricServerLauncher.java:50) [fabric-server-launch.jar:?]
tech_minecraft | Caused by: net.fabricmc.loader.util.sat4j.specs.ContradictionException: Creating Empty clause ?
tech_minecraft | at net.fabricmc.loader.util.sat4j.minisat.constraints.cnf.Clauses.propagationCheck(Clauses.java:117) ~[fabric-server-launch.jar:?]
tech_minecraft | at net.fabricmc.loader.util.sat4j.minisat.constraints.cnf.Clauses.sanityCheck(Clauses.java:97) ~[fabric-server-launch.jar:?]
tech_minecraft | at net.fabricmc.loader.util.sat4j.minisat.constraints.MixedDataStructureDanielWL.createClause(MixedDataStructureDanielWL.java:81) ~[fabric-server-launch.jar:?]
tech_minecraft | at net.fabricmc.loader.util.sat4j.minisat.core.Solver.addClause(Solver.java:401) ~[fabric-server-launch.jar:?]
tech_minecraft | at net.fabricmc.loader.discovery.ModResolver.findCompatibleSet(ModResolver.java:177) ~[fabric-server-launch.jar:?]
tech_minecraft | ... 12 more```
note: just realised that i gave the wrong thing, the mixin i have is into ServerPlayerEntity#teleport
at ServerPlayerInteractionManager#setWorld
, so you should probably update the issues, sorry :P
also the update to 1.17 is not going as planned
note: just realised that i gave the wrong thing, the mixin i have is into ServerPlayerEntity#teleport at ServerPlayerInteractionManager#setWorld, so you should probably update the issues, sorry :P
I updated the other issues, thanks ๐,
also the update to 1.17 is not going as planned
welp, np
okay, i've finished the upgrade, and in the process noticed that in 1.17 the ServerPlayerInteractionManager#setWorld
is now ServerPlayerEntity#setWorld
, you probably should just make a comment about that