As a creative server we try to use as many blocks with custom models to achieve higher quality builds even for players with unmodded clients. We would like to use single lower door blocks to increase the amount of available blocks. We are using a custom plugin to place these blocks or voxel sniper plugin (e.g. /b s cp with /v 64 and /vi 6) to place these blocks (e.g. wooden door, part=lower, facing=west,open=true).
For door blocks with closed state everything works fine but for blocks with open state there is a problem:
At the client side the hitbox in the example above (ID 64:6) is at the northern face of the block. Collision detection at the client works well. But at the server side the hitbox seems to be set at the opposite face of the block.
When a player moves into the block from that side the server sends a position set packet (PacketPlayOutPosition) to the client to reset the player position to outside of the block. I tested to cancel sending of these packets with ProtocolLib. In this case the player can enter the block and collision detection with the client side hitbox at the northern face works fine.
I noticed that after a server restart the problem is mended for all blocks placed before the restart. Unloading and reload the chunk by teleporting to another location and returning helps too.
While this bug will probably affect very few people we would be very happy to use these additional blocks.
Thanks for regarding.
- Eriol_Eandur