- feat: Фаза 1 ребрендинг combatant → lovisual + восстановление config - refactor: Фаза 2 — выкинуть Runtime/JarReplacement, заменить на Lifecycle - refactor: Фаза 3.5 — удалить читерские модули, ESP под легит - refactor: Фаза 3 — разбить Renderer2D (3379→2150 фасад + 14 хелперов ≤200) - refactor: Фаза 3 — разбить BetterChatRenderer (2870→210 фасад + 21 хелпер ≤200) - refactor: Фаза 3 — разбить UnifiedSettingRenderer (2798→208 фасад + 24 хелпера ≤200) - refactor: Фаза 3 — разбить ClickGuiRenderer (1887→542 фасад + 15 хелперов ≤200) - refactor: Фаза 3 — разбить NameTags (1791→438 фасад + 11 хелперов ≤200) - refactor: Фаза 3 — разбить TargetHud (1655→340 фасад + 11 хелперов ≤200) - refactor: Фаза 3 — разбить ESP (1538→269 фасад + 11 хелперов ≤200)
47 lines
1.6 KiB
Java
47 lines
1.6 KiB
Java
/*
|
|
* This file is part of the LoVisual Client distribution.
|
|
* Copyright (c) 2026 pivosos2007.
|
|
*
|
|
* Licensed under the GNU General Public License v3.0.
|
|
*/
|
|
|
|
package dev.loki.lovisual.mixins;
|
|
|
|
import com.llamalad7.mixinextras.injector.ModifyExpressionValue;
|
|
import net.minecraft.client.Minecraft;
|
|
import net.minecraft.client.player.KeyboardInput;
|
|
import net.minecraft.world.entity.player.Input;
|
|
import org.spongepowered.asm.mixin.Mixin;
|
|
import org.spongepowered.asm.mixin.injection.At;
|
|
import dev.loki.lovisual.util.aiming.RotationManager;
|
|
import dev.loki.lovisual.util.aiming.RotationUtil;
|
|
import dev.loki.lovisual.util.aiming.data.Rotation;
|
|
import dev.loki.lovisual.util.aiming.features.MovementCorrection;
|
|
|
|
@Mixin(KeyboardInput.class)
|
|
public abstract class KeyboardInputMixin extends InputMixin {
|
|
|
|
@ModifyExpressionValue(
|
|
method = "tick",
|
|
at = @At(
|
|
value = "NEW",
|
|
target = "(ZZZZZZZ)Lnet/minecraft/world/entity/player/Input;"
|
|
)
|
|
)
|
|
private Input lovisual$applyFreeCorrection(Input original) {
|
|
Minecraft mc = Minecraft.getInstance();
|
|
if (mc.player == null) {
|
|
return original;
|
|
}
|
|
|
|
var target = RotationManager.INSTANCE.getActiveRotationTarget();
|
|
if (target == null
|
|
|| target.movementCorrection != MovementCorrection.SILENT
|
|
|| !target.freeCorrection) {
|
|
return original;
|
|
}
|
|
|
|
Rotation rotation = RotationManager.INSTANCE.getMovementRotation();
|
|
return RotationUtil.correctMovementInput(original, mc.player.getYRot(), rotation.yaw());
|
|
}
|
|
}
|