mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-18 20:53:09 +01:00
da9d110d5b
This patch does not appear to be doing anything useful, and may hide errors. Currently, the save logic does not run through this path either so it did not do anything. Additionally, properly implement support for handling RegionFileSizeException in Moonrise.
46 lines
3.3 KiB
Diff
46 lines
3.3 KiB
Diff
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 821bb93e1b055ba38fafe3b7079d79aa062ebe8a..221d73676fe2fd240a47cf312c1179e049298cac 100644
|
|
--- a/src/main/java/net/minecraft/world/entity/Interaction.java
|
|
+++ b/src/main/java/net/minecraft/world/entity/Interaction.java
|
|
@@ -159,7 +159,7 @@ public class Interaction extends Entity implements Attackable, Targeting {
|
|
// CraftBukkit end
|
|
this.attack = new Interaction.PlayerAction(entityhuman.getUUID(), this.level().getGameTime());
|
|
if (entityhuman instanceof ServerPlayer entityplayer) {
|
|
- 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 633c37844062ad93c7241b78663a14a33570c30b..7bce1bd9ff1d76c5a238d03475d8bcdaaca680d3 100644
|
|
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
|
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
|
@@ -2464,7 +2464,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));
|
|
@@ -2472,7 +2472,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 true;
|