FabricWarps

FabricWarps

12.1k Downloads

Weird behaviour (glitches) when warping to another dimension.

Nachtalb opened this issue ยท 15 comments

commented

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

commented

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

commented

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 ๐Ÿ‘

commented

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)

commented

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

commented

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))

commented

RIP. In that case, then could you add it as an optional dependency curseforge :) (and perhaps update it to 1.17 โค๏ธ)

commented

first i'd have to upload it to CF, but it should work on 1.17, probably should indicate that on Modrinth

commented

ahh nice.

Yeah, I read in many comments and descriptions on curseforge that it's quite the hassle to upload anything there :/

commented

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```
commented

ah, right, lemme fix that real quick

commented

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

commented

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

commented

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

commented

Thanks! I'll try it out.

commented

It worked. Thanks!