aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/server/0936-Fix-advancement-triggers-for-entity-damage.patch
blob: 8f732ca932e57ed96edb1d8dc4ee05f5b5f5b20c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Jake Potrebic <jake.m.potrebic@gmail.com>
Date: Thu, 16 Mar 2023 10:04:17 +0100
Subject: [PATCH] Fix advancement triggers for entity damage

Changes the Interaction entity's trigger to use the vanilla
generic damage source

Fixes a couple places where the original damage and modified damage
were passed in the reverse order to the advancement triggers

diff --git a/src/main/java/net/minecraft/world/entity/Interaction.java b/src/main/java/net/minecraft/world/entity/Interaction.java
index f054d67a637b204de604fadc0d321f5c9816d808..fc5f1e1b445f0a55a35a31d58a90920a80275662 100644
--- a/src/main/java/net/minecraft/world/entity/Interaction.java
+++ b/src/main/java/net/minecraft/world/entity/Interaction.java
@@ -160,7 +160,7 @@ public class Interaction extends Entity implements Attackable, Targeting {
             if (entityhuman instanceof ServerPlayer) {
                 ServerPlayer entityplayer = (ServerPlayer) entityhuman;
 
-                CriteriaTriggers.PLAYER_HURT_ENTITY.trigger(entityplayer, this, source, (float) event.getFinalDamage(), 1.0F, false); // CraftBukkit
+                CriteriaTriggers.PLAYER_HURT_ENTITY.trigger(entityplayer, this, entityhuman.damageSources().generic(), 1.0F, (float) event.getFinalDamage(), false); // CraftBukkit // Paper - use correct source and fix taken/dealt param order
             }
 
             return !this.getResponse();
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index 0d710469aea2718d5be7806a565b886316d26b0c..dee49691dcaac57ab56195a4dd299a5c23a56bbb 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -2273,7 +2273,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
                 // Duplicate triggers if blocking
                 if (event.getDamage(DamageModifier.BLOCKING) < 0) {
                     if (this instanceof ServerPlayer) {
-                        CriteriaTriggers.ENTITY_HURT_PLAYER.trigger((ServerPlayer) this, damagesource, f, originalDamage, true);
+                        CriteriaTriggers.ENTITY_HURT_PLAYER.trigger((ServerPlayer) this, damagesource, originalDamage, f, true); // Paper - fix taken/dealt param order
                         f2 = (float) -event.getDamage(DamageModifier.BLOCKING);
                         if (f2 > 0.0F && f2 < 3.4028235E37F) {
                             ((ServerPlayer) this).awardStat(Stats.DAMAGE_BLOCKED_BY_SHIELD, Math.round(originalDamage * 10.0F));
@@ -2281,7 +2281,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
                     }
 
                     if (damagesource.getEntity() instanceof ServerPlayer) {
-                        CriteriaTriggers.PLAYER_HURT_ENTITY.trigger((ServerPlayer) damagesource.getEntity(), this, damagesource, f, originalDamage, true);
+                        CriteriaTriggers.PLAYER_HURT_ENTITY.trigger((ServerPlayer) damagesource.getEntity(), this, damagesource, originalDamage, f, true); // Paper - fix taken/dealt param order
                     }
 
                     return false;