From 106f714cc9ec40245645286ac46501e8e5c37ffa Mon Sep 17 00:00:00 2001 From: jackh Date: Wed, 26 Mar 2025 16:57:00 -0700 Subject: [PATCH] Latest release --- .../impl/entity/MixinEntityPlayerSP.java | 4 +- .../keystrokesmod/module/ModuleManager.java | 2 + .../module/impl/combat/KillAura.java | 22 +- .../module/impl/movement/NoSlow.java | 19 - .../module/impl/player/AntiVoid.java | 547 ++++++++++++++++++ .../module/impl/player/Blink.java | 4 + .../module/impl/player/NoFall.java | 5 + .../module/impl/player/Scaffold.java | 135 ++--- .../keystrokesmod/utility/ModuleUtils.java | 2 +- .../java/keystrokesmod/utility/Utils.java | 18 + 10 files changed, 661 insertions(+), 97 deletions(-) create mode 100644 src/main/java/keystrokesmod/module/impl/player/AntiVoid.java diff --git a/src/main/java/keystrokesmod/mixin/impl/entity/MixinEntityPlayerSP.java b/src/main/java/keystrokesmod/mixin/impl/entity/MixinEntityPlayerSP.java index 1abdfcb..c704375 100644 --- a/src/main/java/keystrokesmod/mixin/impl/entity/MixinEntityPlayerSP.java +++ b/src/main/java/keystrokesmod/mixin/impl/entity/MixinEntityPlayerSP.java @@ -291,11 +291,11 @@ public abstract class MixinEntityPlayerSP extends AbstractClientPlayer { } } - if (!this.isSprinting() && this.mc.gameSettings.keyBindSprint.isKeyDown() && (this.movementInput.moveForward != 0 || this.movementInput.moveStrafe != 0) && (ModuleManager.sprint.omniSprint() || ModuleManager.scaffold.sprint() || NoSlow.groundSpeed() || this.movementInput.moveForward >= f && flag3) && (!(this.isUsingItem() || mc.thePlayer.isBlocking()) || !stopSprint) && !this.isPotionActive(Potion.blindness)) { + if (!this.isSprinting() && this.mc.gameSettings.keyBindSprint.isKeyDown() && (this.movementInput.moveForward != 0 || this.movementInput.moveStrafe != 0) && (ModuleManager.sprint.omniSprint() || ModuleManager.scaffold.sprint() || this.movementInput.moveForward >= f && flag3) && (!(this.isUsingItem() || mc.thePlayer.isBlocking()) || !stopSprint) && !this.isPotionActive(Potion.blindness)) { this.setSprinting(true); } - if (this.isSprinting() && (!ModuleManager.sprint.omniSprint() && !NoSlow.groundSpeed() && !ModuleManager.scaffold.sprint() && (this.movementInput.moveForward < f || !flag3)) || this.isCollidedHorizontally || ModuleManager.sprint.disableBackwards() || ModuleUtils.setSlow || (this.movementInput.moveForward == 0 && this.movementInput.moveStrafe == 0) || this.mc.gameSettings.keyBindSneak.isKeyDown() || (ModuleManager.scaffold != null && ModuleManager.scaffold.isEnabled && (!ModuleManager.scaffold.sprint() || ModuleManager.tower.canTower())) || (ModuleManager.wTap.isEnabled() && WTap.stopSprint) || ModuleManager.sprint.isEnabled() && ModuleManager.sprint.omniDirectional.getInput() > 0 && !ModuleManager.sprint.omniSprint()) { + if (this.isSprinting() && (!ModuleManager.sprint.omniSprint() && !ModuleManager.scaffold.sprint() && (this.movementInput.moveForward < f || !flag3)) || this.isCollidedHorizontally || ModuleManager.sprint.disableBackwards() || ModuleUtils.setSlow || (this.movementInput.moveForward == 0 && this.movementInput.moveStrafe == 0) || this.mc.gameSettings.keyBindSneak.isKeyDown() || (ModuleManager.scaffold != null && ModuleManager.scaffold.isEnabled && (!ModuleManager.scaffold.sprint() || ModuleManager.tower.canTower())) || (ModuleManager.wTap.isEnabled() && WTap.stopSprint) || ModuleManager.sprint.isEnabled() && ModuleManager.sprint.omniDirectional.getInput() > 0 && !ModuleManager.sprint.omniSprint()) { this.setSprinting(false); WTap.stopSprint = false; } diff --git a/src/main/java/keystrokesmod/module/ModuleManager.java b/src/main/java/keystrokesmod/module/ModuleManager.java index 050d21d..8ac1974 100644 --- a/src/main/java/keystrokesmod/module/ModuleManager.java +++ b/src/main/java/keystrokesmod/module/ModuleManager.java @@ -77,6 +77,7 @@ public class ModuleManager { public static Criticals criticals; public static Fences fences; public static FastFall fastFall; + public static AntiVoid antiVoid; public void register() { this.addModule(autoClicker = new AutoClicker()); @@ -179,6 +180,7 @@ public class ModuleManager { this.addModule(criticals = new Criticals()); this.addModule(fences = new Fences()); this.addModule(fastFall = new FastFall()); + this.addModule(antiVoid = new AntiVoid()); antiBot.enable(); Collections.sort(this.modules, Comparator.comparing(Module::getName)); } diff --git a/src/main/java/keystrokesmod/module/impl/combat/KillAura.java b/src/main/java/keystrokesmod/module/impl/combat/KillAura.java index a593000..d89dd99 100644 --- a/src/main/java/keystrokesmod/module/impl/combat/KillAura.java +++ b/src/main/java/keystrokesmod/module/impl/combat/KillAura.java @@ -317,7 +317,20 @@ public class KillAura extends Module { disableCheckUsing = true; return; } - + if (ModuleManager.antiVoid.started) { + if (blinking.get() || lag) { + resetBlinkState(true); + } + setTarget(null); + return; + } + if (target != null && attackingEntity != null && inRange(target, attackRange.getInput())) { + isTargeting = true; + } + else if (isTargeting) { + isTargeting = false; + justUnTargeted = true; + } if (ModuleManager.fly.isEnabled() && ModuleManager.fly.mode.getInput() == 3) { if (blinking.get() || lag) { resetBlinkState(true); @@ -489,13 +502,6 @@ public class KillAura extends Module { if (target != null) { checkUsing = true; } - if (target != null && attackingEntity != null && inRange(target, attackRange.getInput())) { - isTargeting = true; - } - else if (isTargeting) { - isTargeting = false; - justUnTargeted = true; - } } @SubscribeEvent diff --git a/src/main/java/keystrokesmod/module/impl/movement/NoSlow.java b/src/main/java/keystrokesmod/module/impl/movement/NoSlow.java index 9be14b2..25ecf7d 100644 --- a/src/main/java/keystrokesmod/module/impl/movement/NoSlow.java +++ b/src/main/java/keystrokesmod/module/impl/movement/NoSlow.java @@ -35,7 +35,6 @@ public class NoSlow extends Module { public static ButtonSetting disablePotions; public static ButtonSetting swordOnly; public static ButtonSetting vanillaSword; - public static ButtonSetting groundSpeedOption; private String[] modes = new String[]{"Vanilla", "Pre", "Post", "Alpha", "Float"}; private boolean postPlace; public static boolean canFloat; @@ -54,7 +53,6 @@ public class NoSlow extends Module { this.registerSetting(disablePotions = new ButtonSetting("Disable potions", false)); this.registerSetting(swordOnly = new ButtonSetting("Sword only", false)); this.registerSetting(vanillaSword = new ButtonSetting("Vanilla sword", false)); - this.registerSetting(groundSpeedOption = new ButtonSetting("Ground Speed", false)); } @Override @@ -106,13 +104,6 @@ public class NoSlow extends Module { @SubscribeEvent public void onPostPlayerInput(PostPlayerInputEvent e) { - if (canFloat && noSlowing && offset && mc.thePlayer.onGround) { - if (groundSpeedOption.isToggled() && !Utils.jumpDown() && !ModuleManager.bhop.isEnabled() && Utils.keysDown() && !Utils.bowBackwards()) { - Utils.setSpeed(getFloatSpeed(getSpeedLevel())); - //Utils.print("ground speed"); - } - } - handleFloatSetup(); } @@ -225,12 +216,6 @@ public class NoSlow extends Module { e.setPosY(e.getPosY() + ModuleUtils.offsetValue); ModuleUtils.groundTicks = 0; ModuleManager.scaffold.offsetDelay = 2; - if (groundSpeedOption.isToggled()) { - if (!ModuleManager.killAura.isTargeting && !Utils.noSlowingBackWithBow() && !Utils.jumpDown() && mc.thePlayer.moveForward <= -0.5 && mc.thePlayer.moveStrafing == 0 && offset && Utils.isMoving() && mc.thePlayer.onGround) { - float yaw = mc.thePlayer.rotationYaw; - e.setYaw(yaw - 55); - } - } } @SubscribeEvent(priority = EventPriority.LOWEST) // called last in order to apply fix @@ -289,10 +274,6 @@ public class NoSlow extends Module { return false; } - public static boolean groundSpeed() { - return groundSpeedOption.isToggled() && noSlowing && canFloat && offset && Utils.isMoving() && !Utils.jumpDown() && !Utils.noSlowingBackWithBow(); - } - @Override public String getInfo() { return modes[(int) mode.getInput()]; diff --git a/src/main/java/keystrokesmod/module/impl/player/AntiVoid.java b/src/main/java/keystrokesmod/module/impl/player/AntiVoid.java new file mode 100644 index 0000000..43d43ae --- /dev/null +++ b/src/main/java/keystrokesmod/module/impl/player/AntiVoid.java @@ -0,0 +1,547 @@ +package keystrokesmod.module.impl.player; + +import keystrokesmod.Raven; +import keystrokesmod.event.PreUpdateEvent; +import keystrokesmod.event.SendPacketEvent; +import keystrokesmod.module.Module; +import keystrokesmod.module.ModuleManager; +import keystrokesmod.module.impl.movement.LongJump; +import keystrokesmod.module.impl.render.HUD; +import keystrokesmod.module.setting.impl.ButtonSetting; +import keystrokesmod.module.setting.impl.DescriptionSetting; +import keystrokesmod.module.setting.impl.SliderSetting; +import keystrokesmod.utility.*; +import net.minecraft.client.gui.ScaledResolution; +import net.minecraft.client.renderer.GlStateManager; +import net.minecraft.network.Packet; +import net.minecraft.network.handshake.client.C00Handshake; +import net.minecraft.network.login.client.C00PacketLoginStart; +import net.minecraft.network.play.client.C02PacketUseEntity; +import net.minecraft.network.play.client.C03PacketPlayer; +import net.minecraft.util.AxisAlignedBB; +import net.minecraft.util.Vec3; +import net.minecraftforge.client.event.RenderWorldLastEvent; +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; +import net.minecraftforge.fml.common.gameevent.TickEvent; +import org.lwjgl.opengl.GL11; + +import java.awt.*; +import java.util.concurrent.ConcurrentLinkedQueue; + +public class AntiVoid extends Module { + private static SliderSetting distance; + private ButtonSetting renderTimer, disableLJ, disablePractice; + private ConcurrentLinkedQueue blinkedPackets = new ConcurrentLinkedQueue<>(); + private int color = new Color(0, 187, 255, 255).getRGB(); + private int blinkTicks; + public boolean started; + private boolean wait; + private double y; + public AntiVoid() { + super("AntiVoid", category.player); + this.registerSetting(distance = new SliderSetting("Distance", "", 5, 1, 10, 0.5)); + this.registerSetting(renderTimer = new ButtonSetting("Render Timer", false)); + this.registerSetting(disableLJ = new ButtonSetting("Disable with Long Jump", false)); + this.registerSetting(disablePractice = new ButtonSetting("Disable in Practice", false)); + } + + @Override + public void onEnable() { + blinkedPackets.clear(); + } + + public void onDisable() { + release(); + } + + @SubscribeEvent + public void onSendPacket(SendPacketEvent e) { + if (!Utils.nullCheck()) { + return; + } + Packet packet = e.getPacket(); + if (!started && (!Utils.overVoid(mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ) || mc.thePlayer.onGround)) { + y = mc.thePlayer.posY; + wait = false; + return; + } + if (!started && (Utils.isReplay() || Utils.isBedwarsPractice() && disablePractice.isToggled())) { + return; + } + if (packet.getClass().getSimpleName().startsWith("S")) { + return; + } + if (ModuleManager.killAura.isTargeting || ModuleManager.killAura.justUnTargeted) { + return; + } + if (wait) { + return; + } + if (packet instanceof C00PacketLoginStart || packet instanceof C00Handshake) { + return; + } + if (!e.isCanceled()) { + started = true; + blinkedPackets.add(packet); + e.setCanceled(true); + } + } + + @Override + public String getInfo() { + return blinkTicks + ""; + } + + @SubscribeEvent + public void onPreUpdate(PreUpdateEvent e) { + if (!Utils.overVoid(mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ) || mc.thePlayer.onGround) { + release(); + } + if (dist() && Utils.overVoid(mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ) || disableLJ.isToggled() && LongJump.function) { + release(); + wait = true; + } + else if (started) { + ++blinkTicks; + + if (mc.thePlayer.posY <= y - distance.getInput()) { + posPacket(); + release(); + wait = true; + } + } + } + + @SubscribeEvent + public void onRenderTick(TickEvent.RenderTickEvent ev) { + if (!Utils.nullCheck() || !renderTimer.isToggled() || blinkTicks == 0 || blinkTicks >= 99999) { + return; + } + if (ev.phase == TickEvent.Phase.END) { + if (mc.currentScreen != null) { + return; + } + } + color = Theme.getGradient((int) HUD.theme.getInput(), 0); + int widthOffset = (blinkTicks < 10) ? 4 : (blinkTicks >= 10 && blinkTicks < 100) ? 7 : (blinkTicks >= 100 && blinkTicks < 1000) ? 10 : (blinkTicks >= 1000) ? 13 : 16; + String text = ("" + blinkTicks); + int width = mc.fontRendererObj.getStringWidth(text) + Utils.getBoldWidth(text) / 2; + final ScaledResolution scaledResolution = new ScaledResolution(mc); + int[] display = {scaledResolution.getScaledWidth(), scaledResolution.getScaledHeight(), scaledResolution.getScaleFactor()}; + mc.fontRendererObj.drawString(text, display[0] / 2 - width + widthOffset, display[1] / 2 + 8, color, true); + } + + private void posPacket() { + PacketUtils.sendPacketNoEvent(new C03PacketPlayer.C06PacketPlayerPosLook(mc.thePlayer.posX, -0.55, mc.thePlayer.posZ, mc.thePlayer.rotationYaw, mc.thePlayer.rotationPitch, mc.thePlayer.onGround)); + } + + private void release() { + synchronized (blinkedPackets) { + for (Packet packet : blinkedPackets) { + Raven.packetsHandler.handlePacket(packet); + PacketUtils.sendPacketNoEvent(packet); + } + } + blinkedPackets.clear(); + blinkTicks = 0; + started = false; + } + + private boolean dist() { + double minMotion = 0.06; + // 1x1 + + int dist1 = 2; + + if (Utils.distanceToGround(mc.thePlayer, (int) mc.thePlayer.posX, (int) mc.thePlayer.posZ) > dist1) { + return true; + } + if (Utils.distanceToGround(mc.thePlayer, (int) mc.thePlayer.posX - 1, (int) mc.thePlayer.posZ) > dist1) { + if (mc.thePlayer.motionX <= -minMotion) { + return true; + } + } + if (Utils.distanceToGround(mc.thePlayer, (int) mc.thePlayer.posX + 1, (int) mc.thePlayer.posZ) > dist1) { + if (mc.thePlayer.motionX >= minMotion) { + return true; + } + } + if (Utils.distanceToGround(mc.thePlayer, (int) mc.thePlayer.posX, (int) mc.thePlayer.posZ - 1) > dist1) { + if (mc.thePlayer.motionZ <= -minMotion) { + return true; + } + } + if (Utils.distanceToGround(mc.thePlayer, (int) mc.thePlayer.posX, (int) mc.thePlayer.posZ + 1) > dist1) { + if (mc.thePlayer.motionZ >= minMotion) { + return true; + } + } + if (Utils.distanceToGround(mc.thePlayer, (int) mc.thePlayer.posX - 1, (int) mc.thePlayer.posZ - 1) > dist1) { + if (mc.thePlayer.motionX <= -minMotion && mc.thePlayer.motionZ <= -minMotion) { + return true; + } + } + if (Utils.distanceToGround(mc.thePlayer, (int) mc.thePlayer.posX + 1, (int) mc.thePlayer.posZ + 1) > dist1) { + if (mc.thePlayer.motionX >= minMotion && mc.thePlayer.motionZ >= minMotion) { + return true; + } + } + if (Utils.distanceToGround(mc.thePlayer, (int) mc.thePlayer.posX - 1, (int) mc.thePlayer.posZ + 1) > dist1) { + if (mc.thePlayer.motionX <= -minMotion) { + return true; + } + } + if (Utils.distanceToGround(mc.thePlayer, (int) mc.thePlayer.posX + 1, (int) mc.thePlayer.posZ - 1) > dist1) { + if (mc.thePlayer.motionX >= minMotion) { + return true; + } + } + + // 2x2 + + int dist2 = 5; + + if (Utils.distanceToGround(mc.thePlayer, (int) mc.thePlayer.posX - 2, (int) mc.thePlayer.posZ) > dist2) { + if (mc.thePlayer.motionX <= -minMotion) { + return true; + } + } + if (Utils.distanceToGround(mc.thePlayer, (int) mc.thePlayer.posX + 2, (int) mc.thePlayer.posZ) > dist2) { + if (mc.thePlayer.motionX >= minMotion) { + return true; + } + } + if (Utils.distanceToGround(mc.thePlayer, (int) mc.thePlayer.posX, (int) mc.thePlayer.posZ - 2) > dist2) { + if (mc.thePlayer.motionZ <= -minMotion) { + return true; + } + } + if (Utils.distanceToGround(mc.thePlayer, (int) mc.thePlayer.posX, (int) mc.thePlayer.posZ + 2) > dist2) { + if (mc.thePlayer.motionZ >= minMotion) { + return true; + } + } + if (Utils.distanceToGround(mc.thePlayer, (int) mc.thePlayer.posX + 2, (int) mc.thePlayer.posZ - 1) > dist2) { + if (mc.thePlayer.motionX >= minMotion) { + return true; + } + } + if (Utils.distanceToGround(mc.thePlayer, (int) mc.thePlayer.posX + 1, (int) mc.thePlayer.posZ - 2) > dist2) { + if (mc.thePlayer.motionZ <= -minMotion) { + return true; + } + } + if (Utils.distanceToGround(mc.thePlayer, (int) mc.thePlayer.posX - 2, (int) mc.thePlayer.posZ + 1) > dist2) { + if (mc.thePlayer.motionX <= -minMotion) { + return true; + } + } + if (Utils.distanceToGround(mc.thePlayer, (int) mc.thePlayer.posX - 1, (int) mc.thePlayer.posZ + 2) > dist2) { + if (mc.thePlayer.motionZ >= minMotion) { + return true; + } + } + if (Utils.distanceToGround(mc.thePlayer, (int) mc.thePlayer.posX + 2, (int) mc.thePlayer.posZ - 2) > dist2) { + if (mc.thePlayer.motionX >= minMotion) { + return true; + } + } + if (Utils.distanceToGround(mc.thePlayer, (int) mc.thePlayer.posX + 2, (int) mc.thePlayer.posZ - 2) > dist2) { + if (mc.thePlayer.motionX >= minMotion) { + return true; + } + } + if (Utils.distanceToGround(mc.thePlayer, (int) mc.thePlayer.posX + 2, (int) mc.thePlayer.posZ + 2) > dist2) { + if (mc.thePlayer.motionX >= minMotion && mc.thePlayer.motionZ >= minMotion) { + return true; + } + } + if (Utils.distanceToGround(mc.thePlayer, (int) mc.thePlayer.posX - 2, (int) mc.thePlayer.posZ - 2) > dist2) { + if (mc.thePlayer.motionX <= -minMotion && mc.thePlayer.motionZ <= -minMotion) { + return true; + } + } + + // 3x3 + + int dist3 = 9; + + if (Utils.distanceToGround(mc.thePlayer, (int) mc.thePlayer.posX + 3, (int) mc.thePlayer.posZ) > dist3) { + if (mc.thePlayer.motionX >= minMotion) { + return true; + } + } + if (Utils.distanceToGround(mc.thePlayer, (int) mc.thePlayer.posX - 3, (int) mc.thePlayer.posZ) > dist3) { + if (mc.thePlayer.motionX <= -minMotion) { + return true; + } + } + if (Utils.distanceToGround(mc.thePlayer, (int) mc.thePlayer.posX, (int) mc.thePlayer.posZ + 3) > dist3) { + if (mc.thePlayer.motionZ >= minMotion) { + return true; + } + } + if (Utils.distanceToGround(mc.thePlayer, (int) mc.thePlayer.posX, (int) mc.thePlayer.posZ - 3) > dist3) { + if (mc.thePlayer.motionZ <= -minMotion) { + return true; + } + } + if (Utils.distanceToGround(mc.thePlayer, (int) mc.thePlayer.posX + 3, (int) mc.thePlayer.posZ - 3) > dist3) { + if (mc.thePlayer.motionX >= minMotion) { + return true; + } + } + if (Utils.distanceToGround(mc.thePlayer, (int) mc.thePlayer.posX - 3, (int) mc.thePlayer.posZ + 3) > dist3) { + if (mc.thePlayer.motionX <= -minMotion) { + return true; + } + } + if (Utils.distanceToGround(mc.thePlayer, (int) mc.thePlayer.posX + 3, (int) mc.thePlayer.posZ + 3) > dist3) { + if (mc.thePlayer.motionX >= minMotion && mc.thePlayer.motionZ >= minMotion) { + return true; + } + } + if (Utils.distanceToGround(mc.thePlayer, (int) mc.thePlayer.posX - 3, (int) mc.thePlayer.posZ - 3) > dist3) { + if (mc.thePlayer.motionX <= -minMotion && mc.thePlayer.motionZ <= -minMotion) { + return true; + } + } + if (Utils.distanceToGround(mc.thePlayer, (int) mc.thePlayer.posX + 3, (int) mc.thePlayer.posZ + 1) > dist3) { + if (mc.thePlayer.motionX >= minMotion) { + return true; + } + } + if (Utils.distanceToGround(mc.thePlayer, (int) mc.thePlayer.posX + 3, (int) mc.thePlayer.posZ + 2) > dist3) { + if (mc.thePlayer.motionX >= minMotion) { + return true; + } + } + if (Utils.distanceToGround(mc.thePlayer, (int) mc.thePlayer.posX + 1, (int) mc.thePlayer.posZ + 3) > dist3) { + if (mc.thePlayer.motionZ >= minMotion) { + return true; + } + } + if (Utils.distanceToGround(mc.thePlayer, (int) mc.thePlayer.posX + 2, (int) mc.thePlayer.posZ + 3) > dist3) { + if (mc.thePlayer.motionZ >= minMotion) { + return true; + } + } + if (Utils.distanceToGround(mc.thePlayer, (int) mc.thePlayer.posX - 3, (int) mc.thePlayer.posZ - 1) > dist3) { + if (mc.thePlayer.motionX <= -minMotion) { + return true; + } + } + if (Utils.distanceToGround(mc.thePlayer, (int) mc.thePlayer.posX - 3, (int) mc.thePlayer.posZ - 2) > dist3) { + if (mc.thePlayer.motionX <= -minMotion) { + return true; + } + } + if (Utils.distanceToGround(mc.thePlayer, (int) mc.thePlayer.posX - 1, (int) mc.thePlayer.posZ - 3) > dist3) { + if (mc.thePlayer.motionZ <= -minMotion) { + return true; + } + } + if (Utils.distanceToGround(mc.thePlayer, (int) mc.thePlayer.posX - 2, (int) mc.thePlayer.posZ - 3) > dist3) { + if (mc.thePlayer.motionZ <= -minMotion) { + return true; + } + } + if (Utils.distanceToGround(mc.thePlayer, (int) mc.thePlayer.posX + 3, (int) mc.thePlayer.posZ - 1) > dist3) { + if (mc.thePlayer.motionX >= minMotion) { + return true; + } + } + if (Utils.distanceToGround(mc.thePlayer, (int) mc.thePlayer.posX + 3, (int) mc.thePlayer.posZ - 2) > dist3) { + if (mc.thePlayer.motionX >= minMotion) { + return true; + } + } + if (Utils.distanceToGround(mc.thePlayer, (int) mc.thePlayer.posX + 1, (int) mc.thePlayer.posZ - 3) > dist3) { + if (mc.thePlayer.motionZ <= -minMotion) { + return true; + } + } + if (Utils.distanceToGround(mc.thePlayer, (int) mc.thePlayer.posX + 2, (int) mc.thePlayer.posZ - 3) > dist3) { + if (mc.thePlayer.motionZ <= -minMotion) { + return true; + } + } + if (Utils.distanceToGround(mc.thePlayer, (int) mc.thePlayer.posX - 3, (int) mc.thePlayer.posZ + 1) > dist3) { + if (mc.thePlayer.motionX <= -minMotion) { + return true; + } + } + if (Utils.distanceToGround(mc.thePlayer, (int) mc.thePlayer.posX - 3, (int) mc.thePlayer.posZ + 2) > dist3) { + if (mc.thePlayer.motionX <= -minMotion) { + return true; + } + } + if (Utils.distanceToGround(mc.thePlayer, (int) mc.thePlayer.posX - 1, (int) mc.thePlayer.posZ + 3) > dist3) { + if (mc.thePlayer.motionZ >= minMotion) { + return true; + } + } + if (Utils.distanceToGround(mc.thePlayer, (int) mc.thePlayer.posX - 2, (int) mc.thePlayer.posZ + 3) > dist3) { + if (mc.thePlayer.motionZ >= minMotion) { + return true; + } + } + + // 4x4 + + int dist4 = 16; + + if (Utils.distanceToGround(mc.thePlayer, (int) mc.thePlayer.posX + 4, (int) mc.thePlayer.posZ) > dist4) { + if (mc.thePlayer.motionX >= minMotion) { + return true; + } + } + if (Utils.distanceToGround(mc.thePlayer, (int) mc.thePlayer.posX - 4, (int) mc.thePlayer.posZ) > dist4) { + if (mc.thePlayer.motionX <= -minMotion) { + return true; + } + } + if (Utils.distanceToGround(mc.thePlayer, (int) mc.thePlayer.posX, (int) mc.thePlayer.posZ + 4) > dist4) { + if (mc.thePlayer.motionZ >= minMotion) { + return true; + } + } + if (Utils.distanceToGround(mc.thePlayer, (int) mc.thePlayer.posX, (int) mc.thePlayer.posZ - 4) > dist4) { + if (mc.thePlayer.motionZ <= -minMotion) { + return true; + } + } + if (Utils.distanceToGround(mc.thePlayer, (int) mc.thePlayer.posX + 4, (int) mc.thePlayer.posZ + 4) > dist4) { + if (mc.thePlayer.motionX >= minMotion && mc.thePlayer.motionZ >= minMotion) { + return true; + } + } + if (Utils.distanceToGround(mc.thePlayer, (int) mc.thePlayer.posX - 4, (int) mc.thePlayer.posZ - 4) > dist4) { + if (mc.thePlayer.motionX <= -minMotion && mc.thePlayer.motionZ <= -minMotion) { + return true; + } + } + if (Utils.distanceToGround(mc.thePlayer, (int) mc.thePlayer.posX - 4, (int) mc.thePlayer.posZ + 4) > dist4) { + if (mc.thePlayer.motionX <= -minMotion) { + return true; + } + } + if (Utils.distanceToGround(mc.thePlayer, (int) mc.thePlayer.posX + 4, (int) mc.thePlayer.posZ - 4) > dist4) { + if (mc.thePlayer.motionX >= minMotion) { + return true; + } + } + if (Utils.distanceToGround(mc.thePlayer, (int) mc.thePlayer.posX + 4, (int) mc.thePlayer.posZ + 3) > dist4) { + if (mc.thePlayer.motionX >= minMotion) { + return true; + } + } + if (Utils.distanceToGround(mc.thePlayer, (int) mc.thePlayer.posX + 4, (int) mc.thePlayer.posZ + 2) > dist4) { + if (mc.thePlayer.motionX >= minMotion) { + return true; + } + } + if (Utils.distanceToGround(mc.thePlayer, (int) mc.thePlayer.posX + 4, (int) mc.thePlayer.posZ + 1) > dist4) { + if (mc.thePlayer.motionX >= minMotion) { + return true; + } + } + if (Utils.distanceToGround(mc.thePlayer, (int) mc.thePlayer.posX + 3, (int) mc.thePlayer.posZ + 4) > dist4) { + if (mc.thePlayer.motionZ >= minMotion) { + return true; + } + } + if (Utils.distanceToGround(mc.thePlayer, (int) mc.thePlayer.posX + 2, (int) mc.thePlayer.posZ + 4) > dist4) { + if (mc.thePlayer.motionZ >= minMotion) { + return true; + } + } + if (Utils.distanceToGround(mc.thePlayer, (int) mc.thePlayer.posX + 1, (int) mc.thePlayer.posZ + 4) > dist4) { + if (mc.thePlayer.motionZ >= minMotion) { + return true; + } + } + if (Utils.distanceToGround(mc.thePlayer, (int) mc.thePlayer.posX + 4, (int) mc.thePlayer.posZ - 3) > dist4) { + if (mc.thePlayer.motionX >= minMotion) { + return true; + } + } + if (Utils.distanceToGround(mc.thePlayer, (int) mc.thePlayer.posX + 4, (int) mc.thePlayer.posZ - 2) > dist4) { + if (mc.thePlayer.motionX >= minMotion) { + return true; + } + } + if (Utils.distanceToGround(mc.thePlayer, (int) mc.thePlayer.posX + 4, (int) mc.thePlayer.posZ - 1) > dist4) { + if (mc.thePlayer.motionX >= minMotion) { + return true; + } + } + if (Utils.distanceToGround(mc.thePlayer, (int) mc.thePlayer.posX - 3, (int) mc.thePlayer.posZ + 4) > dist4) { + if (mc.thePlayer.motionZ >= minMotion) { + return true; + } + } + if (Utils.distanceToGround(mc.thePlayer, (int) mc.thePlayer.posX - 2, (int) mc.thePlayer.posZ + 4) > dist4) { + if (mc.thePlayer.motionZ >= minMotion) { + return true; + } + } + if (Utils.distanceToGround(mc.thePlayer, (int) mc.thePlayer.posX - 1, (int) mc.thePlayer.posZ + 4) > dist4) { + if (mc.thePlayer.motionZ >= minMotion) { + return true; + } + } + if (Utils.distanceToGround(mc.thePlayer, (int) mc.thePlayer.posX - 4, (int) mc.thePlayer.posZ + 3) > dist4) { + if (mc.thePlayer.motionX <= -minMotion) { + return true; + } + } + if (Utils.distanceToGround(mc.thePlayer, (int) mc.thePlayer.posX - 4, (int) mc.thePlayer.posZ + 2) > dist4) { + if (mc.thePlayer.motionX <= -minMotion) { + return true; + } + } + if (Utils.distanceToGround(mc.thePlayer, (int) mc.thePlayer.posX - 4, (int) mc.thePlayer.posZ + 1) > dist4) { + if (mc.thePlayer.motionX <= -minMotion) { + return true; + } + } + if (Utils.distanceToGround(mc.thePlayer, (int) mc.thePlayer.posX - 4, (int) mc.thePlayer.posZ - 3) > dist4) { + if (mc.thePlayer.motionX <= -minMotion) { + return true; + } + } + if (Utils.distanceToGround(mc.thePlayer, (int) mc.thePlayer.posX - 4, (int) mc.thePlayer.posZ - 2) > dist4) { + if (mc.thePlayer.motionX <= -minMotion) { + return true; + } + } + if (Utils.distanceToGround(mc.thePlayer, (int) mc.thePlayer.posX - 4, (int) mc.thePlayer.posZ - 1) > dist4) { + if (mc.thePlayer.motionX <= -minMotion) { + return true; + } + } + if (Utils.distanceToGround(mc.thePlayer, (int) mc.thePlayer.posX - 3, (int) mc.thePlayer.posZ - 4) > dist4) { + if (mc.thePlayer.motionZ <= -minMotion) { + return true; + } + } + if (Utils.distanceToGround(mc.thePlayer, (int) mc.thePlayer.posX - 2, (int) mc.thePlayer.posZ - 4) > dist4) { + if (mc.thePlayer.motionZ <= -minMotion) { + return true; + } + } + if (Utils.distanceToGround(mc.thePlayer, (int) mc.thePlayer.posX - 1, (int) mc.thePlayer.posZ - 4) > dist4) { + if (mc.thePlayer.motionZ <= -minMotion) { + return true; + } + } + + + + + + return false; + } + +} \ No newline at end of file diff --git a/src/main/java/keystrokesmod/module/impl/player/Blink.java b/src/main/java/keystrokesmod/module/impl/player/Blink.java index c7d6ed4..6b6f8a3 100644 --- a/src/main/java/keystrokesmod/module/impl/player/Blink.java +++ b/src/main/java/keystrokesmod/module/impl/player/Blink.java @@ -83,6 +83,10 @@ public class Blink extends Module { this.disable(); return; } + if (ModuleManager.antiVoid.started) { + disable(); + return; + } if (ModuleManager.killAura.isTargeting || ModuleManager.killAura.justUnTargeted) { return; } diff --git a/src/main/java/keystrokesmod/module/impl/player/NoFall.java b/src/main/java/keystrokesmod/module/impl/player/NoFall.java index 058a048..8caeaec 100644 --- a/src/main/java/keystrokesmod/module/impl/player/NoFall.java +++ b/src/main/java/keystrokesmod/module/impl/player/NoFall.java @@ -5,6 +5,7 @@ import keystrokesmod.event.PreUpdateEvent; import keystrokesmod.event.ReceivePacketEvent; import keystrokesmod.event.SendPacketEvent; import keystrokesmod.module.Module; +import keystrokesmod.module.ModuleManager; import keystrokesmod.module.setting.impl.ButtonSetting; import keystrokesmod.module.setting.impl.SliderSetting; import keystrokesmod.script.classes.Block; @@ -95,6 +96,10 @@ public class NoFall extends Module { isFalling = true; } + if (ModuleManager.antiVoid.started) { + return; + } + double predictedY = mc.thePlayer.posY + mc.thePlayer.motionY; double distanceFallen = initialY - predictedY; diff --git a/src/main/java/keystrokesmod/module/impl/player/Scaffold.java b/src/main/java/keystrokesmod/module/impl/player/Scaffold.java index d0cae42..41cad43 100644 --- a/src/main/java/keystrokesmod/module/impl/player/Scaffold.java +++ b/src/main/java/keystrokesmod/module/impl/player/Scaffold.java @@ -73,7 +73,7 @@ public class Scaffold extends Module { private int blockSlot = -1; //placements related - private boolean hasPlaced, finishProcedure, canPlace; + private boolean hasPlaced, finishProcedure, stopUpdate, stopUpdate2; private PlaceData lastPlacement; private EnumFacing[] facings = { EnumFacing.EAST, EnumFacing.WEST, EnumFacing.NORTH, EnumFacing.SOUTH, EnumFacing.UP }; private BlockPos[] offsets = { new BlockPos(-1, 0, 0), new BlockPos(1, 0, 0), new BlockPos(0, 0, 1), new BlockPos(0, 0, -1), new BlockPos(0, -1, 0) }; @@ -347,7 +347,7 @@ public class Scaffold extends Module { minOffset = 6; } if (quad > 42 && quad <= 45 || quad >= 45 && quad < 48) { - yawAngle = 139.625F; + yawAngle = 140.125F; minOffset = 5; } @@ -445,7 +445,7 @@ public class Scaffold extends Module { was451 = false; } } - double minSwitch = (!Utils.scaffoldDiagonal(false)) ? 4 : 15; + double minSwitch = (!Utils.scaffoldDiagonal(false)) ? 9 : 15; if (side >= 0) { if (yawOffset <= -minSwitch && firstStroke == 0 && dynamic > 0) { if (quad <= 5 || quad >= 85) { @@ -641,6 +641,7 @@ public class Scaffold extends Module { @SubscribeEvent public void onPreUpdate(PreUpdateEvent e) { + stopUpdate = stopUpdate2 = false; if (!isEnabled) { return; } @@ -648,77 +649,77 @@ public class Scaffold extends Module { startYPos = -1; } if (LongJump.stopModules) { - return; + stopUpdate2 = true; } if (ModuleManager.killAura.isTargeting || ModuleManager.killAura.justUnTargeted) { - return; + stopUpdate2 = true; } - if (holdingBlocks() && setSlot()) { - if (moduleEnabled && !finishProcedure) { - if (Utils.distanceToGround(mc.thePlayer) < 2) { - canPlace = true; - finishProcedure = true; - } - if (Utils.distanceToGround(mc.thePlayer) > 5) { - canPlace = true; - if (hasPlaced) { + if (!stopUpdate2) { + if (holdingBlocks() && setSlot()) { + if (moduleEnabled && !finishProcedure) { + if (Utils.distanceToGround(mc.thePlayer) < 2) { finishProcedure = true; } - } - else if (!finishProcedure) { - return; - } - } - - hasSwapped = true; - int mode = (int) fastScaffold.getInput(); - if (!ModuleManager.tower.placeExtraBlock) { - if (rotation.getInput() == 0 || rotationDelay == 0) { - placeBlock(0, 0); - } - } - else if ((ModuleManager.tower.ebDelay == 0 || !ModuleManager.tower.firstVTP)) { - placeBlock(0, 0); - placedVP = true; - } - if (ModuleManager.tower.placeExtraBlock) { - placeBlock(0, -1); - } - - if (fastScaffoldKeepY && !ModuleManager.tower.canTower()) { - ++keepYTicks; - if ((int) mc.thePlayer.posY > (int) startYPos) { - switch (mode) { - case 1: - if (!firstKeepYPlace && keepYTicks == 3) { - placeBlock(1, 0); - firstKeepYPlace = true; - } - break; - case 2: - if (!firstKeepYPlace && keepYTicks == 8 || keepYTicks == 11) { - placeBlock(1, 0); - firstKeepYPlace = true; - } - break; - case 3: - if (!firstKeepYPlace && keepYTicks == 8 || firstKeepYPlace && keepYTicks == 7) { - placeBlock(1, 0); - firstKeepYPlace = true; - } - break; - case 4: - if (!firstKeepYPlace && keepYTicks == 7) { - placeBlock(1, 0); - firstKeepYPlace = true; - } - break; + if (Utils.distanceToGround(mc.thePlayer) > 5) { + if (hasPlaced) { + finishProcedure = true; + } + } else if (!finishProcedure) { + stopUpdate = true; } } - if (mc.thePlayer.onGround) keepYTicks = 0; - if ((int) mc.thePlayer.posY == (int) startYPos) firstKeepYPlace = false; + if (!stopUpdate) { + + hasSwapped = true; + int mode = (int) fastScaffold.getInput(); + if (!ModuleManager.tower.placeExtraBlock) { + if (rotation.getInput() == 0 || rotationDelay == 0) { + placeBlock(0, 0); + } + } else if ((ModuleManager.tower.ebDelay == 0 || !ModuleManager.tower.firstVTP)) { + placeBlock(0, 0); + placedVP = true; + } + if (ModuleManager.tower.placeExtraBlock) { + placeBlock(0, -1); + } + + if (fastScaffoldKeepY && !ModuleManager.tower.canTower()) { + ++keepYTicks; + if ((int) mc.thePlayer.posY > (int) startYPos) { + switch (mode) { + case 1: + if (!firstKeepYPlace && keepYTicks == 3) { + placeBlock(1, 0); + firstKeepYPlace = true; + } + break; + case 2: + if (!firstKeepYPlace && keepYTicks == 8 || keepYTicks == 11) { + placeBlock(1, 0); + firstKeepYPlace = true; + } + break; + case 3: + if (!firstKeepYPlace && keepYTicks == 8 || firstKeepYPlace && keepYTicks == 7) { + placeBlock(1, 0); + firstKeepYPlace = true; + } + break; + case 4: + if (!firstKeepYPlace && keepYTicks == 7) { + placeBlock(1, 0); + firstKeepYPlace = true; + } + break; + } + } + if (mc.thePlayer.onGround) keepYTicks = 0; + if ((int) mc.thePlayer.posY == (int) startYPos) firstKeepYPlace = false; + } + handleMotion(); + } } - handleMotion(); } if (disabledModule) { @@ -762,7 +763,7 @@ public class Scaffold extends Module { blockInfo = null; blockRotations = null; fastScaffoldKeepY = firstKeepYPlace = rotateForward = rotatingForward = floatStarted = floatJumped = floatWasEnabled = towerEdge = - was451 = was452 = enabledOffGround = finishProcedure = canPlace = false; + was451 = was452 = enabledOffGround = finishProcedure = false; rotationDelay = keepYTicks = scaffoldTicks = 0; firstStroke = 0; startYPos = -1; diff --git a/src/main/java/keystrokesmod/utility/ModuleUtils.java b/src/main/java/keystrokesmod/utility/ModuleUtils.java index 8a1041e..ccedd00 100644 --- a/src/main/java/keystrokesmod/utility/ModuleUtils.java +++ b/src/main/java/keystrokesmod/utility/ModuleUtils.java @@ -45,7 +45,7 @@ public class ModuleUtils { private long FIREBALL_TIMEOUT = 500L, fireballTime = 0; public static int inAirTicks, groundTicks, stillTicks; public static int fadeEdge; - public static double offsetValue = 6e-14; + public static double offsetValue = 4e-14; public static boolean isAttacking; private int attackingTicks; private int unTargetTicks; diff --git a/src/main/java/keystrokesmod/utility/Utils.java b/src/main/java/keystrokesmod/utility/Utils.java index ae731aa..1d97d52 100644 --- a/src/main/java/keystrokesmod/utility/Utils.java +++ b/src/main/java/keystrokesmod/utility/Utils.java @@ -942,6 +942,24 @@ public class Utils { return fallDistance - 1; } + public static double distanceToGround(Entity entity, int x, int z) { + if (entity.onGround) { + return 0; + } + double fallDistance = -1; + double y = entity.posY; + if (entity.posY % 1 == 0) { + y--; + } + for (int i = (int) Math.floor(y); i > -1; i--) { + if (!isPlaceable(new BlockPos(x, i, z))) { + fallDistance = y - i; + break; + } + } + return fallDistance - 1; + } + public static double distanceToGroundPos(Entity entity, int groundPos) { if (entity.onGround) { return 0;