NoCheatPlus / Issues

Issues managment for the NoCheatPlus project.
13 stars 9 forks source link

Dying with shield wielded triggers SurvivalFly detection on subsequent walking #393

Closed Kakifrucht closed 7 years ago

Kakifrucht commented 7 years ago

Short description of the issue.

When dying while wielding ones right handed shield, after respawning the player will be lagged behind due to SurvivalFly detection. Wielding the shield once again (right clicking) will fix the issue.

Complete output of the ncp version command (please prefer text here).

 ---- Version information ----
#### Server ####
git-Spigot-d4f98a3-cb61ac0 MC: 1.11.2
  detected: 1.11.2
#### NoCheatPlus ####
Plugin: 3.15.0-SNAPSHOT-sMD5NET-b1066
MCAccess: 1.11-1.11.2 / Spigot-CB-1.11_R1
Features:
  blocks: BlocksMC1_4 | BlocksMC1_5 | BlocksMC1_6_1 | BlocksMC1_7_2 | BlocksMC1_8 | BlocksMC1_9 | BlocksMC1_10 | BlocksMC1_11
  checks: FastConsume | Gutenberg | HotFixFallingBlockPortalEnter
  defaults: pvpKnockBackVelocity
Hooks: AllViolations~NCP~ 1.0

How to reproduce the issue (is it random / always happens / side conditions)?

Always happens, but only if shield is in off hand.

Have you made any (noteworthy) changes to the default configuration of NCP?

No, I was using the default configuration.

Do you run any other special plugins that affect game mechanics next to NC+ (adding skills, machines, adding/changing blocks, other anti cheating)?

No

Provide additional information, such as error/debug/violation logs. (For reproducible issues with moving consider: https://github.com/NoCheatPlus/Docs/wiki/Debugging#on-the-fly-debug-output-for-individual-players) Use GitHub gists or http://pastebin.com/ or similar for huge logs, or attach a (zip-) file here. For image uploads, please prefer a site that allows viewing without JavaScript, you can upload file attachments for issues right here.

Log entry for violation: 17-03-04 03:33:55 [INFORMATION] Kakifrucht failed SurvivalFly: tried to move unexpectedly. VL 17.

Manually resetting the off hand item via BukkitAPI also fixes the issue as a temporary workaround.

asofold commented 7 years ago

I'll have to reproduce. I would suspect the server doesn't reset the blocking state, because they haven't received the packet to stop blocking, or because they've ignored it after death of the player.

Debug logging would detect server side (bukkit-readable!) blocking state, with adding it to the move information: (blocking)

It'll probably have to be reported to Spigot.

asofold commented 7 years ago

Build 1099 will contain an attempt for a workaround - not sure it works, not sure it's fixed in spigot already.

Edit: Looks good with build 1099 - it uses a more or less crude workaround: If off-hand item getting is supported and the player is blocking (server side state is set after respawn), then "redo" the shield item in off/main hand, depending which the shield is on. "Redoing" is done via setting the item slot in the inventory to the item that currently is inside (...).

Kakifrucht commented 7 years ago

Thanks, I can no longer reproduce this issue with build 1099.