From 3158d42a9fc19e32b0a69030bffa800d08b32087 Mon Sep 17 00:00:00 2001 From: IzzelAliz Date: Sat, 8 Aug 2020 14:33:28 +0800 Subject: [PATCH] Fix early initialization of Bukkit entities when constructing Entity. --- .../common/mixin/core/entity/LivingEntityMixin.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/arclight-common/src/main/java/io/izzel/arclight/common/mixin/core/entity/LivingEntityMixin.java b/arclight-common/src/main/java/io/izzel/arclight/common/mixin/core/entity/LivingEntityMixin.java index 52035e01..1cca13ed 100644 --- a/arclight-common/src/main/java/io/izzel/arclight/common/mixin/core/entity/LivingEntityMixin.java +++ b/arclight-common/src/main/java/io/izzel/arclight/common/mixin/core/entity/LivingEntityMixin.java @@ -125,7 +125,6 @@ public abstract class LivingEntityMixin extends EntityMixin implements LivingEnt @Shadow public abstract void setAbsorptionAmount(float amount); @Shadow public abstract CombatTracker getCombatTracker(); @Shadow private AbstractAttributeMap attributes; - @Shadow public abstract boolean isAlive(); @Shadow public abstract boolean isOnLadder(); @Shadow protected ItemStack activeItemStack; @Shadow public abstract void onItemPickup(Entity entityIn, int quantity); @@ -237,6 +236,15 @@ public abstract class LivingEntityMixin extends EntityMixin implements LivingEnt } } + /** + * @author IzzelAliz + * @reason + */ + @Overwrite + public boolean isAlive() { + return !this.removed && this.dataManager.get(HEALTH) > 0.0F; + } + @Inject(method = "getHealth", cancellable = true, at = @At("HEAD")) public void arclight$scaledHealth(CallbackInfoReturnable cir) { if (this instanceof ServerPlayerEntityBridge) {