diff --git a/src/main/java/nekiplay/meteorplus/features/modules/combat/Hunt.java b/src/main/java/nekiplay/meteorplus/features/modules/combat/Hunt.java index 41cebef..acc7eab 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/combat/Hunt.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/combat/Hunt.java @@ -2,6 +2,7 @@ import meteordevelopment.meteorclient.events.world.TickEvent; import meteordevelopment.meteorclient.pathing.PathManagers; +import meteordevelopment.meteorclient.settings.BoolSetting; import meteordevelopment.meteorclient.settings.EntityTypeListSetting; import meteordevelopment.meteorclient.settings.Setting; import meteordevelopment.meteorclient.settings.SettingGroup; @@ -12,11 +13,16 @@ import meteordevelopment.meteorclient.utils.entity.SortPriority; import meteordevelopment.meteorclient.utils.entity.TargetUtils; import meteordevelopment.orbit.EventHandler; +import net.minecraft.block.Block; +import net.minecraft.block.Blocks; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityType; import net.minecraft.entity.LivingEntity; import net.minecraft.entity.Tameable; import net.minecraft.entity.player.PlayerEntity; +import net.minecraft.util.math.BlockPos; +import net.minecraft.util.math.Vec3d; +import net.minecraft.world.World; import java.util.ArrayList; import java.util.Set; @@ -35,6 +41,20 @@ public Hunt() { .build() ); + private final Setting onGround = sgGeneral.add(new BoolSetting.Builder() + .name("On ground only") + .description("Attack entities on ground only") + .defaultValue(false) + .build() + ); + + private final Setting customCheck = sgGeneral.add(new BoolSetting.Builder() + .name("Custom on ground check") + .description("Use a custom on ground check instead of the usual entity.isOnGround. Useful on some servers") + .defaultValue(false) + .build() + ); + private boolean entityCheck(Entity entity) { if (entity.equals(mc.player) || entity.equals(mc.cameraEntity)) return false; if ((entity instanceof LivingEntity && ((LivingEntity) entity).isDead()) || !entity.isAlive()) return false; @@ -54,7 +74,19 @@ private boolean entityCheck(Entity entity) { return false; } } + if (onGround.get()) { + if (customCheck.get()) { + World world = entity.getWorld(); + + Vec3d entityPos = entity.getPos(); + BlockPos posBelow = new BlockPos((int) entityPos.x, (int) (entityPos.y - 1), (int) entityPos.z); + + Block blockBelow = world.getBlockState(posBelow).getBlock(); + return (blockBelow != Blocks.AIR && blockBelow != Blocks.WATER && blockBelow != Blocks.LAVA); + } + else return entity.isOnGround(); + } return true; } private final ArrayList targets = new ArrayList<>(); diff --git a/src/main/java/nekiplay/meteorplus/features/modules/misc/AutoAccept.java b/src/main/java/nekiplay/meteorplus/features/modules/misc/AutoAccept.java index f68f5ca..7b582c4 100644 --- a/src/main/java/nekiplay/meteorplus/features/modules/misc/AutoAccept.java +++ b/src/main/java/nekiplay/meteorplus/features/modules/misc/AutoAccept.java @@ -151,7 +151,7 @@ public void onMessageRecieve(ReceiveMessageEvent event) { } catch (InterruptedException e) { e.printStackTrace(); } - Accept(nickname, pattern, message); + Accept(nickname, custom, message); } } }); diff --git a/src/main/java/nekiplay/meteorplus/mixin/meteorclient/modules/BetterTooltipsMixin.java b/src/main/java/nekiplay/meteorplus/mixin/meteorclient/modules/BetterTooltipsMixin.java index 31ffb05..9a63fc8 100644 --- a/src/main/java/nekiplay/meteorplus/mixin/meteorclient/modules/BetterTooltipsMixin.java +++ b/src/main/java/nekiplay/meteorplus/mixin/meteorclient/modules/BetterTooltipsMixin.java @@ -29,7 +29,7 @@ import static meteordevelopment.meteorclient.systems.modules.render.BetterTooltips.ECHEST_COLOR; -@Mixin(value = BetterTooltips.class) +@Mixin(value = BetterTooltips.class, remap = false) public class BetterTooltipsMixin extends Module { @Shadow @Final diff --git a/src/main/java/nekiplay/meteorplus/mixin/meteorclient/utils/misc/KeybindMixin.java b/src/main/java/nekiplay/meteorplus/mixin/meteorclient/utils/misc/KeybindMixin.java index c6f5ec8..25beb37 100644 --- a/src/main/java/nekiplay/meteorplus/mixin/meteorclient/utils/misc/KeybindMixin.java +++ b/src/main/java/nekiplay/meteorplus/mixin/meteorclient/utils/misc/KeybindMixin.java @@ -8,7 +8,7 @@ @Mixin(value = meteordevelopment.meteorclient.utils.misc.Keybind.class, remap = false) public class KeybindMixin { @Inject(method = "canBindTo", at = @At("HEAD"), cancellable = true) - public void canBind(boolean isKey, int value, int modifers, CallbackInfoReturnable cir) { + public void canBind(boolean isKey, int value, int modifiers, CallbackInfoReturnable cir) { cir.setReturnValue(true); } }