PaperMC / Paper

The most widely used, high performance Minecraft server that aims to fix gameplay and mechanics inconsistencies
https://papermc.io/
Other
10.04k stars 2.34k forks source link

Vivecraft Server Plugin/Vivecraft Client - Buggy block placement #4331

Closed xperia64 closed 3 years ago

xperia64 commented 4 years ago

When using Vivecraft in VR connected to a Paper server, if a user is too close to where they are trying to place a block (even if their shadow shows them as far enough away), the block they attempt to place disappears immediately and is removed their inventory until they succeed in placing a block there, at which point the missing items reappear in their inventory. "Too close" can mean the user's body is standing fully on an adjacent block, but the block they are placing may intersect the user's hand(s)/arm(s). The user's hand(s)/arm(s) can be a fair distance from the user's body, but when playing in single player or using a regular Spigot server, this issue does not occur. I have only been able to reproduce this with the true VR Vivecraft client, not with the NonVR client or any other Vanilla client configuration.

What behaviour is expected:

When a block is placed by a VR user that the server deems too close, it should not disappear from the world and inventory. The block should either fail to place entirely, or place successfully; Block placement should also not fail if only a VR user's hand(s)/arm(s) are intersecting with the destination block (matching single player and Spigot server behavior)

What behaviour is observed:

The placed block shows up for one frame before being removed by the server, at which point it is no longer in the world or user's inventory (it reappears in the user's inventory only when a block is placed successfully in that location).

Steps/models to reproduce:

  1. Configure and set up a Paper server and add the Vivecraft Spigot Extensions plugin (I encountered this issue specifically in survival mode, so the server should probably be set to survival)
  2. Connect using the VR Vivecraft client
  3. Acquire any block and find a location at eye-level to place it
  4. Stand one block away from the chosen destination block, and reach your hand out in VR into where the block will be placed
  5. Attempt to place the block

Plugin list:

Vivecraft Spigot Extensions 1.16.2r2

Paper version:

This server is running Paper version git-Paper-189 (MC: 1.16.2) (Implementing API version 1.16.2-R0.1-SNAPSHOT) (this is the final version compatible with 1.16.2, which Vivecraft at the time of writing this requires; I did not see any significant changes in subsequent Paper versions so far that would appear to affect this bug)

Anything else:

I understand the Paper team may not have access to compatible VR hardware, but I'm hoping it may be possible to determine the cause of this by examining the Vivecraft plugin source available here: https://github.com/jrbudda/Vivecraft_116

astei commented 4 years ago

Duplicate of #4330

Chew commented 4 years ago

Not duplicate (that one has to do with velocity/entities), but likely related

astei commented 4 years ago

Fair enough.

jrbudda commented 4 years ago

I am not seeing anything obvious browsing the patches so it might be easier to ask:...

is Paper adding or changing anything related to range or anti-cheat-type detection for block placement? I saw one patch where a block of code was moved for what looked like performance reasons but that would not cause a change of logic. Not seeing any others.

stale[bot] commented 3 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

stale[bot] commented 3 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.