Skip to content

Commit

Permalink
Merge branch 'CCBlueX:nextgen' into feat-autoarmor-savearmor
Browse files Browse the repository at this point in the history
  • Loading branch information
Katinuka authored Feb 16, 2025
2 parents 1e63eb6 + 8eb0f6a commit 2f90730
Show file tree
Hide file tree
Showing 212 changed files with 1,827 additions and 1,184 deletions.
9 changes: 2 additions & 7 deletions config/detekt/baseline.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,20 +3,16 @@
<ManuallySuppressedIssues/>
<CurrentIssues>
<ID>CognitiveComplexMethod:AStarMode.kt$AStarMode$private fun findPath(start: Vec3i, end: Vec3i, maxCost: Int, maxIterations: Int = 500): List&lt;Vec3i></ID>
<ID>CognitiveComplexMethod:AutoConfig.kt$AutoConfig$fun handlePossibleAutoConfig(jsonObject: JsonObject)</ID>
<ID>CognitiveComplexMethod:BlockExtensions.kt$fun Block?.isInteractable(blockState: BlockState?): Boolean</ID>
<ID>CognitiveComplexMethod:CombatExtensions.kt$fun Entity.attack(swing: Boolean, keepSprint: Boolean = false)</ID>
<ID>CognitiveComplexMethod:Command.kt$Command$fun autoComplete( builder: SuggestionsBuilder, tokenizationResult: Pair&lt;List&lt;String>, List&lt;Int>>, commandIdx: Int, isNewParameter: Boolean )</ID>
<ID>CognitiveComplexMethod:CommandManager.kt$CommandManager$@ScriptApiRequired @JvmName("execute") fun execute(cmd: String)</ID>
<ID>CognitiveComplexMethod:CommandManager.kt$CommandManager$fun autoComplete(origCmd: String, start: Int): CompletableFuture&lt;Suggestions></ID>
<ID>CognitiveComplexMethod:CommandManager.kt$CommandManager$fun tokenizeCommand(line: String): Pair&lt;List&lt;String>, List&lt;Int>></ID>
<ID>CognitiveComplexMethod:ItemCategorization.kt$ItemCategorization$@Suppress("CyclomaticComplexMethod", "LongMethod") fun getItemFacets(slot: ItemSlot): Array&lt;ItemFacet></ID>
<ID>CognitiveComplexMethod:ModuleKillAura.kt$ModuleKillAura$internal suspend fun Sequence&lt;*>.prepareAttackEnvironment(rotation: Rotation? = null, attack: () -> Unit)</ID>
<ID>CognitiveComplexMethod:ModuleKillAura.kt$ModuleKillAura$private suspend fun Sequence&lt;*>.mightAttack(chosenEntity: Entity, rotation: Rotation)</ID>
<ID>CognitiveComplexMethod:ModuleKillAura.kt$ModuleKillAura$internal suspend fun Sequence.prepareAttackEnvironment(rotation: Rotation? = null, attack: () -> Unit)</ID>
<ID>CognitiveComplexMethod:ModuleKillAura.kt$ModuleKillAura$private suspend fun Sequence.mightAttack(chosenEntity: Entity, rotation: Rotation)</ID>
<ID>CognitiveComplexMethod:PlacementRenderHandler.kt$PlacementRenderHandler$fun render(event: WorldRenderEvent, time: Long)</ID>
<ID>CognitiveComplexMethod:RegistryFunctions.kt$@Suppress("UNUSED_PARAMETER") fun getRegistries(requestObject: RequestObject)</ID>
<ID>CognitiveComplexMethod:SimulatedArrow.kt$SimulatedArrow$private fun updateCollision(pos: Vec3d, newPos: Vec3d): HitResult?</ID>
<ID>ComplexCondition:VelocityJumpReset.kt$VelocityJumpReset$player.hurtTime != 9 || !player.isOnGround || !player.isSprinting || isFallDamage || !isCooldownOver()</ID>
<ID>EmptyFunctionBlock:ModuleFreeCam.kt$ModuleFreeCam.Navigation${ }</ID>
<ID>FunctionNaming:ProtocolUtil.kt$fun send1_8BlockPlacement(blockPos: BlockPos, face: Int, heldItem: ItemStack, facingXIn: Float, facingYIn: Float, facingZIn: Float)</ID>
<ID>FunctionNaming:ProtocolUtil.kt$fun send1_8SignUpdate(blockPos: BlockPos, lines: Array&lt;String>)</ID>
Expand All @@ -30,7 +26,6 @@
<ID>MaxLineLength:ModuleBookBot.kt$ModuleBookBot.BookBuilder$*</ID>
<ID>MaxLineLength:ModuleBookBot.kt$ModuleBookBot.GenerationMode.Random$*</ID>
<ID>NestedBlockDepth:AStarMode.kt$AStarMode$private fun findPath(start: Vec3i, end: Vec3i, maxCost: Int, maxIterations: Int = 500): List&lt;Vec3i></ID>
<ID>NestedBlockDepth:CombatExtensions.kt$fun Entity.attack(swing: Boolean, keepSprint: Boolean = false)</ID>
<ID>NestedBlockDepth:CommandManager.kt$CommandManager$fun autoComplete(origCmd: String, start: Int): CompletableFuture&lt;Suggestions></ID>
<ID>ThrowsCount:CommandManager.kt$CommandManager$@ScriptApiRequired @JvmName("execute") fun execute(cmd: String)</ID>
<ID>UnusedPrivateMember:HumanInputDeserializer.kt$HumanInputDeserializer$private fun fail(s: String): Boolean</ID>
Expand Down
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ kotlin_version=2.1.0
# https://maven.fabricmc.net/net/fabricmc/fabric-language-kotlin/
fabric_kotlin_version=1.13.0+kotlin.2.1.0
# mcef
mcef_version=1.3.4-1.21.4
mcef_version=1.3.5-1.21.4
# mc-authlib
mc_authlib_version=1.4.1
# Recommended mods
Expand Down
8 changes: 8 additions & 0 deletions src-theme/src/integration/events.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,14 @@ export interface KeyboardKeyEvent {
screen: Screen | undefined;
}

export interface MouseButtonEvent {
key: string;
button: number;
action: number;
mods: number;
screen: Screen | undefined;
}

export interface ScaleFactorChangeEvent {
scaleFactor: number;
}
Expand Down
29 changes: 27 additions & 2 deletions src-theme/src/routes/clickgui/setting/BindSetting.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import type {BindSetting, ModuleSetting} from "../../../integration/types";
import {listen} from "../../../integration/ws";
import {getPrintableKeyName} from "../../../integration/rest";
import type {KeyboardKeyEvent} from "../../../integration/events";
import type {KeyboardKeyEvent, MouseButtonEvent} from "../../../integration/events";
import {convertToSpacedString, spaceSeperatedNames} from "../../../theme/theme_config";
import Dropdown from "./common/Dropdown.svelte";
Expand All @@ -15,6 +15,7 @@
const dispatch = createEventDispatcher();
let isHovered = false;
let binding = false;
let printableKeyName = "";
Expand Down Expand Up @@ -50,6 +51,25 @@
dispatch("change");
});
listen("mouseButton", async (e: MouseButtonEvent) => {
if (e.screen === undefined || !e.screen.class.startsWith("net.ccbluex.liquidbounce") ||
!(e.screen.title === "ClickGUI" || e.screen.title === "VS-CLICKGUI")) {
return;
}
if (!binding || (e.button === 0 && isHovered)) {
return;
}
binding = false;
cSetting.value.boundKey = e.key;
setting = {...cSetting};
dispatch("change");
})
async function toggleBinding() {
if (binding) {
cSetting.value.boundKey = UNKNOWN_KEY;
Expand All @@ -69,7 +89,12 @@
</script>

<div class="setting" class:has-value={cSetting.value.boundKey !== UNKNOWN_KEY}>
<button class="change-bind" on:click={toggleBinding}>
<button
class="change-bind"
on:click={toggleBinding}
on:mouseenter={() => isHovered = true}
on:mouseleave={() => isHovered = false}
>
{#if !binding}
<div class="name">{$spaceSeperatedNames ? convertToSpacedString(cSetting.name) : cSetting.name}:</div>

Expand Down
29 changes: 27 additions & 2 deletions src-theme/src/routes/clickgui/setting/KeySetting.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import {getPrintableKeyName} from "../../../integration/rest";
import {createEventDispatcher} from "svelte";
import {listen} from "../../../integration/ws";
import type {KeyboardKeyEvent} from "../../../integration/events";
import type {KeyboardKeyEvent, MouseButtonEvent} from "../../../integration/events";
export let setting: ModuleSetting;
Expand All @@ -13,6 +13,7 @@
const dispatch = createEventDispatcher();
const UNKNOWN_KEY = "key.keyboard.unknown";
let isHovered = false;
let binding = false;
let printableKeyName = "";
Expand Down Expand Up @@ -59,10 +60,34 @@
dispatch("change");
});
listen("mouseButton", async (e: MouseButtonEvent) => {
if (e.screen === undefined || !e.screen.class.startsWith("net.ccbluex.liquidbounce") ||
!(e.screen.title === "ClickGUI" || e.screen.title === "VS-CLICKGUI")) {
return;
}
if (!binding || (e.button === 0 && isHovered)) {
return;
}
binding = false;
cSetting.value = e.key;
setting = {...cSetting};
dispatch("change");
})
</script>

<div class="setting">
<button class="change-bind" on:click={toggleBinding}>
<button
class="change-bind"
on:click={toggleBinding}
on:mouseenter={() => isHovered = true}
on:mouseleave={() => isHovered = false}
>
{#if !binding}
<div class="name">{$spaceSeperatedNames ? convertToSpacedString(cSetting.name) : cSetting.name}:</div>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
import net.ccbluex.liquidbounce.event.events.SprintEvent;
import net.ccbluex.liquidbounce.features.module.modules.movement.ModuleInventoryMove;
import net.ccbluex.liquidbounce.utils.aiming.RotationManager;
import net.ccbluex.liquidbounce.utils.aiming.features.MovementCorrection;
import net.ccbluex.liquidbounce.utils.input.InputTracker;
import net.ccbluex.liquidbounce.utils.movement.DirectionalInput;
import net.minecraft.client.MinecraftClient;
Expand Down Expand Up @@ -108,12 +109,13 @@ private PlayerInput modifyInput(PlayerInput original) {
private DirectionalInput transformDirection(DirectionalInput input) {
var player = MinecraftClient.getInstance().player;
var rotation = RotationManager.INSTANCE.getCurrentRotation();
var configurable = RotationManager.INSTANCE.getWorkingAimPlan();
var configurable = RotationManager.INSTANCE.getActiveRotationTarget();

float z = KeyboardInput.getMovementMultiplier(input.getForwards(), input.getBackwards());
float x = KeyboardInput.getMovementMultiplier(input.getLeft(), input.getRight());

if (configurable == null || !configurable.getApplyVelocityFix() || rotation == null || player == null) {
if (configurable == null || configurable.getMovementCorrection() != MovementCorrection.SILENT
|| rotation == null || player == null) {
return input;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,22 +25,36 @@
import net.ccbluex.liquidbounce.event.EventManager;
import net.ccbluex.liquidbounce.event.events.*;
import net.ccbluex.liquidbounce.features.module.modules.render.ModuleZoom;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.Mouse;
import net.minecraft.client.network.ClientPlayerEntity;
import net.minecraft.client.util.InputUtil;
import org.spongepowered.asm.mixin.Final;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;

@Mixin(Mouse.class)
public class MixinMouse {

@Shadow
@Final
private MinecraftClient client;

/**
* Hook mouse button event
*/
@Inject(method = "onMouseButton", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/MinecraftClient;getOverlay()Lnet/minecraft/client/gui/screen/Overlay;", shift = At.Shift.BEFORE, ordinal = 0))
private void hookMouseButton(long window, int button, int action, int mods, CallbackInfo callbackInfo) {
EventManager.INSTANCE.callEvent(new MouseButtonEvent(button, action, mods));
EventManager.INSTANCE.callEvent(new MouseButtonEvent(
InputUtil.Type.MOUSE.createFromCode(button),
button,
action,
mods,
this.client.currentScreen
));
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,8 @@
import net.ccbluex.liquidbounce.integration.VrScreen;
import net.ccbluex.liquidbounce.integration.interop.protocol.rest.v1.game.PlayerData;
import net.ccbluex.liquidbounce.interfaces.ClientPlayerEntityAddition;
import net.ccbluex.liquidbounce.utils.aiming.Rotation;
import net.ccbluex.liquidbounce.utils.aiming.RotationManager;
import net.ccbluex.liquidbounce.utils.aiming.data.Rotation;
import net.ccbluex.liquidbounce.utils.movement.DirectionalInput;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.screen.Screen;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
import net.ccbluex.liquidbounce.features.module.modules.render.ModuleAntiBlind;
import net.ccbluex.liquidbounce.features.module.modules.world.scaffold.ModuleScaffold;
import net.ccbluex.liquidbounce.utils.aiming.RotationManager;
import net.ccbluex.liquidbounce.utils.aiming.features.MovementCorrection;
import net.minecraft.client.MinecraftClient;
import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.effect.StatusEffect;
Expand Down Expand Up @@ -170,13 +171,13 @@ private void hookAfterJumpEvent(CallbackInfo ci) {
private Vec3d hookFixRotation(Vec3d original) {
var rotationManager = RotationManager.INSTANCE;
var rotation = rotationManager.getCurrentRotation();
var configurable = rotationManager.getWorkingAimPlan();
var configurable = rotationManager.getActiveRotationTarget();

if ((Object) this != MinecraftClient.getInstance().player) {
return original;
}

if (configurable == null || !configurable.getApplyVelocityFix() || rotation == null) {
if (configurable == null || configurable.getMovementCorrection() == MovementCorrection.OFF || rotation == null) {
return original;
}

Expand Down Expand Up @@ -246,9 +247,9 @@ private float hookModifyFallFlyingPitch(float original) {

var rotationManager = RotationManager.INSTANCE;
var rotation = rotationManager.getCurrentRotation();
var configurable = rotationManager.getWorkingAimPlan();
var configurable = rotationManager.getActiveRotationTarget();

if (rotation == null || configurable == null || !configurable.getApplyVelocityFix() || configurable.getChangeLook()) {
if (rotation == null || configurable == null || configurable.getMovementCorrection() == MovementCorrection.OFF) {
return original;
}

Expand All @@ -266,13 +267,13 @@ private Vec3d hookModifyFallFlyingRotationVector(Vec3d original) {

var rotationManager = RotationManager.INSTANCE;
var rotation = rotationManager.getCurrentRotation();
var configurable = rotationManager.getWorkingAimPlan();
var configurable = rotationManager.getActiveRotationTarget();

if (rotation == null || configurable == null || !configurable.getApplyVelocityFix() || configurable.getChangeLook()) {
if (rotation == null || configurable == null || configurable.getMovementCorrection() == MovementCorrection.OFF) {
return original;
}

return rotation.getRotationVec();
return rotation.getDirectionVector();
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,10 @@
import net.ccbluex.liquidbounce.features.module.modules.player.ModuleReach;
import net.ccbluex.liquidbounce.features.module.modules.player.nofall.modes.NoFallNoGround;
import net.ccbluex.liquidbounce.features.module.modules.world.ModuleNoSlowBreak;
import net.ccbluex.liquidbounce.utils.aiming.AimPlan;
import net.ccbluex.liquidbounce.utils.aiming.Rotation;
import net.ccbluex.liquidbounce.utils.aiming.RotationManager;
import net.ccbluex.liquidbounce.utils.aiming.RotationTarget;
import net.ccbluex.liquidbounce.utils.aiming.data.Rotation;
import net.ccbluex.liquidbounce.utils.aiming.features.MovementCorrection;
import net.minecraft.client.MinecraftClient;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EquipmentSlot;
Expand Down Expand Up @@ -94,9 +95,9 @@ private float hookFixRotation(float original) {

RotationManager rotationManager = RotationManager.INSTANCE;
Rotation rotation = rotationManager.getCurrentRotation();
AimPlan configurable = rotationManager.getWorkingAimPlan();
RotationTarget configurable = rotationManager.getActiveRotationTarget();

if (configurable == null || !configurable.getApplyVelocityFix() || rotation == null) {
if (configurable == null || configurable.getMovementCorrection() == MovementCorrection.OFF || rotation == null) {
return original;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ private static Vec3d hookFixRotation(Vec3d original, World world, PlayerEntity p
var rotation = RotationManager.INSTANCE.getCurrentRotation();

if (player == MinecraftClient.getInstance().player && rotation != null) {
return rotation.getRotationVec();
return rotation.getDirectionVector();
}

return original;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,8 @@
import net.ccbluex.liquidbounce.features.module.modules.misc.betterchat.ModuleBetterChat;
import net.ccbluex.liquidbounce.features.module.modules.player.ModuleAntiExploit;
import net.ccbluex.liquidbounce.features.module.modules.player.ModuleNoRotateSet;
import net.ccbluex.liquidbounce.utils.aiming.Rotation;
import net.ccbluex.liquidbounce.utils.aiming.RotationManager;
import net.ccbluex.liquidbounce.utils.aiming.data.Rotation;
import net.ccbluex.liquidbounce.utils.kotlin.Priority;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.screen.DownloadingTerrainScreen;
Expand Down Expand Up @@ -200,7 +200,7 @@ private void injectNoRotateSet(PlayerPositionLookS2CPacket packet, CallbackInfo
true,
null
);
RotationManager.INSTANCE.aimAt(aimPlan, Priority.NOT_IMPORTANT, ModuleNoRotateSet.INSTANCE);
RotationManager.INSTANCE.setRotationTarget(aimPlan, Priority.NOT_IMPORTANT, ModuleNoRotateSet.INSTANCE);
}

// Increase yaw and pitch by a value so small that the difference cannot be seen,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package net.ccbluex.liquidbounce.injection.mixins.minecraft.network;

import net.ccbluex.liquidbounce.utils.aiming.Rotation;
import net.ccbluex.liquidbounce.utils.aiming.RotationManager;
import net.ccbluex.liquidbounce.utils.aiming.data.Rotation;
import net.minecraft.network.packet.c2s.play.PlayerInteractItemC2SPacket;
import net.minecraft.util.Hand;
import org.spongepowered.asm.mixin.Final;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,9 @@
import com.llamalad7.mixinextras.injector.ModifyExpressionValue;
import net.ccbluex.liquidbounce.features.module.modules.combat.aimbot.ModuleDroneControl;
import net.ccbluex.liquidbounce.features.module.modules.render.*;
import net.ccbluex.liquidbounce.utils.aiming.AimPlan;
import net.ccbluex.liquidbounce.utils.aiming.RotationManager;
import net.ccbluex.liquidbounce.utils.aiming.RotationTarget;
import net.ccbluex.liquidbounce.utils.aiming.features.MovementCorrection;
import net.minecraft.client.render.Camera;
import net.minecraft.entity.Entity;
import net.minecraft.entity.LivingEntity;
Expand Down Expand Up @@ -101,13 +102,13 @@ private void modifyCameraOrientation(BlockView area, Entity focusedEntity, boole
this.setRotation(screen.getCameraRotation().x, screen.getCameraRotation().y);
}

AimPlan aimPlan = RotationManager.INSTANCE.getWorkingAimPlan();
RotationTarget rotationTarget = RotationManager.INSTANCE.getActiveRotationTarget();

var previousRotation = RotationManager.INSTANCE.getPreviousRotation();
var currentRotation = RotationManager.INSTANCE.getCurrentRotation();

boolean shouldModifyRotation = ModuleRotations.INSTANCE.getRunning() && ModuleRotations.INSTANCE.getCamera()
|| aimPlan != null && aimPlan.getChangeLook();
|| rotationTarget != null && rotationTarget.getMovementCorrection() == MovementCorrection.CHANGE_LOOK;

if (currentRotation == null || previousRotation == null || !shouldModifyRotation) {
return;
Expand Down
Loading

0 comments on commit 2f90730

Please sign in to comment.