From 874802218cdfc23803e37e5364a9d674b2c43c55 Mon Sep 17 00:00:00 2001 From: Soda5601 <62250232+ThebestkillerTBK@users.noreply.github.com> Date: Wed, 8 Feb 2023 18:51:14 +0800 Subject: [PATCH] Shield Bypass Improvements (#224) --- .../rejects/modules/ShieldBypass.java | 35 ++++++++++++------- 1 file changed, 23 insertions(+), 12 deletions(-) diff --git a/src/main/java/anticope/rejects/modules/ShieldBypass.java b/src/main/java/anticope/rejects/modules/ShieldBypass.java index 4c49784..6c53ff4 100644 --- a/src/main/java/anticope/rejects/modules/ShieldBypass.java +++ b/src/main/java/anticope/rejects/modules/ShieldBypass.java @@ -4,6 +4,7 @@ import anticope.rejects.MeteorRejectsAddon; import meteordevelopment.meteorclient.events.entity.player.AttackEntityEvent; import meteordevelopment.meteorclient.events.world.TickEvent; import meteordevelopment.meteorclient.settings.BoolSetting; +import meteordevelopment.meteorclient.settings.DoubleSetting; import meteordevelopment.meteorclient.settings.Setting; import meteordevelopment.meteorclient.settings.SettingGroup; import meteordevelopment.meteorclient.systems.modules.Module; @@ -11,7 +12,7 @@ import meteordevelopment.meteorclient.utils.player.Rotations; import meteordevelopment.orbit.EventHandler; import net.minecraft.entity.Entity; import net.minecraft.entity.LivingEntity; -import net.minecraft.item.Items; +import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Vec3d; public class ShieldBypass extends Module { @@ -50,22 +51,32 @@ public class ShieldBypass extends Module { @EventHandler private void onAttackEntity(AttackEntityEvent event) { - if (event.entity instanceof LivingEntity e && e.getMainHandStack().getItem() == Items.SHIELD && e.isBlocking()) { + if (event.entity instanceof LivingEntity e && e.isBlocking()) { if (originalPos != null) return; - originalPos = mc.player.getPos(); - - Vec3d targetPos = e.getPos(); - - Vec3d vec3d3 = originalPos.relativize(targetPos).normalize(); + Vec3d originalPos = mc.player.getPos(); + // Shield check + Vec3d vec3d3 = originalPos.relativize(e.getPos()).normalize(); if (new Vec3d(vec3d3.x, 0.0d, vec3d3.z).dotProduct(e.getRotationVec(1.0f)) >= 0.0d) return; - Vec3d tp = Vec3d.fromPolar(0, mc.player.getYaw()).normalize().multiply(mc.player.distanceTo(e)); - mc.player.setPosition(targetPos.x + tp.x, targetPos.y, targetPos.z + tp.z); - if (rotate.get()) Rotations.rotate(-mc.player.getYaw(), mc.player.getPitch()); - target = e; - event.cancel(); + double range = mc.player.distanceTo(e); + while (range >= 0) { + Vec3d tp = Vec3d.fromPolar(0, mc.player.getYaw()).normalize().multiply(range); + Vec3d newPos = tp.add(e.getPos()); + BlockPos pos = new BlockPos(newPos); + for (int i = -2; i <= 2; i++) { + if (mc.player.world.getBlockState(pos.up(i)).isAir() && mc.player.world.getBlockState(pos).isAir()) { + this.originalPos = originalPos; + if (rotate.get()) Rotations.rotate(-mc.player.getYaw(), mc.player.getPitch()); + target = e; + event.cancel(); + mc.player.setPosition(newPos.add(0, i, 0)); + return; + } + } + range--; + } } } }