diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/AutoBreed.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/AutoBreed.java index 224a96eaf2..1aab0f9a7c 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/world/AutoBreed.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/world/AutoBreed.java @@ -50,10 +50,10 @@ public class AutoBreed extends Module { .build() ); - private final Setting ignoreBabies = sgGeneral.add(new BoolSetting.Builder() - .name("ignore-babies") - .description("Whether or not to ignore the baby variants of the specified entity.") - .defaultValue(true) + private final Setting mobAgeFilter = sgGeneral.add(new EnumSetting.Builder() + .name("mob-age-filter") + .description("Determines the age of the mobs to target (baby, adult, or both).") + .defaultValue(EntityAge.Adult) .build() ); @@ -71,16 +71,18 @@ public void onActivate() { @EventHandler private void onTick(TickEvent.Pre event) { for (Entity entity : mc.world.getEntities()) { - AnimalEntity animal; - - if (!(entity instanceof AnimalEntity)) continue; - else animal = (AnimalEntity) entity; + if (!(entity instanceof AnimalEntity animal)) continue; if (!entities.get().contains(animal.getType()) - || (animal.isBaby() && !ignoreBabies.get()) - || animalsFed.contains(animal) - || !PlayerUtils.isWithin(animal, range.get()) - || !animal.isBreedingItem(hand.get() == Hand.MAIN_HAND ? mc.player.getMainHandStack() : mc.player.getOffHandStack())) continue; + || !switch (mobAgeFilter.get()) { + case Baby -> animal.isBaby(); + case Adult -> !animal.isBaby(); + case Both -> true; + } + || animalsFed.contains(animal) + || !PlayerUtils.isWithin(animal, range.get()) + || !animal.isBreedingItem(hand.get() == Hand.MAIN_HAND ? mc.player.getMainHandStack() : mc.player.getOffHandStack())) + continue; Rotations.rotate(Rotations.getYaw(entity), Rotations.getPitch(entity), -100, () -> { mc.interactionManager.interactEntity(mc.player, animal, hand.get()); @@ -91,4 +93,10 @@ private void onTick(TickEvent.Pre event) { return; } } + + public enum EntityAge { + Baby, + Adult, + Both + } }