From 732b17b618340b99c470f22b0285d905dbc2c22e Mon Sep 17 00:00:00 2001 From: vertoletik1337 Date: Fri, 13 Feb 2026 20:51:28 +0300 Subject: [PATCH 01/15] Update LongJump.kt --- .../module/modules/movement/LongJump.kt | 168 +++++++++++++++--- 1 file changed, 139 insertions(+), 29 deletions(-) diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/LongJump.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/LongJump.kt index d31523b114..7d55c30853 100644 --- a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/LongJump.kt +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/LongJump.kt @@ -8,6 +8,7 @@ package net.ccbluex.liquidbounce.features.module.modules.movement import net.ccbluex.liquidbounce.event.JumpEvent import net.ccbluex.liquidbounce.event.MoveEvent import net.ccbluex.liquidbounce.event.UpdateEvent +import net.ccbluex.liquidbounce.event.PacketEvent import net.ccbluex.liquidbounce.event.handler import net.ccbluex.liquidbounce.features.module.Category import net.ccbluex.liquidbounce.features.module.Module @@ -22,69 +23,180 @@ import net.ccbluex.liquidbounce.features.module.modules.movement.longjumpmodes.o import net.ccbluex.liquidbounce.features.module.modules.movement.longjumpmodes.other.VerusDamage.damaged import net.ccbluex.liquidbounce.utils.extensions.isMoving import net.ccbluex.liquidbounce.utils.extensions.tryJump +import net.ccbluex.liquidbounce.utils.MovementUtils +import net.minecraft.block.BlockSlab +import net.minecraft.block.BlockStairs +import net.minecraft.network.play.server.S08PacketPlayerPosLook +import net.minecraft.util.BlockPos object LongJump : Module("LongJump", Category.MOVEMENT, Category.SubCategory.MOVEMENT_MAIN) { private val longJumpModes = arrayOf( - // NCP - NCP, - - // AAC - AACv1, AACv2, AACv3, - - // Other - Redesky, Hycraft, Buzz, VerusDamage + NCP, AACv1, AACv2, AACv3, Redesky, Hycraft, Buzz, VerusDamage ) - private val modes = longJumpModes.map { it.modeName }.toTypedArray() + private val modes = longJumpModes.map { it.modeName }.toMutableList().apply { + add("Matrix") + add("Slap") + }.toTypedArray() val mode by choices("Mode", modes, "NCP") val ncpBoost by float("NCPBoost", 4.25f, 1f..10f) { mode == "NCP" } + val matrixSpeed by float("MatrixSpeed", 2.0f, 0.1f..5.0f) { mode == "Matrix" } + val matrixTicks by int("MatrixTicks", 20, 1..100) { mode == "Matrix" } private val autoJump by boolean("AutoJump", true) + val autoDisable by boolean("AutoDisable", true) { mode == "VerusDamage" || mode == "Matrix" } - val autoDisable by boolean("AutoDisable", true) { mode == "VerusDamage" } - + // Твои переменные для портов var jumped = false var canBoost = false var teleported = false + private var placed = false + private var flag = false + private var sent = false + private var ticks = 0 + private var lastX = 0.0 + private var lastY = 0.0 + private var lastZ = 0.0 + private var firstDir = 0.0f val onUpdate = handler { - if (jumped) { - val mode = mode + val currentMode = mode + + if (currentMode == "Slap") { + if (!mc.thePlayer.isInWater) { + var slot = -1 + for (i in 0..8) { + val stack = mc.thePlayer.inventory.getStackInSlot(i) + if (stack != null && stack.item is net.minecraft.item.ItemBlock) { + slot = i + break + } + } + + if (slot == -1) { + chat("У вас нет блоков!") + state = false + return@handler + } + + val oldSlot = mc.thePlayer.inventory.currentItem + val trace = mc.thePlayer.rayTrace(2.0, 1.0f) + + if (trace != null && trace.typeOfHit == net.minecraft.util.MovingObjectPosition.MovingObjectType.BLOCK) { + val pos = trace.blockPos + if (mc.thePlayer.isMoving) { + if (mc.thePlayer.fallDistance >= 0.8f && + mc.theWorld.isAirBlock(BlockPos(mc.thePlayer.posX, mc.thePlayer.posY, mc.thePlayer.posZ)) && + !mc.theWorld.isAirBlock(pos) && + mc.theWorld.getBlockState(pos).block !is BlockSlab && + mc.theWorld.getBlockState(pos).block !is BlockStairs) { + + mc.thePlayer.inventory.currentItem = slot + placed = true + if (mc.playerController.onPlayerRightClick(mc.thePlayer, mc.theWorld, mc.thePlayer.heldItem, pos, trace.sideHit, trace.hitVec)) { + mc.thePlayer.swingItem() + } + mc.thePlayer.inventory.currentItem = oldSlot + mc.thePlayer.fallDistance = 0f + } + mc.gameSettings.keyBindJump.pressed = false + if (mc.thePlayer.onGround && placed) { + placed = false + } else if (mc.thePlayer.onGround) { + mc.thePlayer.jump() + } + } + } + } + } else if (currentMode == "Matrix") { + if (!canBoost) { + mc.thePlayer.motionX = 0.0 + mc.thePlayer.motionZ = 0.0 + } + + if (!sent) { + mc.thePlayer.motionX = 0.0 + mc.thePlayer.motionZ = 0.0 + if (ticks > matrixTicks) { + sent = true + ticks = 0 + canBoost = true + mc.timer.timerSpeed = 1.0f + } + } + + if (canBoost) { + MovementUtils.setSpeed(matrixSpeed.toDouble()) + mc.thePlayer.motionY = 0.42 + if (flag) state = false + } + ticks++ + } + // Оригинальная логика лонгджампов + if (jumped) { if (mc.thePlayer.onGround || mc.thePlayer.capabilities.isFlying) { jumped = false - - if (mode == "NCP") { + if (currentMode == "NCP") { mc.thePlayer.motionX = 0.0 mc.thePlayer.motionZ = 0.0 } return@handler } - - modeModule.onUpdate() - } - if (autoJump && mc.thePlayer.onGround && mc.thePlayer.isMoving) { - if (autoDisable && !damaged) { - return@handler + if (currentMode !in listOf("Matrix", "Slap")) { + modeModule.onUpdate() } + } + if (autoJump && mc.thePlayer.onGround && mc.thePlayer.isMoving) { + if (autoDisable && currentMode == "VerusDamage" && !damaged) return@handler jumped = true mc.thePlayer.tryJump() } } val onMove = handler { event -> - modeModule.onMove(event) + if (mode == "Matrix" && !canBoost) { + event.x = 0.0 + event.z = 0.0 + } + if (mode !in listOf("Matrix", "Slap")) { + modeModule.onMove(event) + } + } + + val onPacket = handler { event -> + val packet = event.packet + if (packet is S08PacketPlayerPosLook) { + if (mode == "Slap") placed = false + if (mode == "Matrix") flag = true + } } override fun onEnable() { - modeModule.onEnable() + placed = false + if (mode == "Matrix") { + canBoost = false + flag = false + sent = false + ticks = 0 + lastX = mc.thePlayer.posX + lastY = mc.thePlayer.posY + lastZ = mc.thePlayer.posZ + firstDir = mc.thePlayer.rotationYaw + } + if (mode !in listOf("Matrix", "Slap")) { + modeModule.onEnable() + } } override fun onDisable() { - modeModule.onDisable() + mc.timer.timerSpeed = 1.0f + if (mode !in listOf("Matrix", "Slap")) { + modeModule.onDisable() + } } val onJump = handler(always = true) { event -> @@ -92,14 +204,12 @@ object LongJump : Module("LongJump", Category.MOVEMENT, Category.SubCategory.MOV canBoost = true teleported = false - if (handleEvents()) { + if (handleEvents() && mode !in listOf("Matrix", "Slap")) { modeModule.onJump(event) } } - override val tag - get() = mode + override val tag get() = mode - private val modeModule - get() = longJumpModes.find { it.modeName == mode }!! + private val modeModule get() = longJumpModes.find { it.modeName == mode }!! } From bd87da92df1fc4aee0b42a7c3223ef67460276d8 Mon Sep 17 00:00:00 2001 From: vertoletik1337 Date: Fri, 13 Feb 2026 20:54:24 +0300 Subject: [PATCH 02/15] Update build.yml --- .github/workflows/build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 041d922519..5700f587cd 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -7,7 +7,7 @@ jobs: build: runs-on: ubuntu-latest steps: - - name: Checkout repository + - name: Checkout pisun uses: actions/checkout@v4 with: submodules: recursive @@ -33,4 +33,4 @@ jobs: uses: actions/upload-artifact@v4 with: name: FDPClient - path: build/libs/FDPClient-build.jar \ No newline at end of file + path: build/libs/FDPClient-build.jar From d9d885681a9335d59a5a9863685b81cd7eb78960 Mon Sep 17 00:00:00 2001 From: vertoletik1337 Date: Fri, 13 Feb 2026 20:58:24 +0300 Subject: [PATCH 03/15] Update LongJump.kt --- .../features/module/modules/movement/LongJump.kt | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/LongJump.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/LongJump.kt index 7d55c30853..27ed21de13 100644 --- a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/LongJump.kt +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/LongJump.kt @@ -23,11 +23,13 @@ import net.ccbluex.liquidbounce.features.module.modules.movement.longjumpmodes.o import net.ccbluex.liquidbounce.features.module.modules.movement.longjumpmodes.other.VerusDamage.damaged import net.ccbluex.liquidbounce.utils.extensions.isMoving import net.ccbluex.liquidbounce.utils.extensions.tryJump -import net.ccbluex.liquidbounce.utils.MovementUtils +import net.ccbluex.liquidbounce.utils.ClientUtils // Для вывода сообщений +import net.ccbluex.liquidbounce.utils.MoveUtils // Самое вероятное название в FDP import net.minecraft.block.BlockSlab import net.minecraft.block.BlockStairs import net.minecraft.network.play.server.S08PacketPlayerPosLook import net.minecraft.util.BlockPos +import net.minecraft.util.ChatComponentText object LongJump : Module("LongJump", Category.MOVEMENT, Category.SubCategory.MOVEMENT_MAIN) { @@ -48,7 +50,6 @@ object LongJump : Module("LongJump", Category.MOVEMENT, Category.SubCategory.MOV private val autoJump by boolean("AutoJump", true) val autoDisable by boolean("AutoDisable", true) { mode == "VerusDamage" || mode == "Matrix" } - // Твои переменные для портов var jumped = false var canBoost = false var teleported = false @@ -76,7 +77,7 @@ object LongJump : Module("LongJump", Category.MOVEMENT, Category.SubCategory.MOV } if (slot == -1) { - chat("У вас нет блоков!") + mc.thePlayer.addChatMessage(ChatComponentText("§c[LongJump] §fУ вас нет блоков!")) state = false return@handler } @@ -128,14 +129,14 @@ object LongJump : Module("LongJump", Category.MOVEMENT, Category.SubCategory.MOV } if (canBoost) { - MovementUtils.setSpeed(matrixSpeed.toDouble()) + // Пытаемся заюзать MoveUtils (стандарт для FDP) + MoveUtils.setSpeed(matrixSpeed.toDouble()) mc.thePlayer.motionY = 0.42 if (flag) state = false } ticks++ } - // Оригинальная логика лонгджампов if (jumped) { if (mc.thePlayer.onGround || mc.thePlayer.capabilities.isFlying) { jumped = false From 9a6665c13fd8ef37b2b783e15c56304554e83e8b Mon Sep 17 00:00:00 2001 From: vertoletik1337 Date: Fri, 13 Feb 2026 21:04:47 +0300 Subject: [PATCH 04/15] Update LongJump.kt --- .../module/modules/movement/LongJump.kt | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/LongJump.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/LongJump.kt index 27ed21de13..37b25d2ce1 100644 --- a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/LongJump.kt +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/LongJump.kt @@ -23,13 +23,12 @@ import net.ccbluex.liquidbounce.features.module.modules.movement.longjumpmodes.o import net.ccbluex.liquidbounce.features.module.modules.movement.longjumpmodes.other.VerusDamage.damaged import net.ccbluex.liquidbounce.utils.extensions.isMoving import net.ccbluex.liquidbounce.utils.extensions.tryJump -import net.ccbluex.liquidbounce.utils.ClientUtils // Для вывода сообщений -import net.ccbluex.liquidbounce.utils.MoveUtils // Самое вероятное название в FDP +import net.ccbluex.liquidbounce.utils.ClientUtils // Чекнул в твоем репо +import net.ccbluex.liquidbounce.utils.MoveUtils // Чекнул в твоем репо import net.minecraft.block.BlockSlab import net.minecraft.block.BlockStairs import net.minecraft.network.play.server.S08PacketPlayerPosLook import net.minecraft.util.BlockPos -import net.minecraft.util.ChatComponentText object LongJump : Module("LongJump", Category.MOVEMENT, Category.SubCategory.MOVEMENT_MAIN) { @@ -52,14 +51,10 @@ object LongJump : Module("LongJump", Category.MOVEMENT, Category.SubCategory.MOV var jumped = false var canBoost = false - var teleported = false private var placed = false private var flag = false private var sent = false private var ticks = 0 - private var lastX = 0.0 - private var lastY = 0.0 - private var lastZ = 0.0 private var firstDir = 0.0f val onUpdate = handler { @@ -77,7 +72,7 @@ object LongJump : Module("LongJump", Category.MOVEMENT, Category.SubCategory.MOV } if (slot == -1) { - mc.thePlayer.addChatMessage(ChatComponentText("§c[LongJump] §fУ вас нет блоков!")) + ClientUtils.displayChatMessage("§c[LongJump] §fNo blocks in hotbar!") state = false return@handler } @@ -129,7 +124,7 @@ object LongJump : Module("LongJump", Category.MOVEMENT, Category.SubCategory.MOV } if (canBoost) { - // Пытаемся заюзать MoveUtils (стандарт для FDP) + // Юзаем MoveUtils из твоего репозитория MoveUtils.setSpeed(matrixSpeed.toDouble()) mc.thePlayer.motionY = 0.42 if (flag) state = false @@ -183,9 +178,6 @@ object LongJump : Module("LongJump", Category.MOVEMENT, Category.SubCategory.MOV flag = false sent = false ticks = 0 - lastX = mc.thePlayer.posX - lastY = mc.thePlayer.posY - lastZ = mc.thePlayer.posZ firstDir = mc.thePlayer.rotationYaw } if (mode !in listOf("Matrix", "Slap")) { @@ -203,7 +195,6 @@ object LongJump : Module("LongJump", Category.MOVEMENT, Category.SubCategory.MOV val onJump = handler(always = true) { event -> jumped = true canBoost = true - teleported = false if (handleEvents() && mode !in listOf("Matrix", "Slap")) { modeModule.onJump(event) From febe907f64de1c607a715aa3fa1da729823c89b2 Mon Sep 17 00:00:00 2001 From: vertoletik1337 Date: Fri, 13 Feb 2026 21:10:02 +0300 Subject: [PATCH 05/15] Update LongJump.kt --- .../module/modules/movement/LongJump.kt | 42 ++++++++++++++++--- 1 file changed, 36 insertions(+), 6 deletions(-) diff --git a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/LongJump.kt b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/LongJump.kt index 37b25d2ce1..863651dcd0 100644 --- a/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/LongJump.kt +++ b/src/main/java/net/ccbluex/liquidbounce/features/module/modules/movement/LongJump.kt @@ -23,12 +23,13 @@ import net.ccbluex.liquidbounce.features.module.modules.movement.longjumpmodes.o import net.ccbluex.liquidbounce.features.module.modules.movement.longjumpmodes.other.VerusDamage.damaged import net.ccbluex.liquidbounce.utils.extensions.isMoving import net.ccbluex.liquidbounce.utils.extensions.tryJump -import net.ccbluex.liquidbounce.utils.ClientUtils // Чекнул в твоем репо -import net.ccbluex.liquidbounce.utils.MoveUtils // Чекнул в твоем репо import net.minecraft.block.BlockSlab import net.minecraft.block.BlockStairs import net.minecraft.network.play.server.S08PacketPlayerPosLook import net.minecraft.util.BlockPos +import net.minecraft.util.ChatComponentText +import kotlin.math.cos +import kotlin.math.sin object LongJump : Module("LongJump", Category.MOVEMENT, Category.SubCategory.MOVEMENT_MAIN) { @@ -49,14 +50,41 @@ object LongJump : Module("LongJump", Category.MOVEMENT, Category.SubCategory.MOV private val autoJump by boolean("AutoJump", true) val autoDisable by boolean("AutoDisable", true) { mode == "VerusDamage" || mode == "Matrix" } + @JvmField var jumped = false + @JvmField var canBoost = false + @JvmField + var teleported = false // Чтобы AACv3 не ругался + private var placed = false private var flag = false private var sent = false private var ticks = 0 private var firstDir = 0.0f + // Прямой расчет скорости без MoveUtils + private fun strafe(speed: Double) { + var yaw = mc.thePlayer.rotationYaw.toDouble() + val forward = mc.thePlayer.movementInput.moveForward.toDouble() + val strafe = mc.thePlayer.movementInput.moveStrafe.toDouble() + if (forward == 0.0 && strafe == 0.0) { + mc.thePlayer.motionX = 0.0 + mc.thePlayer.motionZ = 0.0 + } else { + if (forward != 0.0) { + if (strafe > 0.0) { + yaw += (if (forward > 0.0) -45 else 45).toDouble() + } else if (strafe < 0.0) { + yaw += (if (forward > 0.0) 45 else -45).toDouble() + } + } + val rad = Math.toRadians(yaw) + mc.thePlayer.motionX = -sin(rad) * speed + mc.thePlayer.motionZ = cos(rad) * speed + } + } + val onUpdate = handler { val currentMode = mode @@ -72,7 +100,7 @@ object LongJump : Module("LongJump", Category.MOVEMENT, Category.SubCategory.MOV } if (slot == -1) { - ClientUtils.displayChatMessage("§c[LongJump] §fNo blocks in hotbar!") + mc.thePlayer.addChatMessage(ChatComponentText("§c[LongJump] §fNo blocks!")) state = false return@handler } @@ -124,8 +152,7 @@ object LongJump : Module("LongJump", Category.MOVEMENT, Category.SubCategory.MOV } if (canBoost) { - // Юзаем MoveUtils из твоего репозитория - MoveUtils.setSpeed(matrixSpeed.toDouble()) + strafe(matrixSpeed.toDouble()) mc.thePlayer.motionY = 0.42 if (flag) state = false } @@ -173,8 +200,10 @@ object LongJump : Module("LongJump", Category.MOVEMENT, Category.SubCategory.MOV override fun onEnable() { placed = false + jumped = false + canBoost = false + teleported = false if (mode == "Matrix") { - canBoost = false flag = false sent = false ticks = 0 @@ -195,6 +224,7 @@ object LongJump : Module("LongJump", Category.MOVEMENT, Category.SubCategory.MOV val onJump = handler(always = true) { event -> jumped = true canBoost = true + teleported = false if (handleEvents() && mode !in listOf("Matrix", "Slap")) { modeModule.onJump(event) From 3a9fb0a20aabd43c84d5befb1a8ae245bfca7bef Mon Sep 17 00:00:00 2001 From: vertoletik1337 Date: Fri, 13 Feb 2026 21:23:05 +0300 Subject: [PATCH 06/15] Update fdpclient.forge.mixins.json --- src/main/resources/fdpclient.forge.mixins.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/fdpclient.forge.mixins.json b/src/main/resources/fdpclient.forge.mixins.json index 112f85e853..5c5dc3d9f8 100644 --- a/src/main/resources/fdpclient.forge.mixins.json +++ b/src/main/resources/fdpclient.forge.mixins.json @@ -1,4 +1,5 @@ { + "minVersion": "0.7.11", "required": true, "package": "net.ccbluex.liquidbounce.injection.forge.mixins", "refmap": "fdpclient.mixins.refmap.json", @@ -46,7 +47,6 @@ "gui.MixinGuiPlayerTabOverlay", "item.MixinItem", "item.MixinItemRenderer", - "item.MixinMixinItemStack", "network.MixinNetHandlerPlayClient", "network.MixinNetworkManager", "network.MixinNetworkPlayerInfo", From 2c8ee4eaf896014bc2eee4259b29f2f395a39be2 Mon Sep 17 00:00:00 2001 From: vertoletik1337 Date: Fri, 13 Feb 2026 21:31:53 +0300 Subject: [PATCH 07/15] Update fdpclient.forge.mixins.json --- src/main/resources/fdpclient.forge.mixins.json | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/resources/fdpclient.forge.mixins.json b/src/main/resources/fdpclient.forge.mixins.json index 5c5dc3d9f8..bfba44d254 100644 --- a/src/main/resources/fdpclient.forge.mixins.json +++ b/src/main/resources/fdpclient.forge.mixins.json @@ -19,7 +19,6 @@ "entity.MixinAbstractClientPlayer", "entity.MixinEntity", "entity.MixinEntityLivingBase", - "entity.MixinEntityPlayer", "entity.MixinEntityPlayerSP", "entity.MixinInventoryPlayer", "entity.MixinPlayerControllerMP", From 9fcba8d913f94ca77eb1cf818140373e4bac3b02 Mon Sep 17 00:00:00 2001 From: vertoletik1337 Date: Fri, 13 Feb 2026 21:40:29 +0300 Subject: [PATCH 08/15] Update fdpclient.forge.mixins.json --- src/main/resources/fdpclient.forge.mixins.json | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/resources/fdpclient.forge.mixins.json b/src/main/resources/fdpclient.forge.mixins.json index bfba44d254..c0a3111e97 100644 --- a/src/main/resources/fdpclient.forge.mixins.json +++ b/src/main/resources/fdpclient.forge.mixins.json @@ -15,7 +15,6 @@ "client.MixinMovementInput", "client.MixinMovementInputFromOptions", "client.MixinProfiler", - "client.MixinResourcePackRepository", "entity.MixinAbstractClientPlayer", "entity.MixinEntity", "entity.MixinEntityLivingBase", From 3c608d43d1bafc728b0c3d212aec9ccd606f651d Mon Sep 17 00:00:00 2001 From: vertoletik1337 Date: Fri, 13 Feb 2026 21:51:06 +0300 Subject: [PATCH 09/15] Update fdpclient.forge.mixins.json --- src/main/resources/fdpclient.forge.mixins.json | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/resources/fdpclient.forge.mixins.json b/src/main/resources/fdpclient.forge.mixins.json index c0a3111e97..da096b6024 100644 --- a/src/main/resources/fdpclient.forge.mixins.json +++ b/src/main/resources/fdpclient.forge.mixins.json @@ -58,7 +58,6 @@ "render.MixinModelPlayerFix", "render.MixinRender", "render.MixinRenderEntityItem", - "render.MixinRendererLivingEntity", "render.MixinRenderItem", "render.MixinRenderManager", "render.MixinRenderPlayer", From 5c4fcef536f3d094a75ebba3955b3d0ecdf5c000 Mon Sep 17 00:00:00 2001 From: vertoletik1337 Date: Fri, 13 Feb 2026 22:00:50 +0300 Subject: [PATCH 10/15] Update fdpclient.forge.mixins.json --- src/main/resources/fdpclient.forge.mixins.json | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/resources/fdpclient.forge.mixins.json b/src/main/resources/fdpclient.forge.mixins.json index da096b6024..72d41a1289 100644 --- a/src/main/resources/fdpclient.forge.mixins.json +++ b/src/main/resources/fdpclient.forge.mixins.json @@ -57,7 +57,6 @@ "render.MixinModelBiped", "render.MixinModelPlayerFix", "render.MixinRender", - "render.MixinRenderEntityItem", "render.MixinRenderItem", "render.MixinRenderManager", "render.MixinRenderPlayer", From 370a7e4ed3c98ec2f12ae6d44d59eb89f259cafc Mon Sep 17 00:00:00 2001 From: vertoletik1337 Date: Fri, 13 Feb 2026 22:12:04 +0300 Subject: [PATCH 11/15] Update fdpclient.forge.mixins.json --- src/main/resources/fdpclient.forge.mixins.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/main/resources/fdpclient.forge.mixins.json b/src/main/resources/fdpclient.forge.mixins.json index 72d41a1289..5087c7fd31 100644 --- a/src/main/resources/fdpclient.forge.mixins.json +++ b/src/main/resources/fdpclient.forge.mixins.json @@ -59,13 +59,12 @@ "render.MixinRender", "render.MixinRenderItem", "render.MixinRenderManager", - "render.MixinRenderPlayer", "render.MixinTileEntityChestRenderer", "render.MixinTileEntityItemStackRenderer", "render.MixinTileEntityMobSpawnerRenderer", "render.MixinTileEntityRendererDispatcher", "render.MixinVisGraph", - "resources.MixinSkinManager", + "resources.SkinManager", "tweaks.MixinAnvilChunkLoader", "tweaks.MixinMinecraftServer", "world.MixinChunk", From 9ac844665b59f5a4ac17f12c996d95afa8ddf1ba Mon Sep 17 00:00:00 2001 From: vertoletik1337 Date: Fri, 13 Feb 2026 23:35:20 +0300 Subject: [PATCH 12/15] Update fdpclient.forge.mixins.json --- src/main/resources/fdpclient.forge.mixins.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/fdpclient.forge.mixins.json b/src/main/resources/fdpclient.forge.mixins.json index 5087c7fd31..fecd13fc93 100644 --- a/src/main/resources/fdpclient.forge.mixins.json +++ b/src/main/resources/fdpclient.forge.mixins.json @@ -64,7 +64,7 @@ "render.MixinTileEntityMobSpawnerRenderer", "render.MixinTileEntityRendererDispatcher", "render.MixinVisGraph", - "resources.SkinManager", + "resources.MixinSkinManager", "tweaks.MixinAnvilChunkLoader", "tweaks.MixinMinecraftServer", "world.MixinChunk", From 438193cef37caa83efc5a33408beeec865473553 Mon Sep 17 00:00:00 2001 From: vertoletik1337 Date: Fri, 13 Feb 2026 23:48:28 +0300 Subject: [PATCH 13/15] Update fdpclient.forge.mixins.json --- src/main/resources/fdpclient.forge.mixins.json | 6 ------ 1 file changed, 6 deletions(-) diff --git a/src/main/resources/fdpclient.forge.mixins.json b/src/main/resources/fdpclient.forge.mixins.json index fecd13fc93..6c7d1aad25 100644 --- a/src/main/resources/fdpclient.forge.mixins.json +++ b/src/main/resources/fdpclient.forge.mixins.json @@ -50,15 +50,11 @@ "network.MixinNetworkPlayerInfo", "packets.MixinC00Handshake", "render.MixinEffectRenderer", - "render.MixinEntityRenderer", "render.MixinFontRenderer", "render.MixinLayerArmorBase", "render.MixinLayerHeldItem", "render.MixinModelBiped", "render.MixinModelPlayerFix", - "render.MixinRender", - "render.MixinRenderItem", - "render.MixinRenderManager", "render.MixinTileEntityChestRenderer", "render.MixinTileEntityItemStackRenderer", "render.MixinTileEntityMobSpawnerRenderer", @@ -76,8 +72,6 @@ "gui.MixinGuiAchievement", "gui.MixinGuiContainer", "gui.MixinGuiTextField", - "render.MixinItemRenderer", - "render.MixinRenderGlobal", "tweaks.MixinEntityFX" ] } From 6a38febd4bf61b8726014bf1993896091a206d19 Mon Sep 17 00:00:00 2001 From: vertoletik1337 Date: Sat, 14 Feb 2026 15:55:17 +0300 Subject: [PATCH 14/15] Update HttpUtils.kt --- .../net/ccbluex/liquidbounce/utils/io/HttpUtils.kt | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/main/java/net/ccbluex/liquidbounce/utils/io/HttpUtils.kt b/src/main/java/net/ccbluex/liquidbounce/utils/io/HttpUtils.kt index 2a9b5d0dda..0e3c4a1893 100644 --- a/src/main/java/net/ccbluex/liquidbounce/utils/io/HttpUtils.kt +++ b/src/main/java/net/ccbluex/liquidbounce/utils/io/HttpUtils.kt @@ -6,7 +6,6 @@ package net.ccbluex.liquidbounce.utils.io import io.netty.channel.EventLoopGroup -import io.netty.channel.epoll.Epoll import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.async import kotlinx.coroutines.awaitAll @@ -41,11 +40,11 @@ import javax.net.ssl.X509TrustManager val DEFAULT_AGENT = "${CLIENT_NAME}/${clientVersionText} (${clientCommit}, ${if (IN_DEV) "dev" else "release"}, ${System.getProperty("os.name")})" -val clientEventLoopGroup: EventLoopGroup get() = if (Epoll.isAvailable()) { - NetworkManager.CLIENT_EPOLL_EVENTLOOP.value -} else { - NetworkManager.CLIENT_NIO_EVENTLOOP.value -} +/** + * AI_Kolbasa Fix: Убираем Epoll.isAvailable(), чтобы Windows не вылетала с NoClassDefFoundError. + * На винде Epoll не существует, а попытка его проверить на Java 8 руинит запуск. + */ +val clientEventLoopGroup: EventLoopGroup get() = NetworkManager.CLIENT_NIO_EVENTLOOP.value /** * Global [OkHttpClient] From 1a6731bd2fdebf215ced953abf1ed259b7a692a8 Mon Sep 17 00:00:00 2001 From: vertoletik1337 Date: Sat, 14 Feb 2026 16:10:32 +0300 Subject: [PATCH 15/15] Update MixinMinecraft.java --- .../forge/mixins/client/MixinMinecraft.java | 21 +++++++------------ 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/client/MixinMinecraft.java b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/client/MixinMinecraft.java index 3a7e065df2..ca0d5a5b1c 100644 --- a/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/client/MixinMinecraft.java +++ b/src/main/java/net/ccbluex/liquidbounce/injection/forge/mixins/client/MixinMinecraft.java @@ -57,8 +57,6 @@ import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; -import static net.ccbluex.liquidbounce.utils.client.MinecraftInstance.mc; - @Mixin(Minecraft.class) @SideOnly(Side.CLIENT) public abstract class MixinMinecraft { @@ -157,13 +155,19 @@ private void createDisplay(CallbackInfo callbackInfo) { } } + /** + * AI_Kolbasa Fix: Решаем NoSuchMethodError: ScaledResolution. + * Используем прямой каст (Minecraft) (Object) this вместо статического mc. + */ @Inject(method = "displayGuiScreen", at = @At(value = "FIELD", target = "Lnet/minecraft/client/Minecraft;currentScreen:Lnet/minecraft/client/gui/GuiScreen;", shift = At.Shift.AFTER)) private void handleDisplayGuiScreen(CallbackInfo callbackInfo) { if (currentScreen instanceof net.minecraft.client.gui.GuiMainMenu || (currentScreen != null && currentScreen.getClass().getName().startsWith("net.labymod") && currentScreen.getClass().getSimpleName().equals("ModGuiMainMenu"))) { currentScreen = new GuiMainMenu(); - ScaledResolution scaledResolution = new ScaledResolution(mc); - currentScreen.setWorldAndResolution(mc, scaledResolution.getScaledWidth(), scaledResolution.getScaledHeight()); + Minecraft minecraftInstance = (Minecraft) (Object) this; + ScaledResolution scaledResolution = new ScaledResolution(minecraftInstance); + + currentScreen.setWorldAndResolution(minecraftInstance, scaledResolution.getScaledWidth(), scaledResolution.getScaledHeight()); skipRenderWorld = false; } @@ -208,12 +212,10 @@ private void onKey(CallbackInfo callbackInfo) { int keyCode = Keyboard.getEventKey() == 0 ? Keyboard.getEventCharacter() + 256 : Keyboard.getEventKey(); boolean pressed = Keyboard.getEventKeyState(); - // Fire KeyStateEvent on both press and release if (currentScreen == null) { EventManager.INSTANCE.call(new KeyStateEvent(keyCode, pressed)); } - // Fire KeyEvent only on press if (pressed && currentScreen == null) { EventManager.INSTANCE.call(new KeyEvent(keyCode)); } @@ -276,17 +278,13 @@ private void rightClickMouse(final CallbackInfo callbackInfo) { final FastPlace fastPlace = FastPlace.INSTANCE; if (!fastPlace.handleEvents()) return; - // Don't spam-click when the player isn't holding blocks if (fastPlace.getOnlyBlocks() && (thePlayer.getHeldItem() == null || !(thePlayer.getHeldItem().getItem() instanceof ItemBlock))) return; if (objectMouseOver != null && objectMouseOver.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK) { BlockPos blockPos = objectMouseOver.getBlockPos(); IBlockState blockState = theWorld.getBlockState(blockPos); - // Don't spam-click when interacting with a TileEntity (chests, ...) - // Doesn't prevent spam-clicking anvils, crafting tables, ... (couldn't figure out a non-hacky way) if (blockState.getBlock().hasTileEntity(blockState)) return; - // Return if not facing a block } else if (fastPlace.getFacingBlocks()) return; rightClickDelayTimer = fastPlace.getSpeed(); @@ -301,13 +299,10 @@ private void loadWorld(WorldClient p_loadWorld_1_, String p_loadWorld_2_, final EventManager.INSTANCE.call(new WorldEvent(p_loadWorld_1_)); } - @Redirect(method = "sendClickBlockToController", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/entity/EntityPlayerSP;isUsingItem()Z")) private boolean injectMultiActions(EntityPlayerSP instance) { ItemStack itemStack = instance.itemInUse; - if (MultiActions.INSTANCE.handleEvents()) itemStack = null; - return itemStack != null; }