aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/server/0402-Add-PlayerAttackEntityCooldownResetEvent.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patches/server/0402-Add-PlayerAttackEntityCooldownResetEvent.patch')
-rw-r--r--patches/server/0402-Add-PlayerAttackEntityCooldownResetEvent.patch28
1 files changed, 28 insertions, 0 deletions
diff --git a/patches/server/0402-Add-PlayerAttackEntityCooldownResetEvent.patch b/patches/server/0402-Add-PlayerAttackEntityCooldownResetEvent.patch
new file mode 100644
index 0000000000..f55e537dd5
--- /dev/null
+++ b/patches/server/0402-Add-PlayerAttackEntityCooldownResetEvent.patch
@@ -0,0 +1,28 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: nossr50 <[email protected]>
+Date: Thu, 26 Mar 2020 19:44:50 -0700
+Subject: [PATCH] Add PlayerAttackEntityCooldownResetEvent
+
+
+diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
+index 73be677946a5e7b1f522b69bef395b0725996e5c..a34566fbdb2e2ffb80f239c0d1d5c94ecf7f91ff 100644
+--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
++++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
+@@ -2058,7 +2058,16 @@ public abstract class LivingEntity extends Entity {
+
+ EntityDamageEvent event = CraftEventFactory.handleLivingEntityDamageEvent(this, damagesource, originalDamage, hardHatModifier, blockingModifier, armorModifier, resistanceModifier, magicModifier, absorptionModifier, hardHat, blocking, armor, resistance, magic, absorption);
+ if (damagesource.getEntity() instanceof net.minecraft.world.entity.player.Player) {
+- ((net.minecraft.world.entity.player.Player) damagesource.getEntity()).resetAttackStrengthTicker(); // Moved from EntityHuman in order to make the cooldown reset get called after the damage event is fired
++ // Paper start - PlayerAttackEntityCooldownResetEvent
++ if (damagesource.getEntity() instanceof ServerPlayer) {
++ ServerPlayer player = (ServerPlayer) damagesource.getEntity();
++ if (new com.destroystokyo.paper.event.player.PlayerAttackEntityCooldownResetEvent(player.getBukkitEntity(), this.getBukkitEntity(), player.getAttackStrengthScale(0F)).callEvent()) {
++ player.resetAttackStrengthTicker();
++ }
++ } else {
++ ((net.minecraft.world.entity.player.Player) damagesource.getEntity()).resetAttackStrengthTicker();
++ }
++ // Paper end
+ }
+ if (event.isCancelled()) {
+ return false;