mojira.dev
MC-268147

Disabling/Breaking shield triggers invulnerability tick behavior, despite player not turning red

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

  1. Disable a player's held-up shield using an axe

  2. And then hit the player again after roughly 0.4 seconds

  3. The bug is reproduced

OR

  1. Let 2 mobs (wielding axes) attack a player while their shield is held up

  2. 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

Attachments

Comments 23

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.

Can confirm for 24w10a.

Reproducible in 1.20.6

Reproducible in 1.11.2

Reproducible in 24w21b

13 more comments

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.

Longieee

(Unassigned)

Community Consensus

Combat

1.18.2, 1.20.4, 1.20.6, 24w21b, 1.21, 1.21 Release Candidate 1, 1.21.1, 1.21.3, 1.21.4

Retrieved