diff --git a/common/src/main/java/com/craisinlord/antarchy/content/entity/JumpyBugEntity.java b/common/src/main/java/com/craisinlord/antarchy/content/entity/JumpyBugEntity.java index c1c62755..1d55b90b 100644 --- a/common/src/main/java/com/craisinlord/antarchy/content/entity/JumpyBugEntity.java +++ b/common/src/main/java/com/craisinlord/antarchy/content/entity/JumpyBugEntity.java @@ -26,6 +26,7 @@ import net.minecraft.world.entity.Mob; import net.minecraft.world.entity.MobSpawnType; import net.minecraft.world.entity.MoverType; import net.minecraft.world.entity.SpawnGroupData; +import net.minecraft.world.entity.ai.attributes.AttributeInstance; import net.minecraft.world.entity.ai.attributes.AttributeSupplier; import net.minecraft.world.entity.ai.attributes.Attributes; import net.minecraft.world.entity.ai.goal.FloatGoal; @@ -178,6 +179,10 @@ public class JumpyBugEntity extends Monster implements GeoEntity { @Override @Nullable public SpawnGroupData finalizeSpawn(ServerLevelAccessor level, DifficultyInstance difficulty, MobSpawnType spawnReason, @Nullable SpawnGroupData spawnGroupData) { + AttributeInstance maxHealthAttribute = this.getAttribute(Attributes.MAX_HEALTH); + if (maxHealthAttribute != null) { + maxHealthAttribute.setBaseValue(AntarchySettings.jumpyBugHealth()); + } this.setHealth((float) AntarchySettings.jumpyBugHealth()); return super.finalizeSpawn(level, difficulty, spawnReason, spawnGroupData); } diff --git a/common/src/main/java/com/craisinlord/antarchy/mixins/AbstractMinecartMixin.java b/common/src/main/java/com/craisinlord/antarchy/mixins/AbstractMinecartMixin.java index 87ed3bf4..b2ecfdf9 100644 --- a/common/src/main/java/com/craisinlord/antarchy/mixins/AbstractMinecartMixin.java +++ b/common/src/main/java/com/craisinlord/antarchy/mixins/AbstractMinecartMixin.java @@ -77,12 +77,11 @@ public abstract class AbstractMinecartMixin implements AntimetalMinecartAccess { return BaseRailBlock.isRail(state); } - @Redirect(method = "tick", at = @At(value = "INVOKE", target = "Lnet/minecraft/world/entity/vehicle/AbstractMinecart;moveAlongTrack(Lnet/minecraft/core/BlockPos;Lnet/minecraft/world/level/block/state/BlockState;)V")) - private void antarchy$redirectMoveAlongTrack(AbstractMinecart self, BlockPos pos, BlockState state) { + @Inject(method = "moveAlongTrack", at = @At("HEAD"), cancellable = true) + private void antarchy$redirectMoveAlongTrack(BlockPos pos, BlockState state, CallbackInfo ci) { if (antarchy$antimetalActive && antarchy$antimetalRailPos != null && antarchy$antimetalRailState != null) { - AntimetalMinecartPhysics.moveAlongTrack(self, antarchy$antimetalRailPos, antarchy$antimetalRailState); - } else { - this.moveAlongTrack(pos, state); + AntimetalMinecartPhysics.moveAlongTrack((AbstractMinecart) (Object) this, antarchy$antimetalRailPos, antarchy$antimetalRailState); + ci.cancel(); } }