diff --git a/paper-server/patches/sources/net/minecraft/world/damagesource/CombatTracker.java.patch b/paper-server/patches/sources/net/minecraft/world/damagesource/CombatTracker.java.patch index 49f1423f5..11b79f9cf 100644 --- a/paper-server/patches/sources/net/minecraft/world/damagesource/CombatTracker.java.patch +++ b/paper-server/patches/sources/net/minecraft/world/damagesource/CombatTracker.java.patch @@ -1,6 +1,17 @@ --- a/net/minecraft/world/damagesource/CombatTracker.java +++ b/net/minecraft/world/damagesource/CombatTracker.java -@@ -38,6 +_,13 @@ +@@ -29,15 +_,24 @@ + private int combatEndTime; + public boolean inCombat; + public boolean takingDamage; ++ public final io.papermc.paper.world.damagesource.PaperCombatTrackerWrapper paperCombatTracker; // Paper - Combat tracker API + + public CombatTracker(LivingEntity mob) { + this.mob = mob; ++ this.paperCombatTracker = new io.papermc.paper.world.damagesource.PaperCombatTrackerWrapper(this); // Paper - Combat tracker API + } + + public void recordDamage(DamageSource source, float damage) { this.recheckStatus(); FallLocation currentFallLocation = FallLocation.getCurrentFallLocation(this.mob); CombatEntry combatEntry = new CombatEntry(source, damage, currentFallLocation, (float)this.mob.fallDistance); diff --git a/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java index ff8987ca8..13feb2f7a 100644 --- a/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java +++ b/paper-server/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java @@ -10,8 +10,6 @@ import java.util.Set; import java.util.UUID; import net.minecraft.Optionull; import io.papermc.paper.world.damagesource.CombatTracker; -import io.papermc.paper.world.damagesource.PaperCombatTrackerWrapper; -import io.papermc.paper.world.damagesource.FallLocationType; import net.minecraft.core.component.DataComponents; import net.minecraft.network.protocol.game.ClientboundHurtAnimationPacket; import net.minecraft.server.level.ServerLevel; @@ -94,14 +92,11 @@ import org.bukkit.util.Vector; public class CraftLivingEntity extends CraftEntity implements LivingEntity { - private final PaperCombatTrackerWrapper combatTracker; private CraftEntityEquipment equipment; public CraftLivingEntity(final CraftServer server, final net.minecraft.world.entity.LivingEntity entity) { super(server, entity); - this.combatTracker = new PaperCombatTrackerWrapper(entity.getCombatTracker()); - if (entity instanceof Mob || entity instanceof ArmorStand) { this.equipment = new CraftEntityEquipment(this); } @@ -1168,6 +1163,6 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity { @Override public CombatTracker getCombatTracker() { - return this.combatTracker; + return this.getHandle().getCombatTracker().paperCombatTracker; } }