fixed crash w enderscape and issue w jumpy bug not having full health when it spawns

This commit is contained in:
craisinlord committed 2026-07-24 22:44:54 -05:00
1 parent 446029a445
commit db99ce1b96
2 files changed
+9 -5

No files matched your search

@@ -26,6 +26,7 @@ import net.minecraft.world.entity.Mob;
import net.minecraft.world.entity.MobSpawnType; import net.minecraft.world.entity.MobSpawnType;
import net.minecraft.world.entity.MoverType; import net.minecraft.world.entity.MoverType;
import net.minecraft.world.entity.SpawnGroupData; 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.AttributeSupplier;
import net.minecraft.world.entity.ai.attributes.Attributes; import net.minecraft.world.entity.ai.attributes.Attributes;
import net.minecraft.world.entity.ai.goal.FloatGoal; import net.minecraft.world.entity.ai.goal.FloatGoal;
@@ -178,6 +179,10 @@ public class JumpyBugEntity extends Monster implements GeoEntity {
@Override @Override
@Nullable @Nullable
public SpawnGroupData finalizeSpawn(ServerLevelAccessor level, DifficultyInstance difficulty, MobSpawnType spawnReason, @Nullable SpawnGroupData spawnGroupData) { 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()); this.setHealth((float) AntarchySettings.jumpyBugHealth());
return super.finalizeSpawn(level, difficulty, spawnReason, spawnGroupData); return super.finalizeSpawn(level, difficulty, spawnReason, spawnGroupData);
} }
@@ -77,12 +77,11 @@ public abstract class AbstractMinecartMixin implements AntimetalMinecartAccess {
return BaseRailBlock.isRail(state); 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")) @Inject(method = "moveAlongTrack", at = @At("HEAD"), cancellable = true)
private void antarchy$redirectMoveAlongTrack(AbstractMinecart self, BlockPos pos, BlockState state) { private void antarchy$redirectMoveAlongTrack(BlockPos pos, BlockState state, CallbackInfo ci) {
if (antarchy$antimetalActive && antarchy$antimetalRailPos != null && antarchy$antimetalRailState != null) { if (antarchy$antimetalActive && antarchy$antimetalRailPos != null && antarchy$antimetalRailState != null) {
AntimetalMinecartPhysics.moveAlongTrack(self, antarchy$antimetalRailPos, antarchy$antimetalRailState); AntimetalMinecartPhysics.moveAlongTrack((AbstractMinecart) (Object) this, antarchy$antimetalRailPos, antarchy$antimetalRailState);
} else { ci.cancel();
this.moveAlongTrack(pos, state);
} }
} }