The bug
So on a multiplayer server, if you jump off the ground and then right click on a ridable entity like for example a horse before landing you will get kicked from the server for flying too long and in the server log you will see a message such as:
[17:54:58] [Server thread/WARN]: Jobe was kicked for floating too long!
Code analysis
Based on 1.11.2 decompiled using MCP 9.35 rc1
The server does not reset the field net.minecraft.network.NetHandlerPlayServer.floating
when a player starts riding an entity even though it is tracking floating with the field net.minecraft.network.NetHandlerPlayServer.vehicleFloating
there and because the floating
field can only be set to false
by the part of the method net.minecraft.network.NetHandlerPlayServer.processPlayer(CPacketPlayer)
which runs if the player is not riding an entity the value remains true
.
Attachments
Comments 27
I was able to reproduce on a vanilla 1.11.1 server if I was to mount after falling back down after jumping.
It only does it in survival mode and didn't matter if I was OP or not.
Confirmed in 1.18, despite this bug being confirmed as early as 1.9 (likely earlier too), really disappointing that after all these years it still hasn't been fixed.
Can confirm in 1.10.2