diff --git a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/Criticals.java b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/Criticals.java index cde439f98f..02e60af412 100644 --- a/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/Criticals.java +++ b/src/main/java/meteordevelopment/meteorclient/systems/modules/combat/Criticals.java @@ -15,6 +15,7 @@ import meteordevelopment.meteorclient.systems.modules.Categories; import meteordevelopment.meteorclient.systems.modules.Module; import meteordevelopment.meteorclient.systems.modules.Modules; +import meteordevelopment.meteorclient.utils.entity.EntityUtils; import meteordevelopment.orbit.EventHandler; import net.minecraft.entity.Entity; import net.minecraft.entity.LivingEntity; @@ -151,14 +152,17 @@ private void onTick(TickEvent.Pre event) { } if (sendTimer <= 0) { - sendPackets = false; - - if (attackPacket == null || swingPacket == null) return; + if (attackPacket == null || swingPacket == null) { + sendPackets = false; + return; + } mc.getNetworkHandler().sendPacket(attackPacket); mc.getNetworkHandler().sendPacket(swingPacket); attackPacket = null; swingPacket = null; + + sendPackets = false; } else { sendTimer--; } @@ -177,6 +181,9 @@ private void sendPacket(double height) { } private boolean skipCrit() { + if (EntityUtils.isInCobweb(mc.player) && (mode.get() == Mode.Jump || mode.get() == Mode.MiniJump)) + return true; + return !mc.player.isOnGround() || mc.player.isSubmergedInWater() || mc.player.isInLava() || mc.player.isClimbing(); } diff --git a/src/main/java/meteordevelopment/meteorclient/utils/entity/EntityUtils.java b/src/main/java/meteordevelopment/meteorclient/utils/entity/EntityUtils.java index bb292a732b..7fd5fb4579 100644 --- a/src/main/java/meteordevelopment/meteorclient/utils/entity/EntityUtils.java +++ b/src/main/java/meteordevelopment/meteorclient/utils/entity/EntityUtils.java @@ -92,6 +92,10 @@ public static boolean isAboveWater(Entity entity) { return false; } + public static boolean isInCobweb(Entity entity) { + return mc.world.getStatesInBoxIfLoaded(entity.getBoundingBox()).anyMatch(state -> state.isOf(Blocks.COBWEB)); + } + public static boolean isInRenderDistance(Entity entity) { if (entity == null) return false; return isInRenderDistance(entity.getX(), entity.getZ());