Latest release
This commit is contained in:
parent
2aea03142b
commit
0b22684c68
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -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">
|
||||||
|
|
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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) {
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -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) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue