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