Caelus API (Forge/NeoForge)

Caelus API (Forge/NeoForge)

73M Downloads

Flight state desync on vanilla server

FakeDomi opened this issue ยท 6 comments

commented

Versions (Be specific, do not write "latest"):

  • Caelus: 0.0.16-1.17
  • Fabric: Loader 0.11.3 API 0.34.9

Observed Behavior:

When initiating flight on a vanilla or fabric server without the mod, the client thinks the player is in flight state but the server says otherwise. The player will receive fall damage even from soft landings and not return to standing position automatically.

Expected Behavior:

Compatibility with vanilla elytra mechanics

Steps to Reproduce:

  1. Join a vanilla or fabric server without the mod
  2. Initiate flight

Crash Log: Please use a paste site like hastebin.

commented

It's expected that Caelus is present on both sides. Because of its changes to the elytra mechanics, it's not compatible with the vanilla implementation as it is. What is your use-case for only using Caelus client-side? It's generally only used as a compatibility library for mods implementing items and effects which I'd imagine would need to be installed on both sides as well.

commented

My use case is playing on multiple servers, some that have Elytra Trinket and its dependencies, some that don't.

commented

I'd like to add the information that currently vanilla clients can join a Caelus server and use elytras just fine, so I expected it to work the other way around too. I'm actually running a server with Curious Elytra on 1.16 and it works okay with vanilla clients, they just can't really make use of the additional slot.

commented

I'm actually running a server with Curious Elytra on 1.16 and it works okay with vanilla clients, they just can't really make use of the additional slot.

Hmm, interesting. I'll have to look closer at this.

Are there any errors in the logs when the player tries to fly? Does the server still allow them to fly (aka they move in the air appropriately) or does the player just drop to the ground? This may be asking a bit much, so I understand if you cannot, but a GIF of video of the behavior when this happens would help quite a bit as well.

commented

https://up.domi.re/0qu8db98/2021-06-09%2002-42-37.mp4

Recorded with Caelus only present client side. You need to sneak to leave the flying animation. This, combined with the fact that you take fall damage and the elytra itself doesn't lose any durability seems to indicate a desync issue where the server never puts the player into flying state.

The log is completely quiet about this.

commented

Finally had time to have a better look at this and the fix was rather simple... Feel free to pull the change in if you want.