Paper icon indicating copy to clipboard operation
Paper copied to clipboard

Fix Shield Disables / "Stunning"

Open JackerAcid opened this issue 1 year ago • 5 comments

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

JackerAcid avatar May 18 '24 01:05 JackerAcid

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

notTamion avatar May 18 '24 05:05 notTamion

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.

Malfrador avatar May 18 '24 21:05 Malfrador

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.

JackerAcid avatar May 19 '24 03:05 JackerAcid

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

LoliColleen avatar May 19 '24 17:05 LoliColleen

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.

LoliColleen avatar May 19 '24 17:05 LoliColleen

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

Longie520 avatar Jun 07 '24 12:06 Longie520

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=

LoliColleen avatar Jun 07 '24 20:06 LoliColleen

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

NuclearBees avatar Jun 11 '24 20:06 NuclearBees

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:

lynxplay avatar Jun 13 '24 19:06 lynxplay

#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😭

LoliColleen avatar Jun 14 '24 04:06 LoliColleen

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

lynxplay avatar Jun 17 '24 15:06 lynxplay