From a4da3d4a637f4ea7d927ad944b8d1f1231816187 Mon Sep 17 00:00:00 2001 From: jackh Date: Tue, 25 Mar 2025 11:48:55 -0700 Subject: [PATCH] Latest release --- .../keystrokesmod/module/ModuleManager.java | 2 + .../module/impl/combat/KillAura.java | 138 ++++++----------- .../module/impl/movement/NoSlow.java | 6 +- .../module/impl/movement/Sprint.java | 15 +- .../module/impl/player/Disabler.java | 27 +++- .../module/impl/player/FastFall.java | 116 +++++++++++++++ .../module/impl/player/NoFall.java | 69 +++++++-- .../module/impl/player/Scaffold.java | 72 +++++++-- .../module/impl/player/Tower.java | 140 +++++++++++++----- .../keystrokesmod/utility/ModuleUtils.java | 32 +++- .../utility/command/impl/Help.java | 1 + .../keystrokesmod/utility/command/impl/Q.java | 2 +- .../utility/command/impl/QList.java | 50 +++++++ 13 files changed, 490 insertions(+), 180 deletions(-) create mode 100644 src/main/java/keystrokesmod/module/impl/player/FastFall.java create mode 100644 src/main/java/keystrokesmod/utility/command/impl/QList.java diff --git a/src/main/java/keystrokesmod/module/ModuleManager.java b/src/main/java/keystrokesmod/module/ModuleManager.java index 3fe0dc0..050d21d 100644 --- a/src/main/java/keystrokesmod/module/ModuleManager.java +++ b/src/main/java/keystrokesmod/module/ModuleManager.java @@ -76,6 +76,7 @@ public class ModuleManager { public static TargetStrafe targetStrafe; public static Criticals criticals; public static Fences fences; + public static FastFall fastFall; public void register() { this.addModule(autoClicker = new AutoClicker()); @@ -177,6 +178,7 @@ public class ModuleManager { this.addModule(targetStrafe = new TargetStrafe()); this.addModule(criticals = new Criticals()); this.addModule(fences = new Fences()); + this.addModule(fastFall = new FastFall()); 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 04ea205..a593000 100644 --- a/src/main/java/keystrokesmod/module/impl/combat/KillAura.java +++ b/src/main/java/keystrokesmod/module/impl/combat/KillAura.java @@ -72,8 +72,8 @@ public class KillAura extends Module { private ButtonSetting weaponOnly; private String[] autoBlockModes = new String[] { "Manual", "Vanilla", "Partial", "Interact A", "Interact B" }; - private String[] interactAModes = new String[] { "10", "5", "6.5" }; - private String[] interactBModes = new String[] { "10", "7", "9.5" }; + private String[] interactAModes = new String[] { "10", "9.5" }; + private String[] interactBModes = new String[] { "10", "9.5" }; private String[] rotationModes = new String[] { "Silent", "Lock view", "None" }; private String[] rotateModes = new String[] { "Attacking", "Swinging" }; private String[] sortModes = new String[] { "Distance", "Health", "Hurttime", "Yaw" }; @@ -201,36 +201,6 @@ public class KillAura extends Module { } } - @SubscribeEvent(priority = EventPriority.HIGH) - public void onSendPacket(SendPacketEvent e) { - if (!Utils.nullCheck()) { - return; - } - Packet packet = e.getPacket(); - if (packet.getClass().getSimpleName().startsWith("S")) { - return; - } - if (packet instanceof C08PacketPlayerBlockPlacement) { - if (delayTicks >= 0) { - if (((C08PacketPlayerBlockPlacement) packet).getStack() != null && ((C08PacketPlayerBlockPlacement) packet).getStack().getItem() instanceof ItemSword && ((C08PacketPlayerBlockPlacement) packet).getPlacedBlockDirection() != 255) { - e.setCanceled(true); - } - } - } - if (blinking.get() && !e.isCanceled()) { // blink - if (packet instanceof C00PacketLoginStart || packet instanceof C00Handshake) { - return; - } - blinkedPackets.add(packet); - e.setCanceled(true); - } - if (!lag && target != null && Utils.holdingSword() && autoBlockMode.getInput() >= 2) { - if (packet instanceof C08PacketPlayerBlockPlacement) { - e.setCanceled(true); - } - } - } - @SubscribeEvent public void onPreUpdate(PreUpdateEvent e) { if (!Utils.nullCheck()) { @@ -426,6 +396,36 @@ public class KillAura extends Module { } } + @SubscribeEvent(priority = EventPriority.HIGH) + public void onSendPacket(SendPacketEvent e) { + if (!Utils.nullCheck()) { + return; + } + Packet packet = e.getPacket(); + if (packet.getClass().getSimpleName().startsWith("S")) { + return; + } + if (packet instanceof C08PacketPlayerBlockPlacement) { + if (delayTicks >= 0) { + if (((C08PacketPlayerBlockPlacement) packet).getStack() != null && ((C08PacketPlayerBlockPlacement) packet).getStack().getItem() instanceof ItemSword && ((C08PacketPlayerBlockPlacement) packet).getPlacedBlockDirection() != 255) { + e.setCanceled(true); + } + } + } + if (blinking.get() && !e.isCanceled()) { // blink + if (packet instanceof C00PacketLoginStart || packet instanceof C00Handshake) { + return; + } + blinkedPackets.add(packet); + e.setCanceled(true); + } + if (!lag && target != null && Utils.holdingSword() && autoBlockMode.getInput() >= 2) { + if (packet instanceof C08PacketPlayerBlockPlacement) { + e.setCanceled(true); + } + } + } + @SubscribeEvent(priority = EventPriority.LOW) public void onPreMotion(PreMotionEvent e) { if (delayTicks >= 0) { @@ -923,9 +923,6 @@ public class KillAura extends Module { case 1: getInteractA1(distance, swung); break; - case 2: - getInteractA2(distance, swung); - break; } break; case 4: // interact b @@ -936,9 +933,6 @@ public class KillAura extends Module { case 1: getInteractB1(distance, swung); break; - case 2: - getInteractB2(distance, swung); - break; } break; } @@ -965,34 +959,11 @@ public class KillAura extends Module { } private void getInteractA1(double distance, boolean swung) { - if (interactTicks >= 4) { + if (interactTicks >= 3) { interactTicks = 0; } interactTicks++; - switch (interactTicks) { - case 1: - blinking.set(true); - if (ModuleUtils.isBlocked) { - sendUnBlockPacket(); - } - break; - case 2: - handleInteractAndAttack(distance, true, true, swung); - sendBlockPacket(); - break; - case 3: - releasePackets(); // release - break; - } - } - - private void getInteractA2(double distance, boolean swung) { - interactTicks++; - firstEdge++; if (firstCycle) { - if (interactTicks > 2) { - interactTicks = 0; - } switch (interactTicks) { case 1: blinking.set(true); @@ -1003,31 +974,31 @@ public class KillAura extends Module { case 2: handleInteractAndAttack(distance, true, true, swung); sendBlockPacket(); - firstCycle = false; - interactTicks = 0; releasePackets(); // release + interactTicks = 0; + firstCycle = false; break; } } else { - if (interactTicks > 4) { - interactTicks = 0; - } switch (interactTicks) { case 1: blinking.set(true); if (ModuleUtils.isBlocked) { - sendUnBlockPacket(); + setSwapSlot(); + swapped = true; } break; case 2: + if (swapped) { + setCurrentSlot(); + swapped = false; + } handleInteractAndAttack(distance, true, true, swung); sendBlockPacket(); - break; - case 4: + releasePackets(); // release firstCycle = true; interactTicks = 0; - releasePackets(); // release break; } } @@ -1059,31 +1030,6 @@ public class KillAura extends Module { } private void getInteractB1(double distance, boolean swung) { - if (interactTicks >= 3) { - interactTicks = 0; - } - interactTicks++; - switch (interactTicks) { - case 1: - blinking.set(true); - if (ModuleUtils.isBlocked) { - setSwapSlot(); - swapped = true; - } - break; - case 2: - if (swapped) { - setCurrentSlot(); - swapped = false; - } - handleInteractAndAttack(distance, true, true, swung); - sendBlockPacket(); - releasePackets(); // release - break; - } - } - - private void getInteractB2(double distance, boolean swung) { if (interactTicks >= 3) { interactTicks = 0; } diff --git a/src/main/java/keystrokesmod/module/impl/movement/NoSlow.java b/src/main/java/keystrokesmod/module/impl/movement/NoSlow.java index 9c01f55..9be14b2 100644 --- a/src/main/java/keystrokesmod/module/impl/movement/NoSlow.java +++ b/src/main/java/keystrokesmod/module/impl/movement/NoSlow.java @@ -133,7 +133,7 @@ public class NoSlow extends Module { if (!Mouse.isButtonDown(1) || (mc.thePlayer.getHeldItem() == null || !holdingConsumable(mc.thePlayer.getHeldItem()))) { return; } - if (!mc.thePlayer.onGround || ModuleUtils.groundTicks <= 8) { + if (!mc.thePlayer.onGround || ModuleManager.sprint.sprintFloat) { canFloat = true; } else { @@ -217,10 +217,10 @@ public class NoSlow extends Module { if (!canFloat) { return; } - if (!reSendConsume && offsetDelay <= 2) { + /*if (!reSendConsume && offsetDelay <= 2) { ++offsetDelay; return; - } + }*/ offset = true; e.setPosY(e.getPosY() + ModuleUtils.offsetValue); ModuleUtils.groundTicks = 0; diff --git a/src/main/java/keystrokesmod/module/impl/movement/Sprint.java b/src/main/java/keystrokesmod/module/impl/movement/Sprint.java index d7fc3ab..96e5592 100644 --- a/src/main/java/keystrokesmod/module/impl/movement/Sprint.java +++ b/src/main/java/keystrokesmod/module/impl/movement/Sprint.java @@ -1,5 +1,6 @@ package keystrokesmod.module.impl.movement; +import keystrokesmod.event.PostPlayerInputEvent; import keystrokesmod.event.PreMotionEvent; import keystrokesmod.event.PreUpdateEvent; import keystrokesmod.mixin.impl.accessor.IAccessorEntityPlayerSP; @@ -41,6 +42,7 @@ public class Sprint extends Module { public float posY = 5; private float limit; public boolean canFloat, requireJump; + public boolean sprintFloat; private int color = new Color(255, 0, 0, 255).getRGB(); private String[] omniDirectionalModes = new String[] { "Disabled", "Vanilla", "Hypixel", "Float" }; @@ -65,6 +67,13 @@ public class Sprint extends Module { this.renderJumpRequired.setVisible(omniDirectional.getInput() == 3, this); } + @SubscribeEvent + public void onPostPlayerInput(PostPlayerInputEvent e) { + if (Utils.jumpDown() && mc.thePlayer.onGround) { + requireJump = true; + } + } + @SubscribeEvent public void onPreMotion(PreMotionEvent e) { @@ -80,9 +89,13 @@ public class Sprint extends Module { if (canFloat && floatConditions() && !requireJump && omniSprint()) { e.setPosY(e.getPosY() + ModuleUtils.offsetValue); + sprintFloat = true; ModuleUtils.groundTicks = 0; if (Utils.isMoving()) Utils.setSpeed(getFloatSpeed(getSpeedLevel())); } + else { + sprintFloat = false; + } if (rotationConditions()) { float yaw = mc.thePlayer.rotationYaw; @@ -91,7 +104,7 @@ public class Sprint extends Module { } } - private boolean floatConditions() { + boolean floatConditions() { int edgeY = (int) Math.round((mc.thePlayer.posY % 1.0D) * 100.0D); if (ModuleUtils.stillTicks > 200) { requireJump = true; diff --git a/src/main/java/keystrokesmod/module/impl/player/Disabler.java b/src/main/java/keystrokesmod/module/impl/player/Disabler.java index 1a0b775..5db6dae 100644 --- a/src/main/java/keystrokesmod/module/impl/player/Disabler.java +++ b/src/main/java/keystrokesmod/module/impl/player/Disabler.java @@ -47,6 +47,7 @@ public class Disabler extends Module { private double firstY; private boolean reset; private float savedYaw, savedPitch; + private boolean worldJoin; public boolean disablerLoaded, running; @@ -81,6 +82,7 @@ public class Disabler extends Module { finished = 0; shouldRender = false; reset = false; + worldJoin = false; activationDelayMillis = (long)(activationDelay.getInput() * 1000); } @@ -112,18 +114,29 @@ public class Disabler extends Module { } if (waitingForGround) { + savedYaw = e.getYaw(); + savedPitch = e.getPitch(); + if (!running) { + //mc.thePlayer.motionY = 0; + } running = true; - if (mc.thePlayer.onGround) { - savedYaw = e.getYaw(); - savedPitch = e.getPitch(); + /*if (mc.thePlayer.ticksExisted <= 3) { mc.thePlayer.motionY = 0.42f; waitingForGround = false; + worldJoin = true; } + else */if (mc.thePlayer.onGround) { + mc.thePlayer.motionY = 0.42f; + waitingForGround = false; + worldJoin = false; + } + e.setRotations(savedYaw, savedPitch); return; } + e.setRotations(savedYaw, savedPitch); airTicks = mc.thePlayer.onGround ? 0 : airTicks + 1; - if (airTicks >= 10) { + if (airTicks >= 10 || worldJoin) { if (!applyingMotion) { applyingMotion = true; firstY = mc.thePlayer.posY; @@ -136,14 +149,12 @@ public class Disabler extends Module { mc.thePlayer.motionY = 0; mc.thePlayer.motionZ = 0; - e.setRotations(savedYaw, savedPitch); - if (mc.thePlayer.posY != firstY) { if (!reset) { resetState(); - activationDelayMillis = 4000; + activationDelayMillis = 5000; reset = true; - Utils.print("&7[&dR&7] &adisabler reset, wait 4s"); + Utils.print("&7[&dR&7] &adisabler reset, wait 5s"); } else { shouldRun = false; diff --git a/src/main/java/keystrokesmod/module/impl/player/FastFall.java b/src/main/java/keystrokesmod/module/impl/player/FastFall.java new file mode 100644 index 0000000..c015a65 --- /dev/null +++ b/src/main/java/keystrokesmod/module/impl/player/FastFall.java @@ -0,0 +1,116 @@ +package keystrokesmod.module.impl.player; + +import keystrokesmod.event.PreMotionEvent; +import keystrokesmod.event.PreUpdateEvent; +import keystrokesmod.module.Module; +import keystrokesmod.module.ModuleManager; +import keystrokesmod.module.setting.impl.ButtonSetting; +import keystrokesmod.module.setting.impl.SliderSetting; +import keystrokesmod.utility.BlockUtils; +import keystrokesmod.utility.Utils; +import net.minecraft.init.Blocks; +import net.minecraft.network.play.client.C03PacketPlayer; +import net.minecraft.util.BlockPos; +import net.minecraftforge.fml.common.eventhandler.EventPriority; +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; + +public class FastFall extends Module { + public SliderSetting mode; + private ButtonSetting disableAdventure; + private ButtonSetting ignoreVoid; + private String[] modes = new String[]{"Accelerate", "Timer"}; + + private double initialY; + private boolean isFalling; + + private int fallTicks; + private int motion; + + private SliderSetting ticks; + + public FastFall() { + super("FastFall", category.player); + this.registerSetting(mode = new SliderSetting("Mode", 0, modes)); + this.registerSetting(disableAdventure = new ButtonSetting("Disable adventure", false)); + this.registerSetting(ignoreVoid = new ButtonSetting("Ignore void", true)); + this.registerSetting(ticks = new SliderSetting("Intervals", 2, 1, 10, 1)); + } + + public void onDisable() { + Utils.resetTimer(); + } + + @SubscribeEvent + public void onPreUpdate(PreUpdateEvent e) { + if (reset()) { + Utils.resetTimer(); + initialY = mc.thePlayer.posY; + isFalling = false; + fallTicks = motion = 0; + return; + } + else if ((double) mc.thePlayer.fallDistance >= 2) { + isFalling = true; + } + + double predictedY = mc.thePlayer.posY + mc.thePlayer.motionY; + double distanceFallen = initialY - predictedY; + + if (isFalling && mode.getInput() == 0) { + ++fallTicks; + Utils.resetTimer(); + if (fallTicks >= ticks.getInput()) { + mc.thePlayer.motionY -= ((double) motion / 95); + fallTicks = 0; + motion++; + } + } + + if (isFalling && mode.getInput() == 1) { + ++fallTicks; + Utils.resetTimer(); + if (fallTicks >= ticks.getInput()) { + Utils.getTimer().timerSpeed = 1.5F; + fallTicks = 0; + } + } + } + + @Override + public String getInfo() { + return modes[(int) mode.getInput()]; + } + + private boolean isVoid() { + return Utils.overVoid(mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ); + } + + private boolean reset() { + if (disableAdventure.isToggled() && mc.playerController.getCurrentGameType().isAdventure()) { + return true; + } + if (ignoreVoid.isToggled() && isVoid()) { + return true; + } + if (Utils.isReplay()) { + return true; + } + if (mc.thePlayer.onGround) { + return true; + } + if (mc.thePlayer.motionY > -0.0784) { + return true; + } + if (mc.thePlayer.capabilities.isCreativeMode) { + return true; + } + if (mc.thePlayer.capabilities.isFlying) { + return true; + } + if (ModuleManager.scaffold.isEnabled) { + return true; + } + return false; + } + +} \ No newline at end of file diff --git a/src/main/java/keystrokesmod/module/impl/player/NoFall.java b/src/main/java/keystrokesmod/module/impl/player/NoFall.java index 274a03b..058a048 100644 --- a/src/main/java/keystrokesmod/module/impl/player/NoFall.java +++ b/src/main/java/keystrokesmod/module/impl/player/NoFall.java @@ -32,11 +32,12 @@ public class NoFall extends Module { private ButtonSetting disableAdventure; private ButtonSetting ignoreVoid; private ButtonSetting hideSound; - private String[] modes = new String[]{"Spoof", "NoGround", "Packet A", "Packet B", "CTW Packet"}; + private String[] modes = new String[]{"Spoof", "NoGround", "Packet A", "Packet B", "CTW Packet", "Prediction"}; private double initialY; private double dynamic; private boolean isFalling; + private double timerVal = 1; private int n; @@ -72,6 +73,13 @@ public class NoFall extends Module { } }*/ + @SubscribeEvent + public void onReceivePacket(ReceivePacketEvent e) { + if (e.getPacket() instanceof S08PacketPlayerPosLook && n > 0) { + n = 34; + } + } + @SubscribeEvent public void onPreUpdate(PreUpdateEvent e) { @@ -80,6 +88,7 @@ public class NoFall extends Module { initialY = mc.thePlayer.posY; isFalling = false; n = 0; + timerVal = 1; return; } else if ((double) mc.thePlayer.fallDistance >= minFallDistance.getInput()) { @@ -89,29 +98,55 @@ public class NoFall extends Module { double predictedY = mc.thePlayer.posY + mc.thePlayer.motionY; double distanceFallen = initialY - predictedY; - if (mc.thePlayer.motionY >= -1.0) { - dynamic = 3.0; - } - if (mc.thePlayer.motionY < -1.0) { - dynamic = 4.0; - } - if (mc.thePlayer.motionY < -2.0) { - dynamic = 5.0; - } if (isFalling && mode.getInput() == 2) { + if (mc.thePlayer.motionY >= -1.0) { + dynamic = 3.0; + } + if (mc.thePlayer.motionY < -1.0) { + dynamic = 4.0; + } + if (mc.thePlayer.motionY < -2.0) { + dynamic = 5.0; + } if (distanceFallen >= dynamic) { - Utils.getTimer().timerSpeed = 0.6799789F; + if (mc.thePlayer.motionY < -0.01) { + timerVal = 0.8; + } + if (mc.thePlayer.motionY < -1.0) { + timerVal = 0.7; + } + if (mc.thePlayer.motionY < -1.6) { + timerVal = 0.6; + } + Utils.getTimer().timerSpeed = (float) timerVal; mc.getNetHandler().addToSendQueue(new C03PacketPlayer(true)); initialY = mc.thePlayer.posY; } } - //Utils.print("" + dynamic); if (isFalling && mode.getInput() == 3) { + if (mc.thePlayer.motionY < -2.0) { + dynamic = 4.0; + } + else { + dynamic = 3.0; + } Utils.resetTimer(); if (mc.thePlayer.ticksExisted % 2 == 0) { - Utils.getTimer().timerSpeed = 0.47F; + if (mc.thePlayer.motionY < -0.01) { + timerVal = 0.65; + } + if (mc.thePlayer.motionY < -1.0) { + timerVal = 0.54; + } + if (mc.thePlayer.motionY < -1.6) { + timerVal = 0.46; + } + if (mc.thePlayer.motionY < -2.1) { + timerVal = 0.41; + } + Utils.getTimer().timerSpeed = (float) timerVal; } - if (distanceFallen >= 3) { + if (distanceFallen >= dynamic) { mc.getNetHandler().addToSendQueue(new C03PacketPlayer(true)); initialY = mc.thePlayer.posY; } @@ -124,6 +159,12 @@ public class NoFall extends Module { initialY = mc.thePlayer.posY; } } + if (isFalling && mode.getInput() == 5) { + if (distanceFallen >= 3 && n <= 4) { + mc.thePlayer.motionY = 0; + n++; + } + } //Utils.print("" + mc.thePlayer.ticksExisted + " " + mc.thePlayer.motionY + " " + edging); } diff --git a/src/main/java/keystrokesmod/module/impl/player/Scaffold.java b/src/main/java/keystrokesmod/module/impl/player/Scaffold.java index 90243d9..d0cae42 100644 --- a/src/main/java/keystrokesmod/module/impl/player/Scaffold.java +++ b/src/main/java/keystrokesmod/module/impl/player/Scaffold.java @@ -95,6 +95,7 @@ public class Scaffold extends Module { private boolean floatWasEnabled; private boolean floatKeepY; public int offsetDelay; + public boolean placedVP; //disable checks public boolean moduleEnabled; @@ -117,6 +118,8 @@ public class Scaffold extends Module { private float maxOffset; private int sameMouse; private int randomF, yawChanges, dynamic; + private boolean getVTR; + private float VTRY; //fake rotations private float fakeYaw, fakePitch; private float fakeYaw1, fakeYaw2; @@ -301,7 +304,10 @@ public class Scaffold extends Module { switch ((int) rotation.getInput()) { case 1: yaw = mc.thePlayer.rotationYaw - hardcodedYaw(); - pitch = 78F; + pitch = 76F; + if (!Utils.isDiagonal(true)) { + //yaw -= 45; + } e.setRotations(yaw, pitch); break; case 2: @@ -318,34 +324,34 @@ public class Scaffold extends Module { if (quad <= 5 || quad >= 85) { yawAngle = 125.625F; - minOffset = 18; + minOffset = 10; } if (quad > 5 && quad <= 15 || quad >= 75 && quad < 85) { yawAngle = 127.625F; - minOffset = 16; + minOffset = 10; } if (quad > 15 && quad <= 25 || quad >= 65 && quad < 75) { yawAngle = 129.625F; - minOffset = 14; + minOffset = 8; } if (quad > 25 && quad <= 32 || quad >= 58 && quad < 65) { yawAngle = 132.625F; - minOffset = 12; + minOffset = 8; } if (quad > 32 && quad <= 38 || quad >= 52 && quad < 58) { yawAngle = 134.625F; - minOffset = 9; + minOffset = 7; } if (quad > 38 && quad <= 42 || quad >= 48 && quad < 52) { yawAngle = 136.625F; - minOffset = 7; + minOffset = 6; } if (quad > 42 && quad <= 45 || quad >= 45 && quad < 48) { yawAngle = 139.625F; minOffset = 5; } - minPitch = 78.55F; + minPitch = 80.45F; //Utils.print("" + minOffset); //float offsetAmountD = ((((float) offsetAmount.getInput() / 10) - 10) * -2) - (((float) offsetAmount.getInput() / 10) - 10); //yawAngle += offsetAmountD; @@ -367,7 +373,7 @@ public class Scaffold extends Module { if (firstStroke > 0 && (System.currentTimeMillis() - firstStroke) > strokeDelay) { firstStroke = 0; } - if (enabledOffGround) { + if (enabledOffGround && Utils.distanceToGround(mc.thePlayer) > 2) { if (blockRotations != null) { yaw = blockRotations[0]; pitch = blockRotations[1]; @@ -378,12 +384,15 @@ public class Scaffold extends Module { e.setRotations(yaw, pitch); break; } + else { + enabledOffGround = false; + } if (blockRotations != null) { blockYaw = blockRotations[0]; pitch = blockRotations[1]; yawOffset = blockYawOffset; - if (pitch < minPitch) { + if (pitch < minPitch && ModuleManager.tower.activeTicks <= 3) { pitch = minPitch; } } else { @@ -547,10 +556,20 @@ public class Scaffold extends Module { rotatingForward = false; } - if (ModuleManager.tower.isVerticalTowering()) { + if (rotation.getInput() == 2 && mc.thePlayer.motionX == 0.0D && mc.thePlayer.motionZ == 0.0D) { if (blockRotations != null) { e.setYaw(blockRotations[0]); } + } + + if (ModuleManager.tower.isVerticalTowering()) { + if (blockRotations != null && (!getVTR || ModuleManager.tower.ebDelay <= 1 || !ModuleManager.tower.firstVTP)) { + VTRY = blockRotations[0]; + getVTR = true; + } + if (getVTR) { + e.setYaw(VTRY); + } if (ModuleManager.tower.yaw != 0) { e.setYaw(ModuleManager.tower.yaw); } @@ -558,6 +577,9 @@ public class Scaffold extends Module { e.setPitch(ModuleManager.tower.pitch); } } + else { + getVTR = false; + } //pitch fix if (e.getPitch() > 89.9F) { @@ -611,7 +633,7 @@ public class Scaffold extends Module { @SubscribeEvent public void onSlotUpdate(SlotUpdateEvent e) { - if (isEnabled) { + if (isEnabled && autoSwap.isToggled()) { lastSlot.set(e.slot); e.setCanceled(true); } @@ -650,12 +672,19 @@ public class Scaffold extends Module { hasSwapped = true; int mode = (int) fastScaffold.getInput(); - if (rotation.getInput() == 0 || rotationDelay == 0) { + 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) { @@ -780,7 +809,7 @@ public class Scaffold extends Module { public boolean sprint() { if (isEnabled) { - return handleFastScaffolds() > 0 || !holdingBlocks(); + return handleFastScaffolds() > 0; } return false; } @@ -825,6 +854,9 @@ public class Scaffold extends Module { mc.getItemRenderer().resetEquippedProgress(); } } + if (ModuleManager.tower.placeExtraBlock) { + ModuleManager.tower.firstVTP = true; + } highlight.put(block.blockPos.offset(block.enumFacing), null); hasPlaced = true; } @@ -1028,7 +1060,15 @@ public class Scaffold extends Module { private boolean placeConditions(EnumFacing enumFacing, int yCondition, int xCondition) { if (xCondition == -1) { - return enumFacing == EnumFacing.EAST; + if (!ModuleManager.tower.placeExtraBlock) { + return enumFacing == EnumFacing.EAST; + } + else { + return enumFacing == EnumFacing.DOWN; + } + } + else if (ModuleManager.tower.placeExtraBlock) { + return enumFacing == EnumFacing.WEST; } if (yCondition == 1) { return enumFacing == EnumFacing.DOWN; @@ -1105,7 +1145,7 @@ public class Scaffold extends Module { } private void handleMotion() { - if (handleFastScaffolds() > 0 || ModuleManager.tower.canTower()) { + if (handleFastScaffolds() > 0 || ModuleManager.tower.canTower() || motion.getInput() == 100) { return; } double input = (motion.getInput() / 100); diff --git a/src/main/java/keystrokesmod/module/impl/player/Tower.java b/src/main/java/keystrokesmod/module/impl/player/Tower.java index faee08d..fbd43ee 100644 --- a/src/main/java/keystrokesmod/module/impl/player/Tower.java +++ b/src/main/java/keystrokesmod/module/impl/player/Tower.java @@ -17,6 +17,7 @@ import net.minecraft.network.play.server.S27PacketExplosion; import net.minecraft.potion.PotionEffect; import net.minecraftforge.fml.common.eventhandler.EventPriority; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; +import net.minecraftforge.fml.common.gameevent.TickEvent; public class Tower extends Module { final public SliderSetting towerMove; @@ -28,18 +29,21 @@ public class Tower extends Module { private GroupSetting cancelKnockbackGroup; private final ButtonSetting cancelKnockback; private ButtonSetting cancelVelocityRequired; - public ButtonSetting capUpFaces; + public SliderSetting extraBlockDelay; - final private String[] towerMoveModes = new String[]{"None", "Vanilla", "Low", "Edge", "2.5 tick", "1.5 tick", "1 tick", "10 tick"}; - final private String[] verticalTowerModes = new String[]{"None", "Vanilla", "Extra block"}; + final private String[] towerMoveModes = new String[]{"None", "Vanilla", "3 tick", "Edge", "2.5 tick", "1.5 tick", "1 tick", "10 tick", "Jump"}; + final private String[] verticalTowerModes = new String[]{"None", "Vanilla", "Extra block", "3 tick", "Edge"}; private int slowTicks; - private boolean wasTowering; + private boolean wasTowering, vtowering; private int towerTicks; public boolean towering; private boolean hasTowered, startedTowerInAir, setLowMotion, firstJump; private int cMotionTicks, placeTicks; public int dCount; public float yaw; + private int vt; + + public int activeTicks; public float pitch; @@ -47,13 +51,15 @@ public class Tower extends Module { //vertical tower private boolean aligning, aligned, placed; - private int blockX; + private double blockX; private double firstX, firstY, firstZ; public boolean placeExtraBlock; + public int ebDelay; + public boolean firstVTP; public boolean speed; - private int grounds; + private int grounds, towerVL; public int upFaces; @@ -62,6 +68,7 @@ public class Tower extends Module { this.registerSetting(towerMove = new SliderSetting("Tower Move", 0, towerMoveModes)); this.registerSetting(speedSetting = new SliderSetting("Speed", 3.0, 0.5, 8.0, 0.1)); this.registerSetting(verticalTower = new SliderSetting("Vertical Tower", 0, verticalTowerModes)); + this.registerSetting(extraBlockDelay = new SliderSetting("Extra block delay", "", 0, 0, 10, 1)); this.registerSetting(slowedSpeed = new SliderSetting("Slowed speed", "%", 0, 0, 100, 1)); this.registerSetting(slowedTicks = new SliderSetting("Slowed ticks", 1, 0, 20, 1)); this.registerSetting(disableWhileHurt = new ButtonSetting("Disable while hurt", false)); @@ -73,6 +80,10 @@ public class Tower extends Module { this.canBeEnabled = false; } + public void guiUpdate() { + this.extraBlockDelay.setVisible(verticalTower.getInput() == 2, this); + } + @SubscribeEvent public void onReceivePacket(ReceivePacketEvent e) { if (!Utils.nullCheck() || !cancelKnockback()) { @@ -90,6 +101,9 @@ public class Tower extends Module { @SubscribeEvent public void onPreMotion(PreMotionEvent e) { + if (!Utils.nullCheck()) { + return; + } if (canTower() && Utils.keysDown()) { if (disableWhileHurt.isToggled() && ModuleUtils.damage) { return; @@ -131,10 +145,17 @@ public class Tower extends Module { @SubscribeEvent public void onPreUpdate(PreUpdateEvent e) { + if (!Utils.nullCheck()) { + return; + } int valY = (int) Math.round((mc.thePlayer.posY % 1) * 10000); int simpleY = (int) Math.round((mc.thePlayer.posY % 1.0D) * 100.0D); + if (towerVL > 0) { + --towerVL; + } if (towerMove.getInput() > 0) { if (canTower() && Utils.keysDown()) { + ++activeTicks; speed = false; wasTowering = hasTowered = true; if (disableWhileHurt.isToggled() && ModuleUtils.damage) { @@ -157,28 +178,26 @@ public class Tower extends Module { towerTicks = 0; } case 2: - if (mc.thePlayer.onGround) { - mc.thePlayer.motionY = 0.4196; - } else { - switch (towerTicks) { - case 3: - case 4: - mc.thePlayer.motionY = 0; - break; - case 5: - mc.thePlayer.motionY = 0.4191; - break; - case 6: - mc.thePlayer.motionY = 0.3275; - break; - case 11: - mc.thePlayer.motionY = -0.5; - + if (mc.thePlayer.posY % 1 == 0 && mc.thePlayer.onGround || towerVL > 0) { + towering = true; + } + if (towering) { + if (valY == 0) { + mc.thePlayer.motionY = 0.42f; + Utils.setSpeed(getTowerGroundSpeed(getSpeedLevel())); + startedTowerInAir = false; + } else if (valY > 4000 && valY < 4300) { + mc.thePlayer.motionY = 0.33f; + Utils.setSpeed(getTowerSpeed(getSpeedLevel())); + speed = true; + } else if (valY > 7000) { + mc.thePlayer.motionY = 1 - mc.thePlayer.posY % 1; } + towerVL = 2; } break; case 3: - if (mc.thePlayer.posY % 1 == 0 && mc.thePlayer.onGround && !setLowMotion) { + if ((mc.thePlayer.posY % 1 == 0 && mc.thePlayer.onGround || towerVL > 0) && !setLowMotion) { towering = true; } if (towering) { @@ -196,6 +215,7 @@ public class Tower extends Module { } mc.thePlayer.motionY = 1 - mc.thePlayer.posY % 1; } + towerVL = 2; } else if (setLowMotion) { ++cMotionTicks; if (cMotionTicks == 1) { @@ -335,6 +355,19 @@ public class Tower extends Module { } } break; + case 8: + if (mc.thePlayer.posY % 1 == 0 && mc.thePlayer.onGround) { + towering = true; + } + if (towering) { + if (mc.thePlayer.onGround) { + mc.thePlayer.jump(); + Utils.setSpeed(getTowerSpeed(getSpeedLevel())); + speed = true; + ModuleManager.scaffold.rotateForward(); + } + } + break; } } else { @@ -365,7 +398,7 @@ public class Tower extends Module { Utils.setSpeed(Utils.getHorizontalSpeed(mc.thePlayer) / 1.6); } hasTowered = towering = firstJump = startedTowerInAir = setLowMotion = speed = false; - cMotionTicks = placeTicks = towerTicks = grounds = upFaces = 0; + cMotionTicks = placeTicks = towerTicks = grounds = upFaces = activeTicks = 0; reset(); } } @@ -380,7 +413,7 @@ public class Tower extends Module { if (!aligned) { if (mc.thePlayer.onGround) { if (!aligning) { - blockX = (int) mc.thePlayer.posX; + blockX = (int) mc.thePlayer.posX + 1; firstX = mc.thePlayer.posX - 10; firstY = mc.thePlayer.posY; @@ -389,7 +422,7 @@ public class Tower extends Module { mc.thePlayer.motionX = 0.22; aligning = true; } - if (aligning && (int) mc.thePlayer.posX > blockX) { + if (aligning && mc.thePlayer.posX >= blockX) { aligned = true; } yaw = RotationUtils.getRotations(firstX, firstY, firstZ)[0]; @@ -397,30 +430,65 @@ public class Tower extends Module { } if (aligned) { if (placed) { - yaw = 0; - pitch = 89.9F; + yaw = RotationUtils.getRotations(firstX, firstY, firstZ)[0]; + //yaw = RotationUtils.getRotations(mc.thePlayer.posX + 10, mc.thePlayer.posY, mc.thePlayer.posZ)[0]; + /*if (ModuleManager.scaffold.placedVP) { + pitch = 89.6F; + ModuleManager.scaffold.placedVP = false; + } + else {*/ + pitch = 86.6F; + //} } else { yaw = RotationUtils.getRotations(firstX, firstY, firstZ)[0]; pitch = 0; } placeExtraBlock = true; + Utils.setSpeed(0); mc.thePlayer.motionX = 0; mc.thePlayer.motionY = verticalTowerValue(); mc.thePlayer.motionZ = 0; + towerVL = 2; + } + break; + case 3: + if (mc.thePlayer.posY % 1 == 0 && mc.thePlayer.onGround || towerVL > 0) { + vtowering = true; + } + if (vtowering) { + mc.thePlayer.motionY = verticalTowerValue(); + towerVL = 2; + } + break; + case 4: + if (mc.thePlayer.posY % 1 == 0 && mc.thePlayer.onGround || towerVL > 0) { + vtowering = true; + } + if (vtowering) { + ++vt; + towerVL = 2; + if (vt <= 6 && verticalTowerValue() != 0) { + mc.thePlayer.motionY = verticalTowerValue(); + } + else { + vt = 0; + } } break; } } else { yaw = pitch = 0; - aligning = aligned = placed = false; + aligning = aligned = placed = vtowering = false; firstX = 0; - placeExtraBlock = false; + placeExtraBlock = firstVTP = false; + ebDelay = vt = 0; + ModuleManager.scaffold.placedVP = false; } } } public boolean isVerticalTowering() { - return canTower() && !Utils.keysDown() && verticalTower.getInput() == 2; + return canTower() && !Utils.keysDown() && verticalTower.getInput() > 0; } @SubscribeEvent @@ -451,6 +519,12 @@ public class Tower extends Module { @SubscribeEvent public void onSendPacket(SendPacketEvent e) { if (e.getPacket() instanceof C08PacketPlayerBlockPlacement) { + if (firstVTP) { + ebDelay++; + if (ebDelay >= extraBlockDelay.getInput() + 2) { + ebDelay = 0; + } + } if (canTower() && Utils.isMoving()) { ++placeTicks; if (((C08PacketPlayerBlockPlacement) e.getPacket()).getPlacedBlockDirection() == 1 && hasTowered) { @@ -558,7 +632,7 @@ public class Tower extends Module { private double getTowerGroundSpeed(int speedLevel) { if (speedLevel == 0) { - return (speedSetting.getInput() / 10) - 0.08; + return (speedSetting.getInput() / 10) - 0.085; } else if (speedLevel == 1) { return (speedSetting.getInput() / 10) - 0.05; } else if (speedLevel == 2) { diff --git a/src/main/java/keystrokesmod/utility/ModuleUtils.java b/src/main/java/keystrokesmod/utility/ModuleUtils.java index 20f297a..8a1041e 100644 --- a/src/main/java/keystrokesmod/utility/ModuleUtils.java +++ b/src/main/java/keystrokesmod/utility/ModuleUtils.java @@ -9,6 +9,7 @@ import keystrokesmod.utility.command.CommandManager; import net.minecraft.block.Block; import net.minecraft.block.BlockAir; import net.minecraft.block.BlockSlab; +import net.minecraft.block.BlockSnow; import net.minecraft.client.Minecraft; import keystrokesmod.module.ModuleManager; import net.minecraft.client.settings.KeyBinding; @@ -44,12 +45,13 @@ public class ModuleUtils { private long FIREBALL_TIMEOUT = 500L, fireballTime = 0; public static int inAirTicks, groundTicks, stillTicks; public static int fadeEdge; - public static double offsetValue = 4e-12; + public static double offsetValue = 6e-14; public static boolean isAttacking; private int attackingTicks; private int unTargetTicks; public static int profileTicks = -1, swapTick; - public static boolean lastTickOnGround, lastTickPos1; + public static int lastY, thisY; + public static boolean lastTickOnGround, lastTickPos1, lastYDif; private boolean thisTickOnGround, thisTickPos1; public static boolean firstDamage; @@ -245,7 +247,7 @@ public class ModuleUtils { if (canSlow || ModuleManager.scaffold.moduleEnabled && !ModuleManager.tower.canTower()) { double motionVal = 0.9507832 - ((double) inAirTicks / 10000) - Utils.randomizeDouble(0.00001, 0.00006); if (!hasSlowed) motionVal = motionVal - 0.15; - if (mc.thePlayer.hurtTime == 0 && inAirTicks >= 3 && !setSlow) { + if (mc.thePlayer.hurtTime == 0 && inAirTicks >= 3 && !setSlow && ModuleManager.scaffold.rotation.getInput() == 2) { mc.thePlayer.motionX *= motionVal; mc.thePlayer.motionZ *= motionVal; setSlow = hasSlowed = true; @@ -337,6 +339,16 @@ public class ModuleUtils { lastTickPos1 = thisTickPos1; thisTickPos1 = mc.thePlayer.posY % 1 == 0; + lastY = thisY; + thisY = (int) mc.thePlayer.posY; + + if (thisY >= lastY + 2 || thisY <= lastY - 2) { + lastYDif = true; + } + else { + lastYDif = false; + } + inAirTicks = mc.thePlayer.onGround ? 0 : ++inAirTicks; groundTicks = !mc.thePlayer.onGround ? 0 : ++groundTicks; stillTicks = Utils.isMoving() ? 0 : ++stillTicks; @@ -348,6 +360,9 @@ public class ModuleUtils { if ((ModuleManager.bhop.didMove || ModuleManager.scaffold.lowhop) && (!ModuleManager.bhop.disablerOnly.isToggled() || ModuleManager.bhop.disablerOnly.isToggled() && ModuleManager.disabler.disablerLoaded)) { + if (ModuleUtils.damage && Velocity.vertical.getInput() != 0 || block instanceof BlockSlab) { + resetLowhop(); + } if (!ModuleUtils.damage || Velocity.vertical.getInput() == 0) { if (ModuleManager.scaffold.lowhop) { @@ -394,6 +409,7 @@ public class ModuleUtils { resetLowhop(); break; } + boolean g1 = Utils.distanceToGround(mc.thePlayer) <= 1.3; if (inAirTicks == 1) { mc.thePlayer.motionY = 0.38999998569488; ModuleManager.bhop.lowhop = true; @@ -404,16 +420,16 @@ public class ModuleUtils { if (inAirTicks == 3) { mc.thePlayer.motionY = 0.08842400075912; } - if (inAirTicks == 4 && Utils.distanceToGround(mc.thePlayer) < 2) { + if (inAirTicks == 4 && g1) { mc.thePlayer.motionY = -0.19174457909538; } - if (inAirTicks == 5 && Utils.distanceToGround(mc.thePlayer) < 2) { + if (inAirTicks == 5 && g1) { mc.thePlayer.motionY = -0.26630949469659; } - if (inAirTicks == 6 && Utils.distanceToGround(mc.thePlayer) < 2) { + if (inAirTicks == 6 && g1) { mc.thePlayer.motionY = -0.26438340940798; } - if (inAirTicks == 7 && Utils.distanceToGround(mc.thePlayer) < 2) { + if (inAirTicks == 7 && g1) { mc.thePlayer.motionY = -0.33749574778843; } //strafe @@ -421,7 +437,7 @@ public class ModuleUtils { Utils.setSpeed(Utils.getHorizontalSpeed(mc.thePlayer)); } //disable - if (inAirTicks >= 8) { + if (inAirTicks >= 8 || inAirTicks >= 4 && !g1) { resetLowhop(); } break; diff --git a/src/main/java/keystrokesmod/utility/command/impl/Help.java b/src/main/java/keystrokesmod/utility/command/impl/Help.java index 26cbb65..14ec8de 100644 --- a/src/main/java/keystrokesmod/utility/command/impl/Help.java +++ b/src/main/java/keystrokesmod/utility/command/impl/Help.java @@ -14,6 +14,7 @@ public class Help extends Command { chat(" &b.ping &7Estimate your ping."); chat(" &b.friend/enemy [name/clear] &7Adds as enemy/friend."); chat(" &b.q [mode] &7Queues a gamemode."); + chat(" &b.qlist &7Shows the modes you can queue with the \".q\" command"); chat(" &b.status [player] &7Checks if a player is online or not. (Bypasses filters)"); chatWithPrefix("&7Chat commands - &dModules"); chat(" &b.cname [name] &7Set name hider name."); diff --git a/src/main/java/keystrokesmod/utility/command/impl/Q.java b/src/main/java/keystrokesmod/utility/command/impl/Q.java index 5415050..4c99d00 100644 --- a/src/main/java/keystrokesmod/utility/command/impl/Q.java +++ b/src/main/java/keystrokesmod/utility/command/impl/Q.java @@ -40,7 +40,7 @@ public class Q extends Command { hypixelPlayCommands.put("swsi", "solo_insane"); hypixelPlayCommands.put("swtn", "teams_normal"); hypixelPlayCommands.put("swti", "teams_insane"); - hypixelPlayCommands.put("bowd", "duels_bow_duel"); + hypixelPlayCommands.put("bowduel", "duels_bow_duel"); hypixelPlayCommands.put("classicduel", "duels_classic_duel"); hypixelPlayCommands.put("opduel", "duels_op_duel"); hypixelPlayCommands.put("uhcduel", "duels_uhc_duel"); diff --git a/src/main/java/keystrokesmod/utility/command/impl/QList.java b/src/main/java/keystrokesmod/utility/command/impl/QList.java new file mode 100644 index 0000000..9ec3eee --- /dev/null +++ b/src/main/java/keystrokesmod/utility/command/impl/QList.java @@ -0,0 +1,50 @@ +package keystrokesmod.utility.command.impl; + +import keystrokesmod.utility.Utils; +import keystrokesmod.utility.command.Command; + +import java.util.HashMap; +import java.util.Map; + +public class QList extends Command { + public QList() { + super("QList"); + } + + @Override + public void onExecute(String[] args) { + chat(" &7-------------------------------------&r"); + chat(" &7Q List:"); + chat(" &7 "); + chat(" &7p - Bedwars Practice"); + chat(" &71 - Bedwars Solos"); + chat(" &72 - Bedwars Doubles"); + chat(" &73 - Bedwars Threes"); + chat(" &74 - Bedwars Fours"); + chat(" &74v4 - Bedwars 4v4"); + chat(" &72t - Bedwars Doubles Tourney"); + chat(" &72un - Bedwars Doubles Tower Underworld"); + chat(" &74un - Bedwars Fours Tower Underworld"); + chat(" &72r - Bedwars Doubles Rush"); + chat(" &74r - Bedwars Fours Rush"); + chat(" &7pit - The Pit"); + chat(" &7swsn - Skywars Solo Normal"); + chat(" &7swsi - Skywars Solo Insane"); + chat(" &7swtn - Skywars Teams Normal"); + chat(" &7swti - Skywars Teams Insane"); + chat(" &7bowduel - Bow Duel"); + chat(" &7classicduel - Classic Duel"); + chat(" &7opduel - OP Duel"); + chat(" &7uhcduel - UHC Duel"); + chat(" &7bridgeduel - Bridge Duel"); + chat(" &7uhc - UHC Solos"); + chat(" &7uhcteams - UHC Teams"); + chat(" &7grinch - Grinch Simulator"); + chat(" &7grinchtourney - Grinch Simulator Tournament"); + chat(" &7mm - Murder Mystery Classic"); + chat(" &7castle - Bedwars Castle"); + chat(" &7ww - Wool Wars"); + chat(" &7ctw - Capture The Wool"); + chat(" &7-------------------------------------"); + } +}