geforkt von Mirrors/Paper
Fix entity damage event triggers (#8995)
Dieser Commit ist enthalten in:
Ursprung
d8a4261a4d
Commit
3db404320a
@ -1,19 +0,0 @@
|
|||||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Nassim Jahnke <nassim@njahnke.dev>
|
|
||||||
Date: Thu, 16 Mar 2023 10:04:17 +0100
|
|
||||||
Subject: [PATCH] Dont change Interaction attack damage source
|
|
||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/Interaction.java b/src/main/java/net/minecraft/world/entity/Interaction.java
|
|
||||||
index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
|
||||||
--- a/src/main/java/net/minecraft/world/entity/Interaction.java
|
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/Interaction.java
|
|
||||||
@@ -0,0 +0,0 @@ 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(), (float) event.getFinalDamage(), 1.0F, false); // CraftBukkit // Paper
|
|
||||||
}
|
|
||||||
|
|
||||||
return !this.getResponse();
|
|
46
patches/server/Fix-advancement-triggers-for-entity-damage.patch
Normale Datei
46
patches/server/Fix-advancement-triggers-for-entity-damage.patch
Normale Datei
@ -0,0 +1,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 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||||
|
--- a/src/main/java/net/minecraft/world/entity/Interaction.java
|
||||||
|
+++ b/src/main/java/net/minecraft/world/entity/Interaction.java
|
||||||
|
@@ -0,0 +0,0 @@ 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 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 100644
|
||||||
|
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||||
|
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||||
|
@@ -0,0 +0,0 @@ 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));
|
||||||
|
@@ -0,0 +0,0 @@ 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;
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren