fix: CI workflow, password reset flow, health/limits in services, session refactor, dead mixin stub cleanup
This commit is contained in:
parent
45dd592c40
commit
f4e15b45c9
95 changed files with 899 additions and 185 deletions
|
|
@ -19,7 +19,6 @@ import dev.loki.lovisual.Lifecycle;
|
|||
|
||||
import java.util.Map;
|
||||
|
||||
//todo Description
|
||||
@HudElementInfo(
|
||||
id = "better_chat",
|
||||
displayName = "Better Chat",
|
||||
|
|
|
|||
|
|
@ -17,7 +17,6 @@ import dev.loki.lovisual.features.gui.hud.script.ScriptableHudStatWidget;
|
|||
import dev.loki.lovisual.render.engine.renderer.Renderer2D;
|
||||
import dev.loki.lovisual.render.engine.text.render.TextRenderer;
|
||||
|
||||
//todo Description
|
||||
@HudElementInfo(
|
||||
id = "xyz",
|
||||
displayName = "XYZ",
|
||||
|
|
|
|||
|
|
@ -18,7 +18,6 @@ import dev.loki.lovisual.features.gui.hud.script.ScriptableHudStatWidget;
|
|||
import dev.loki.lovisual.render.engine.renderer.Renderer2D;
|
||||
import dev.loki.lovisual.render.engine.text.render.TextRenderer;
|
||||
|
||||
//todo Description
|
||||
@HudElementInfo(
|
||||
id = "speed_bps",
|
||||
displayName = "Speed BPS",
|
||||
|
|
|
|||
|
|
@ -20,7 +20,6 @@ final class KeybindsData {
|
|||
if (category == null) return "ellipsis";
|
||||
return switch (category) {
|
||||
case COMBAT -> "swords";
|
||||
case MOVEMENT -> "accessibility";
|
||||
case PLAYER -> "user";
|
||||
case VISUALS -> "tree-pine";
|
||||
case ACCESSORIES -> "shirt";
|
||||
|
|
|
|||
|
|
@ -17,7 +17,6 @@ import dev.loki.lovisual.features.gui.hud.script.ScriptableHudStatWidget;
|
|||
import dev.loki.lovisual.render.engine.renderer.Renderer2D;
|
||||
import dev.loki.lovisual.render.engine.text.render.TextRenderer;
|
||||
|
||||
//todo Description
|
||||
@HudElementInfo(
|
||||
id = "ping",
|
||||
displayName = "Ping",
|
||||
|
|
|
|||
|
|
@ -11,7 +11,6 @@ import dev.loki.lovisual.render.engine.math.HudScale;
|
|||
import dev.loki.lovisual.render.engine.renderer.Renderer2D;
|
||||
import dev.loki.lovisual.render.engine.text.render.TextRenderer;
|
||||
|
||||
//todo Description
|
||||
@HudElementInfo(
|
||||
id = "armor",
|
||||
displayName = "Armor",
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@ package dev.loki.lovisual.features.module.core;
|
|||
|
||||
public enum ModuleCategory {
|
||||
COMBAT,
|
||||
MOVEMENT,
|
||||
PLAYER,
|
||||
VISUALS,
|
||||
ACCESSORIES,
|
||||
|
|
|
|||
|
|
@ -190,5 +190,7 @@ public enum ModuleManager {
|
|||
catch (Throwable ignored) { DebugLog.error("Failed to load config for module %s", ignored, m.name()); }
|
||||
}
|
||||
|
||||
public static void saveAllModuleConfigs() { for (Module m : modulesSnapshot) { try { m.saveConfig(); } catch (Throwable ignored) { } } }
|
||||
/** Save config for every registered module; logs per-module failures without aborting. */
|
||||
public static void saveAllModuleConfigs() { for (Module m : modulesSnapshot) try { m.saveConfig(); }
|
||||
catch (Throwable ignored) { DebugLog.error("Failed to save config for module %s", ignored, m.name()); } }
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,7 +16,6 @@ import dev.loki.lovisual.render.engine.postprocess.post.PostProcessPass;
|
|||
import dev.loki.lovisual.render.engine.renderer.FullScreenRenderer;
|
||||
import dev.loki.lovisual.render.engine.uniform.impl.post.PostProcessUniforms;
|
||||
|
||||
//todo Description
|
||||
@ModuleInfo(id = "damagetint", displayName = "DamageTint", category = ModuleCategory.COMBAT)
|
||||
public class DamageTint extends Module implements PostProcessPass {
|
||||
|
||||
|
|
|
|||
|
|
@ -32,7 +32,6 @@ import static dev.loki.lovisual.features.module.modules.combat.targetesp.TargetE
|
|||
import static dev.loki.lovisual.features.module.modules.combat.targetesp.TargetEspModes.setCaptureSpeedScale;
|
||||
import static dev.loki.lovisual.features.module.modules.combat.targetesp.TargetEspModes.tickTargetEsp;
|
||||
|
||||
//todo Description
|
||||
@ModuleInfo(id = "targetesp", displayName = "TargetESP", aliases = {"target", "targetrender"}, category = ModuleCategory.COMBAT)
|
||||
public class TargetESP extends Module {
|
||||
|
||||
|
|
|
|||
|
|
@ -24,7 +24,6 @@ import dev.loki.lovisual.features.gui.clickgui.settings.cooldown.CooldownRulesSe
|
|||
/**
|
||||
* Handles PvP cooldown rendering and optional local rule synthesis.
|
||||
*/
|
||||
//todo Description
|
||||
@ModuleInfo(
|
||||
id = "pvpcooldowns",
|
||||
displayName = "PvpCooldowns",
|
||||
|
|
|
|||
|
|
@ -7,7 +7,6 @@ import dev.loki.lovisual.features.module.core.Module;
|
|||
import dev.loki.lovisual.features.module.core.ModuleCategory;
|
||||
import dev.loki.lovisual.features.module.core.ModuleInfo;
|
||||
|
||||
//todo Description
|
||||
@ModuleInfo(
|
||||
id = "spearassist",
|
||||
displayName = "SpearAssist",
|
||||
|
|
|
|||
|
|
@ -8,7 +8,6 @@ import dev.loki.lovisual.features.module.core.ModuleCategory;
|
|||
import dev.loki.lovisual.features.module.core.ModuleInfo;
|
||||
import dev.loki.lovisual.util.player.interaction.NetworkStatsUtil;
|
||||
|
||||
//todo Description
|
||||
@ModuleInfo(
|
||||
id = "tpssync",
|
||||
displayName = "TPSSync",
|
||||
|
|
|
|||
|
|
@ -30,7 +30,6 @@ import dev.loki.lovisual.util.text.mask.ChatNameUtil;
|
|||
* - Players: friend/enemy/staff
|
||||
* - Non-players: toggle ignored entities (EntityFilters)
|
||||
*/
|
||||
//todo Description
|
||||
@ModuleInfo(id = "definetarget", displayName = "DefineTarget", aliases = {"clickfriend"}, category = ModuleCategory.MISC)
|
||||
public class DefineTarget extends Module {
|
||||
|
||||
|
|
|
|||
|
|
@ -36,7 +36,6 @@ import dev.loki.lovisual.features.module.core.ModuleInfo;
|
|||
|
||||
import java.util.UUID;
|
||||
|
||||
//todo Description
|
||||
@ModuleInfo(
|
||||
id = "fakeplayer",
|
||||
displayName = "FakePlayer",
|
||||
|
|
|
|||
|
|
@ -11,7 +11,6 @@ import dev.loki.lovisual.features.module.core.ModuleInfo;
|
|||
import java.util.Locale;
|
||||
import java.util.Set;
|
||||
|
||||
//todo Description
|
||||
@ModuleInfo(
|
||||
id = "message_filter",
|
||||
displayName = "MessageFilter",
|
||||
|
|
|
|||
|
|
@ -18,7 +18,6 @@ import dev.loki.lovisual.util.wav.engine.CustomSoundEngine;
|
|||
|
||||
import java.util.Map;
|
||||
|
||||
//todo Description
|
||||
@ModuleInfo(
|
||||
id = "hitsounds",
|
||||
displayName = "HitSounds",
|
||||
|
|
|
|||
|
|
@ -11,7 +11,6 @@ import dev.loki.lovisual.features.module.core.ModuleInfo;
|
|||
import java.util.Locale;
|
||||
import java.util.Set;
|
||||
|
||||
//todo Description
|
||||
@ModuleInfo(
|
||||
id = "nosound",
|
||||
displayName = "NoSound",
|
||||
|
|
|
|||
|
|
@ -5,7 +5,6 @@ import dev.loki.lovisual.features.module.core.Module;
|
|||
import dev.loki.lovisual.features.module.core.ModuleCategory;
|
||||
import dev.loki.lovisual.features.module.core.ModuleInfo;
|
||||
|
||||
//todo Description
|
||||
@ModuleInfo(
|
||||
id = "betterminecraft",
|
||||
displayName = "BetterMinecraft",
|
||||
|
|
|
|||
|
|
@ -15,7 +15,6 @@ import dev.loki.lovisual.features.module.core.ModuleInfo;
|
|||
import dev.loki.lovisual.mixins.accessors.misc.MultiPlayerGameModeAccessor;
|
||||
import dev.loki.lovisual.mixins.accessors.inventory.PlayerInventoryAccessor;
|
||||
|
||||
//todo Description
|
||||
@ModuleInfo(
|
||||
id = "autotool",
|
||||
displayName = "AutoTool",
|
||||
|
|
|
|||
|
|
@ -11,7 +11,6 @@ import dev.loki.lovisual.features.module.core.ModuleCategory;
|
|||
import dev.loki.lovisual.features.module.core.ModuleInfo;
|
||||
import dev.loki.lovisual.mixins.accessors.inventory.PlayerInventoryAccessor;
|
||||
|
||||
//todo Description
|
||||
@ModuleInfo(
|
||||
id = "clickpearl",
|
||||
displayName = "ClickPearl",
|
||||
|
|
|
|||
|
|
@ -4,7 +4,6 @@ import dev.loki.lovisual.config.values.primitive.BooleanValue;
|
|||
import dev.loki.lovisual.features.module.core.Module;
|
||||
import dev.loki.lovisual.features.module.core.ModuleCategory;
|
||||
import dev.loki.lovisual.features.module.core.ModuleInfo;
|
||||
//todo Description
|
||||
@ModuleInfo(
|
||||
id = "nointeract",
|
||||
displayName = "NoInteract",
|
||||
|
|
|
|||
|
|
@ -9,7 +9,6 @@ import dev.loki.lovisual.features.module.core.ModuleInfo;
|
|||
|
||||
import java.util.LinkedHashMap;
|
||||
|
||||
//todo Description
|
||||
@ModuleInfo(
|
||||
id = "fovcontrol",
|
||||
displayName = "FovControl",
|
||||
|
|
|
|||
|
|
@ -8,7 +8,6 @@ import dev.loki.lovisual.features.module.core.ModuleCategory;
|
|||
import dev.loki.lovisual.features.module.core.ModuleInfo;
|
||||
import dev.loki.lovisual.features.module.lifecycle.Modules;
|
||||
|
||||
//todo Description
|
||||
@ModuleInfo(
|
||||
id = "aspectratio",
|
||||
displayName = "AspectRatio",
|
||||
|
|
|
|||
|
|
@ -5,7 +5,6 @@ import dev.loki.lovisual.features.module.core.Module;
|
|||
import dev.loki.lovisual.features.module.core.ModuleCategory;
|
||||
import dev.loki.lovisual.features.module.core.ModuleInfo;
|
||||
|
||||
//todo Description
|
||||
@ModuleInfo(
|
||||
id = "cameraclip",
|
||||
displayName = "CameraClip",
|
||||
|
|
|
|||
|
|
@ -19,7 +19,6 @@ import dev.loki.lovisual.features.module.modules.visuals.player.FullBright;
|
|||
|
||||
import java.util.Map;
|
||||
|
||||
//todo Description
|
||||
@ModuleInfo(id = "freecam", displayName = "Freecam", aliases = {"camera", "spectator"}, category = ModuleCategory.VISUALS)
|
||||
public class Freecam extends Module {
|
||||
|
||||
|
|
|
|||
|
|
@ -20,7 +20,6 @@ import dev.loki.lovisual.features.module.modules.visuals.camera.swing.SwingAnima
|
|||
/**
|
||||
* ViewModel: mini items + custom swing animations
|
||||
*/
|
||||
//todo Description
|
||||
@ModuleInfo(id = "viewmodel", displayName = "ViewModel", category = ModuleCategory.VISUALS)
|
||||
public class ViewModel extends Module {
|
||||
|
||||
|
|
|
|||
|
|
@ -28,7 +28,6 @@ import dev.loki.lovisual.features.module.modules.visuals.effects.ambient.geometr
|
|||
import dev.loki.lovisual.features.module.modules.visuals.effects.ambient.geometry.WorldParticlesSphere;
|
||||
import dev.loki.lovisual.render.engine.uniform.MeshBuilder;
|
||||
|
||||
//todo Description
|
||||
@ModuleInfo(
|
||||
id = "worldparticles",
|
||||
displayName = "WorldParticles",
|
||||
|
|
|
|||
|
|
@ -23,7 +23,6 @@ import net.minecraft.world.phys.Vec3;
|
|||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
//todo Description
|
||||
@ModuleInfo(id = "killeffect", displayName = "KillEffect", category = ModuleCategory.VISUALS)
|
||||
public class KillEffect extends DeathEffectSettings {
|
||||
private static final Identifier ORTHODOX_SOUND =
|
||||
|
|
|
|||
|
|
@ -42,7 +42,6 @@ import net.minecraft.world.phys.Vec3;
|
|||
|
||||
import java.util.*;
|
||||
|
||||
//todo Description
|
||||
@ModuleInfo(id = "esp", displayName = "ESP", aliases = {"wallhack", "wh", "outline"}, category = ModuleCategory.VISUALS)
|
||||
public class ESP extends Module {
|
||||
|
||||
|
|
|
|||
|
|
@ -23,7 +23,6 @@ import dev.loki.lovisual.render.helpers.clip.ScreenProjection;
|
|||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
//todo Description
|
||||
@ModuleInfo(id = "soundesp", displayName = "SoundESP", category = ModuleCategory.VISUALS)
|
||||
public class SoundESP extends Module {
|
||||
private static final String SETTING_NAME_MODE = "name_mode";
|
||||
|
|
|
|||
|
|
@ -32,7 +32,6 @@ import dev.loki.lovisual.util.item.food.IllegalItemUtil;
|
|||
import dev.loki.lovisual.util.item.rarity.RarityColorUtil;
|
||||
import dev.loki.lovisual.util.item.enchant.TopEnchantUtil;
|
||||
|
||||
//todo Description
|
||||
@ModuleInfo(id = "dropesp", displayName = "DropESP", category = ModuleCategory.VISUALS)
|
||||
public class DropESP extends Module {
|
||||
|
||||
|
|
|
|||
|
|
@ -21,7 +21,6 @@ import dev.loki.lovisual.render.engine.renderer.FullScreenRenderer;
|
|||
import dev.loki.lovisual.render.engine.uniform.impl.post.MotionBlurUniforms;
|
||||
import dev.loki.lovisual.util.logging.DebugLog;
|
||||
|
||||
//todo Description
|
||||
@ModuleInfo(
|
||||
id = "motionblur",
|
||||
displayName = "MotionBlur",
|
||||
|
|
|
|||
|
|
@ -16,7 +16,6 @@ import dev.loki.lovisual.render.engine.postprocess.post.PostProcessPass;
|
|||
import dev.loki.lovisual.render.engine.renderer.FullScreenRenderer;
|
||||
import dev.loki.lovisual.render.engine.uniform.impl.post.PostFXUniforms;
|
||||
|
||||
//todo Description
|
||||
@ModuleInfo(id = "postfx", displayName = "PostFX", category = ModuleCategory.VISUALS)
|
||||
public class PostFX extends Module implements PostProcessPass {
|
||||
|
||||
|
|
|
|||
|
|
@ -15,7 +15,6 @@ import dev.loki.lovisual.render.engine.postprocess.post.PostProcessPass;
|
|||
import dev.loki.lovisual.render.engine.renderer.FullScreenRenderer;
|
||||
import dev.loki.lovisual.render.engine.uniform.impl.world.HeatUniforms;
|
||||
|
||||
//todo Description
|
||||
@ModuleInfo(id = "totemfx", displayName = "TotemFX", category = ModuleCategory.VISUALS)
|
||||
public class TotemFX extends Module implements PostProcessPass {
|
||||
|
||||
|
|
|
|||
|
|
@ -18,7 +18,6 @@ import net.minecraft.util.Mth;
|
|||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.phys.Vec3;
|
||||
|
||||
//todo Description
|
||||
@ModuleInfo(id = "backsword", displayName = "BackSword", category = ModuleCategory.VISUALS)
|
||||
public class BackSword extends Module {
|
||||
|
||||
|
|
|
|||
|
|
@ -28,8 +28,6 @@ import net.minecraft.world.item.ItemStack;
|
|||
|
||||
import java.util.*;
|
||||
|
||||
|
||||
//todo Description
|
||||
@ModuleInfo(id = "nametags", displayName = "NameTags", aliases = {"nametag", "tags", "names"}, category = ModuleCategory.VISUALS)
|
||||
public class NameTags extends Module {
|
||||
|
||||
|
|
|
|||
|
|
@ -8,7 +8,6 @@ import dev.loki.lovisual.features.module.core.Module;
|
|||
import dev.loki.lovisual.features.module.core.ModuleCategory;
|
||||
import dev.loki.lovisual.features.module.core.ModuleInfo;
|
||||
|
||||
//todo Description
|
||||
@ModuleInfo(
|
||||
id = "fullbright",
|
||||
displayName = "FullBright",
|
||||
|
|
|
|||
|
|
@ -19,7 +19,6 @@ import dev.loki.lovisual.features.module.core.ModuleInfo;
|
|||
import dev.loki.lovisual.features.module.phase.WorldPhase;
|
||||
import dev.loki.lovisual.render.engine.renderer.Renderer3D;
|
||||
|
||||
//todo Description
|
||||
@ModuleInfo(
|
||||
id = "blockhighlight",
|
||||
displayName = "BlockHighlight",
|
||||
|
|
|
|||
|
|
@ -18,7 +18,6 @@ import dev.loki.lovisual.features.module.core.ModuleInfo;
|
|||
|
||||
import java.util.Optional;
|
||||
|
||||
//todo Description
|
||||
@ModuleInfo(
|
||||
id = "norender",
|
||||
displayName = "NoRender",
|
||||
|
|
|
|||
|
|
@ -30,7 +30,6 @@ import dev.loki.lovisual.render.engine.RenderState;
|
|||
import java.time.LocalTime;
|
||||
import java.util.LinkedHashMap;
|
||||
|
||||
//todo Description
|
||||
@ModuleInfo(id = "worldtweaks", displayName = "WorldTweaks", category = ModuleCategory.VISUALS)
|
||||
public class WorldTweaks extends Module {
|
||||
|
||||
|
|
@ -217,7 +216,6 @@ public class WorldTweaks extends Module {
|
|||
return isEnabled() && changeTime.get();
|
||||
}
|
||||
|
||||
|
||||
public int getTimeOfDayTicks() {
|
||||
if (syncSystemTime.get()) {
|
||||
return getSystemTimeTicks();
|
||||
|
|
|
|||
|
|
@ -13,7 +13,6 @@ import dev.loki.lovisual.render.engine.postprocess.render.SkyShaderStarryRendere
|
|||
import dev.loki.lovisual.render.engine.renderer.Renderer3D;
|
||||
import net.minecraft.client.Minecraft;
|
||||
|
||||
//todo Description
|
||||
@ModuleInfo(id = "shadersky", displayName = "ShaderSky", category = ModuleCategory.VISUALS)
|
||||
public class ShaderSky extends Module {
|
||||
|
||||
|
|
|
|||
|
|
@ -11,8 +11,6 @@ import net.minecraft.world.effect.MobEffect;
|
|||
import net.minecraft.world.effect.MobEffectInstance;
|
||||
import net.minecraft.world.effect.MobEffects;
|
||||
import net.minecraft.world.entity.LivingEntity;
|
||||
import net.minecraft.world.entity.ai.attributes.Attribute;
|
||||
import net.minecraft.world.entity.ai.attributes.Attributes;
|
||||
import net.minecraft.world.entity.player.Player;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
|
|
@ -60,13 +58,6 @@ public abstract class LivingEntityMixin {
|
|||
@Shadow
|
||||
protected abstract float getJumpPower();
|
||||
|
||||
@Inject(method = "getAttributeValue", at = @At("RETURN"))
|
||||
private void lovisual$noStunSlownessMovementSpeed(Holder<Attribute> attribute, CallbackInfoReturnable<Double> cir) {
|
||||
if (!attribute.equals(Attributes.MOVEMENT_SPEED)) return;
|
||||
return;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Optional local cooldown synthesis for servers that lock consumables without sending vanilla cooldown packets.
|
||||
* This never cancels item use; it only starts a visible local timer when explicitly configured.
|
||||
|
|
@ -165,14 +156,6 @@ public abstract class LivingEntityMixin {
|
|||
return Math.max(serverDelta, 0.0f);
|
||||
}
|
||||
|
||||
/**
|
||||
* Local totem cooldowns are handled from the confirmed entity-status packet when explicitly configured.
|
||||
*/
|
||||
@Inject(method = "checkTotemDeathProtection", at = @At("RETURN"))
|
||||
private void lovisual$onTotemUse(DamageSource source, CallbackInfoReturnable<Boolean> cir) {
|
||||
// no local use blocking or prediction here
|
||||
}
|
||||
|
||||
/**
|
||||
* Сброс кулдаунов при смерти.
|
||||
*/
|
||||
|
|
@ -208,11 +191,6 @@ public abstract class LivingEntityMixin {
|
|||
}
|
||||
}
|
||||
|
||||
@Inject(method = "aiStep", at = @At("HEAD"))
|
||||
private void preventCrash(CallbackInfo ci) {
|
||||
// ElytraFly module removed; no crash-prevention override remains.
|
||||
}
|
||||
|
||||
@ModifyExpressionValue(
|
||||
method = "updateFallFlyingMovement",
|
||||
at = @At(
|
||||
|
|
@ -367,13 +345,4 @@ public abstract class LivingEntityMixin {
|
|||
|| eff == MobEffects.NAUSEA.value();
|
||||
}
|
||||
|
||||
@Inject(
|
||||
method = "getBlockSpeedFactor",
|
||||
at = @At("RETURN"),
|
||||
cancellable = true
|
||||
)
|
||||
private void nostun$soulSandVelocity(CallbackInfoReturnable<Float> cir) {
|
||||
// NoStun module removed; no velocity override remains.
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,10 +10,9 @@ import dev.loki.lovisual.util.aiming.rotation.RotationManager;
|
|||
import dev.loki.lovisual.util.aiming.rotation.RotationUtil;
|
||||
import dev.loki.lovisual.util.aiming.data.Rotation;
|
||||
import dev.loki.lovisual.util.aiming.features.MovementCorrection;
|
||||
import dev.loki.lovisual.mixins.input.mouse.InputMixin;
|
||||
|
||||
@Mixin(KeyboardInput.class)
|
||||
public abstract class KeyboardInputMixin extends InputMixin {
|
||||
public abstract class KeyboardInputMixin {
|
||||
|
||||
@ModifyExpressionValue(
|
||||
method = "tick",
|
||||
|
|
|
|||
|
|
@ -1,16 +0,0 @@
|
|||
package dev.loki.lovisual.mixins.input.mouse;
|
||||
|
||||
import net.minecraft.client.player.ClientInput;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.Inject;
|
||||
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
|
||||
|
||||
@Mixin(ClientInput.class)
|
||||
public abstract class InputMixin {
|
||||
|
||||
@Inject(method = "hasForwardImpulse", at = @At("HEAD"), cancellable = true)
|
||||
private void allowAllDirections(CallbackInfoReturnable<Boolean> cir) {
|
||||
// Sprint module removed; keep vanilla forward impulse check.
|
||||
}
|
||||
}
|
||||
|
|
@ -84,16 +84,6 @@ public class MultiPlayerGameModeMixin {
|
|||
cooldowns.tryStartLocalCooldown(stack.getItem(), ItemCooldownRulesValue.Trigger.INTERACT_ACCEPT);
|
||||
}
|
||||
|
||||
@Inject(method = "useItemOn", at = @At("HEAD"))
|
||||
private void onInteractBlockHead(LocalPlayer player, InteractionHand hand, BlockHitResult hit, CallbackInfoReturnable<InteractionResult> cir) {
|
||||
// no PvP cooldown block on interactBlock
|
||||
}
|
||||
|
||||
@Inject(method = "useItemOn", at = @At("RETURN"))
|
||||
private void onInteractBlockReturn(LocalPlayer player, InteractionHand hand, BlockHitResult hit, CallbackInfoReturnable<InteractionResult> cir) {
|
||||
// no PvP cooldown prediction on interactBlock
|
||||
}
|
||||
|
||||
@Inject(method = "useItemOn", at = @At("HEAD"), cancellable = true)
|
||||
private void freecam$block(LocalPlayer player, InteractionHand hand, BlockHitResult hit,
|
||||
CallbackInfoReturnable<InteractionResult> cir) {
|
||||
|
|
|
|||
|
|
@ -39,8 +39,6 @@ import dev.loki.lovisual.render.helpers.util.TickDelta;
|
|||
import dev.loki.lovisual.util.combat.tracking.AntiBotTracker;
|
||||
import dev.loki.lovisual.util.session.SessionChanger;
|
||||
import dev.loki.lovisual.util.session.MinecraftGameConfigHolder;
|
||||
import dev.loki.lovisual.features.module.modules.combat.pvp.PvpCooldowns;
|
||||
import dev.loki.lovisual.features.module.modules.combat.pvp.SpearAssist;
|
||||
|
||||
@Mixin(Minecraft.class)
|
||||
public class MinecraftMixin implements MinecraftGameConfigHolder {
|
||||
|
|
@ -118,16 +116,6 @@ public class MinecraftMixin implements MinecraftGameConfigHolder {
|
|||
|
||||
// === КУРСОР ДЛЯ CLICKGUI ===
|
||||
|
||||
@Inject(method = "continueAttack", at = @At("HEAD"), cancellable = true)
|
||||
private void onHandleBlockBreaking(boolean breaking, CallbackInfo ci) {
|
||||
// AutoAttack / Hitbox modules removed; no block-breaking override remains.
|
||||
}
|
||||
|
||||
@Inject(method = "startAttack", at = @At("HEAD"), cancellable = true)
|
||||
private void onDoAttack(CallbackInfoReturnable<Boolean> cir) {
|
||||
// AttributeSwap / AutoAttack modules removed; no attack override remains.
|
||||
}
|
||||
|
||||
@Inject(method = "disconnect(Lnet/minecraft/client/gui/screens/Screen;ZZ)V", at = @At("HEAD"))
|
||||
private void lovisual$betterChat$saveOnDisconnect(net.minecraft.client.gui.screens.Screen screen, boolean transferring, boolean bl, CallbackInfo ci) {
|
||||
lovisual$guardSingleplayerSaveWithAltUsername();
|
||||
|
|
@ -319,11 +307,6 @@ public class MinecraftMixin implements MinecraftGameConfigHolder {
|
|||
return Mth.clamp(base * 2, 120, 360);
|
||||
}
|
||||
|
||||
@Inject(method = "getTickTargetMillis", at = @At("RETURN"), cancellable = true)
|
||||
private void lovisual$applyTimer(float millis, CallbackInfoReturnable<Float> cir) {
|
||||
// Timer module removed; tick speed remains unchanged.
|
||||
}
|
||||
|
||||
@Inject(method = "isLevelRunningNormally", at = @At("HEAD"), cancellable = true)
|
||||
private void lovisual$skipPlayerDependentTicksWithoutPlayer(CallbackInfoReturnable<Boolean> cir) {
|
||||
Minecraft mc = Minecraft.getInstance();
|
||||
|
|
|
|||
|
|
@ -124,7 +124,6 @@
|
|||
"input.keyboard.KeyMappingMixin",
|
||||
"input.keyboard.KeyboardInputMixin",
|
||||
"input.keyboard.KeyboardMixin",
|
||||
"input.mouse.InputMixin",
|
||||
"input.mouse.MouseMixin",
|
||||
"input.spatialgui.MouseHandlerSpatialGuiMixin",
|
||||
"iris.hand.IrisHandRendererAccessor",
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue