konsolas / AAC-Issues

AAC Issue Tracker.
32 stars 15 forks source link

AAC Move mitigation cancelling knockback #2229

Open wingzero54 opened 3 years ago

wingzero54 commented 3 years ago

Issue description

Tested extensively. We have a pvp plugin but I disabled it for all testing. With AAC on, vanilla knockback 2 is being mitigated about 1/3 of the time. With AAC movement checks turned off, vanilla knockback 2 gets applied just fine.

"The player ignores velocity sent by the server" id: aac_move_vel score: 53.8 count: 21 time: 2.0 rate: 10.8

Those are the status from some brief testing. I had hoped the 5.0.14 update to velocity would fix this issue, but it does not appear to do so. I was testing with two clients both 1.16.4.

AAC Debug Pastebin

Core information

Server version: 1.16.4

AAC version: 5.0.14-b1

ProtocolLib version: 4.6.0

Special environment information

ViaVersion version: 3.3.0

ViaBackwards version: 3.3.0

Configuration

Using the default AAC configuration.

CeIebrimbor commented 3 years ago

Please provide a sampling of /debug during this activity.

Janmm14 commented 3 years ago

*/aac debug

wingzero54 commented 3 years ago

Updated with a pastebin link

Janmm14 commented 3 years ago

Problem seems to be that there are two velocities applied nearly at the same time. @konsolas has already planned to improve such situations in a future update.

wingzero54 commented 3 years ago

Ah I see, such as when knockback applies upward and backward movement to the player being hit. Alright I'll look forward to future updates

Janmm14 commented 3 years ago

The problem is this:

[22Mar2021 11:19:51.370] [Render thread/INFO]   [CHAT] 9544 TreizeKushrenada move: velocity 0.0000,-0.0784,0.0000
[22Mar2021 11:19:51.907] [Render thread/INFO]   [CHAT] 0080 TreizeKushrenada move: velocity 1.1791,0.4000,0.2223
[22Mar2021 11:19:51.915] [Render thread/INFO]   [CHAT] 0088 TreizeKushrenada move: ! (S) (3.75, 98.85) jump / 0.0968,0.4200,0.0151 actual:1.1894,0.4000,0.2222 phase

You can see that two velocities are given to the player. Next, the player is moving by the second velocity it got, but AAC was still waiting on the first velocity which just got overridden. So AAC thinks instead that the player jumped wrong.