Подписывайтесь на наш Telegram и не пропускайте важные новости! Перейти

Вопрос GrimGlide не work

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
23 Авг 2025
Сообщения
26
Реакции
0
Перенес GrimGlide с этой темы theme и не работает, переносил код туски тоже не ворк, может вы поймете что не так и поможете пофиксить (base divine)
GrimGlide:
Expand Collapse Copy
package su.lovesense.modules.impl.movement;

import com.darkmagician6.eventapi.EventTarget;
import su.lovesense.events.EventUpdate;
import su.lovesense.modules.Category;
import su.lovesense.modules.Module;
import su.lovesense.modules.api.constructors.impl.SliderSetting;
import su.lovesense.utils.player.MoveUtil;

public class ReallyWorldFly extends Module {

    private final SliderSetting glideSpeed = new SliderSetting("Скорость скольжения", 1.0F, 0.1F, 5.0F, 0.1F);

    public ReallyWorldFly() {
        super("ReallyWorldFly", "Продолжает ускорять на элитре без фейерверков(rw)", false, false, Category.Movement);
        addSettings(glideSpeed);
    }

    @EventTarget
    public void onUpdate(EventUpdate event) {
        if (mc.player == null || mc.world == null) return;

        if (!mc.player.isElytraFlying()) return;
        
        if (MoveUtil.isMoving()) {
            MoveUtil.setMotion(glideSpeed.get());
        }

        double verticalSpeed = -0.01;
        if (mc.gameSettings.keyBindJump.isKeyDown()) {
            verticalSpeed = 0.06;
        } else if (mc.gameSettings.keyBindSneak.isKeyDown()) {
            verticalSpeed = -0.08;
        }

        mc.player.setMotion(mc.player.getMotion().x, verticalSpeed, mc.player.getMotion().z);
    }

    @Override
    public void onEnable() {
        super.onEnable();
    }

    @Override
    public void onDisable() {
        super.onDisable();
    }
}
MoveUtil:
Expand Collapse Copy
package su.lovesense.utils.player;

import net.minecraft.util.math.vector.Vector3d;
import su.lovesense.LoveSense;
import su.lovesense.events.EventInput;
import su.lovesense.modules.impl.combat.AttackAura;
import su.lovesense.utils.Wrapper;
import su.lovesense.utils.misc.KeyMapper;
import net.minecraft.util.math.AxisAlignedBB;
import net.minecraft.util.math.MathHelper;

public class MoveUtil implements Wrapper {

    public static boolean isMoving() {
        return mc.player.movementInput.moveStrafe != 0.0 || mc.player.movementInput.moveForward != 0.0;
    }
    public static boolean isInLiquid() {
        return mc.player.isInWater() || mc.player.isInLava();
    }
    public static double direction(float rotationYaw, final double moveForward, final double moveStrafing) {
        if (moveForward < 0F) rotationYaw += 180F;

        float forward = 1F;

        if (moveForward < 0F) forward = -0.5F;
        else if (moveForward > 0F) forward = 0.5F;

        if (moveStrafing > 0F) rotationYaw -= 90F * forward;
        if (moveStrafing < 0F) rotationYaw += 90F * forward;

        return Math.toRadians(rotationYaw);
    }
    public static boolean isMovingTargetEntity() {
        return LoveSense.getInstance().getModuleManager().attackAura.isEnabled() && AttackAura.getTarget() != null && AttackAura.getBpsTarget() > 0.0f;
    }
    public static void moveToPosition(EventInput event, Vector3d position, float currentYaw) {
        double deltaX = position.x - mc.player.getPosX();
        double deltaZ = position.z - mc.player.getPosZ();

        double angleToTarget = Math.toDegrees(Math.atan2(deltaZ, deltaX)) - 90F;
        angleToTarget = MathHelper.wrapDegrees(angleToTarget);

        float bestForward = 0F;
        float bestStrafe = 0F;
        float minDifference = Float.MAX_VALUE;

        for (float forward = -1F; forward <= 1F; forward += 1F) {
            for (float strafe = -1F; strafe <= 1F; strafe += 1F) {
                if (forward == 0F && strafe == 0F) {
                    continue;
                }

                double moveAngle = Math.toDegrees(direction(currentYaw, forward, strafe));
                double difference = Math.abs(angleToTarget - MathHelper.wrapDegrees(moveAngle));

                if (difference < minDifference) {
                    minDifference = (float) difference;
                    bestForward = forward;
                    bestStrafe = strafe;
                }
            }
        }

        event.setForward(bestForward);
        event.setStrafe(bestStrafe);
    }
    public static void fixMovement(EventInput event, final float yaw) {
        final float forward = event.getForward();
        final float strafe = event.getStrafe();

        final double angle = MathHelper.wrapDegrees(Math.toDegrees(direction(mc.player.isElytraFlying() ? mc.player.rotationYaw : yaw, forward, strafe)));

        if (forward == 0 && strafe == 0) {
            return;
        }

        float closestForward = 0, closestStrafe = 0, closestDifference = Float.MAX_VALUE;
        for (float predictedForward = -1F; predictedForward <= 1F; predictedForward += 1F) {
            for (float predictedStrafe = -1F; predictedStrafe <= 1F; predictedStrafe += 1F) {
                if (predictedStrafe == 0 && predictedForward == 0) continue;
                final double predictedAngle = MathHelper.wrapDegrees(Math.toDegrees(direction(mc.player.rotationYaw, predictedForward, predictedStrafe)));
                final double difference = Math.abs(angle - predictedAngle);
                if (difference < closestDifference) {
                    closestDifference = (float) difference;
                    closestForward = predictedForward;
                    closestStrafe = predictedStrafe;
                }
            }
        }

        event.setForward(closestForward);
        event.setStrafe(closestStrafe);
    }

    public static void setMotion(final double speed) {
        if (!isMoving())
            return;

        final double yaw = getDirection(true);
        mc.player.setMotion(-Math.sin(yaw) * speed, mc.player.motion.y, Math.cos(yaw) * speed);
    }

    public static double getDirection(final boolean toRadians) {
        float rotationYaw = mc.player.rotationYaw;
        if (mc.player.moveForward < 0F)
            rotationYaw += 180F;
        float forward = 1F;
        if (mc.player.moveForward < 0F)
            forward = -0.5F;
        else if (mc.player.moveForward > 0F)
            forward = 0.5F;

        if (mc.player.moveStrafing > 0F)
            rotationYaw -= 90F * forward;
        if (mc.player.moveStrafing < 0F)
            rotationYaw += 90F * forward;

        return toRadians ? Math.toRadians(rotationYaw) : rotationYaw;
    }


    public static boolean isBlockUnder(float under) {
        if (mc.player.getPosY() < 0.0) {
            return false;
        } else {
            AxisAlignedBB aab = mc.player.getBoundingBox().offset(0.0, -under, 0.0);
            return mc.world.getCollisionShapes(mc.player, aab).toList().isEmpty();
        }
    }
}
Module:
Expand Collapse Copy
package su.lovesense.modules;

import com.darkmagician6.eventapi.EventManager;


import it.unimi.dsi.fastutil.objects.ObjectArrayList;
import lombok.Getter;
import lombok.Setter;
import su.lovesense.managers.impl.notificationmanager.NotificationManager;
import su.lovesense.modules.api.constructors.Setting;
import su.lovesense.modules.impl.miscellaneous.DiscordRPC;
import su.lovesense.modules.impl.miscellaneous.ToggleSounds;
import su.lovesense.ui.Interface.elements.impl.NotificationRender;
import su.lovesense.utils.Wrapper;
import su.lovesense.utils.animation.AnimationUtil;
import su.lovesense.utils.animation.Easings;
import su.lovesense.utils.misc.SoundUtil;

import java.util.List;

@Getter
@Setter
public abstract class Module implements Wrapper {
    String name;
    String description;
    Category category;

    int bind;
    boolean enabled;
    boolean premium;
    boolean beta;

    private ToggleMode toggleMode = ToggleMode.TOGGLE;
    private boolean keybindvisible = true;

    List<Setting<?>> settings = new ObjectArrayList<>();
    private final AnimationUtil animation = new AnimationUtil(0.0f, 8f, Easings.LINEAR);

    @Getter
    @Setter
    private static boolean suppressToggleEffects = false;

    public enum ToggleMode {
        TOGGLE, HOLD
    }

    public Module(String name, Category category) {
        this(name, "NULL", false, false, category);
    }

    public Module(String name, String description, Category category) {
        this(name, description, false, false, category);
    }

    public Module(String name, String description, boolean premium, Category category) {
        this(name, description, premium, false, category);
    }

    public Module(String name, String description, boolean premium, boolean beta, Category category) {
        this.name = name;
        this.description = description;
        this.premium = premium;
        this.beta = beta;
        this.category = category;
        this.bind = -100;
    }

    public void addSettings(Setting<?>... settings) {
        this.settings.addAll(List.of(settings));
    }

    public void onEnable() {
        animation.update(1f);
        if (!suppressToggleEffects && keybindvisible) {
            SoundUtil.playSound(ToggleSounds.getSoundFile(true));
            if (NotificationRender.module.get())
                NotificationManager.addNotification("a", "" + name + "" + " Включен", -1);
        }
        EventManager.register(this);
    }

    public void onDisable() {
        animation.update(0f);
        if (!suppressToggleEffects && keybindvisible) {
            SoundUtil.playSound(ToggleSounds.getSoundFile(false));
            if (NotificationRender.module.get())
                NotificationManager.addNotification("a", "" + name + "" + " Выключен", -1);
        }
        EventManager.unregister(this);
    }

    public final void toggle() {
        settoggled(!enabled);
    }

    public final void settoggled(boolean toggle) {
        if (enabled == toggle) {
            return;
        }
        if (toggle && beta) {
            return;
        }
        enabled = toggle;
        if (enabled) {
            onEnable();
        } else {
            onDisable();
        }
        DiscordRPC.onAnyModuleToggled(this, enabled);
    }
}
EventUpdate:
Expand Collapse Copy
package su.lovesense.events;

import lombok.AllArgsConstructor;
import lombok.Data;
import com.darkmagician6.eventapi.events.Event;

@Data
public class EventUpdate implements Event {
}

сразу я скажу я +- ньюфак в теме майна
Перенес GrimGlide с этой темы theme и не работает, переносил код туски тоже не ворк, может вы поймете что не так и поможете пофиксить (base divine)
GrimGlide:
Expand Collapse Copy
package su.lovesense.modules.impl.movement;

import com.darkmagician6.eventapi.EventTarget;
import su.lovesense.events.EventUpdate;
import su.lovesense.modules.Category;
import su.lovesense.modules.Module;
import su.lovesense.modules.api.constructors.impl.SliderSetting;
import su.lovesense.utils.player.MoveUtil;

public class ReallyWorldFly extends Module {

    private final SliderSetting glideSpeed = new SliderSetting("Скорость скольжения", 1.0F, 0.1F, 5.0F, 0.1F);

    public ReallyWorldFly() {
        super("ReallyWorldFly", "Продолжает ускорять на элитре без фейерверков(rw)", false, false, Category.Movement);
        addSettings(glideSpeed);
    }

    @EventTarget
    public void onUpdate(EventUpdate event) {
        if (mc.player == null || mc.world == null) return;

        if (!mc.player.isElytraFlying()) return;
       
        if (MoveUtil.isMoving()) {
            MoveUtil.setMotion(glideSpeed.get());
        }

        double verticalSpeed = -0.01;
        if (mc.gameSettings.keyBindJump.isKeyDown()) {
            verticalSpeed = 0.06;
        } else if (mc.gameSettings.keyBindSneak.isKeyDown()) {
            verticalSpeed = -0.08;
        }

        mc.player.setMotion(mc.player.getMotion().x, verticalSpeed, mc.player.getMotion().z);
    }

    @Override
    public void onEnable() {
        super.onEnable();
    }

    @Override
    public void onDisable() {
        super.onDisable();
    }
}
MoveUtil:
Expand Collapse Copy
package su.lovesense.utils.player;

import net.minecraft.util.math.vector.Vector3d;
import su.lovesense.LoveSense;
import su.lovesense.events.EventInput;
import su.lovesense.modules.impl.combat.AttackAura;
import su.lovesense.utils.Wrapper;
import su.lovesense.utils.misc.KeyMapper;
import net.minecraft.util.math.AxisAlignedBB;
import net.minecraft.util.math.MathHelper;

public class MoveUtil implements Wrapper {

    public static boolean isMoving() {
        return mc.player.movementInput.moveStrafe != 0.0 || mc.player.movementInput.moveForward != 0.0;
    }
    public static boolean isInLiquid() {
        return mc.player.isInWater() || mc.player.isInLava();
    }
    public static double direction(float rotationYaw, final double moveForward, final double moveStrafing) {
        if (moveForward < 0F) rotationYaw += 180F;

        float forward = 1F;

        if (moveForward < 0F) forward = -0.5F;
        else if (moveForward > 0F) forward = 0.5F;

        if (moveStrafing > 0F) rotationYaw -= 90F * forward;
        if (moveStrafing < 0F) rotationYaw += 90F * forward;

        return Math.toRadians(rotationYaw);
    }
    public static boolean isMovingTargetEntity() {
        return LoveSense.getInstance().getModuleManager().attackAura.isEnabled() && AttackAura.getTarget() != null && AttackAura.getBpsTarget() > 0.0f;
    }
    public static void moveToPosition(EventInput event, Vector3d position, float currentYaw) {
        double deltaX = position.x - mc.player.getPosX();
        double deltaZ = position.z - mc.player.getPosZ();

        double angleToTarget = Math.toDegrees(Math.atan2(deltaZ, deltaX)) - 90F;
        angleToTarget = MathHelper.wrapDegrees(angleToTarget);

        float bestForward = 0F;
        float bestStrafe = 0F;
        float minDifference = Float.MAX_VALUE;

        for (float forward = -1F; forward <= 1F; forward += 1F) {
            for (float strafe = -1F; strafe <= 1F; strafe += 1F) {
                if (forward == 0F && strafe == 0F) {
                    continue;
                }

                double moveAngle = Math.toDegrees(direction(currentYaw, forward, strafe));
                double difference = Math.abs(angleToTarget - MathHelper.wrapDegrees(moveAngle));

                if (difference < minDifference) {
                    minDifference = (float) difference;
                    bestForward = forward;
                    bestStrafe = strafe;
                }
            }
        }

        event.setForward(bestForward);
        event.setStrafe(bestStrafe);
    }
    public static void fixMovement(EventInput event, final float yaw) {
        final float forward = event.getForward();
        final float strafe = event.getStrafe();

        final double angle = MathHelper.wrapDegrees(Math.toDegrees(direction(mc.player.isElytraFlying() ? mc.player.rotationYaw : yaw, forward, strafe)));

        if (forward == 0 && strafe == 0) {
            return;
        }

        float closestForward = 0, closestStrafe = 0, closestDifference = Float.MAX_VALUE;
        for (float predictedForward = -1F; predictedForward <= 1F; predictedForward += 1F) {
            for (float predictedStrafe = -1F; predictedStrafe <= 1F; predictedStrafe += 1F) {
                if (predictedStrafe == 0 && predictedForward == 0) continue;
                final double predictedAngle = MathHelper.wrapDegrees(Math.toDegrees(direction(mc.player.rotationYaw, predictedForward, predictedStrafe)));
                final double difference = Math.abs(angle - predictedAngle);
                if (difference < closestDifference) {
                    closestDifference = (float) difference;
                    closestForward = predictedForward;
                    closestStrafe = predictedStrafe;
                }
            }
        }

        event.setForward(closestForward);
        event.setStrafe(closestStrafe);
    }

    public static void setMotion(final double speed) {
        if (!isMoving())
            return;

        final double yaw = getDirection(true);
        mc.player.setMotion(-Math.sin(yaw) * speed, mc.player.motion.y, Math.cos(yaw) * speed);
    }

    public static double getDirection(final boolean toRadians) {
        float rotationYaw = mc.player.rotationYaw;
        if (mc.player.moveForward < 0F)
            rotationYaw += 180F;
        float forward = 1F;
        if (mc.player.moveForward < 0F)
            forward = -0.5F;
        else if (mc.player.moveForward > 0F)
            forward = 0.5F;

        if (mc.player.moveStrafing > 0F)
            rotationYaw -= 90F * forward;
        if (mc.player.moveStrafing < 0F)
            rotationYaw += 90F * forward;

        return toRadians ? Math.toRadians(rotationYaw) : rotationYaw;
    }


    public static boolean isBlockUnder(float under) {
        if (mc.player.getPosY() < 0.0) {
            return false;
        } else {
            AxisAlignedBB aab = mc.player.getBoundingBox().offset(0.0, -under, 0.0);
            return mc.world.getCollisionShapes(mc.player, aab).toList().isEmpty();
        }
    }
}
Module:
Expand Collapse Copy
package su.lovesense.modules;

import com.darkmagician6.eventapi.EventManager;


import it.unimi.dsi.fastutil.objects.ObjectArrayList;
import lombok.Getter;
import lombok.Setter;
import su.lovesense.managers.impl.notificationmanager.NotificationManager;
import su.lovesense.modules.api.constructors.Setting;
import su.lovesense.modules.impl.miscellaneous.DiscordRPC;
import su.lovesense.modules.impl.miscellaneous.ToggleSounds;
import su.lovesense.ui.Interface.elements.impl.NotificationRender;
import su.lovesense.utils.Wrapper;
import su.lovesense.utils.animation.AnimationUtil;
import su.lovesense.utils.animation.Easings;
import su.lovesense.utils.misc.SoundUtil;

import java.util.List;

@Getter
@Setter
public abstract class Module implements Wrapper {
    String name;
    String description;
    Category category;

    int bind;
    boolean enabled;
    boolean premium;
    boolean beta;

    private ToggleMode toggleMode = ToggleMode.TOGGLE;
    private boolean keybindvisible = true;

    List<Setting<?>> settings = new ObjectArrayList<>();
    private final AnimationUtil animation = new AnimationUtil(0.0f, 8f, Easings.LINEAR);

    @Getter
    @Setter
    private static boolean suppressToggleEffects = false;

    public enum ToggleMode {
        TOGGLE, HOLD
    }

    public Module(String name, Category category) {
        this(name, "NULL", false, false, category);
    }

    public Module(String name, String description, Category category) {
        this(name, description, false, false, category);
    }

    public Module(String name, String description, boolean premium, Category category) {
        this(name, description, premium, false, category);
    }

    public Module(String name, String description, boolean premium, boolean beta, Category category) {
        this.name = name;
        this.description = description;
        this.premium = premium;
        this.beta = beta;
        this.category = category;
        this.bind = -100;
    }

    public void addSettings(Setting<?>... settings) {
        this.settings.addAll(List.of(settings));
    }

    public void onEnable() {
        animation.update(1f);
        if (!suppressToggleEffects && keybindvisible) {
            SoundUtil.playSound(ToggleSounds.getSoundFile(true));
            if (NotificationRender.module.get())
                NotificationManager.addNotification("a", "" + name + "" + " Включен", -1);
        }
        EventManager.register(this);
    }

    public void onDisable() {
        animation.update(0f);
        if (!suppressToggleEffects && keybindvisible) {
            SoundUtil.playSound(ToggleSounds.getSoundFile(false));
            if (NotificationRender.module.get())
                NotificationManager.addNotification("a", "" + name + "" + " Выключен", -1);
        }
        EventManager.unregister(this);
    }

    public final void toggle() {
        settoggled(!enabled);
    }

    public final void settoggled(boolean toggle) {
        if (enabled == toggle) {
            return;
        }
        if (toggle && beta) {
            return;
        }
        enabled = toggle;
        if (enabled) {
            onEnable();
        } else {
            onDisable();
        }
        DiscordRPC.onAnyModuleToggled(this, enabled);
    }
}
EventUpdate:
Expand Collapse Copy
package su.lovesense.events;

import lombok.AllArgsConstructor;
import lombok.Data;
import com.darkmagician6.eventapi.events.Event;

@Data
public class EventUpdate implements Event {
}

сразу я скажу я +- ньюфак в теме майна
забыл сказать флагается на рв
 
Назад
Сверху Снизу