From 6affd0eb3a482583877b25105ad4df7cdfdd8ddc Mon Sep 17 00:00:00 2001 From: Eclipses <99494277+EclipsesDev@users.noreply.github.com> Date: Thu, 18 Apr 2024 18:50:59 +0700 Subject: [PATCH] LEGACY: Fixed Scaffold AutoF5 & Blink Nofall (#2846) * LEGACY: Fixed Scaffold AutoF5 & Blink Nofall - Scaffold now should not reset thirdpersonview when AutoF5 not enabled. - Changed HypixelBlink -> Blink --- .../features/module/modules/player/NoFall.kt | 16 +++++---- .../other/{HypixelBlink.kt => Blink.kt} | 33 +++++++++++++------ .../features/module/modules/world/Scaffold.kt | 5 ++- 3 files changed, 37 insertions(+), 17 deletions(-) rename src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofallmodes/other/{HypixelBlink.kt => Blink.kt} (85%) diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/NoFall.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/NoFall.kt index f85eb1efca5..30754597acd 100644 --- a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/NoFall.kt +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/NoFall.kt @@ -13,6 +13,7 @@ import net.ccbluex.liquidbounce.features.module.modules.player.nofallmodes.aac.A import net.ccbluex.liquidbounce.features.module.modules.player.nofallmodes.aac.AAC3315 import net.ccbluex.liquidbounce.features.module.modules.player.nofallmodes.aac.LAAC import net.ccbluex.liquidbounce.features.module.modules.player.nofallmodes.other.* +import net.ccbluex.liquidbounce.features.module.modules.player.nofallmodes.other.Blink import net.ccbluex.liquidbounce.features.module.modules.render.FreeCam import net.ccbluex.liquidbounce.utils.block.BlockUtils.collideBlock import net.ccbluex.liquidbounce.value.BoolValue @@ -36,7 +37,7 @@ object NoFall : Module("NoFall", ModuleCategory.PLAYER) { Spartan, CubeCraft, Hypixel, - HypixelBlink + Blink ) private val modes = noFallModes.map { it.modeName }.toTypedArray() @@ -46,18 +47,21 @@ object NoFall : Module("NoFall", ModuleCategory.PLAYER) { val minFallDistance by FloatValue("MinMLGHeight", 5f, 2f..50f, subjective = true) { mode == "MLG" } val retrieveDelay by IntegerValue("RetrieveDelay", 100, 100..500, subjective = true) { mode == "MLG" } + // Using too many times of simulatePlayer could result timer flag. Hence, why this is disabled by default. + val checkFallDist by BoolValue("CheckFallDistance", false, subjective = true) + val minFallDist: FloatValue = object : FloatValue("MinFallDistance", 2.5f, 0f..10f, subjective = true) { - override fun isSupported() = mode == "HypixelBlink" + override fun isSupported() = mode == "Blink" && checkFallDist override fun onChange(oldValue: Float, newValue: Float) = newValue.coerceAtMost(maxFallDist.get()) } val maxFallDist: FloatValue = object : FloatValue("MaxFallDistance", 20f, 0f..100f, subjective = true) { - override fun isSupported() = mode == "HypixelBlink" + override fun isSupported() = mode == "Blink" && checkFallDist override fun onChange(oldValue: Float, newValue: Float) = newValue.coerceAtLeast(minFallDist.get()) } - val autoOff by BoolValue("AutoOff", true) { mode == "HypixelBlink" } - val simulateDebug by BoolValue("SimulationDebug", false, subjective = true) { mode == "HypixelBlink" } - val fakePlayer by BoolValue("FakePlayer", true, subjective = true) { mode == "HypixelBlink" } + val autoOff by BoolValue("AutoOff", true) { mode == "Blink" } + val simulateDebug by BoolValue("SimulationDebug", false, subjective = true) { mode == "Blink" } + val fakePlayer by BoolValue("FakePlayer", true, subjective = true) { mode == "Blink" } override fun onEnable() { modeModule.onEnable() diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofallmodes/other/HypixelBlink.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofallmodes/other/Blink.kt similarity index 85% rename from src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofallmodes/other/HypixelBlink.kt rename to src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofallmodes/other/Blink.kt index 2f3cfdb14d3..5352ed6c389 100644 --- a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofallmodes/other/HypixelBlink.kt +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/player/nofallmodes/other/Blink.kt @@ -4,6 +4,7 @@ import net.ccbluex.liquidbounce.event.EventTarget import net.ccbluex.liquidbounce.event.PacketEvent import net.ccbluex.liquidbounce.event.Render3DEvent import net.ccbluex.liquidbounce.features.module.modules.player.NoFall.autoOff +import net.ccbluex.liquidbounce.features.module.modules.player.NoFall.checkFallDist import net.ccbluex.liquidbounce.features.module.modules.player.NoFall.fakePlayer import net.ccbluex.liquidbounce.features.module.modules.player.NoFall.maxFallDist import net.ccbluex.liquidbounce.features.module.modules.player.NoFall.minFallDist @@ -14,13 +15,14 @@ import net.ccbluex.liquidbounce.injection.implementations.IMixinEntity import net.ccbluex.liquidbounce.script.api.global.Chat import net.ccbluex.liquidbounce.utils.BlinkUtils import net.ccbluex.liquidbounce.utils.SimulatedPlayer +import net.ccbluex.liquidbounce.utils.misc.FallingPlayer import net.ccbluex.liquidbounce.utils.render.RenderUtils.drawBacktrackBox import net.ccbluex.liquidbounce.utils.timing.TickTimer import net.minecraft.network.play.client.C03PacketPlayer import net.minecraft.util.AxisAlignedBB import java.awt.Color -object HypixelBlink : NoFallMode("HypixelBlink") { +object Blink : NoFallMode("Blink") { private var blinked = false private val tick = TickTimer() @@ -40,15 +42,13 @@ object HypixelBlink : NoFallMode("HypixelBlink") { val simPlayer = SimulatedPlayer.fromClientPlayer(thePlayer.movementInput) - repeat(6) { - simPlayer.tick() - } + simPlayer.tick() if (simPlayer.onGround && blinked) { if (thePlayer.onGround) { tick.update() - if (tick.hasTimePassed(150)) { + if (tick.hasTimePassed(100)) { BlinkUtils.unblink() blinked = false Chat.print("Unblink") @@ -76,18 +76,31 @@ object HypixelBlink : NoFallMode("HypixelBlink") { } } + // Re-check #1 + repeat(2) { + simPlayer.tick() + } + if (simPlayer.isOnLadder() || simPlayer.inWater || simPlayer.isInLava() || simPlayer.isInWeb || simPlayer.isCollided) return if (thePlayer.motionY > 0 && blinked) return - // Re-check - repeat(4) { - simPlayer.tick() + if (simPlayer.onGround) + return + + // Re-check #2 + if (checkFallDist) { + repeat(6) { + simPlayer.tick() + } } - if (!simPlayer.onGround && simPlayer.fallDistance > minFallDist.get()) { + val fallingPlayer = FallingPlayer(thePlayer) + + if ((checkFallDist && simPlayer.fallDistance > minFallDist.get()) || + !checkFallDist && fallingPlayer.findCollision(60) != null && simPlayer.motionY < 0) { if (thePlayer.onGround && !blinked) { blinked = true @@ -95,7 +108,7 @@ object HypixelBlink : NoFallMode("HypixelBlink") { BlinkUtils.addFakePlayer() Chat.print("Blinked") - BlinkUtils.blink(packet, event, sent = true, receive = true) + BlinkUtils.blink(packet, event) } } } diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/world/Scaffold.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/world/Scaffold.kt index 0bcbc61d301..ce40f4cc1bd 100644 --- a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/world/Scaffold.kt +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/world/Scaffold.kt @@ -1065,7 +1065,10 @@ object Scaffold : Module("Scaffold", ModuleCategory.WORLD, Keyboard.KEY_I) { mc.gameSettings.keyBindLeft.pressed = false } - mc.gameSettings.thirdPersonView = 0 + if (autoF5) { + mc.gameSettings.thirdPersonView = 0 + } + lockRotation = null placeRotation = null mc.timer.timerSpeed = 1f