Fix Shield Disables / "Stunning"
Expected behavior
https://youtu.be/Gnm6FX6RT9o
Shield stunning behavior in 1.20.4 Paper
You can hit the player again after the shield breaks instantly
Observed/Actual behavior
https://youtu.be/A0TMlDv_RVE
Shield stunning behavior in 1.20.6 Paper
Seems to be a delay between breaking the shield and when you are able to hit the player again
Steps/models to reproduce
Get someone to hold up their shield and spam click them
Observe the difference between a Paper Server running 1.20.4 versus 1.20.6
Plugin and Datapack List
Included in the above videos
Paper version
Included in the above videos
Other
Resource/Tutorial for Stunning and its many uses: https://www.youtube.com/watch?v=HRZDGVCrDh4
Although some may have issues with it. It has become a crucial part of Minecraft 1.9+ PvP for the past several years, allowing for more fast-paced and tactical gameplay, people spending hundreds of hours mastering this technique, due in fact that almost all PvP and Event servers use Paper or a variation of it.
I ask that this new behavior be reverted or atleast add a configurable option in Paper to change this behavior.
Also it might be likely that servers stay on Paper 1.20.4 just to keep stunning
I mean i can not replicate stunning on a vanilla server only paper one meaning the bug was introduced by cb/spigot/paper at some point. Since the current behavior seems to work as intended i doubt there will be an option added for this to re-enable the bug
Can reproduce.
I personally would be very much in favour of adding a configuration option for this. I agree that its a relatively important PvP mechanic, and vanilla behaviour here is just plain worse - even if it likely was just a unintended side-effect of the (frankly pretty horrible) changes Craftbukkit does in the LivingEntity#damage methods.
However, such a configuration option would need to be PR'ed and maintained, which of course is work. Not entirely sure how viable it would be to restore the old behaviour with a plugin - its possible to set the invulnerability, and there is the PrePlayerAttackEntityEvent (Paper only) too.
Can reproduce.
I personally would be very much in favour of adding a configuration option for this. I agree that its a relatively important PvP mechanic, and vanilla behaviour here is just plain worse - even if it likely was just a unintended side-effect of the (frankly pretty horrible) changes Craftbukkit does in the LivingEntity#damage methods.
However, such a configuration option would need to be PR'ed and maintained, which of course is work. Not entirely sure how viable it would be to restore the old behaviour with a plugin - its possible to set the invulnerability, and there is the PrePlayerAttackEntityEvent (Paper only) too.
Even though it may not be vanilla, stuns have been a major part in Minecraft PvP that the community has enjoyed, so I feel like it would be worth it to support a config option for this, unintended bugs can be features you know.
The option to modify the behavior seems feasible. But I personally don't agree. The reason for this is that version 1.20.4 and before that can produce this behavior is essentially a code bug on CraftBukkit. This bug not only causes shield disabled behavior to be abnormal, but also causes MC-147694 error to be called. This bug on CraftBukkit, together with MC-147694, produces the abnormal behavior of "Stunning", which also causes abnormal repel when shields are defending. (For example: When the victim takes magma damage while raising his shield and is subsequently attacked by another player, the victim is repelled forward; Slime reduces shield durability at a very high speed) MC-147694: https://bugs.mojang.com/browse/MC-147694
In addition, plugins can reproduce this behavior. Can monitor EntityDamageByEntityEvent if damage source be blocked when cancel this event. Then make some changes to the contents such as the item durability.
About this issue, there is still deviation from Vanilla
In Vanilla, even if the second attack of a stun does no knockback - which I reported as MC-268147, damage is still dealt, since the shield breaking action count as a Damage Tick and allow greater damage to be applied. Video
But on Paper, no damage cannot be dealt after the shield break, which is not the normal Damage Tick behaviour. Video
About this issue, there is still deviation from Vanilla
In Vanilla, even if the second attack of a stun does no knockback - which I reported as MC-268147, damage is still dealt, since the shield breaking action count as a Damage Tick and allow greater damage to be applied. Video
But on Paper, no damage cannot be dealt after the shield break, which is not the normal Damage Tick behaviour. Video
But this bug doesn't really have much to do with that. And this bug should be reported to spigot jira. https://hub.spigotmc.org/jira/browse/SPIGOT-7732?jql=
Expected behavior
https://youtu.be/Gnm6FX6RT9o
Shield stunning behavior in 1.20.4 Paper
You can hit the player again after the shield breaks instantly
Observed/Actual behavior
https://youtu.be/A0TMlDv_RVE
Shield stunning behavior in 1.20.6 Paper
Seems to be a delay between breaking the shield and when you are able to hit the player again
Steps/models to reproduce
Get someone to hold up their shield and spam click them
Observe the difference between a Paper Server running 1.20.4 versus 1.20.6
Plugin and Datapack List
Included in the above videos
Paper version
Included in the above videos
Other
Resource/Tutorial for Stunning and its many uses: https://www.youtube.com/watch?v=HRZDGVCrDh4
Although some may have issues with it. It has become a crucial part of Minecraft 1.9+ PvP for the past several years, allowing for more fast-paced and tactical gameplay, people spending hundreds of hours mastering this technique, due in fact that almost all PvP and Event servers use Paper or a variation of it.
I ask that this new behavior be reverted or atleast add a configurable option in Paper to change this behavior.
Also it might be likely that servers stay on Paper 1.20.4 just to keep stunning
Definitely agree. The vast majority of PVPers oppose this change because we've been using and learning this mechanic for a long time and it's good for gameplay. I really would like to see this kept in somehow; it doesn't hurt gameplay
https://github.com/PaperMC/Paper/pull/10877 created a PR for this, the option will have to live in unsupported, given it introduces a bug we are technically trying to solve.
It would be great if you guys can test this, given I myself am not the pvp god to hit a double click by mystically smacking my finger on a (razor omg) mouse :sweat_smile:
#10877 created a PR for this, the option will have to live in unsupported, given it introduces a bug we are technically trying to solve.
It would be great if you guys can test this, given I myself am not the pvp god to hit a double click by mystically smacking my finger on a (razor omg) mouse 😅
It seems to work. Of course, this option allows Slime to destroy the shield at great speed again😭
Resolved in 1.20.6 and 1.21 with https://docs.papermc.io/paper/reference/global-configuration#unsupported_settings_skip_vanilla_damage_tick_when_shield_blocked