This is a simple bug. When an axe disables your shield, you can still block by holding right-click. It just doesn't show you blocking (To you and to others), but it still blocks.
How to reproduce:
1- Get a player to sprint and hit you with an axe while you are blocking with shield
2- Hold right-click and get the player to hit you
3- You notice the damage was blocked.
Code analysis by @unknown in this comment.
Linked issues
relates to 1
Comments 11
specifically, disabling appears not to force you to unblock, but to prevent you blocking again after you unblock for the duration. that is, if it is disabled, you can stay blocking, but if you unblock, you cannot reblock. tested and I took damage if unblocked and reblock, but not if I never stopped blocking
No, what @unknown said is correct, right-clicking with the shield has no effect at all, the player just keeps blocking.
Please link to this comment in the description
The following is based on a decompiled version of Minecraft 1.10 using MCP 9.30.
The problem is that the game only sets a cooldown for shields but does not actually disable the currently used shield. To fix this, the methods net.minecraft.entity.player.EntityPlayer.attackTargetEntityWithCurrentItem(Entity)
and net.minecraft.entity.monster.EntityMob.attackEntityAsMob(Entity)
should probably call the method net.minecraft.entity.EntityLivingBase.resetActiveHand()
as well when they set the cooldown for the shield.
Note: The bug that the player keeps blocking without holding a the use item key is caused by MC-86252.
It works even if you don't press right click after the first hit, this breaks completly PvP Axe Mechanic.
In 17w17b I haven't been able to reproduce this with Vindicators in singleplayer (shield is disabled and damage not blocked), though I'm not sure if multiplayers work the same way..
can confirm for 16w39a. tested on LAN, their shield icon had the white disable effect, but hitting them had no effect.