Latest release

This commit is contained in:
jackh 2025-04-04 13:54:37 -07:00
parent 155fce3dca
commit 233307f4af
11 changed files with 243 additions and 64 deletions

View File

@ -76,7 +76,7 @@ public class KillAura extends Module {
private ButtonSetting silentSwing; private ButtonSetting silentSwing;
private ButtonSetting weaponOnly; private ButtonSetting weaponOnly;
private String[] autoBlockModes = new String[] { "Manual", "Vanilla", "Partial", "Via A", "Via B", "Post", "Swap", "Delay" }; private String[] autoBlockModes = new String[] { "Manual", "Vanilla", "Partial", "Blink A", "Blink B", "Post", "Swap", "Delay" };
private String[] rotationModes = new String[] { "Silent", "Lock view", "None" }; private String[] rotationModes = new String[] { "Silent", "Lock view", "None" };
private String[] rotateModes = new String[] { "Attacking", "Swinging" }; private String[] rotateModes = new String[] { "Attacking", "Swinging" };
private String[] sortModes = new String[] { "Distance", "Health", "Hurttime", "Yaw" }; private String[] sortModes = new String[] { "Distance", "Health", "Hurttime", "Yaw" };
@ -338,6 +338,13 @@ public class KillAura extends Module {
disableCheckUsing = true; disableCheckUsing = true;
return; return;
} }
if (ModuleManager.noFall.isBlinking) {
if (blinking.get() || lag) {
resetBlinkState(true);
}
setTarget(null);
return;
}
if (ModuleManager.antiVoid.started) { if (ModuleManager.antiVoid.started) {
if (blinking.get() || lag) { if (blinking.get() || lag) {
resetBlinkState(true); resetBlinkState(true);
@ -960,7 +967,7 @@ public class KillAura extends Module {
break; break;
} }
break; break;
case 3: // via a case 3: // blink a
if (interactTicks >= 3) { if (interactTicks >= 3) {
interactTicks = 0; interactTicks = 0;
} }
@ -968,19 +975,10 @@ public class KillAura extends Module {
if (firstCycle) { if (firstCycle) {
switch (interactTicks) { switch (interactTicks) {
case 1: case 1:
blinking.set(true);
++cycleCount1;
if (cycleCount1 > 2) {
cycleCount1 = 0;
}
if (ModuleUtils.isBlocked) { if (ModuleUtils.isBlocked) {
if (cycleCount1 <= -1) { blinking.set(true);
sendUnBlockPacket(); setSwapSlot();
} swapped = true;
else {
setSwapSlot();
swapped = true;
}
} }
break; break;
case 2: case 2:
@ -991,6 +989,7 @@ public class KillAura extends Module {
handleInteractAndAttack(distance, true, true, swung); handleInteractAndAttack(distance, true, true, swung);
sendBlockPacket(); sendBlockPacket();
releasePackets(); // release releasePackets(); // release
blinking.set(false);
interactTicks = 0; interactTicks = 0;
++cycleCount2; ++cycleCount2;
if (cycleCount2 > 5) { if (cycleCount2 > 5) {
@ -1004,6 +1003,7 @@ public class KillAura extends Module {
switch (interactTicks) { switch (interactTicks) {
case 1: case 1:
if (ModuleUtils.isBlocked) { if (ModuleUtils.isBlocked) {
blinking.set(true);
setSwapSlot(); setSwapSlot();
swapped = true; swapped = true;
} }
@ -1016,6 +1016,7 @@ public class KillAura extends Module {
handleInteractAndAttack(distance, true, true, swung); handleInteractAndAttack(distance, true, true, swung);
sendBlockPacket(); sendBlockPacket();
releasePackets(); // release releasePackets(); // release
blinking.set(false);
break; break;
case 3: case 3:
firstCycle = true; firstCycle = true;
@ -1024,32 +1025,22 @@ public class KillAura extends Module {
} }
} }
break; break;
case 4: // via b case 4: // blink b
interactTicks++; interactTicks++;
switch (interactTicks) { switch (interactTicks) {
case 1: case 1:
blinking.set(true);
if (ModuleUtils.isBlocked) { if (ModuleUtils.isBlocked) {
setSwapSlot(); blinking.set(true);
swapped = true; sendUnBlockPacket();
} }
break; break;
case 2: case 2:
if (swapped) {
setCurrentSlot();
swapped = false;
}
handleInteractAndAttack(distance, true, true, swung); handleInteractAndAttack(distance, true, true, swung);
sendBlockPacket(); sendBlockPacket();
if (++cycleCount2 > 1) { releasePackets(); // release
interactTicks = 0; blinking.set(false);
}
else {
releasePackets(); // release
}
break; break;
case 3: case 3:
releasePackets(); // release
interactTicks = 0; interactTicks = 0;
firstCycle = false; firstCycle = false;
break; break;
@ -1095,8 +1086,8 @@ public class KillAura extends Module {
interactTicks++; interactTicks++;
switch (interactTicks) { switch (interactTicks) {
case 1: case 1:
blinking.set(true);
if (ModuleUtils.isBlocked) { if (ModuleUtils.isBlocked) {
blinking.set(true);
setSwapSlot(); setSwapSlot();
swapped = true; swapped = true;
} }

View File

@ -119,7 +119,7 @@ public class Velocity extends Module {
@SubscribeEvent @SubscribeEvent
public void onReceivePacketAll(ReceiveAllPacketsEvent e) { public void onReceivePacketAll(ReceiveAllPacketsEvent e) {
if (velocityModes.getInput() >= 1) { if (velocityModes.getInput() >= 1) {
if (!Utils.nullCheck() || LongJump.stopVelocity || e.isCanceled() || ModuleManager.blink.isEnabled() && ModuleManager.blink.cancelKnockback.isToggled() || ModuleManager.bedAura.cancelKnockback() || ModuleManager.tower.cancelKnockback() || velocityModes.getInput() == 2 && ModuleUtils.firstDamage || ModuleManager.bhop.isEnabled() && ModuleManager.bhop.damageBoost.isToggled() && ModuleUtils.firstDamage && (!ModuleManager.bhop.damageBoostRequireKey.isToggled() || ModuleManager.bhop.damageBoostKey.isPressed())) { if (!Utils.nullCheck() || LongJump.stopVelocity || e.isCanceled() || velocityModes.getInput() == 2 && ModuleUtils.firstDamage || ModuleManager.bhop.isEnabled() && ModuleManager.bhop.damageBoost.isToggled() && ModuleUtils.firstDamage && (!ModuleManager.bhop.damageBoostRequireKey.isToggled() || ModuleManager.bhop.damageBoostKey.isPressed())) {
return; return;
} }
if (e.getPacket() instanceof S27PacketExplosion) { if (e.getPacket() instanceof S27PacketExplosion) {
@ -239,7 +239,7 @@ public class Velocity extends Module {
} }
private boolean dontEditMotion() { private boolean dontEditMotion() {
if (velocityModes.getInput() == 1 && zzWhileNotTargeting.isToggled() && !ModuleManager.killAura.isTargeting) { if (velocityModes.getInput() == 1 && zzWhileNotTargeting.isToggled() && !ModuleManager.killAura.isTargeting || ModuleManager.noFall.start || ModuleManager.blink.isEnabled() && ModuleManager.blink.cancelKnockback.isToggled() || ModuleManager.bedAura.cancelKnockback() || ModuleManager.tower.cancelKnockback()) {
return true; return true;
} }
return false; return false;

View File

@ -13,18 +13,20 @@ public class KeepSprint extends Module {
public static SliderSetting slow; public static SliderSetting slow;
public static ButtonSetting disableWhileJump; public static ButtonSetting disableWhileJump;
public static ButtonSetting reduceReachHits; public static ButtonSetting reduceReachHits;
public static ButtonSetting onlyDamage;
public KeepSprint() { public KeepSprint() {
super("KeepSprint", Module.category.movement, 0); super("KeepSprint", Module.category.movement, 0);
this.registerSetting(new DescriptionSetting(new String("Default is 40% motion reduction."))); this.registerSetting(new DescriptionSetting(new String("Default is 40% motion reduction.")));
this.registerSetting(slow = new SliderSetting("Slow %", 40.0D, 0.0D, 40.0D, 1.0D)); this.registerSetting(slow = new SliderSetting("Slow %", 40.0D, 0.0D, 40.0D, 1.0D));
this.registerSetting(disableWhileJump = new ButtonSetting("Disable while jumping", false)); this.registerSetting(disableWhileJump = new ButtonSetting("Disable while jumping", false));
this.registerSetting(onlyDamage = new ButtonSetting("Only while hurt", false));
this.registerSetting(reduceReachHits = new ButtonSetting("Only reduce reach hits", false)); this.registerSetting(reduceReachHits = new ButtonSetting("Only reduce reach hits", false));
} }
public static void keepSprint(Entity en) { public static void keepSprint(Entity en) {
boolean vanilla = false; boolean vanilla = false;
if (disableWhileJump.isToggled() && !mc.thePlayer.onGround) { if (disableWhileJump.isToggled() && !mc.thePlayer.onGround || onlyDamage.isToggled() && mc.thePlayer.hurtTime == 0) {
vanilla = true; vanilla = true;
} }
else if (reduceReachHits.isToggled() && !mc.thePlayer.capabilities.isCreativeMode) { else if (reduceReachHits.isToggled() && !mc.thePlayer.capabilities.isCreativeMode) {

View File

@ -2,6 +2,7 @@ package keystrokesmod.module.impl.player;
import keystrokesmod.Raven; import keystrokesmod.Raven;
import keystrokesmod.event.PreUpdateEvent; import keystrokesmod.event.PreUpdateEvent;
import keystrokesmod.event.ReceiveAllPacketsEvent;
import keystrokesmod.event.ReceivePacketEvent; import keystrokesmod.event.ReceivePacketEvent;
import keystrokesmod.event.SendPacketEvent; import keystrokesmod.event.SendPacketEvent;
import keystrokesmod.module.Module; import keystrokesmod.module.Module;
@ -63,7 +64,7 @@ public class AntiVoid extends Module {
return; return;
} }
Packet packet = e.getPacket(); Packet packet = e.getPacket();
if (!started && (!Utils.overVoid(mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ) || mc.thePlayer.onGround)) { if (!started && (!Utils.overVoid() || mc.thePlayer.onGround)) {
y = mc.thePlayer.posY; y = mc.thePlayer.posY;
wait = false; wait = false;
return; return;
@ -74,8 +75,8 @@ public class AntiVoid extends Module {
if (packet.getClass().getSimpleName().startsWith("S")) { if (packet.getClass().getSimpleName().startsWith("S")) {
return; return;
} }
if (ModuleManager.killAura.isTargeting || ModuleManager.killAura.justUnTargeted) { if (ModuleManager.noFall.isBlinking) {
//return; return;
} }
if (wait) { if (wait) {
return; return;
@ -97,10 +98,10 @@ public class AntiVoid extends Module {
@SubscribeEvent @SubscribeEvent
public void onPreUpdate(PreUpdateEvent e) { public void onPreUpdate(PreUpdateEvent e) {
if (!Utils.overVoid(mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ) || mc.thePlayer.onGround) { if (!Utils.overVoid() || mc.thePlayer.onGround) {
release(); release();
} }
if (dist() && Utils.overVoid(mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ) || disableLJ.isToggled() && LongJump.function) { if (dist() && Utils.overVoid() || disableLJ.isToggled() && LongJump.function) {
release(); release();
wait = true; wait = true;
} }

View File

@ -105,6 +105,9 @@ public class BedAura extends Module {
reset(true, true); reset(true, true);
return; return;
} }
if (ModuleManager.noFall.start) {
return;
}
if (Utils.isBedwarsPractice() || Utils.isReplay()) { if (Utils.isBedwarsPractice() || Utils.isReplay()) {
return; return;
} }

View File

@ -122,17 +122,17 @@ public class Blink extends Module {
} }
@SubscribeEvent(priority = EventPriority.LOWEST) @SubscribeEvent
public void onReceivePacketAll(ReceiveAllPacketsEvent e) { public void onReceivePacketAll(ReceiveAllPacketsEvent e) {
if (!Utils.nullCheck() || e.isCanceled() || !cancelKnockback.isToggled()) { if (!Utils.nullCheck() || e.isCanceled() || !cancelKnockback.isToggled()) {
return; return;
} }
if (e.getPacket() instanceof S12PacketEntityVelocity) { if (e.getPacket() instanceof S12PacketEntityVelocity) {
if (((S12PacketEntityVelocity) e.getPacket()).getEntityID() == mc.thePlayer.getEntityId()) { if (((S12PacketEntityVelocity) e.getPacket()).getEntityID() == mc.thePlayer.getEntityId()) {
blinkedPackets.add(e.getPacket());
e.setCanceled(true); e.setCanceled(true);
} }
} }
} }
@Override @Override

View File

@ -69,6 +69,8 @@ public class Disabler extends Module {
} }
private void resetState() { private void resetState() {
savedYaw = mc.thePlayer.rotationYaw;
savedPitch = mc.thePlayer.rotationPitch;
shouldRun = true; shouldRun = true;
tickCounter = 0; tickCounter = 0;
applyingMotion = false; applyingMotion = false;
@ -111,11 +113,7 @@ public class Disabler extends Module {
if ((now - lobbyTime) < activationDelayMillis) { if ((now - lobbyTime) < activationDelayMillis) {
return; return;
} }
if (!running) { running = true;
savedYaw = e.getYaw();
savedPitch = e.getPitch();
running = true;
}
e.setRotations(savedYaw, savedPitch); e.setRotations(savedYaw, savedPitch);
if (waitingForGround) { if (waitingForGround) {
@ -161,6 +159,7 @@ public class Disabler extends Module {
if (mc.thePlayer.ticksExisted % 2 == 0) { if (mc.thePlayer.ticksExisted % 2 == 0) {
e.setPosZ(e.getPosZ() + 0.075); e.setPosZ(e.getPosZ() + 0.075);
e.setPosX(e.getPosX() + 0.075);
} }
tickCounter++; tickCounter++;

View File

@ -1,21 +1,25 @@
package keystrokesmod.module.impl.player; package keystrokesmod.module.impl.player;
import keystrokesmod.Raven;
import keystrokesmod.event.PreMotionEvent; import keystrokesmod.event.PreMotionEvent;
import keystrokesmod.event.PreUpdateEvent; import keystrokesmod.event.PreUpdateEvent;
import keystrokesmod.event.ReceivePacketEvent; import keystrokesmod.event.ReceivePacketEvent;
import keystrokesmod.event.SendPacketEvent; import keystrokesmod.event.SendPacketEvent;
import keystrokesmod.module.Module; import keystrokesmod.module.Module;
import keystrokesmod.module.ModuleManager; 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.ButtonSetting;
import keystrokesmod.module.setting.impl.SliderSetting; import keystrokesmod.module.setting.impl.SliderSetting;
import keystrokesmod.script.classes.Block; import keystrokesmod.script.classes.Block;
import keystrokesmod.utility.BlockUtils; import keystrokesmod.utility.*;
import keystrokesmod.utility.PacketUtils;
import keystrokesmod.utility.Reflection;
import keystrokesmod.utility.Utils;
import net.minecraft.client.gui.GuiIngame; import net.minecraft.client.gui.GuiIngame;
import net.minecraft.client.gui.ScaledResolution;
import net.minecraft.init.Blocks; import net.minecraft.init.Blocks;
import net.minecraft.network.Packet; 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.network.play.client.C03PacketPlayer;
import net.minecraft.network.play.client.C08PacketPlayerBlockPlacement; import net.minecraft.network.play.client.C08PacketPlayerBlockPlacement;
import net.minecraft.network.play.server.*; import net.minecraft.network.play.server.*;
@ -24,16 +28,21 @@ import net.minecraftforge.client.event.ClientChatReceivedEvent;
import net.minecraftforge.client.event.sound.SoundEvent; import net.minecraftforge.client.event.sound.SoundEvent;
import net.minecraftforge.fml.common.eventhandler.EventPriority; import net.minecraftforge.fml.common.eventhandler.EventPriority;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import net.minecraftforge.fml.common.gameevent.TickEvent;
import java.awt.*;
import java.util.Objects; import java.util.Objects;
import java.util.concurrent.ConcurrentLinkedQueue;
public class NoFall extends Module { public class NoFall extends Module {
public SliderSetting mode; public SliderSetting mode;
private SliderSetting minFallDistance; private SliderSetting minFallDistance;
private ButtonSetting disableAdventure; private ButtonSetting disableAdventure;
private ButtonSetting ignoreVoid, voidC; private ButtonSetting ignoreVoid, voidC;
private ButtonSetting hideSound; private ButtonSetting hideSound, renderTimer;
private String[] modes = new String[]{"Spoof", "NoGround", "Packet A", "Packet B", "CTW Packet", "Prediction"}; private String[] modes = new String[]{"Spoof", "NoGround", "Packet A", "Packet B", "CTW Packet", "Prediction", "Blink"};
private int color = new Color(0, 187, 255, 255).getRGB();
private double initialY; private double initialY;
private double dynamic; private double dynamic;
@ -42,6 +51,15 @@ public class NoFall extends Module {
private int n; private int n;
private ConcurrentLinkedQueue<Packet> blinkedPackets = new ConcurrentLinkedQueue<>();
private ConcurrentLinkedQueue<Packet> regularPackets = new ConcurrentLinkedQueue<>();
public boolean isBlinking;
public boolean bnFalling, start;
private int blinkTicks;
private int y;
public NoFall() { public NoFall() {
super("NoFall", category.player); super("NoFall", category.player);
this.registerSetting(mode = new SliderSetting("Mode", 2, modes)); this.registerSetting(mode = new SliderSetting("Mode", 2, modes));
@ -49,11 +67,22 @@ public class NoFall extends Module {
this.registerSetting(minFallDistance = new SliderSetting("Minimum fall distance", 3, 0, 10, 0.1)); this.registerSetting(minFallDistance = new SliderSetting("Minimum fall distance", 3, 0, 10, 0.1));
this.registerSetting(ignoreVoid = new ButtonSetting("Ignore void", false)); this.registerSetting(ignoreVoid = new ButtonSetting("Ignore void", false));
this.registerSetting(voidC = new ButtonSetting("Experimental void check", true)); this.registerSetting(voidC = new ButtonSetting("Experimental void check", true));
this.registerSetting(renderTimer = new ButtonSetting("Render Blink Timer", true));
//this.registerSetting(hideSound = new ButtonSetting("Hide fall damage sound", false)); //this.registerSetting(hideSound = new ButtonSetting("Hide fall damage sound", false));
} }
public void guiUpdate() {
this.renderTimer.setVisible(mode.getInput() == 6, this);
}
public void onDisable() { public void onDisable() {
Utils.resetTimer(); Utils.resetTimer();
if (mc.thePlayer.onGround) {
finishBlink();
} else {
finishBlinkRegular();
}
} }
/*@SubscribeEvent /*@SubscribeEvent
@ -85,6 +114,34 @@ public class NoFall extends Module {
@SubscribeEvent @SubscribeEvent
public void onPreUpdate(PreUpdateEvent e) { public void onPreUpdate(PreUpdateEvent e) {
if (mode.getInput() == 6) {
if (Utils.fallDist() >= minFallDistance.getInput() && Utils.isEdgeOfBlock() && mc.thePlayer.onGround && !Utils.jumpDown() && !ModuleManager.scaffold.isEnabled && !ModuleManager.bhop.isEnabled() && !LongJump.function) {
start = true;
y = (int) mc.thePlayer.posY;
}
else if (start && !bnFalling && mc.thePlayer.posY > y) {
finishBlinkRegular();
}
if (isBlinking) {
++blinkTicks;
}
if (mc.thePlayer.posY < y && !mc.thePlayer.onGround && start) {
bnFalling = true;
}
else if (bnFalling) {
finishBlink();
}
if (mc.thePlayer.posY <= y - 31 && start) {
finishBlinkRegular();
}
}
if (reset()) { if (reset()) {
Utils.resetTimer(); Utils.resetTimer();
initialY = mc.thePlayer.posY; initialY = mc.thePlayer.posY;
@ -171,7 +228,6 @@ public class NoFall extends Module {
n++; n++;
} }
} }
//Utils.print("" + mc.thePlayer.ticksExisted + " " + mc.thePlayer.motionY + " " + edging);
} }
@SubscribeEvent(priority = EventPriority.LOWEST) @SubscribeEvent(priority = EventPriority.LOWEST)
@ -183,23 +239,119 @@ public class NoFall extends Module {
case 1: case 1:
e.setOnGround(false); e.setOnGround(false);
break; break;
case 6:
if (start) {
e.setOnGround(true);
}
break;
} }
} }
private void finishBlink() {
isBlinking = bnFalling = start = false;
blinkTicks = 0;
if (!blinkedPackets.isEmpty()) {
synchronized (blinkedPackets) {
for (Packet packet : blinkedPackets) {
Raven.packetsHandler.handlePacket(packet);
PacketUtils.sendPacketNoEvent(packet);
}
}
}
blinkedPackets.clear();
regularPackets.clear();
}
private void finishBlinkRegular() {
isBlinking = bnFalling = start = false;
blinkTicks = 0;
if (!regularPackets.isEmpty()) {
synchronized (regularPackets) {
for (Packet packet : regularPackets) {
Raven.packetsHandler.handlePacket(packet);
PacketUtils.sendPacketNoEvent(packet);
}
}
}
regularPackets.clear();
blinkedPackets.clear();
}
/*
if (mc.thePlayer.onGround) {
synchronized (blinkedPackets) {
for (Packet packet : blinkedPackets) {
Raven.packetsHandler.handlePacket(packet);
PacketUtils.sendPacketNoEvent(packet);
}
}
} else {
synchronized (regularPackets) {
for (Packet packet : regularPackets) {
Raven.packetsHandler.handlePacket(packet);
PacketUtils.sendPacketNoEvent(packet);
}
}
}
blinkedPackets.clear();
regularPackets.clear();
*/
@SubscribeEvent
public void onRenderTick(TickEvent.RenderTickEvent ev) {
if (!Utils.nullCheck() || !renderTimer.isToggled() || mode.getInput() != 6 || 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);
}
@SubscribeEvent
public void onSendPacket(SendPacketEvent e) {
if (!Utils.nullCheck()) {
return;
}
Packet packet = e.getPacket();
if (packet.getClass().getSimpleName().startsWith("S")) {
return;
}
if (packet instanceof C00PacketLoginStart || packet instanceof C00Handshake) {
return;
}
if (!start) {
return;
}
if (!e.isCanceled()) {
isBlinking = true;
regularPackets.add(packet);
blinkedPackets.add(packet);
e.setCanceled(true);
}
}
private boolean otherc03(Packet packet) {
return ((packet instanceof C03PacketPlayer.C04PacketPlayerPosition) || (packet instanceof C03PacketPlayer.C05PacketPlayerLook) || (packet instanceof C03PacketPlayer.C06PacketPlayerPosLook));
}
@Override @Override
public String getInfo() { public String getInfo() {
return modes[(int) mode.getInput()]; return modes[(int) mode.getInput()];
} }
private boolean isVoid() {
return Utils.overVoid(mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ);
}
private boolean reset() { private boolean reset() {
if (disableAdventure.isToggled() && mc.playerController.getCurrentGameType().isAdventure()) { if (disableAdventure.isToggled() && mc.playerController.getCurrentGameType().isAdventure()) {
return true; return true;
} }
if (ignoreVoid.isToggled() && isVoid()) { if (ignoreVoid.isToggled() && Utils.overVoid()) {
return true; return true;
} }
if (Utils.isBedwarsPractice()) { if (Utils.isBedwarsPractice()) {
@ -223,13 +375,13 @@ public class NoFall extends Module {
if (mc.thePlayer.capabilities.isCreativeMode) { if (mc.thePlayer.capabilities.isCreativeMode) {
return true; return true;
} }
if (isVoid() && mc.thePlayer.posY <= 41) { if (Utils.overVoid() && mc.thePlayer.posY <= 41) {
return true; return true;
} }
if (mc.thePlayer.capabilities.isFlying) { if (mc.thePlayer.capabilities.isFlying) {
return true; return true;
} }
if (voidC.isToggled() && Utils.overVoid(mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ) && !dist()) { if (voidC.isToggled() && Utils.overVoid() && !dist()) {
return true; return true;
} }
return false; return false;

View File

@ -160,6 +160,10 @@ public class Scaffold extends Module {
} }
disabledModule = true; disabledModule = true;
moduleEnabled = false; moduleEnabled = false;
if (!isEnabled) {
scaffoldBlockCount.beginFade();
}
} }
public void onEnable() { public void onEnable() {
@ -348,7 +352,7 @@ public class Scaffold extends Module {
} }
if (quad > 42 && quad <= 45 || quad >= 45 && quad < 48) { if (quad > 42 && quad <= 45 || quad >= 45 && quad < 48) {
yawAngle = 140F; yawAngle = 140F;
minOffset = 5; minOffset = 4;
} }
minPitch = 80.25F; minPitch = 80.25F;

View File

@ -208,9 +208,9 @@ public class ModuleUtils {
if (canSlow || ModuleManager.scaffold.moduleEnabled && !ModuleManager.tower.canTower()) { if (canSlow || ModuleManager.scaffold.moduleEnabled && !ModuleManager.tower.canTower()) {
double motionVal = 0.9507832 - ((double) inAirTicks / 10000) - Utils.randomizeDouble(0.00001, 0.00006); double motionVal = 0.9507832 - ((double) inAirTicks / 10000) - Utils.randomizeDouble(0.00001, 0.00006);
if (!hasSlowed) motionVal = motionVal - 0.15; if (!hasSlowed) motionVal = motionVal - 0.15;
if (mc.thePlayer.hurtTime == 0 && inAirTicks >= 3 && !setSlow && ModuleManager.scaffold.rotation.getInput() == 2) { if (mc.thePlayer.hurtTime == 0 && !setSlow && !mc.thePlayer.onGround) {
mc.thePlayer.motionX *= motionVal; //mc.thePlayer.motionX *= motionVal;
mc.thePlayer.motionZ *= motionVal; //mc.thePlayer.motionZ *= motionVal;
setSlow = hasSlowed = true; setSlow = hasSlowed = true;
//Utils.print("Slow " + motionVal); //Utils.print("Slow " + motionVal);
} }

View File

@ -210,6 +210,15 @@ public class Utils {
return true; return true;
} }
public static boolean overVoid() {
for (int i = (int) mc.thePlayer.posY; i > -1; i--) {
if (!(mc.theWorld.getBlockState(new BlockPos(mc.thePlayer.posX, i, mc.thePlayer.posZ)).getBlock() instanceof BlockAir)) {
return false;
}
}
return true;
}
public static boolean canPlayerBeSeen(EntityLivingBase player) { public static boolean canPlayerBeSeen(EntityLivingBase player) {
double x = player.posX; double x = player.posX;
double y = player.posY; double y = player.posY;
@ -924,6 +933,24 @@ public class Utils {
return entity.getHeldItem() != null && entity.getHeldItem().getItem() instanceof ItemFood; return entity.getHeldItem() != null && entity.getHeldItem().getItem() instanceof ItemFood;
} }
public static double fallDist() {
if (overVoid()) {
return 9999;
}
double fallDistance = -1;
double y = mc.thePlayer.posY;
if (mc.thePlayer.posY % 1 == 0) {
y--;
}
for (int i = (int) Math.floor(y); i > -1; i--) {
if (!isPlaceable(new BlockPos(mc.thePlayer.posX, i, mc.thePlayer.posZ))) {
fallDistance = y - i;
break;
}
}
return fallDistance - 1;
}
public static double distanceToGround(Entity entity) { public static double distanceToGround(Entity entity) {
if (entity.onGround) { if (entity.onGround) {
return 0; return 0;