This has been around for a while, but I haven't seen anyone report this issue, as many non-vanilla server software have hotfixes for this.
Bug Description
When a held-up shield is disabled, a damage-tick-like behavior occurs: the player no longer receives knockback, and only takes damage that is greater than the initial damage within the damage tick. However, the player does not turn red, nor has received any damage on the shield disable. See also the attached videos.
Steps to Reproduce
Disable a player's held-up shield using an axe
And then hit the player again after roughly 0.4 seconds
The bug is reproduced
OR
Let 2 mobs (wielding axes) attack a player while their shield is held up
If the 2 mobs attack is less than 0.5 seconds apart as well as not at the same time, the bug is reproduced
Expected Behavior
Damage tick does not get triggered when the shield is disabled, but on the following attack instead, so that knockback could be applied after hitting twice rapidly, and the player would turn red on the second hit.
Environment
M1 MacBook Pro
Bundled Java Runtime (Gamma, ARM64)
Vanilla client hosted LAN world
Linked issues
is duplicated by 2
Attachments
Comments 23
Shield blocking triggers 10 invulnerability tick but player not turning red, so I don’t think this is a designed feature. On Bedrock Edition, after getting shield disabled, player can receive knockback normally.
However, I don’t support shield stunning because this is paper’s bug but not vanilla. Shield launches player forward after 1.14 (MC-147694), this reduces XZ knockback and increases Y knockback. The proper shield stunning (hit shield with axe 2 times in 1 tick) should have the same knockback with weak attack, but not lower on XZ and higher on Y.
However, I don’t support shield stunning because this is paper’s bug but not vanilla. Shield launches player forward after 1.14, without hurtmarked player won’t take this knockback, but the next hit in the same tick triggers this. Compared with normal weak attack, this bug reduces XZ knockback and increases Y knockback.
It’s no reason to use incorrect forward knockback and call it a PVP technic.
Forward knockback is caused by MC-147694
Reply to Primitive Enderdragon: This issue is not related to that one. Shields not dealing knockback to attackers is naturally not related to to invulnerability tick behavior.
@SeaOfPixels
I know these two bugs are not related in code. What I want to say is, if you just remove invulnerability time of shield blocking (Paper server has this and it brings strange shield stunning knockback), it does fix MC268147, but then you will find shield knockback defender forward because of MC147694.
So, do you think Paper does the appropriate fix? Absolutely not. It needs to fix more than 1 bugs for expected shield mechanics.
Note that this bug is related to MC-105068 , as that bug happens because of the invulnerbility tick behavior. It seems that, when a shielding player is attacked by an axe, they are actually hit by that attack (attack is not actually blocked), but the attack’s damage is reduced to 0. This would explain the invulnerability tick behavior, and explains why you hear the player damage sound.
I can confirm in 1.20.4, I have video of it as well if it's useful.
I've experienced the bug in 1.18.2, 1.19.2, 1.19.3, 1.19.4, 1.20.1, 1.20.2 and then 1.20.4.
But it may very well be an even older bug.