Latest release

This commit is contained in:
jackh 2025-05-07 14:23:54 -07:00
parent 2aea03142b
commit 0b22684c68
38 changed files with 585 additions and 435 deletions

Binary file not shown.

Binary file not shown.

View File

@ -14,17 +14,35 @@
<change beforePath="$PROJECT_DIR$/.gradle/buildOutputCleanup/buildOutputCleanup.lock" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/buildOutputCleanup/buildOutputCleanup.lock" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.gradle/buildOutputCleanup/buildOutputCleanup.lock" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/buildOutputCleanup/buildOutputCleanup.lock" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.gradle/file-system.probe" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/file-system.probe" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.gradle/file-system.probe" beforeDir="false" afterPath="$PROJECT_DIR$/.gradle/file-system.probe" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/build/classes/java/main/keystrokesmod/module/ModuleManager.class" beforeDir="false" afterPath="$PROJECT_DIR$/build/classes/java/main/keystrokesmod/module/ModuleManager.class" afterDir="false" /> <change beforePath="$PROJECT_DIR$/build/classes/java/main/keystrokesmod/module/impl/combat/Velocity.class" beforeDir="false" afterPath="$PROJECT_DIR$/build/classes/java/main/keystrokesmod/module/impl/combat/Velocity.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/build/classes/java/main/keystrokesmod/module/impl/movement/NoSlow.class" beforeDir="false" afterPath="$PROJECT_DIR$/build/classes/java/main/keystrokesmod/module/impl/movement/NoSlow.class" afterDir="false" /> <change beforePath="$PROJECT_DIR$/build/classes/java/main/keystrokesmod/module/impl/movement/TargetStrafe.class" beforeDir="false" afterPath="$PROJECT_DIR$/build/classes/java/main/keystrokesmod/module/impl/movement/TargetStrafe.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/build/classes/java/main/keystrokesmod/module/impl/player/AntiVoid.class" beforeDir="false" afterPath="$PROJECT_DIR$/build/classes/java/main/keystrokesmod/module/impl/player/AntiVoid.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/build/classes/java/main/keystrokesmod/module/impl/player/BedAura.class" beforeDir="false" afterPath="$PROJECT_DIR$/build/classes/java/main/keystrokesmod/module/impl/player/BedAura.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/build/classes/java/main/keystrokesmod/module/impl/player/Disabler.class" beforeDir="false" afterPath="$PROJECT_DIR$/build/classes/java/main/keystrokesmod/module/impl/player/Disabler.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/build/classes/java/main/keystrokesmod/module/impl/player/NoFall.class" beforeDir="false" afterPath="$PROJECT_DIR$/build/classes/java/main/keystrokesmod/module/impl/player/NoFall.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/build/classes/java/main/keystrokesmod/module/impl/player/Scaffold$1.class" beforeDir="false" afterPath="$PROJECT_DIR$/build/classes/java/main/keystrokesmod/module/impl/player/Scaffold$1.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/build/classes/java/main/keystrokesmod/module/impl/player/Scaffold$PlaceData.class" beforeDir="false" afterPath="$PROJECT_DIR$/build/classes/java/main/keystrokesmod/module/impl/player/Scaffold$PlaceData.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/build/classes/java/main/keystrokesmod/module/impl/player/Scaffold.class" beforeDir="false" afterPath="$PROJECT_DIR$/build/classes/java/main/keystrokesmod/module/impl/player/Scaffold.class" afterDir="false" /> <change beforePath="$PROJECT_DIR$/build/classes/java/main/keystrokesmod/module/impl/player/Scaffold.class" beforeDir="false" afterPath="$PROJECT_DIR$/build/classes/java/main/keystrokesmod/module/impl/player/Scaffold.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/build/classes/java/main/keystrokesmod/module/impl/player/Tower.class" beforeDir="false" afterPath="$PROJECT_DIR$/build/classes/java/main/keystrokesmod/module/impl/player/Tower.class" afterDir="false" /> <change beforePath="$PROJECT_DIR$/build/classes/java/main/keystrokesmod/module/impl/player/WaterBucket.class" beforeDir="false" afterPath="$PROJECT_DIR$/build/classes/java/main/keystrokesmod/module/impl/player/WaterBucket.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/build/classes/java/main/keystrokesmod/module/impl/render/Shaders.class" beforeDir="false" afterPath="$PROJECT_DIR$/build/classes/java/main/keystrokesmod/module/impl/render/Shaders.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/build/classes/java/main/keystrokesmod/module/impl/render/Trajectories.class" beforeDir="false" afterPath="$PROJECT_DIR$/build/classes/java/main/keystrokesmod/module/impl/render/Trajectories.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/build/classes/java/main/keystrokesmod/utility/ModuleUtils.class" beforeDir="false" afterPath="$PROJECT_DIR$/build/classes/java/main/keystrokesmod/utility/ModuleUtils.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/build/classes/java/main/keystrokesmod/utility/Utils.class" beforeDir="false" afterPath="$PROJECT_DIR$/build/classes/java/main/keystrokesmod/utility/Utils.class" afterDir="false" />
<change beforePath="$PROJECT_DIR$/build/intermediates/raven-bS-13-non-obfuscated-with-deps.jar" beforeDir="false" afterPath="$PROJECT_DIR$/build/intermediates/raven-bS-13-non-obfuscated-with-deps.jar" afterDir="false" /> <change beforePath="$PROJECT_DIR$/build/intermediates/raven-bS-13-non-obfuscated-with-deps.jar" beforeDir="false" afterPath="$PROJECT_DIR$/build/intermediates/raven-bS-13-non-obfuscated-with-deps.jar" afterDir="false" />
<change beforePath="$PROJECT_DIR$/build/intermediates/raven-bS-13-without-deps.jar" beforeDir="false" afterPath="$PROJECT_DIR$/build/intermediates/raven-bS-13-without-deps.jar" afterDir="false" /> <change beforePath="$PROJECT_DIR$/build/intermediates/raven-bS-13-without-deps.jar" beforeDir="false" afterPath="$PROJECT_DIR$/build/intermediates/raven-bS-13-without-deps.jar" afterDir="false" />
<change beforePath="$PROJECT_DIR$/build/tmp/compileJava/previous-compilation-data.bin" beforeDir="false" afterPath="$PROJECT_DIR$/build/tmp/compileJava/previous-compilation-data.bin" afterDir="false" /> <change beforePath="$PROJECT_DIR$/build/tmp/compileJava/previous-compilation-data.bin" beforeDir="false" afterPath="$PROJECT_DIR$/build/tmp/compileJava/previous-compilation-data.bin" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/keystrokesmod/module/ModuleManager.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/keystrokesmod/module/ModuleManager.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/main/java/keystrokesmod/module/impl/combat/Velocity.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/keystrokesmod/module/impl/combat/Velocity.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/keystrokesmod/module/impl/movement/NoSlow.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/keystrokesmod/module/impl/movement/NoSlow.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/main/java/keystrokesmod/module/impl/movement/TargetStrafe.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/keystrokesmod/module/impl/movement/TargetStrafe.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/keystrokesmod/module/impl/player/AntiVoid.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/keystrokesmod/module/impl/player/AntiVoid.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/keystrokesmod/module/impl/player/BedAura.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/keystrokesmod/module/impl/player/BedAura.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/keystrokesmod/module/impl/player/Disabler.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/keystrokesmod/module/impl/player/Disabler.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/keystrokesmod/module/impl/player/NoFall.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/keystrokesmod/module/impl/player/NoFall.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/keystrokesmod/module/impl/player/Scaffold.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/keystrokesmod/module/impl/player/Scaffold.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/main/java/keystrokesmod/module/impl/player/Scaffold.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/keystrokesmod/module/impl/player/Scaffold.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/keystrokesmod/module/impl/player/Tower.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/keystrokesmod/module/impl/player/Tower.java" afterDir="false" /> <change beforePath="$PROJECT_DIR$/src/main/java/keystrokesmod/module/impl/player/WaterBucket.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/keystrokesmod/module/impl/player/WaterBucket.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/keystrokesmod/module/impl/render/Shaders.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/keystrokesmod/module/impl/render/Shaders.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/keystrokesmod/module/impl/render/Trajectories.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/keystrokesmod/module/impl/render/Trajectories.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/keystrokesmod/utility/ModuleUtils.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/keystrokesmod/utility/ModuleUtils.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/src/main/java/keystrokesmod/utility/Utils.java" beforeDir="false" afterPath="$PROJECT_DIR$/src/main/java/keystrokesmod/utility/Utils.java" afterDir="false" />
</list> </list>
<option name="SHOW_DIALOG" value="false" /> <option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" /> <option name="HIGHLIGHT_CONFLICTS" value="true" />
@ -183,14 +201,6 @@
<option name="presentableId" value="Default" /> <option name="presentableId" value="Default" />
<updated>1736536952705</updated> <updated>1736536952705</updated>
</task> </task>
<task id="LOCAL-00016" summary="t">
<option name="closed" value="true" />
<created>1737438432192</created>
<option name="number" value="00016" />
<option name="presentableId" value="LOCAL-00016" />
<option name="project" value="LOCAL" />
<updated>1737438432192</updated>
</task>
<task id="LOCAL-00017" summary="t"> <task id="LOCAL-00017" summary="t">
<option name="closed" value="true" /> <option name="closed" value="true" />
<created>1737438489541</created> <created>1737438489541</created>
@ -575,7 +585,15 @@
<option name="project" value="LOCAL" /> <option name="project" value="LOCAL" />
<updated>1746241615818</updated> <updated>1746241615818</updated>
</task> </task>
<option name="localTasksCounter" value="65" /> <task id="LOCAL-00065" summary="Latest release">
<option name="closed" value="true" />
<created>1746426910094</created>
<option name="number" value="00065" />
<option name="presentableId" value="LOCAL-00065" />
<option name="project" value="LOCAL" />
<updated>1746426910094</updated>
</task>
<option name="localTasksCounter" value="66" />
<servers /> <servers />
</component> </component>
<component name="Vcs.Log.Tabs.Properties"> <component name="Vcs.Log.Tabs.Properties">

View File

@ -26,7 +26,7 @@ import java.util.concurrent.ConcurrentLinkedQueue;
public class Velocity extends Module { public class Velocity extends Module {
public SliderSetting velocityModes; public SliderSetting velocityModes;
public static SliderSetting vertical, horizontal, reverseHorizontal, explosionsHorizontal, explosionsVertical; public static SliderSetting vertical, horizontal, reverseHorizontal, explosionsHorizontal, explosionsVertical, verticalM;
public static SliderSetting minExtraSpeed, extraSpeedBoost; public static SliderSetting minExtraSpeed, extraSpeedBoost;
private SliderSetting chance; private SliderSetting chance;
private ButtonSetting onlyWhileAttacking; private ButtonSetting onlyWhileAttacking;
@ -49,6 +49,7 @@ public class Velocity extends Module {
this.registerSetting(velocityModes = new SliderSetting("Mode", 0, velocityModesString)); this.registerSetting(velocityModes = new SliderSetting("Mode", 0, velocityModesString));
this.registerSetting(horizontal = new SliderSetting("Horizontal", 0.0, 0.0, 100.0, 1.0)); this.registerSetting(horizontal = new SliderSetting("Horizontal", 0.0, 0.0, 100.0, 1.0));
this.registerSetting(vertical = new SliderSetting("Vertical", 0.0, 0.0, 100.0, 1.0)); this.registerSetting(vertical = new SliderSetting("Vertical", 0.0, 0.0, 100.0, 1.0));
this.registerSetting(verticalM = new SliderSetting("Vertical Motion Limit", 1.0, -1.0, 1, 0.1));
this.registerSetting(reverseHorizontal = new SliderSetting("-Horizontal", 0.0, 0.0, 100.0, 1.0)); this.registerSetting(reverseHorizontal = new SliderSetting("-Horizontal", 0.0, 0.0, 100.0, 1.0));
@ -87,6 +88,7 @@ public class Velocity extends Module {
this.horizontal.setVisible(velocityModes.getInput() != 2, this); this.horizontal.setVisible(velocityModes.getInput() != 2, this);
this.vertical.setVisible(velocityModes.getInput() != 2, this); this.vertical.setVisible(velocityModes.getInput() != 2, this);
this.verticalM.setVisible(velocityModes.getInput() == 1, this);
this.chance.setVisible(velocityModes.getInput() != 2, this); this.chance.setVisible(velocityModes.getInput() != 2, this);
this.reverseHorizontal.setVisible(velocityModes.getInput() == 2, this); this.reverseHorizontal.setVisible(velocityModes.getInput() == 2, this);
@ -242,8 +244,8 @@ public class Velocity extends Module {
} }
} }
private boolean dontEditMotion() { public boolean dontEditMotion() {
if (velocityModes.getInput() == 1 && zzWhileNotTargeting.isToggled() && KillAura.attackingEntity != null || ModuleManager.noFall.start || ModuleManager.blink.isEnabled() && ModuleManager.blink.cancelKnockback.isToggled() || ModuleManager.bedAura.cancelKnockback() || ModuleManager.tower.cancelKnockback()) { if (mc.thePlayer.motionY >= verticalM.getInput() && !mc.thePlayer.onGround || velocityModes.getInput() == 1 && zzWhileNotTargeting.isToggled() && KillAura.attackingEntity != null || 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

@ -16,18 +16,22 @@ import keystrokesmod.utility.Utils;
import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.EntityLivingBase;
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 org.lwjgl.input.Mouse;
public class TargetStrafe extends Module { public class TargetStrafe extends Module {
private ButtonSetting requireBhop; private ButtonSetting requireBhop;
private ButtonSetting requireJump; private ButtonSetting requireJump;
private ButtonSetting requireRMB;
private SliderSetting radius;
private double angle; private double angle;
private float radius = 0.6f;
public TargetStrafe() { public TargetStrafe() {
super("TargetStrafe", category.movement); super("TargetStrafe", category.movement);
this.registerSetting(requireBhop = new ButtonSetting("Require bhop", false)); this.registerSetting(requireBhop = new ButtonSetting("Require bhop", false));
this.registerSetting(requireJump = new ButtonSetting("Require jump key", false)); this.registerSetting(requireJump = new ButtonSetting("Require jump key", false));
this.registerSetting(requireRMB = new ButtonSetting("Require RMB", false));
this.registerSetting(radius = new SliderSetting("Radius", 0.6, 0, 3, 0.1));
} }
public void guiUpdate() { public void guiUpdate() {
@ -47,6 +51,9 @@ public class TargetStrafe extends Module {
if (requireJump.isToggled() && !Utils.jumpDown()) { if (requireJump.isToggled() && !Utils.jumpDown()) {
return; return;
} }
if (requireRMB.isToggled() && !Mouse.isButtonDown(1)) {
return;
}
if (ModuleManager.scaffold.isEnabled) { if (ModuleManager.scaffold.isEnabled) {
return; return;
} }
@ -56,8 +63,8 @@ public class TargetStrafe extends Module {
EntityLivingBase targetPosition = KillAura.target; EntityLivingBase targetPosition = KillAura.target;
angle += 1; angle += 1;
double offsetX = radius * Math.cos(angle); double offsetX = ((float) radius.getInput()) * Math.cos(angle);
double offsetZ = radius * Math.sin(angle); double offsetZ = ((float) radius.getInput()) * Math.sin(angle);
double directionX = targetPosition.getPosition().getX() + offsetX - mc.thePlayer.posX; double directionX = targetPosition.getPosition().getX() + offsetX - mc.thePlayer.posX;
double directionZ = targetPosition.getPosition().getZ() + offsetZ - mc.thePlayer.posZ; double directionZ = targetPosition.getPosition().getZ() + offsetZ - mc.thePlayer.posZ;
double magnitude = Math.sqrt(directionX * directionX + directionZ * directionZ); double magnitude = Math.sqrt(directionX * directionX + directionZ * directionZ);

View File

@ -165,7 +165,7 @@ public class AntiVoid extends Module {
} }
public boolean dist() { public boolean dist() {
double minMotion = 0.08; double minMotion = 0.1;
int dist1 = 4; int dist1 = 4;
int dist2 = 6; int dist2 = 6;
int dist3 = 7; int dist3 = 7;

View File

@ -186,6 +186,13 @@ public class BedAura extends Module {
} }
} }
if (groundSpoof.isToggled() && !mc.thePlayer.isInWater() && spoofGround) {
e.setOnGround(true);
if (Raven.debug) {
Utils.sendModuleMessage(this, "&7ground spoof (&3" + mc.thePlayer.ticksExisted + "&7).");
}
}
if (startPacket) { if (startPacket) {
mc.thePlayer.sendQueue.addToSendQueue(new C07PacketPlayerDigging(C07PacketPlayerDigging.Action.START_DESTROY_BLOCK, packetPos, EnumFacing.UP)); mc.thePlayer.sendQueue.addToSendQueue(new C07PacketPlayerDigging(C07PacketPlayerDigging.Action.START_DESTROY_BLOCK, packetPos, EnumFacing.UP));
swing(); swing();
@ -204,13 +211,6 @@ public class BedAura extends Module {
swing(); swing();
} }
if (groundSpoof.isToggled() && !mc.thePlayer.isInWater() && spoofGround) {
e.setOnGround(true);
if (Raven.debug) {
Utils.sendModuleMessage(this, "&7ground spoof (&3" + mc.thePlayer.ticksExisted + "&7).");
}
}
startPacket = stopPacket = spoofGround = false; startPacket = stopPacket = spoofGround = false;
} }
@ -392,10 +392,8 @@ public class BedAura extends Module {
startPacket = true; startPacket = true;
isBreaking = true; isBreaking = true;
breakTick = true; breakTick = true;
if (mc.thePlayer.motionY > -0.5) {
ignoreSlow = true; ignoreSlow = true;
spoofGround = true;
}
} }
private void stopBreak(ClientRotationEvent e, BlockPos blockPos) { private void stopBreak(ClientRotationEvent e, BlockPos blockPos) {

View File

@ -25,6 +25,7 @@ import java.util.Objects;
public class Disabler extends Module { public class Disabler extends Module {
private SliderSetting disablerTicks; private SliderSetting disablerTicks;
private SliderSetting activationDelay; private SliderSetting activationDelay;
private ButtonSetting resetDisabler;
int tickCounter = 0; int tickCounter = 0;
boolean waitingForGround = false; boolean waitingForGround = false;
@ -48,6 +49,7 @@ public class Disabler extends Module {
private boolean reset; private boolean reset;
private float savedYaw, savedPitch; private float savedYaw, savedPitch;
private boolean worldJoin; private boolean worldJoin;
private int wDelay;
public boolean disablerLoaded, running; public boolean disablerLoaded, running;
@ -55,6 +57,7 @@ public class Disabler extends Module {
super("Disabler", category.player); super("Disabler", category.player);
this.registerSetting(disablerTicks = new SliderSetting("Ticks", "", 100, 85, 150, 5)); this.registerSetting(disablerTicks = new SliderSetting("Ticks", "", 100, 85, 150, 5));
this.registerSetting(activationDelay = new SliderSetting("Activation delay", " seconds", 0, 0, 4, 0.5)); this.registerSetting(activationDelay = new SliderSetting("Activation delay", " seconds", 0, 0, 4, 0.5));
this.registerSetting(resetDisabler = new ButtonSetting("§cReset", false));
} }
public void onEnable() { public void onEnable() {
@ -96,6 +99,12 @@ public class Disabler extends Module {
@SubscribeEvent(priority = EventPriority.LOWEST) @SubscribeEvent(priority = EventPriority.LOWEST)
public void onPreMotion(PreMotionEvent e) { public void onPreMotion(PreMotionEvent e) {
if (resetDisabler.isToggled()) {
Utils.print("&7[&dR&7] &cdisabler resetting...");
resetState();
disablerLoaded = false;
resetDisabler.disable();
}
if (Utils.getLobbyStatus() == 1 || Utils.hypixelStatus() != 1 || Utils.isReplay()) { if (Utils.getLobbyStatus() == 1 || Utils.hypixelStatus() != 1 || Utils.isReplay()) {
return; return;
} }
@ -114,12 +123,13 @@ public class Disabler extends Module {
return; return;
} }
running = true; running = true;
e.setRotations(savedYaw, savedPitch); e.setRotations(0, savedPitch);
if (waitingForGround) { if (waitingForGround) {
/*if (mc.thePlayer.ticksExisted <= 3) { /*if (mc.thePlayer.ticksExisted <= 3) {
waitingForGround = false; waitingForGround = false;
worldJoin = true; worldJoin = true;
wDelay = 0;
} }
else */if (mc.thePlayer.onGround) { else */if (mc.thePlayer.onGround) {
mc.thePlayer.motionY = 0.42f; mc.thePlayer.motionY = 0.42f;
@ -129,7 +139,7 @@ public class Disabler extends Module {
return; return;
} }
if (ModuleUtils.inAirTicks >= 10 || worldJoin) { if (ModuleUtils.inAirTicks >= 10 || worldJoin && ++wDelay >= 3) {
if (!applyingMotion) { if (!applyingMotion) {
applyingMotion = true; applyingMotion = true;
firstY = mc.thePlayer.posY; firstY = mc.thePlayer.posY;
@ -145,9 +155,9 @@ public class Disabler extends Module {
if (mc.thePlayer.posY != firstY) { if (mc.thePlayer.posY != firstY) {
if (!reset) { if (!reset) {
resetState(); resetState();
activationDelayMillis = 5000; activationDelayMillis = 2000;
reset = true; reset = true;
Utils.print("&7[&dR&7] &adisabler reset, wait 5s"); Utils.print("&7[&dR&7] &adisabler reset, wait 2s");
} }
else { else {
shouldRun = false; shouldRun = false;

View File

@ -385,7 +385,7 @@ public class NoFall extends Module {
public boolean dist() { public boolean dist() {
double minMotion = 0.08; double minMotion = 0.1;
int dist1 = 4; int dist1 = 4;
int dist2 = 6; int dist2 = 6;
int dist3 = 7; int dist3 = 7;

View File

@ -125,6 +125,7 @@ public class Scaffold extends Module {
private float VTRY; private float VTRY;
private float normalYaw, normalPitch; private float normalYaw, normalPitch;
private int switchvl; private int switchvl;
private int dt;
//fake rotations //fake rotations
private float fakeYaw, fakePitch; private float fakeYaw, fakePitch;
private float fakeYaw1, fakeYaw2; private float fakeYaw1, fakeYaw2;
@ -174,6 +175,7 @@ public class Scaffold extends Module {
} }
public void onEnable() { public void onEnable() {
dt = 0;
isEnabled = true; isEnabled = true;
moduleEnabled = true; moduleEnabled = true;
ModuleUtils.fadeEdge = 0; ModuleUtils.fadeEdge = 0;
@ -206,7 +208,56 @@ public class Scaffold extends Module {
} }
normalYaw = mc.thePlayer.rotationYaw; normalYaw = mc.thePlayer.rotationYaw;
normalPitch = mc.thePlayer.rotationPitch; normalPitch = mc.thePlayer.rotationPitch;
if (dt > 0) {
return;
}
//Fake rotations
if (fakeRotation.getInput() > 0) {
if (fakeRotation.getInput() == 1) {
fakeYaw = normalYaw;
fakePitch = normalPitch;
} else if (fakeRotation.getInput() == 2) {
fakeYaw = fakeYaw1;
if (blockRotations != null) {
fakePitch = blockRotations[1] + 5;
} else {
fakePitch = 80f;
}
} else if (fakeRotation.getInput() == 3) {
fakeYaw2 = mc.thePlayer.rotationYaw - hardcodedYaw();
float yawDifference = getAngleDifference(lastEdge2, fakeYaw2);
float smoothingFactor = (1.0f - (65.0f / 100.0f));
fakeYaw2 = (lastEdge2 + yawDifference * smoothingFactor);
lastEdge2 = fakeYaw2;
fakeYaw = fakeYaw2;
if (blockRotations != null) {
fakePitch = blockRotations[1] + 5;
} else {
fakePitch = 80f;
}
} else if (fakeRotation.getInput() == 4) {
fakeYaw += 25.71428571428571F;
fakePitch = 90F;
} else if (fakeRotation.getInput() == 5) {
if (blockRotations != null) {
fakeYaw2 = blockRotations[0];
fakePitch = blockRotations[1];
} else {
fakeYaw2 = mc.thePlayer.rotationYaw - hardcodedYaw() - 180;
fakePitch = 88F;
}
float yawDifference = getAngleDifference(lastEdge2, fakeYaw2);
float smoothingFactor = (1.0f - (65.0f / 100.0f));
fakeYaw2 = (lastEdge2 + yawDifference * smoothingFactor);
lastEdge2 = fakeYaw2;
fakeYaw = fakeYaw2;
}
RotationUtils.setFakeRotations(fakeYaw, fakePitch);
}
if (!isEnabled) { if (!isEnabled) {
dt++;
return; return;
} }
if (Utils.isMoving()) { if (Utils.isMoving()) {
@ -319,50 +370,6 @@ public class Scaffold extends Module {
dynamic++; dynamic++;
} }
randomF = 0; randomF = 0;
//Fake rotations
if (fakeRotation.getInput() > 0) {
if (fakeRotation.getInput() == 1) {
RotationUtils.setFakeRotations(normalYaw, normalPitch);
}
else if (fakeRotation.getInput() == 2) {
fakeYaw = fakeYaw1;
if (blockRotations != null) {
fakePitch = blockRotations[1] + 5;
} else {
fakePitch = 80f;
}
}
else if (fakeRotation.getInput() == 3) {
fakeYaw2 = mc.thePlayer.rotationYaw - hardcodedYaw();
float yawDifference = getAngleDifference(lastEdge2, fakeYaw2);
float smoothingFactor = (1.0f - (65.0f / 100.0f));
fakeYaw2 = (lastEdge2 + yawDifference * smoothingFactor);
lastEdge2 = fakeYaw2;
fakeYaw = fakeYaw2;
if (blockRotations != null) {
fakePitch = blockRotations[1] + 5;
} else {
fakePitch = 80f;
}
}
else if (fakeRotation.getInput() == 4) {
fakeYaw += 25.71428571428571F;
fakePitch = 90F;
}
else if (fakeRotation.getInput() == 5) {
if (blockRotations != null) {
fakeYaw = blockRotations[0];
fakePitch = blockRotations[1];
}
else {
fakeYaw = mc.thePlayer.rotationYaw - hardcodedYaw() - 45;
fakePitch = 80F;
}
}
RotationUtils.setFakeRotations(fakeYaw, fakePitch);
}
} }
@SubscribeEvent @SubscribeEvent
@ -408,7 +415,7 @@ public class Scaffold extends Module {
long strokeDelay = 250; long strokeDelay = 250;
float first = 73.5F; float first = 77.5F;
float sec = 77.5F; float sec = 77.5F;
if (quad <= 5 || quad >= 85) { if (quad <= 5 || quad >= 85) {
@ -1040,10 +1047,13 @@ public class Scaffold extends Module {
int x = (int) Math.floor(mc.thePlayer.posX + xOffset); int x = (int) Math.floor(mc.thePlayer.posX + xOffset);
int y = (int) Math.floor(((startYPos != -1) ? startYPos : mc.thePlayer.posY) + yOffset); int y = (int) Math.floor(((startYPos != -1) ? startYPos : mc.thePlayer.posY) + yOffset);
int z = (int) Math.floor(mc.thePlayer.posZ); int z = (int) Math.floor(mc.thePlayer.posZ);
BlockPos base = new BlockPos(x, y - 1, z); BlockPos base = new BlockPos(x, y - 1, z);
if (!BlockUtils.replaceable(base)) { if (!BlockUtils.replaceable(base)) {
return null; return null;
} }
EnumFacing[] allFacings = getFacingsSorted(); EnumFacing[] allFacings = getFacingsSorted();
List<EnumFacing> validFacings = new ArrayList<>(5); List<EnumFacing> validFacings = new ArrayList<>(5);
for (EnumFacing facing : allFacings) { for (EnumFacing facing : allFacings) {
@ -1051,11 +1061,9 @@ public class Scaffold extends Module {
validFacings.add(facing); validFacings.add(facing);
} }
} }
int maxLayer = 1;
List<PlaceData> possibleBlocks = new ArrayList<>(); List<PlaceData> possibleBlocks = new ArrayList<>();
int maxLayer = 2;
main:
for (int dy = 1; dy <= maxLayer; dy++) { for (int dy = 1; dy <= maxLayer; dy++) {
BlockPos layerBase = new BlockPos(x, y - dy, z); BlockPos layerBase = new BlockPos(x, y - dy, z);
if (dy == 1) { if (dy == 1) {
@ -1077,6 +1085,22 @@ public class Scaffold extends Module {
} }
} }
} }
for (EnumFacing facing : validFacings) {
BlockPos adjacent = layerBase.offset(facing);
if (BlockUtils.replaceable(adjacent)) {
for (EnumFacing nestedFacing : validFacings) {
BlockPos nestedNeighbor = adjacent.offset(nestedFacing);
if (BlockUtils.replaceable(nestedNeighbor)) {
for (EnumFacing thirdFacing : validFacings) {
BlockPos thirdNeighbor = nestedNeighbor.offset(thirdFacing);
if (!BlockUtils.replaceable(thirdNeighbor) && !BlockUtils.isInteractable(BlockUtils.getBlock(thirdNeighbor))) {
possibleBlocks.add(new PlaceData(thirdNeighbor, thirdFacing.getOpposite()));
}
}
}
}
}
}
} }
return possibleBlocks.isEmpty() ? null : possibleBlocks; return possibleBlocks.isEmpty() ? null : possibleBlocks;

View File

@ -1,72 +1,127 @@
package keystrokesmod.module.impl.player; package keystrokesmod.module.impl.player;
import keystrokesmod.event.PreMotionEvent; import keystrokesmod.Raven;
import keystrokesmod.event.ClientRotationEvent;
import keystrokesmod.module.Module; import keystrokesmod.module.Module;
import keystrokesmod.module.setting.impl.ButtonSetting; import keystrokesmod.module.setting.impl.ButtonSetting;
import keystrokesmod.utility.RotationUtils;
import keystrokesmod.utility.Utils; import keystrokesmod.utility.Utils;
import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.init.Items; import net.minecraft.init.Items;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.network.play.client.C08PacketPlayerBlockPlacement; import net.minecraft.network.play.client.C08PacketPlayerBlockPlacement;
import net.minecraft.util.EnumFacing;
import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.MovingObjectPosition;
import net.minecraftforge.client.event.RenderWorldLastEvent;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
public class WaterBucket extends Module { public class WaterBucket extends Module {
//private ButtonSetting pickup; public ButtonSetting pickupWater;
private ButtonSetting silentAim; public ButtonSetting silentAim;
private ButtonSetting switchToItem; public ButtonSetting switchToItem;
private final long PLACE_DELAY = 500L;
private final long PICKUP_WAIT = 150L;
private long lastPlace = 0L;
private boolean shouldPickup = false;
private int lastSlot = -1;
public WaterBucket() { public WaterBucket() {
super("Water bucket", category.player, 0); super("Water Bucket", category.player);
//this.registerSetting(pickup = new ButtonSetting("Pickup water", true)); this.registerSetting(pickupWater = new ButtonSetting("Pickup water", true));
this.registerSetting(silentAim = new ButtonSetting("Silent aim", true)); this.registerSetting(silentAim = new ButtonSetting("Silent aim", true));
this.registerSetting(switchToItem = new ButtonSetting("Switch to item", true)); this.registerSetting(switchToItem = new ButtonSetting("Switch to item", true));
} }
@Override
public void onDisable() {
this.lastPlace = 0L;
this.shouldPickup = false;
this.lastSlot = -1;
}
@SubscribeEvent @SubscribeEvent
public void onPreMotion(PreMotionEvent e) { public void onRenderWorld(RenderWorldLastEvent e) {
MovingObjectPosition rayCast = RotationUtils.rayCast(mc.playerController.getBlockReachDistance(), e.getYaw(), 90, true); if (!Utils.nullCheck() || mc.isGamePaused() || mc.thePlayer.capabilities.isFlying || mc.thePlayer.capabilities.isCreativeMode) {
if (inPosition() && rayCast != null && rayCast.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK && holdWaterBucket(switchToItem.isToggled())) { return;
if (silentAim.isToggled()) {
e.setPitch(90);
} }
else { if (!fallCheck()) {
mc.thePlayer.rotationPitch = 90; return;
} }
sendPlace(); MovingObjectPosition mop = Utils.getTarget(mc.playerController.getBlockReachDistance(), mc.thePlayer.rotationYaw, silentAim.isToggled() ? 90.0f : mc.thePlayer.rotationPitch);
if (mop == null || mop.typeOfHit != MovingObjectPosition.MovingObjectType.BLOCK || mop.sideHit != EnumFacing.UP) {
return;
}
long now = System.currentTimeMillis();
if (Utils.timeBetween(lastPlace, now) < PLACE_DELAY) {
return;
}
if (!isItem(mc.thePlayer.getHeldItem(), Items.water_bucket) && switchToItem.isToggled()) {
this.attemptSwitch();
}
if (!silentAim.isToggled() && mc.thePlayer.rotationPitch < 80.0f) {
return;
}
lastPlace = now;
this.useCurrentItem();
if (!(shouldPickup = pickupWater.isToggled())) {
this.lastSlot = -1;
}
if (Raven.debug) {
Utils.sendModuleMessage(this, "&7Placed with motionY &d" + Utils.round(mc.thePlayer.motionY, 2) + " &7and fall distance &d" + Utils.round(mc.thePlayer.fallDistance, 2));
} }
} }
private boolean inPosition() { @Override
return !mc.thePlayer.capabilities.isFlying && !mc.thePlayer.capabilities.isCreativeMode && !mc.thePlayer.onGround && mc.thePlayer.motionY < -0.6D && !mc.thePlayer.isInWater() && fallDistance() <= 2; public void onUpdate() {
if (mc.isGamePaused()) {
return;
}
if (shouldPickup && Utils.timeBetween(lastPlace, System.currentTimeMillis()) > PICKUP_WAIT && isItem(mc.thePlayer.getHeldItem(), Items.bucket)) {
shouldPickup = false;
this.useCurrentItem();
if (this.lastSlot != -1) {
Utils.switchSlot(this.lastSlot, true);
this.lastSlot = -1;
} }
private boolean holdWaterBucket(boolean setSlot) {
if (this.containsItem(mc.thePlayer.getHeldItem(), Items.water_bucket)) {
return true;
} else {
for (int i = 0; i < InventoryPlayer.getHotbarSize(); ++i) {
if (this.containsItem(mc.thePlayer.inventory.mainInventory[i], Items.water_bucket) && setSlot) {
mc.thePlayer.inventory.currentItem = i;
return true;
} }
} }
return false; @SubscribeEvent
public void onClientRotation(ClientRotationEvent e) {
if (silentAim.isToggled() && (fallCheck() || Utils.timeBetween(lastPlace, System.currentTimeMillis()) < PLACE_DELAY) && getWaterBucketSlot() != -1) {
e.setYaw(mc.thePlayer.rotationYaw);
e.setPitch(90.0f);
} }
} }
private boolean containsItem(ItemStack itemStack, Item item) { private void attemptSwitch() {
return itemStack != null && itemStack.getItem() == item; int slot = getWaterBucketSlot();
if (slot != -1) {
this.lastSlot = mc.thePlayer.inventory.currentItem;
Utils.switchSlot(slot, true);
}
} }
private void sendPlace() { private int getWaterBucketSlot() {
for (int slot = 0; slot < InventoryPlayer.getHotbarSize(); ++slot) {
if (isItem(mc.thePlayer.inventory.getStackInSlot(slot), Items.water_bucket)) {
return slot;
}
}
return -1;
}
private void useCurrentItem() {
mc.getNetHandler().addToSendQueue(new C08PacketPlayerBlockPlacement(mc.thePlayer.getHeldItem())); mc.getNetHandler().addToSendQueue(new C08PacketPlayerBlockPlacement(mc.thePlayer.getHeldItem()));
} }
private double fallDistance() { private boolean isItem(final ItemStack itemStack, final Item item) {
return (int) Utils.distanceToGround(mc.thePlayer); return itemStack != null && itemStack.getItem() == item;
}
private boolean fallCheck() {
return !mc.thePlayer.onGround && mc.thePlayer.fallDistance >= 3.3;
} }
} }

View File

@ -1,16 +1,20 @@
package keystrokesmod.module.impl.render; package keystrokesmod.module.impl.render;
import keystrokesmod.event.ReceivePacketEvent;
import keystrokesmod.mixin.impl.accessor.IAccessorEntityRenderer; import keystrokesmod.mixin.impl.accessor.IAccessorEntityRenderer;
import keystrokesmod.module.Module; import keystrokesmod.module.Module;
import keystrokesmod.module.setting.impl.SliderSetting; import keystrokesmod.module.setting.impl.SliderSetting;
import keystrokesmod.utility.Utils; import keystrokesmod.utility.Utils;
import net.minecraft.client.renderer.OpenGlHelper; import net.minecraft.client.renderer.OpenGlHelper;
import net.minecraft.network.play.server.S08PacketPlayerPosLook;
import net.minecraft.util.ResourceLocation; import net.minecraft.util.ResourceLocation;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
public class Shaders extends Module { public class Shaders extends Module {
private SliderSetting shader; private SliderSetting shader;
private String[] shaderNames; private String[] shaderNames;
private ResourceLocation[] shaderLocations; private ResourceLocation[] shaderLocations;
private boolean resetShader;
public Shaders() { public Shaders() {
super("Shaders", category.render); super("Shaders", category.render);
@ -25,7 +29,18 @@ public class Shaders extends Module {
this.registerSetting(shader = new SliderSetting("Shader", 0, shaderNames)); this.registerSetting(shader = new SliderSetting("Shader", 0, shaderNames));
} }
@SubscribeEvent
public void onReceivePacket(ReceivePacketEvent e) {
if (mc.thePlayer != null && e.getPacket() instanceof S08PacketPlayerPosLook) {
resetShader = true;
}
}
public void onUpdate() { public void onUpdate() {
if (resetShader) {
mc.entityRenderer.stopUseShader();
resetShader = false;
}
if (!Utils.nullCheck() || mc.entityRenderer == null || shaderLocations == null) { if (!Utils.nullCheck() || mc.entityRenderer == null || shaderLocations == null) {
return; return;
} }

View File

@ -3,10 +3,11 @@ package keystrokesmod.module.impl.render;
import keystrokesmod.module.Module; import keystrokesmod.module.Module;
import keystrokesmod.module.impl.world.AntiBot; import keystrokesmod.module.impl.world.AntiBot;
import keystrokesmod.module.setting.impl.ButtonSetting; import keystrokesmod.module.setting.impl.ButtonSetting;
import keystrokesmod.utility.RenderUtils;
import keystrokesmod.utility.Utils; import keystrokesmod.utility.Utils;
import net.minecraft.client.renderer.entity.RenderManager;
import net.minecraft.entity.Entity; import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.item.EntityArmorStand;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.*; import net.minecraft.item.*;
import net.minecraft.util.*; import net.minecraft.util.*;
@ -14,207 +15,217 @@ import net.minecraftforge.client.event.RenderWorldLastEvent;
import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; import net.minecraftforge.fml.common.eventhandler.SubscribeEvent;
import org.lwjgl.opengl.GL11; import org.lwjgl.opengl.GL11;
import java.awt.*; import java.util.ArrayList;
import java.util.List;
public class Trajectories extends Module { public class Trajectories extends Module {
private ButtonSetting autoScale; private ButtonSetting autoScale;
private ButtonSetting disableUncharged; private ButtonSetting disableUnchargedBow;
private ButtonSetting highlightOnEntity; private ButtonSetting highlightEntities;
private int highlightColor = new Color(234, 38, 38).getRGB(); private ButtonSetting shortenLine;
private int topColor = new Color(46, 255, 22).getRGB();
public Trajectories() { public Trajectories() {
super("Trajectories", category.render); super("Trajectories", category.render);
this.registerSetting(autoScale = new ButtonSetting("Auto-scale", true)); this.registerSetting(autoScale = new ButtonSetting("Auto-scale", true));
this.registerSetting(disableUncharged = new ButtonSetting("Disable uncharged bow", true)); this.registerSetting(disableUnchargedBow = new ButtonSetting("Disable uncharged bow", true));
this.registerSetting(highlightOnEntity = new ButtonSetting("Highlight on entity", true)); this.registerSetting(highlightEntities = new ButtonSetting("Highlight on entity", true));
this.registerSetting(shortenLine = new ButtonSetting("Shorten line", false));
} }
@SubscribeEvent @SubscribeEvent
public void onRenderWorldLast(RenderWorldLastEvent e) { public void onRenderWorld(RenderWorldLastEvent e) {
if (!Utils.nullCheck() || mc.thePlayer.getHeldItem() == null) { if (!Utils.nullCheck() || mc.thePlayer.getHeldItem() == null) {
return; return;
} }
ItemStack heldItem = mc.thePlayer.getHeldItem(); Item item = mc.thePlayer.getHeldItem().getItem();
if (!(heldItem.getItem() instanceof ItemBow) && !(heldItem.getItem() instanceof ItemSnowball) && !(heldItem.getItem() instanceof ItemEgg) && !(heldItem.getItem() instanceof ItemEnderPearl)) { boolean usingBow = item instanceof ItemBow;
if (!usingBow && !(item instanceof ItemSnowball) && !(item instanceof ItemEgg) && !(item instanceof ItemEnderPearl)) {
return; return;
} }
if (heldItem.getItem() instanceof ItemBow && !mc.thePlayer.isUsingItem() && disableUncharged.isToggled()) { if (usingBow && disableUnchargedBow.isToggled() && !mc.thePlayer.isUsingItem()) {
return; return;
} }
boolean bow = heldItem.getItem() instanceof ItemBow; float yaw = (float)Math.toRadians(mc.thePlayer.rotationYaw);
float pitch = (float)Math.toRadians(mc.thePlayer.rotationPitch);
float playerYaw = mc.thePlayer.rotationYaw; double arrowPosX = mc.thePlayer.lastTickPosX + (mc.thePlayer.posX - mc.thePlayer.lastTickPosX) * e.partialTicks - MathHelper.cos(yaw) * 0.16f;
float playerPitch = mc.thePlayer.rotationPitch; double arrowPosY = mc.thePlayer.lastTickPosY + (mc.thePlayer.posY - mc.thePlayer.lastTickPosY) * e.partialTicks + mc.thePlayer.getEyeHeight() - 0.1;
double arrowPosZ = mc.thePlayer.lastTickPosZ + (mc.thePlayer.posZ - mc.thePlayer.lastTickPosZ) * e.partialTicks - MathHelper.sin(yaw) * 0.16f;
double posX = mc.getRenderManager().viewerPosX - (double)(MathHelper.cos(playerYaw / 180.0f * (float)Math.PI) * 0.16f); float arrowMotionFactor = usingBow ? 1.0f : 0.4f;
double posY = mc.getRenderManager().viewerPosY + (double)mc.thePlayer.getEyeHeight() - (double)0.1f; float arrowMotionX = -MathHelper.sin(yaw) * MathHelper.cos(pitch) * arrowMotionFactor;
double posZ = mc.getRenderManager().viewerPosZ - (double)(MathHelper.sin(playerYaw / 180.0f * (float)Math.PI) * 0.16f); float arrowMotionY = -MathHelper.sin(pitch) * arrowMotionFactor;
float arrowMotionZ = MathHelper.cos(yaw) * MathHelper.cos(pitch) * arrowMotionFactor;
double motionX = (double)(-MathHelper.sin(playerYaw / 180.0f * (float)Math.PI) * MathHelper.cos(playerPitch / 180.0f * (float)Math.PI)) * (bow ? 1.0 : 0.4); double arrowMotion = Math.sqrt(arrowMotionX * arrowMotionX + arrowMotionY * arrowMotionY + arrowMotionZ * arrowMotionZ);
double motionY = (double)(-MathHelper.sin(playerPitch / 180.0f * (float)Math.PI)) * (bow ? 1.0 : 0.4); arrowMotionX /= arrowMotion;
double motionZ = (double)(MathHelper.cos(playerYaw / 180.0f * (float)Math.PI) * MathHelper.cos(playerPitch / 180.0f * (float)Math.PI)) * (bow ? 1.0 : 0.4); arrowMotionY /= arrowMotion;
arrowMotionZ /= arrowMotion;
int itemInUse = 40; if (usingBow) {
if (mc.thePlayer.getItemInUseCount() > 0 && bow) { float bowPower = (72000 - mc.thePlayer.getItemInUseCount()) / 20.0f;
itemInUse = mc.thePlayer.getItemInUseCount(); bowPower = (bowPower * bowPower + bowPower * 2.0f) / 3.0f;
if (bowPower > 1.0f) {
bowPower = 1.0f;
} }
int timeInUse = 72000 - itemInUse; bowPower *= 3.0f;
float strength = (float)timeInUse / 20.0f; arrowMotionX *= bowPower;
if ((double)(strength = (strength * strength + strength * 2.0f) / 3.0f) < 0.1) { arrowMotionY *= bowPower;
return; arrowMotionZ *= bowPower;
}
if (strength > 1.0f) {
strength = 1.0f;
}
RenderUtils.glColor(-1);
GL11.glPushMatrix();
boolean depthTest = GL11.glIsEnabled(GL11.GL_DEPTH_TEST);
boolean textureTwoD = GL11.glIsEnabled(GL11.GL_TEXTURE_2D);
boolean blend = GL11.glIsEnabled(GL11.GL_BLEND);
if (depthTest) {
GL11.glDisable(GL11.GL_DEPTH_TEST);
}
if (textureTwoD) {
GL11.glDisable(GL11.GL_TEXTURE_2D);
}
if (!blend) {
GL11.glEnable(GL11.GL_BLEND);
}
GL11.glEnable(GL11.GL_LINE_SMOOTH);
GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);
float velocity = MathHelper.sqrt_double(motionX * motionX + motionY * motionY + motionZ * motionZ);
motionX /= velocity;
motionY /= velocity;
motionZ /= velocity;
motionX *= (double)(bow ? strength * 2.0f : 1.0f) * 1.5;
motionY *= (double)(bow ? strength * 2.0f : 1.0f) * 1.5;
motionZ *= (double)(bow ? strength * 2.0f : 1.0f) * 1.5;
GL11.glLineWidth(1.5f);
GL11.glBegin(GL11.GL_LINE_STRIP);
boolean ground = false;
MovingObjectPosition target = null;
boolean highlight = false;
boolean isTop = false;
double[] transform = new double[]{posX, posY, posZ, motionX, motionY, motionZ};
for (int k = 0; k <= 100 && !ground; ++k) {
Vec3 start = new Vec3(transform[0], transform[1], transform[2]);
Vec3 predicted = new Vec3(transform[0] + transform[3], transform[1] + transform[4], transform[2] + transform[5]);
MovingObjectPosition rayTraced = mc.theWorld.rayTraceBlocks(start, predicted, false, true, false);
if (rayTraced == null) {
rayTraced = getEntityHit(start, predicted);
if (rayTraced != null) {
highlight = true;
break;
}
float f14 = 0.99f;
transform[4] *= f14;
transform[0] += (transform[3] *= f14);
transform[1] += (transform[4] -= bow ? 0.05 : 0.03);
transform[2] += (transform[5] *= f14);
}
else if (rayTraced.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK && rayTraced.sideHit == EnumFacing.UP) {
isTop = true;
}
}
for (int k = 0; k <= 100 && !ground; ++k) {
Vec3 start = new Vec3(posX, posY, posZ);
Vec3 predicted = new Vec3(posX + motionX, posY + motionY, posZ + motionZ);
MovingObjectPosition rayTraced = mc.theWorld.rayTraceBlocks(start, predicted, false, true, false);
if (rayTraced != null) {
ground = true;
target = rayTraced;
} }
else { else {
MovingObjectPosition entityHit = getEntityHit(start, predicted); arrowMotionX *= 1.5;
if (entityHit != null) { arrowMotionY *= 1.5;
target = entityHit; arrowMotionZ *= 1.5;
ground = true;
} }
}
if (highlight && highlightOnEntity.isToggled()) {
RenderUtils.glColor(highlightColor);
}
else if (isTop) {
RenderUtils.glColor(topColor);
}
float airResistance = 0.99f;
motionY *= airResistance;
GL11.glVertex3d((posX += (motionX *= airResistance)) - mc.getRenderManager().viewerPosX, (posY += (motionY -= bow ? 0.05 : 0.03)) - mc.getRenderManager().viewerPosY, (posZ += (motionZ *= airResistance)) - mc.getRenderManager().viewerPosZ);
}
GL11.glEnd();
GL11.glTranslated(posX - mc.getRenderManager().viewerPosX, posY - mc.getRenderManager().viewerPosY, posZ - mc.getRenderManager().viewerPosZ);
if (target != null && target.sideHit != null) {
switch (target.sideHit.getIndex()) {
case 2:
case 3:
GL11.glRotatef(90.0f, 1.0f, 0.0f, 0.0f);
break;
case 4:
case 5:
GL11.glRotatef(90.0f, 0.0f, 0.0f, 1.0f);
break;
}
}
if (autoScale.isToggled()) {
double distance = Math.max(mc.thePlayer.getDistance(posX + motionX, posY + motionY, posZ + motionZ) * 0.042830285, 1);
GL11.glScaled(distance, distance, distance);
}
this.drawX();
GL11.glDisable(GL11.GL_LINE_SMOOTH);
if (depthTest) {
GL11.glEnable(GL11.GL_DEPTH_TEST);
}
if (textureTwoD) {
GL11.glEnable(GL11.GL_TEXTURE_2D);
}
if (!blend) {
GL11.glDisable(GL11.GL_BLEND);
}
GL11.glPopMatrix();
}
public MovingObjectPosition getEntityHit(Vec3 origin, Vec3 destination) {
for (Entity e : mc.theWorld.loadedEntityList) {
if (!(e instanceof EntityLivingBase)) {
continue;
}
if (e instanceof EntityPlayer && AntiBot.isBot(e)) {
continue;
}
if (e != mc.thePlayer) {
float expand = 0.3f;
AxisAlignedBB boundingBox = e.getEntityBoundingBox().expand(expand, expand, expand);
MovingObjectPosition possibleHit = boundingBox.calculateIntercept(origin, destination);
if (possibleHit != null) {
return possibleHit;
}
}
}
return null;
}
public void drawX() {
GL11.glPushMatrix(); GL11.glPushMatrix();
GL11.glScalef(0.95f, 0.95f, 0.95f); GL11.glEnable(2848);
GL11.glBegin(GL11.GL_LINES); GL11.glBlendFunc(770, 771);
GL11.glVertex3d(-0.25, 0.0, 0.25); GL11.glEnable(3042);
GL11.glVertex3d(0.25, 0.0, -0.25); GL11.glDisable(3553);
GL11.glVertex3d(-0.25, 0.0, -0.25); GL11.glDisable(2929);
GL11.glVertex3d(0.25, 0.0, 0.25); GL11.glEnable(32925);
GL11.glDepthMask(false);
RenderManager renderManager = mc.getRenderManager();
double gravity = usingBow ? 0.05 : 0.03;
List<double[]> posList = new ArrayList<>();
MovingObjectPosition block = null;
Entity entity = null;
EnumFacing facingEntity = null;
EnumFacing facingBlock = null;
for (int i = 0; i < 750; ++i) {
posList.add(new double[] { arrowPosX - renderManager.viewerPosX, arrowPosY - renderManager.viewerPosY, arrowPosZ - renderManager.viewerPosZ });
Vec3 arrowVec = new Vec3(arrowPosX, arrowPosY, arrowPosZ);
Vec3 arrowVecNext = new Vec3(arrowPosX + arrowMotionX, arrowPosY + arrowMotionY, arrowPosZ + arrowMotionZ);
arrowPosX = arrowVecNext.xCoord;
arrowPosY = arrowVecNext.yCoord;
arrowPosZ = arrowVecNext.zCoord;
arrowMotionX *= 0.99;
arrowMotionY *= 0.99;
arrowMotionZ *= 0.99;
arrowMotionY -= gravity;
double size = 0.5;
AxisAlignedBB arrowBox = new AxisAlignedBB(arrowPosX - size, arrowPosY - size, arrowPosZ - size, arrowPosX + size, arrowPosY + size, arrowPosZ + size).addCoord((double)arrowMotionX, (double)arrowMotionY, (double)arrowMotionZ).expand(1.0, 1.0, 1.0);
List<Entity> list = mc.theWorld.getEntitiesWithinAABBExcludingEntity(mc.getRenderViewEntity(), arrowBox);
double minDistSq = 0.0;
for (final Entity en : list) {
if (en instanceof EntityLivingBase && !(en instanceof EntityArmorStand) && en.canBeCollidedWith()) {
if (((EntityLivingBase)en).deathTime != 0) {
continue;
}
if (en instanceof EntityPlayer && AntiBot.isBot(en)) {
continue;
}
AxisAlignedBB axis = en.getEntityBoundingBox().expand(0.30000001192092896, 0.30000001192092896, 0.30000001192092896);
MovingObjectPosition mop = axis.calculateIntercept(arrowVec, arrowVecNext);
if (mop == null) {
continue;
}
if (minDistSq == 0.0) {
entity = en;
facingEntity = mop.sideHit;
}
else {
double distSq = arrowVec.squareDistanceTo(mop.hitVec);
if (distSq >= minDistSq) {
continue;
}
entity = en;
facingEntity = mop.sideHit;
minDistSq = distSq;
}
}
}
block = mc.theWorld.rayTraceBlocks(arrowVec, arrowVecNext);
if (block != null) {
facingBlock = block.sideHit;
}
if (entity != null) {
break;
}
if (block != null) {
break;
}
}
if (entity != null && block != null) {
if (mc.thePlayer.getDistanceSqToEntity(entity) >= mc.thePlayer.getDistanceSqToCenter(block.getBlockPos())) {
entity = null;
facingEntity = null;
}
else {
block = null;
facingBlock = null;
}
}
EnumFacing facing = (facingEntity == null) ? facingBlock : facingEntity;
if (entity != null && highlightEntities.isToggled()) {
GL11.glColor3d(1.0, 0.0, 0.0);
GL11.glLineWidth(2.5f);
}
else {
if (facingBlock == EnumFacing.UP) {
GL11.glColor3d(0, 1.0, 0);
}
else {
GL11.glColor3d(1.0, 1.0, 1.0);
}
GL11.glLineWidth(1.8f);
}
GL11.glBegin(3);
for (int j = 0; j < posList.size(); ++j) {
if (j != 0 || !shortenLine.isToggled()) {
double[] pos = posList.get(j);
GL11.glVertex3d(pos[0], pos[1], pos[2]);
}
}
double renderX = arrowPosX - renderManager.viewerPosX;
double renderY = arrowPosY - renderManager.viewerPosY;
double renderZ = arrowPosZ - renderManager.viewerPosZ;
double distSq2 = 0.0;
if (entity != null) {
distSq2 = mc.thePlayer.getDistanceSq(entity.getPosition());
}
else if (block != null) {
distSq2 = mc.thePlayer.getDistanceSq(block.getBlockPos());
}
if (facing != null) {
double size2 = autoScale.isToggled() ? Math.min(0.1 * (1.0 + distSq2 / 500.0), 0.5) : 0.1;
switch (facing) {
case WEST:
case EAST: {
GL11.glVertex3d(renderX, renderY, renderZ);
GL11.glVertex3d(renderX, renderY - size2, renderZ - size2);
GL11.glVertex3d(renderX, renderY + size2, renderZ + size2);
GL11.glVertex3d(renderX, renderY, renderZ);
GL11.glVertex3d(renderX, renderY - size2, renderZ + size2);
GL11.glVertex3d(renderX, renderY + size2, renderZ - size2);
break;
}
case NORTH:
case SOUTH: {
GL11.glVertex3d(renderX, renderY, renderZ);
GL11.glVertex3d(renderX - size2, renderY - size2, renderZ);
GL11.glVertex3d(renderX + size2, renderY + size2, renderZ);
GL11.glVertex3d(renderX, renderY, renderZ);
GL11.glVertex3d(renderX + size2, renderY - size2, renderZ);
GL11.glVertex3d(renderX - size2, renderY + size2, renderZ);
break;
}
case DOWN:
case UP: {
GL11.glVertex3d(renderX, renderY, renderZ);
GL11.glVertex3d(renderX - size2, renderY, renderZ - size2);
GL11.glVertex3d(renderX + size2, renderY, renderZ + size2);
GL11.glVertex3d(renderX, renderY, renderZ);
GL11.glVertex3d(renderX + size2, renderY, renderZ - size2);
GL11.glVertex3d(renderX - size2, renderY, renderZ + size2);
break;
}
}
}
GL11.glEnd(); GL11.glEnd();
GL11.glDisable(3042);
GL11.glEnable(3553);
GL11.glEnable(2929);
GL11.glDisable(32925);
GL11.glDepthMask(true);
GL11.glDisable(2848);
GL11.glPopMatrix(); GL11.glPopMatrix();
} }
} }

View File

@ -66,6 +66,8 @@ public class ModuleUtils {
private float yaw; private float yaw;
private boolean ldmg;
@SubscribeEvent @SubscribeEvent
public void onWorldJoin(EntityJoinWorldEvent e) { public void onWorldJoin(EntityJoinWorldEvent e) {
if (e.entity == mc.thePlayer) { if (e.entity == mc.thePlayer) {
@ -156,31 +158,15 @@ public class ModuleUtils {
} }
dontCheckFD = false; dontCheckFD = false;
ldmg = true;
} }
} }
} }
@SubscribeEvent @SubscribeEvent
public void onPostMotion(PostMotionEvent e) { public void onPostMotion(PostMotionEvent e) {
if (bhopBoostConditions()) {
if (firstDamage) {
Utils.setSpeed(Utils.getHorizontalSpeed());
firstDamage = false;
}
}
if (veloBoostConditions()) {
if (firstDamage) {
double added = 0;
if (Utils.getHorizontalSpeed() <= Velocity.minExtraSpeed.getInput()) {
added = Velocity.extraSpeedBoost.getInput() / 100;
if (Velocity.reverseDebug.isToggled()) {
Utils.print("&7[&dR&7] Applied extra boost | Original speed: " + Utils.getHorizontalSpeed());
}
}
Utils.setSpeed((Utils.getHorizontalSpeed() * (Velocity.reverseHorizontal.getInput() / 100)) * (1 + added));
firstDamage = false;
}
}
} }
private boolean bhopBoostConditions() { private boolean bhopBoostConditions() {
@ -200,8 +186,30 @@ public class ModuleUtils {
@SubscribeEvent @SubscribeEvent
public void onPreUpdate(PreUpdateEvent e) { public void onPreUpdate(PreUpdateEvent e) {
if (bhopBoostConditions()) {
if (firstDamage) {
Utils.setSpeed(Utils.getHorizontalSpeed());
firstDamage = false;
}
}
if (veloBoostConditions()) {
if (firstDamage) {
double added = 0;
if (Utils.getHorizontalSpeed() <= Velocity.minExtraSpeed.getInput()) {
added = Velocity.extraSpeedBoost.getInput() / 100;
if (Velocity.reverseDebug.isToggled()) {
Utils.print("&7[&dR&7] Applied extra boost | Original speed: " + Utils.getHorizontalSpeed());
}
}
Utils.setSpeed((Utils.getHorizontalSpeed() * (Velocity.reverseHorizontal.getInput() / 100)) * (1 + added));
firstDamage = false;
}
}
//-0.0784000015258789 = ground value //-0.0784000015258789 = ground value
//§
double ed = Math.toDegrees(Math.atan2(mc.thePlayer.motionZ, mc.thePlayer.motionX)); double ed = Math.toDegrees(Math.atan2(mc.thePlayer.motionZ, mc.thePlayer.motionX));
//Utils.print("" + ed); //Utils.print("" + ed);
@ -312,123 +320,7 @@ public class ModuleUtils {
groundTicks = !mc.thePlayer.onGround ? 0 : ++groundTicks; groundTicks = !mc.thePlayer.onGround ? 0 : ++groundTicks;
stillTicks = Utils.isMoving() ? 0 : ++stillTicks; stillTicks = Utils.isMoving() ? 0 : ++stillTicks;
Block blockAbove = BlockUtils.getBlock(new BlockPos(mc.thePlayer.posX, mc.thePlayer.posY + 2, mc.thePlayer.posZ)); handleLowhop();
Block blockBelow = BlockUtils.getBlock(new BlockPos(mc.thePlayer.posX, mc.thePlayer.posY - 1, mc.thePlayer.posZ));
Block blockBelow2 = BlockUtils.getBlock(new BlockPos(mc.thePlayer.posX, mc.thePlayer.posY - 2, mc.thePlayer.posZ));
Block block = BlockUtils.getBlock(new BlockPos(mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ));
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) {
switch (simpleY) {
case 4200:
mc.thePlayer.motionY = 0.39;
break;
case 1138:
mc.thePlayer.motionY = mc.thePlayer.motionY - 0.13;
break;
case 2031:
mc.thePlayer.motionY = mc.thePlayer.motionY - 0.2;
resetLowhop();
break;
}
}
else if (ModuleManager.bhop.didMove) {
if (mc.thePlayer.isCollidedVertically || ModuleUtils.damage && Velocity.vertical.getInput() != 0) {// || !ModuleManager.bhop.lowhop && (!(block instanceof BlockAir) || !(blockAbove instanceof BlockAir) || blockBelow instanceof BlockSlab || (blockBelow instanceof BlockAir && blockBelow2 instanceof BlockAir))) {
resetLowhop();
}
switch ((int) ModuleManager.bhop.mode.getInput()) {
case 2: // 9 tick
switch (simpleY) {
case 13:
mc.thePlayer.motionY = mc.thePlayer.motionY - 0.02483;
ModuleManager.bhop.lowhop = true;
break;
case 2000:
mc.thePlayer.motionY = mc.thePlayer.motionY - 0.1913;
break;
case 7016:
mc.thePlayer.motionY = mc.thePlayer.motionY + 0.08;
break;
}
if (ModuleUtils.inAirTicks >= 7 && Utils.isMoving()) {
Utils.setSpeed(Utils.getHorizontalSpeed(mc.thePlayer));
}
if (ModuleUtils.inAirTicks >= 9) {
resetLowhop();
}
break;
case 3: // 8 tick
if (!ModuleManager.bhop.isNormalPos || (block instanceof BlockStairs)) {
resetLowhop();
break;
}
boolean g1 = Utils.distanceToGround(mc.thePlayer) <= 1.2;
//disable
if (inAirTicks >= 9 || inAirTicks >= 5 && !g1) {
resetLowhop();
break;
}
if (inAirTicks == 1) {
mc.thePlayer.motionY = 0.38999998569488;
ModuleManager.bhop.lowhop = true;
}
if (inAirTicks == 2) {
mc.thePlayer.motionY = 0.30379999189377;
}
if (inAirTicks == 3) {
mc.thePlayer.motionY = 0.08842400075912;
}
if (inAirTicks == 4) {
mc.thePlayer.motionY = -0.19174457909538;
}
if (inAirTicks == 5 && g1) {
mc.thePlayer.motionY = -0.26630949469659;
}
if (inAirTicks == 6 && g1) {
mc.thePlayer.motionY = -0.26438340940798;
}
if (inAirTicks == 7 && g1) {
mc.thePlayer.motionY = -0.33749574778843;
}
//strafe
if (inAirTicks >= 6 && Utils.isMoving()) {
Utils.setSpeed(Utils.getHorizontalSpeed(mc.thePlayer));
}
break;
case 4: // 7 tick
switch (simpleY) {
case 4200:
mc.thePlayer.motionY = 0.39;
ModuleManager.bhop.lowhop = true;
break;
case 1138:
mc.thePlayer.motionY = mc.thePlayer.motionY - 0.13;
break;
case 2031:
mc.thePlayer.motionY = mc.thePlayer.motionY - 0.2;
resetLowhop();
break;
}
break;
}
}
}
}
if (!mc.thePlayer.onGround) {
lowhopAir = true;
}
else if (lowhopAir) {
resetLowhop();
if (!ModuleManager.bhop.isEnabled()) {
ModuleManager.bhop.isNormalPos = false;
}
}
if (ModuleManager.bhop.setRotation) { if (ModuleManager.bhop.setRotation) {
if (!ModuleManager.killAura.rotating && !ModuleManager.scaffold.isEnabled) { if (!ModuleManager.killAura.rotating && !ModuleManager.scaffold.isEnabled) {
@ -448,6 +340,8 @@ public class ModuleUtils {
fadeEdge = 0; fadeEdge = 0;
ModuleManager.scaffold.highlight.clear(); ModuleManager.scaffold.highlight.clear();
} }
ldmg = false;
} }
private void resetLowhop() { private void resetLowhop() {
@ -543,4 +437,120 @@ public class ModuleUtils {
e.setCanceled(true); e.setCanceled(true);
} }
} }
private void handleLowhop() {
Block blockAbove = BlockUtils.getBlock(new BlockPos(mc.thePlayer.posX, mc.thePlayer.posY + 2, mc.thePlayer.posZ));
Block blockBelow = BlockUtils.getBlock(new BlockPos(mc.thePlayer.posX, mc.thePlayer.posY - 1, mc.thePlayer.posZ));
Block blockBelow2 = BlockUtils.getBlock(new BlockPos(mc.thePlayer.posX, mc.thePlayer.posY - 2, mc.thePlayer.posZ));
Block block = BlockUtils.getBlock(new BlockPos(mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ));
int simpleY = (int) Math.round((mc.thePlayer.posY % 1) * 10000);
if ((ModuleManager.bhop.didMove || ModuleManager.scaffold.lowhop) && (!ModuleManager.bhop.disablerOnly.isToggled() || ModuleManager.bhop.disablerOnly.isToggled() && ModuleManager.disabler.disablerLoaded)) {
if (ModuleManager.scaffold.lowhop) {
switch (simpleY) {
case 4200:
mc.thePlayer.motionY = 0.39;
break;
case 1138:
mc.thePlayer.motionY = mc.thePlayer.motionY - 0.13;
break;
case 2031:
mc.thePlayer.motionY = mc.thePlayer.motionY - 0.2;
resetLowhop();
break;
}
}
else if (ModuleManager.bhop.didMove) {
if (mc.thePlayer.isCollidedVertically || ldmg && Velocity.vertical.getInput() != 0 && !ModuleManager.velocity.dontEditMotion() || block instanceof BlockSlab) {// || !ModuleManager.bhop.lowhop && (!(block instanceof BlockAir) || !(blockAbove instanceof BlockAir) || blockBelow instanceof BlockSlab || (blockBelow instanceof BlockAir && blockBelow2 instanceof BlockAir))) {
resetLowhop();
return;
}
switch ((int) ModuleManager.bhop.mode.getInput()) {
case 2: // 9 tick
switch (simpleY) {
case 13:
mc.thePlayer.motionY = mc.thePlayer.motionY - 0.02483;
ModuleManager.bhop.lowhop = true;
break;
case 2000:
mc.thePlayer.motionY = mc.thePlayer.motionY - 0.1913;
break;
case 7016:
mc.thePlayer.motionY = mc.thePlayer.motionY + 0.08;
break;
}
if (ModuleUtils.inAirTicks >= 7 && Utils.isMoving()) {
Utils.setSpeed(Utils.getHorizontalSpeed(mc.thePlayer));
}
if (ModuleUtils.inAirTicks >= 9) {
resetLowhop();
}
break;
case 3: // 8 tick
if (!ModuleManager.bhop.isNormalPos || (block instanceof BlockStairs)) {
resetLowhop();
break;
}
boolean g1 = Utils.distanceToGround(mc.thePlayer) <= 1.2;
//disable
if (inAirTicks >= 9 || inAirTicks >= 5 && !g1) {
resetLowhop();
break;
}
if (inAirTicks == 1) {
mc.thePlayer.motionY = 0.38999998569488;
ModuleManager.bhop.lowhop = true;
}
if (inAirTicks == 2) {
mc.thePlayer.motionY = 0.30379999189377;
}
if (inAirTicks == 3) {
mc.thePlayer.motionY = 0.08842400075912;
}
if (inAirTicks == 4) {
mc.thePlayer.motionY = -0.19174457909538;
}
if (inAirTicks == 5 && g1) {
mc.thePlayer.motionY = -0.26630949469659;
}
if (inAirTicks == 6 && g1) {
mc.thePlayer.motionY = -0.26438340940798;
}
if (inAirTicks == 7 && g1) {
mc.thePlayer.motionY = -0.33749574778843;
}
//strafe
if (inAirTicks >= 6 && Utils.isMoving()) {
Utils.setSpeed(Utils.getHorizontalSpeed(mc.thePlayer));
}
break;
case 4: // 7 tick
switch (simpleY) {
case 4200:
mc.thePlayer.motionY = 0.39;
ModuleManager.bhop.lowhop = true;
break;
case 1138:
mc.thePlayer.motionY = mc.thePlayer.motionY - 0.13;
break;
case 2031:
mc.thePlayer.motionY = mc.thePlayer.motionY - 0.2;
resetLowhop();
break;
}
break;
}
}
}
if (!mc.thePlayer.onGround) {
lowhopAir = true;
}
else if (lowhopAir) {
resetLowhop();
if (!ModuleManager.bhop.isEnabled()) {
ModuleManager.bhop.isNormalPos = false;
}
}
}
} }

View File

@ -692,7 +692,7 @@ public class Utils {
} }
public static boolean isHypixel() { public static boolean isHypixel() {
return !mc.isSingleplayer() && mc.getCurrentServerData() != null && mc.getCurrentServerData().serverIP.contains("hypixel.net"); return !mc.isSingleplayer() && mc.getCurrentServerData() != null && (mc.getCurrentServerData().serverIP.equals("hypixel.net") || mc.getCurrentServerData().serverIP.contains(".hypixel.net"));
} }
public static String getHitsToKillStr(final EntityPlayer entityPlayer, final ItemStack itemStack) { public static String getHitsToKillStr(final EntityPlayer entityPlayer, final ItemStack itemStack) {