chore(history): squash 10 commit(s) from 2026-07-31

- 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)
This commit is contained in:
loki5512344 2026-07-31 23:14:14 +02:00
parent 8084ac50b3
commit 52d87368c9
1595 changed files with 35857 additions and 51145 deletions

View file

@ -1,13 +1,13 @@
/*
* This file is part of the Combatant Client distribution.
* Combatant modifications copyright (c) 2026 pivosos2007.
* This file is part of the LoVisual Client distribution.
* LoVisual modifications copyright (c) 2026 pivosos2007.
*
* Portions of this file are based on LiquidBounce
* (https://github.com/CCBlueX/LiquidBounce).
* Copyright (c) 2015-2026 CCBlueX.
*
* LiquidBounce portions are licensed under GPLv3-or-later.
* Combatant modifications are licensed under GPLv3.
* LoVisual modifications are licensed under GPLv3.
* See THIRD_PARTY_NOTICES.md for details.
*/
@ -39,8 +39,6 @@ import dev.loki.lovisual.events.impl.PlayerSafeWalkEvent;
import dev.loki.lovisual.features.module.Modules;
import dev.loki.lovisual.features.module.modules.player.NoDelay;
import dev.loki.lovisual.features.module.modules.combat.TPSSync;
import dev.loki.lovisual.features.module.modules.movement.NoStun;
import dev.loki.lovisual.features.module.modules.movement.Timer;
import dev.loki.lovisual.mixininterface.IPlayerAttackCooldown;
import dev.loki.lovisual.util.aiming.RotationManager;
@ -52,7 +50,7 @@ public abstract class PlayerEntityMixin implements IPlayerAttackCooldown {
private ItemCooldowns cooldowns;
@Inject(method = "isStayingOnGroundSurface", at = @At("RETURN"), cancellable = true)
private void combatant$safeWalk(CallbackInfoReturnable<Boolean> cir) {
private void lovisual$safeWalk(CallbackInfoReturnable<Boolean> cir) {
if (cir.getReturnValue()) return;
if ((Object) this != Minecraft.getInstance().player) return;
if (!Events.BUS.hasListeners(PlayerSafeWalkEvent.class)) return;
@ -65,11 +63,8 @@ public abstract class PlayerEntityMixin implements IPlayerAttackCooldown {
}
@Inject(method = "isMobilityRestricted", at = @At("HEAD"), cancellable = true)
private void combatant$noStunBlindnessSprint(CallbackInfoReturnable<Boolean> cir) {
NoStun noStun = Modules.get(NoStun.class);
if (noStun != null && noStun.shouldIgnoreBlindness((Player) (Object) this)) {
cir.setReturnValue(false);
}
private void lovisual$noStunBlindnessSprint(CallbackInfoReturnable<Boolean> cir) {
// NoStun module removed; no mobility override remains.
}
@ModifyExpressionValue(
@ -79,7 +74,7 @@ public abstract class PlayerEntityMixin implements IPlayerAttackCooldown {
target = "Lnet/minecraft/world/entity/player/Player;getYRot()F"
)
)
private float combatant$fixKnockbackYaw(float original) {
private float lovisual$fixKnockbackYaw(float original) {
if ((Object) this != Minecraft.getInstance().player) {
return original;
}
@ -93,7 +88,7 @@ public abstract class PlayerEntityMixin implements IPlayerAttackCooldown {
target = "Lnet/minecraft/world/entity/player/Player;getYRot()F"
)
)
private float combatant$fixSweepYaw(float original) {
private float lovisual$fixSweepYaw(float original) {
if ((Object) this != Minecraft.getInstance().player) {
return original;
}
@ -107,7 +102,7 @@ public abstract class PlayerEntityMixin implements IPlayerAttackCooldown {
target = "Lnet/minecraft/world/entity/player/Player;getLookAngle()Lnet/minecraft/world/phys/Vec3;"
)
)
private Vec3 combatant$fixTravelRotationVector(Vec3 original) {
private Vec3 lovisual$fixTravelRotationVector(Vec3 original) {
if ((Object) this != Minecraft.getInstance().player) {
return original;
}
@ -131,7 +126,7 @@ public abstract class PlayerEntityMixin implements IPlayerAttackCooldown {
method = "getCurrentItemAttackStrengthDelay",
at = @At("RETURN")
)
private float combatant$tpsSyncAttackCooldown(float original) {
private float lovisual$tpsSyncAttackCooldown(float original) {
float result = original;
TPSSync tpsSync = Modules.get(TPSSync.class);
@ -143,22 +138,17 @@ public abstract class PlayerEntityMixin implements IPlayerAttackCooldown {
}
}
float timerMult = Timer.getTickTimer();
if (timerMult > 0.0001f && Math.abs(timerMult - 1.0f) > 0.0001f) {
result = result * timerMult;
}
return result;
}
@Override
public float combatant$getAttackCooldownProgress(float tickDelta) {
public float lovisual$getAttackCooldownProgress(float tickDelta) {
Player self = (Player) (Object) this;
return self.getAttackStrengthScale(tickDelta);
}
@Override
public boolean combatant$isAttackCharged(float tickDelta) {
return combatant$getAttackCooldownProgress(tickDelta) >= 1.0f;
public boolean lovisual$isAttackCharged(float tickDelta) {
return lovisual$getAttackCooldownProgress(tickDelta) >= 1.0f;
}
}