diff --git a/src/main/java/org/dimdev/dimdoors/mixin/PlayerEntityMixin.java b/src/main/java/org/dimdev/dimdoors/mixin/PlayerEntityMixin.java index b4ac7bdd..5e1c5d93 100644 --- a/src/main/java/org/dimdev/dimdoors/mixin/PlayerEntityMixin.java +++ b/src/main/java/org/dimdev/dimdoors/mixin/PlayerEntityMixin.java @@ -1,6 +1,7 @@ package org.dimdev.dimdoors.mixin; import org.dimdev.dimdoors.entity.stat.ModStats; +import org.dimdev.dimdoors.mixin.accessor.EntityAccessor; import org.dimdev.dimdoors.world.ModBiomes; import org.dimdev.dimdoors.world.ModDimensions; import org.spongepowered.asm.mixin.Mixin; @@ -28,7 +29,7 @@ public abstract class PlayerEntityMixin extends LivingEntity { } @Inject(method = "handleFallDamage", at = @At("HEAD"), cancellable = true) - public void handleLimboFallDamage(float fallDistance, float damageMultiplier, CallbackInfoReturnable cir) { + public void handleLimboFallDamage(float fallDistance, float damageMultiplier, DamageSource damageSource, CallbackInfoReturnable cir) { if (this.world.getBiome(this.getBlockPos()) == ModBiomes.LIMBO_BIOME) { cir.setReturnValue(false); } @@ -42,7 +43,7 @@ public abstract class PlayerEntityMixin extends LivingEntity { @Unique protected void doOnDeathStuff(DamageSource source, CallbackInfo ci) { if (ModDimensions.isPocketDimension(this.world)) { - this.removed = false; + ((EntityAccessor) this).setRemovalReason(null); this.dead = false; this.setHealth(this.getMaxHealth()); this.incrementStat(ModStats.DEATHS_IN_POCKETS); diff --git a/src/main/java/org/dimdev/dimdoors/mixin/accessor/EntityAccessor.java b/src/main/java/org/dimdev/dimdoors/mixin/accessor/EntityAccessor.java new file mode 100644 index 00000000..bb7c354d --- /dev/null +++ b/src/main/java/org/dimdev/dimdoors/mixin/accessor/EntityAccessor.java @@ -0,0 +1,12 @@ +package org.dimdev.dimdoors.mixin.accessor; + +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.gen.Accessor; + +import net.minecraft.entity.Entity; + +@Mixin(Entity.class) +public interface EntityAccessor { + @Accessor + void setRemovalReason(Entity.RemovalReason removalReason); +} diff --git a/src/main/resources/dimdoors.mixins.json b/src/main/resources/dimdoors.mixins.json index de1c8bbe..f205ef0a 100644 --- a/src/main/resources/dimdoors.mixins.json +++ b/src/main/resources/dimdoors.mixins.json @@ -12,13 +12,14 @@ "accessor.ChunkGeneratorSettingsAccessor", "accessor.DefaultParticleTypeAccessor", "accessor.DirectionAccessor", + "accessor.EntityAccessor", "accessor.GenerationSettingsAccessor", "accessor.RedstoneWireBlockAccessor", "accessor.StatsAccessor" ], "client": [ - "client.InGameHudMixin", "client.ClientPlayNetworkHandlerMixin", + "client.InGameHudMixin", "client.accessor.GlStateManagerAccessor" ], "injectors": {