• Ищем качественного (не новичок) разработчиков Xenforo для этого форума! В идеале, чтобы ты был фулл стек программистом. Если у тебя есть что показать, то свяжись с нами по контактным данным: https://t.me/DREDD

Вопрос Проблема с получением таргета из класса Aura в TargetStrafe

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
25 Май 2021
Сообщения
45
Реакции
1
Всем хай! В общем у меня проблема с инициализацией Aura в модуле TargetStrafe. Тобеш оно не то что не может получить target из класса Aura, оно впринципе ее не инициализирует :(

TargetStrafe:
Expand Collapse Copy
package eva.ware.modules.impl.movement;

import com.google.common.eventbus.Subscribe;

import eva.ware.events.*;
import eva.ware.modules.api.Category;
import eva.ware.modules.api.Module;
import eva.ware.modules.api.ModuleRegister;
import eva.ware.modules.impl.combat.Aura;
import eva.ware.modules.impl.combat.HitAura;
import eva.ware.modules.settings.impl.CheckBoxSetting;
import eva.ware.modules.settings.impl.SliderSetting;
import eva.ware.utils.player.DamagePlayerUtility;
import eva.ware.utils.player.MoveUtility;
import eva.ware.utils.player.StrafeMovement;
import net.minecraft.block.AirBlock;
import net.minecraft.block.Block;
import net.minecraft.block.Blocks;
import net.minecraft.block.SoulSandBlock;
import net.minecraft.block.material.Material;
import net.minecraft.client.Minecraft;
import net.minecraft.client.util.InputMappings;
import net.minecraft.entity.Entity;
import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.network.play.client.CEntityActionPacket;
import net.minecraft.network.play.server.SPlayerPositionLookPacket;
import net.minecraft.potion.Effects;
import net.minecraft.util.math.BlockPos;
import org.lwjgl.glfw.GLFW;


@ModuleRegister(name = "TargetStrafe", category = Category.Movement)
public class TargetStrafe extends Module {

    private final SliderSetting distanceSetting = new SliderSetting("Дистанция", 1f, 0.1f, 6f, 0.05f);
    private final SliderSetting speedSetting = new SliderSetting("Скорость", 0f, -0.1f, 0.5f, 0.01f);
    private final CheckBoxSetting autoJump = new CheckBoxSetting("Авто прыжок", true);
    private final CheckBoxSetting damageBoostSetting = new CheckBoxSetting("Буст с дамагом", true);
    private final SliderSetting boostValueSetting = new SliderSetting("Значение буста", 1.5F, 0.1f, 5.0f, 0.05f).visibleIf(() -> damageBoostSetting.getValue());
    private final SliderSetting timeSetting = new SliderSetting("Время буста", 10.0f, 1.0f, 20.0f, 1.0f).visibleIf(() -> damageBoostSetting.getValue());
    private final CheckBoxSetting saveTarget = new CheckBoxSetting("Сохранять цель", true);


    private float side = 1;
    private LivingEntity target = null;
    private final DamagePlayerUtility damageUtil = new DamagePlayerUtility();
    private String targetName = "";
    public StrafeMovement strafeMovement = new StrafeMovement();
    private final Aura aura;

    public TargetStrafe(Aura aura) {
        this.aura = aura;
        addSettings(distanceSetting, speedSetting, autoJump, saveTarget, damageBoostSetting, timeSetting);
    }

    [USER=1474073]@Subscribe[/USER]
    private void onAction(ActionEvent e) {
        if (mc.player == null || mc.world == null) return;
        handleEventAction(e);
    }

    [USER=1474073]@Subscribe[/USER]
    public void onMotion(final EventMoving event) {

        if (mc.player == null || mc.world == null || mc.player.ticksExisted < 10) return;
        boolean isLeftKeyPressed = InputMappings.isKeyDown(Minecraft.getInstance().getMainWindow().getHandle(), GLFW.GLFW_KEY_A);
        boolean isRightKeyPressed = InputMappings.isKeyDown(Minecraft.getInstance().getMainWindow().getHandle(), GLFW.GLFW_KEY_D);

        LivingEntity auraTarget = getTarget();

        if (auraTarget != null) {
            targetName = auraTarget.getName().getString();
        }

        if (shouldSaveTarget(auraTarget)) {
            target = updateTarget(target);
        } else target = auraTarget;

        if (target != null && target.isAlive() && target.getHealth() > 0.0f) {
            if (mc.player.collidedHorizontally) side *= -1;
            if (isLeftKeyPressed) side = 1;
            if (isRightKeyPressed) side = -1;

            double angle = Math.atan2(mc.player.getPosZ() - target.getPosZ(), mc.player.getPosX() - target.getPosX());
            angle += MoveUtility.getMotion() / Math.max(mc.player.getDistance(target), distanceSetting.min) * side;

            double x = target.getPosX() + distanceSetting.getValue() * Math.cos(angle);
            double z = target.getPosZ() + distanceSetting.getValue() * Math.sin(angle);

            double yaw = getYaw(mc.player, x, z);

            this.damageUtil.time(timeSetting.getValue().longValue() * 100);
            final float damageSpeed = boostValueSetting.getValue() / 10.0F;
            double currentDistance = mc.player.getDistance(target);
            double speedAdjustment = (currentDistance <= distanceSetting.getValue() - 0.1) ? speedSetting.getValue() : 0;

            final double speed = strafeMovement.calculateSpeed(event, damageBoostSetting.getValue(), damageUtil.isNormalDamage(), true, damageSpeed) + speedAdjustment;
            event.getMotion().x = (speed * -Math.sin(Math.toRadians(yaw)));
            event.getMotion().z = (speed * Math.cos(Math.toRadians(yaw)));
        }
    }

    [USER=1474073]@Subscribe[/USER]
    private void onPostMove(EventPostMove e) {
        if (mc.player == null || mc.world == null) return;
        strafeMovement.postMove(e.getHorizontalMove());
    }

    [USER=1474073]@Subscribe[/USER]
    private void onPacket(EventPacket e) {
        if (mc.player == null || mc.world == null) return;
        if (e.getType() == EventPacket.Type.RECEIVE) {
            damageUtil.onPacketEvent(e);
            if (e.getPacket() instanceof SPlayerPositionLookPacket) {
                strafeMovement.setOldSpeed(0);
            }
        }
    }

    [USER=1474073]@Subscribe[/USER]
    private void onDamage(EventDamageReceive e) {
        if (mc.player == null || mc.world == null) return;
        damageUtil.processDamage(e);
    }

    [USER=1474073]@Subscribe[/USER]
    public void onUpdate(EventUpdate e) {
        if (mc.player.isOnGround() && autoJump.getValue() && !mc.gameSettings.keyBindJump.pressed && target != null && target.isAlive()) {
            mc.player.jump();
        }
    }

    [USER=1367676]@override[/USER]
    public void onEnable() {
        strafeMovement.setOldSpeed(0);
        target = null;
        super.onEnable();
    }

    private void handleEventAction(ActionEvent action) {
        if (strafes()) {
            if (CEntityActionPacket.lastUpdatedSprint != strafeMovement.isNeedSprintState()) {
                action.setSprintState(!CEntityActionPacket.lastUpdatedSprint);
            }
        }
        if (strafeMovement.isNeedSwap()) {
            action.setSprintState(!mc.player.serverSprintState);
            strafeMovement.setNeedSprintState(false);
        }
    }

    private LivingEntity getTarget() {
        return aura.isEnabled() ? aura.getTarget() : null;
    }

    private LivingEntity updateTarget(LivingEntity currentTarget) {
        for (Entity entity : mc.world.getAllEntities()) {
            if (entity instanceof PlayerEntity && entity.getName().getString().equalsIgnoreCase(targetName)) {
                return (LivingEntity) entity;
            }
        }
        return currentTarget;
    }

    private boolean shouldSaveTarget(LivingEntity target) {
        boolean settingIsEnabled = saveTarget.getValue();
        boolean targetAndTargetNameExist = target != null && targetName != null;

        return settingIsEnabled && targetAndTargetNameExist && aura.isEnabled();
    }

    private double getYaw(LivingEntity entity, double x, double z) {
        return Math.toDegrees(Math.atan2(z - entity.getPosZ(), x - entity.getPosX())) - 90F;
    }

    public boolean strafes() {
        if (isInvalidPlayerState()) {
            return false;
        }

        BlockPos playerPosition = new BlockPos(mc.player.getPositionVec());
        BlockPos abovePosition = playerPosition.up();
        BlockPos belowPosition = playerPosition.down();

        if (isSurfaceLiquid(abovePosition, belowPosition)) {
            return false;
        }

        if (isPlayerInWebOrSoulSand(playerPosition)) {
            return false;
        }

        return isPlayerAbleToStrafe();
    }

    private boolean isInvalidPlayerState() {
        return mc.player == null || mc.world == null
                || mc.player.isSneaking()
                || mc.player.isElytraFlying()
                || mc.player.isInWater()
                || mc.player.isInLava();
    }

    private boolean isSurfaceLiquid(BlockPos abovePosition, BlockPos belowPosition) {
        Block aboveBlock = mc.world.getBlockState(abovePosition).getBlock();
        Block belowBlock = mc.world.getBlockState(belowPosition).getBlock();

        return aboveBlock instanceof AirBlock && belowBlock == Blocks.WATER;
    }

    private boolean isPlayerInWebOrSoulSand(BlockPos playerPosition) {
        Material playerMaterial = mc.world.getBlockState(playerPosition).getMaterial();
        Block oneBelowBlock = mc.world.getBlockState(playerPosition.down()).getBlock();

        return playerMaterial == Material.WEB || oneBelowBlock instanceof SoulSandBlock;
    }

    private boolean isPlayerAbleToStrafe() {
        return !mc.player.abilities.isFlying && !mc.player.isPotionActive(Effects.LEVITATION);
    }

}


И вот какая ошибка вылезает в консоль

Error:
Expand Collapse Copy
мар. 05, 2025 9:44:59 PM com.google.common.eventbus.EventBus$LoggingHandler handleException
SEVERE: Exception thrown by subscriber method onMotion(eva.ware.events.EventMoving) on subscriber eva.ware.modules.impl.movement.TargetStrafe@c656a2e when dispatching event: eva.ware.events.EventMoving@6650679f
java.lang.NullPointerException: Cannot invoke "eva.ware.modules.impl.combat.Aura.isEnabled()" because "this.aura" is null
    at eva.ware.modules.impl.movement.TargetStrafe.getTarget(TargetStrafe.java:154)
    at eva.ware.modules.impl.movement.TargetStrafe.onMotion(TargetStrafe.java:70)
    at jdk.internal.reflect.GeneratedMethodAccessor39.invoke(Unknown Source)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:569)
    at com.google.common.eventbus.Subscriber.invokeSubscriberMethod(Subscriber.java:91)
    at com.google.common.eventbus.Subscriber$SynchronizedSubscriber.invokeSubscriberMethod(Subscriber.java:150)
    at com.google.common.eventbus.Subscriber$1.run(Subscriber.java:76)
    at com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:399)
    at com.google.common.eventbus.Subscriber.dispatchEvent(Subscriber.java:71)
    at com.google.common.eventbus.Dispatcher$PerThreadQueuedDispatcher.dispatch(Dispatcher.java:116)
    at com.google.common.eventbus.EventBus.post(EventBus.java:217)
    at net.minecraft.entity.Entity.move(Entity.java:599)
    at net.minecraft.client.entity.player.ClientPlayerEntity.move(ClientPlayerEntity.java:1098)
    at net.minecraft.entity.LivingEntity.func_233633_a_(LivingEntity.java:2383)
    at net.minecraft.entity.LivingEntity.travel(LivingEntity.java:2341)
    at net.minecraft.entity.player.PlayerEntity.travel(PlayerEntity.java:1553)
    at net.minecraft.entity.LivingEntity.livingTick(LivingEntity.java:2828)
    at net.minecraft.entity.player.PlayerEntity.livingTick(PlayerEntity.java:513)
    at net.minecraft.client.entity.player.ClientPlayerEntity.livingTick(ClientPlayerEntity.java:1010)
    at net.minecraft.entity.LivingEntity.tick(LivingEntity.java:2510)
    at net.minecraft.entity.player.PlayerEntity.tick(PlayerEntity.java:212)
    at net.minecraft.client.entity.player.ClientPlayerEntity.tick(ClientPlayerEntity.java:232)
    at net.minecraft.client.world.ClientWorld.updateEntity(ClientWorld.java:227)
    at net.minecraft.world.World.guardEntityTick(World.java:556)
    at net.minecraft.client.world.ClientWorld.tickEntities(ClientWorld.java:192)
    at net.minecraft.client.Minecraft.runTick(Minecraft.java:1572)
    at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:962)
    at net.minecraft.client.Minecraft.run(Minecraft.java:576)
    at net.minecraft.client.main.Main.main(Main.java:201)
    at Start.main(Start.java:10)
 
Всем хай! В общем у меня проблема с инициализацией Aura в модуле TargetStrafe. Тобеш оно не то что не может получить target из класса Aura, оно впринципе ее не инициализирует :(

TargetStrafe:
Expand Collapse Copy
package eva.ware.modules.impl.movement;

import com.google.common.eventbus.Subscribe;

import eva.ware.events.*;
import eva.ware.modules.api.Category;
import eva.ware.modules.api.Module;
import eva.ware.modules.api.ModuleRegister;
import eva.ware.modules.impl.combat.Aura;
import eva.ware.modules.impl.combat.HitAura;
import eva.ware.modules.settings.impl.CheckBoxSetting;
import eva.ware.modules.settings.impl.SliderSetting;
import eva.ware.utils.player.DamagePlayerUtility;
import eva.ware.utils.player.MoveUtility;
import eva.ware.utils.player.StrafeMovement;
import net.minecraft.block.AirBlock;
import net.minecraft.block.Block;
import net.minecraft.block.Blocks;
import net.minecraft.block.SoulSandBlock;
import net.minecraft.block.material.Material;
import net.minecraft.client.Minecraft;
import net.minecraft.client.util.InputMappings;
import net.minecraft.entity.Entity;
import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.network.play.client.CEntityActionPacket;
import net.minecraft.network.play.server.SPlayerPositionLookPacket;
import net.minecraft.potion.Effects;
import net.minecraft.util.math.BlockPos;
import org.lwjgl.glfw.GLFW;


@ModuleRegister(name = "TargetStrafe", category = Category.Movement)
public class TargetStrafe extends Module {

    private final SliderSetting distanceSetting = new SliderSetting("Дистанция", 1f, 0.1f, 6f, 0.05f);
    private final SliderSetting speedSetting = new SliderSetting("Скорость", 0f, -0.1f, 0.5f, 0.01f);
    private final CheckBoxSetting autoJump = new CheckBoxSetting("Авто прыжок", true);
    private final CheckBoxSetting damageBoostSetting = new CheckBoxSetting("Буст с дамагом", true);
    private final SliderSetting boostValueSetting = new SliderSetting("Значение буста", 1.5F, 0.1f, 5.0f, 0.05f).visibleIf(() -> damageBoostSetting.getValue());
    private final SliderSetting timeSetting = new SliderSetting("Время буста", 10.0f, 1.0f, 20.0f, 1.0f).visibleIf(() -> damageBoostSetting.getValue());
    private final CheckBoxSetting saveTarget = new CheckBoxSetting("Сохранять цель", true);


    private float side = 1;
    private LivingEntity target = null;
    private final DamagePlayerUtility damageUtil = new DamagePlayerUtility();
    private String targetName = "";
    public StrafeMovement strafeMovement = new StrafeMovement();
    private final Aura aura;

    public TargetStrafe(Aura aura) {
        this.aura = aura;
        addSettings(distanceSetting, speedSetting, autoJump, saveTarget, damageBoostSetting, timeSetting);
    }

    [USER=1474073]@Subscribe[/USER]
    private void onAction(ActionEvent e) {
        if (mc.player == null || mc.world == null) return;
        handleEventAction(e);
    }

    [USER=1474073]@Subscribe[/USER]
    public void onMotion(final EventMoving event) {

        if (mc.player == null || mc.world == null || mc.player.ticksExisted < 10) return;
        boolean isLeftKeyPressed = InputMappings.isKeyDown(Minecraft.getInstance().getMainWindow().getHandle(), GLFW.GLFW_KEY_A);
        boolean isRightKeyPressed = InputMappings.isKeyDown(Minecraft.getInstance().getMainWindow().getHandle(), GLFW.GLFW_KEY_D);

        LivingEntity auraTarget = getTarget();

        if (auraTarget != null) {
            targetName = auraTarget.getName().getString();
        }

        if (shouldSaveTarget(auraTarget)) {
            target = updateTarget(target);
        } else target = auraTarget;

        if (target != null && target.isAlive() && target.getHealth() > 0.0f) {
            if (mc.player.collidedHorizontally) side *= -1;
            if (isLeftKeyPressed) side = 1;
            if (isRightKeyPressed) side = -1;

            double angle = Math.atan2(mc.player.getPosZ() - target.getPosZ(), mc.player.getPosX() - target.getPosX());
            angle += MoveUtility.getMotion() / Math.max(mc.player.getDistance(target), distanceSetting.min) * side;

            double x = target.getPosX() + distanceSetting.getValue() * Math.cos(angle);
            double z = target.getPosZ() + distanceSetting.getValue() * Math.sin(angle);

            double yaw = getYaw(mc.player, x, z);

            this.damageUtil.time(timeSetting.getValue().longValue() * 100);
            final float damageSpeed = boostValueSetting.getValue() / 10.0F;
            double currentDistance = mc.player.getDistance(target);
            double speedAdjustment = (currentDistance <= distanceSetting.getValue() - 0.1) ? speedSetting.getValue() : 0;

            final double speed = strafeMovement.calculateSpeed(event, damageBoostSetting.getValue(), damageUtil.isNormalDamage(), true, damageSpeed) + speedAdjustment;
            event.getMotion().x = (speed * -Math.sin(Math.toRadians(yaw)));
            event.getMotion().z = (speed * Math.cos(Math.toRadians(yaw)));
        }
    }

    [USER=1474073]@Subscribe[/USER]
    private void onPostMove(EventPostMove e) {
        if (mc.player == null || mc.world == null) return;
        strafeMovement.postMove(e.getHorizontalMove());
    }

    [USER=1474073]@Subscribe[/USER]
    private void onPacket(EventPacket e) {
        if (mc.player == null || mc.world == null) return;
        if (e.getType() == EventPacket.Type.RECEIVE) {
            damageUtil.onPacketEvent(e);
            if (e.getPacket() instanceof SPlayerPositionLookPacket) {
                strafeMovement.setOldSpeed(0);
            }
        }
    }

    [USER=1474073]@Subscribe[/USER]
    private void onDamage(EventDamageReceive e) {
        if (mc.player == null || mc.world == null) return;
        damageUtil.processDamage(e);
    }

    [USER=1474073]@Subscribe[/USER]
    public void onUpdate(EventUpdate e) {
        if (mc.player.isOnGround() && autoJump.getValue() && !mc.gameSettings.keyBindJump.pressed && target != null && target.isAlive()) {
            mc.player.jump();
        }
    }

    [USER=1367676]@override[/USER]
    public void onEnable() {
        strafeMovement.setOldSpeed(0);
        target = null;
        super.onEnable();
    }

    private void handleEventAction(ActionEvent action) {
        if (strafes()) {
            if (CEntityActionPacket.lastUpdatedSprint != strafeMovement.isNeedSprintState()) {
                action.setSprintState(!CEntityActionPacket.lastUpdatedSprint);
            }
        }
        if (strafeMovement.isNeedSwap()) {
            action.setSprintState(!mc.player.serverSprintState);
            strafeMovement.setNeedSprintState(false);
        }
    }

    private LivingEntity getTarget() {
        return aura.isEnabled() ? aura.getTarget() : null;
    }

    private LivingEntity updateTarget(LivingEntity currentTarget) {
        for (Entity entity : mc.world.getAllEntities()) {
            if (entity instanceof PlayerEntity && entity.getName().getString().equalsIgnoreCase(targetName)) {
                return (LivingEntity) entity;
            }
        }
        return currentTarget;
    }

    private boolean shouldSaveTarget(LivingEntity target) {
        boolean settingIsEnabled = saveTarget.getValue();
        boolean targetAndTargetNameExist = target != null && targetName != null;

        return settingIsEnabled && targetAndTargetNameExist && aura.isEnabled();
    }

    private double getYaw(LivingEntity entity, double x, double z) {
        return Math.toDegrees(Math.atan2(z - entity.getPosZ(), x - entity.getPosX())) - 90F;
    }

    public boolean strafes() {
        if (isInvalidPlayerState()) {
            return false;
        }

        BlockPos playerPosition = new BlockPos(mc.player.getPositionVec());
        BlockPos abovePosition = playerPosition.up();
        BlockPos belowPosition = playerPosition.down();

        if (isSurfaceLiquid(abovePosition, belowPosition)) {
            return false;
        }

        if (isPlayerInWebOrSoulSand(playerPosition)) {
            return false;
        }

        return isPlayerAbleToStrafe();
    }

    private boolean isInvalidPlayerState() {
        return mc.player == null || mc.world == null
                || mc.player.isSneaking()
                || mc.player.isElytraFlying()
                || mc.player.isInWater()
                || mc.player.isInLava();
    }

    private boolean isSurfaceLiquid(BlockPos abovePosition, BlockPos belowPosition) {
        Block aboveBlock = mc.world.getBlockState(abovePosition).getBlock();
        Block belowBlock = mc.world.getBlockState(belowPosition).getBlock();

        return aboveBlock instanceof AirBlock && belowBlock == Blocks.WATER;
    }

    private boolean isPlayerInWebOrSoulSand(BlockPos playerPosition) {
        Material playerMaterial = mc.world.getBlockState(playerPosition).getMaterial();
        Block oneBelowBlock = mc.world.getBlockState(playerPosition.down()).getBlock();

        return playerMaterial == Material.WEB || oneBelowBlock instanceof SoulSandBlock;
    }

    private boolean isPlayerAbleToStrafe() {
        return !mc.player.abilities.isFlying && !mc.player.isPotionActive(Effects.LEVITATION);
    }

}


И вот какая ошибка вылезает в консоль

Error:
Expand Collapse Copy
мар. 05, 2025 9:44:59 PM com.google.common.eventbus.EventBus$LoggingHandler handleException
SEVERE: Exception thrown by subscriber method onMotion(eva.ware.events.EventMoving) on subscriber eva.ware.modules.impl.movement.TargetStrafe@c656a2e when dispatching event: eva.ware.events.EventMoving@6650679f
java.lang.NullPointerException: Cannot invoke "eva.ware.modules.impl.combat.Aura.isEnabled()" because "this.aura" is null
    at eva.ware.modules.impl.movement.TargetStrafe.getTarget(TargetStrafe.java:154)
    at eva.ware.modules.impl.movement.TargetStrafe.onMotion(TargetStrafe.java:70)
    at jdk.internal.reflect.GeneratedMethodAccessor39.invoke(Unknown Source)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:569)
    at com.google.common.eventbus.Subscriber.invokeSubscriberMethod(Subscriber.java:91)
    at com.google.common.eventbus.Subscriber$SynchronizedSubscriber.invokeSubscriberMethod(Subscriber.java:150)
    at com.google.common.eventbus.Subscriber$1.run(Subscriber.java:76)
    at com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:399)
    at com.google.common.eventbus.Subscriber.dispatchEvent(Subscriber.java:71)
    at com.google.common.eventbus.Dispatcher$PerThreadQueuedDispatcher.dispatch(Dispatcher.java:116)
    at com.google.common.eventbus.EventBus.post(EventBus.java:217)
    at net.minecraft.entity.Entity.move(Entity.java:599)
    at net.minecraft.client.entity.player.ClientPlayerEntity.move(ClientPlayerEntity.java:1098)
    at net.minecraft.entity.LivingEntity.func_233633_a_(LivingEntity.java:2383)
    at net.minecraft.entity.LivingEntity.travel(LivingEntity.java:2341)
    at net.minecraft.entity.player.PlayerEntity.travel(PlayerEntity.java:1553)
    at net.minecraft.entity.LivingEntity.livingTick(LivingEntity.java:2828)
    at net.minecraft.entity.player.PlayerEntity.livingTick(PlayerEntity.java:513)
    at net.minecraft.client.entity.player.ClientPlayerEntity.livingTick(ClientPlayerEntity.java:1010)
    at net.minecraft.entity.LivingEntity.tick(LivingEntity.java:2510)
    at net.minecraft.entity.player.PlayerEntity.tick(PlayerEntity.java:212)
    at net.minecraft.client.entity.player.ClientPlayerEntity.tick(ClientPlayerEntity.java:232)
    at net.minecraft.client.world.ClientWorld.updateEntity(ClientWorld.java:227)
    at net.minecraft.world.World.guardEntityTick(World.java:556)
    at net.minecraft.client.world.ClientWorld.tickEntities(ClientWorld.java:192)
    at net.minecraft.client.Minecraft.runTick(Minecraft.java:1572)
    at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:962)
    at net.minecraft.client.Minecraft.run(Minecraft.java:576)
    at net.minecraft.client.main.Main.main(Main.java:201)
    at Start.main(Start.java:10)
у тебя Aura юзается или HitAura?
 
java.lang.NullPointerException: Cannot invoke "eva.ware.modules.impl.combat.Aura.isEnabled()" because "this.aura" is null
самый великий слепой
 
Всем хай! В общем у меня проблема с инициализацией Aura в модуле TargetStrafe. Тобеш оно не то что не может получить target из класса Aura, оно впринципе ее не инициализирует :(

TargetStrafe:
Expand Collapse Copy
package eva.ware.modules.impl.movement;

import com.google.common.eventbus.Subscribe;

import eva.ware.events.*;
import eva.ware.modules.api.Category;
import eva.ware.modules.api.Module;
import eva.ware.modules.api.ModuleRegister;
import eva.ware.modules.impl.combat.Aura;
import eva.ware.modules.impl.combat.HitAura;
import eva.ware.modules.settings.impl.CheckBoxSetting;
import eva.ware.modules.settings.impl.SliderSetting;
import eva.ware.utils.player.DamagePlayerUtility;
import eva.ware.utils.player.MoveUtility;
import eva.ware.utils.player.StrafeMovement;
import net.minecraft.block.AirBlock;
import net.minecraft.block.Block;
import net.minecraft.block.Blocks;
import net.minecraft.block.SoulSandBlock;
import net.minecraft.block.material.Material;
import net.minecraft.client.Minecraft;
import net.minecraft.client.util.InputMappings;
import net.minecraft.entity.Entity;
import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.network.play.client.CEntityActionPacket;
import net.minecraft.network.play.server.SPlayerPositionLookPacket;
import net.minecraft.potion.Effects;
import net.minecraft.util.math.BlockPos;
import org.lwjgl.glfw.GLFW;


@ModuleRegister(name = "TargetStrafe", category = Category.Movement)
public class TargetStrafe extends Module {

    private final SliderSetting distanceSetting = new SliderSetting("Дистанция", 1f, 0.1f, 6f, 0.05f);
    private final SliderSetting speedSetting = new SliderSetting("Скорость", 0f, -0.1f, 0.5f, 0.01f);
    private final CheckBoxSetting autoJump = new CheckBoxSetting("Авто прыжок", true);
    private final CheckBoxSetting damageBoostSetting = new CheckBoxSetting("Буст с дамагом", true);
    private final SliderSetting boostValueSetting = new SliderSetting("Значение буста", 1.5F, 0.1f, 5.0f, 0.05f).visibleIf(() -> damageBoostSetting.getValue());
    private final SliderSetting timeSetting = new SliderSetting("Время буста", 10.0f, 1.0f, 20.0f, 1.0f).visibleIf(() -> damageBoostSetting.getValue());
    private final CheckBoxSetting saveTarget = new CheckBoxSetting("Сохранять цель", true);


    private float side = 1;
    private LivingEntity target = null;
    private final DamagePlayerUtility damageUtil = new DamagePlayerUtility();
    private String targetName = "";
    public StrafeMovement strafeMovement = new StrafeMovement();
    private final Aura aura;

    public TargetStrafe(Aura aura) {
        this.aura = aura;
        addSettings(distanceSetting, speedSetting, autoJump, saveTarget, damageBoostSetting, timeSetting);
    }

    [USER=1474073]@Subscribe[/USER]
    private void onAction(ActionEvent e) {
        if (mc.player == null || mc.world == null) return;
        handleEventAction(e);
    }

    [USER=1474073]@Subscribe[/USER]
    public void onMotion(final EventMoving event) {

        if (mc.player == null || mc.world == null || mc.player.ticksExisted < 10) return;
        boolean isLeftKeyPressed = InputMappings.isKeyDown(Minecraft.getInstance().getMainWindow().getHandle(), GLFW.GLFW_KEY_A);
        boolean isRightKeyPressed = InputMappings.isKeyDown(Minecraft.getInstance().getMainWindow().getHandle(), GLFW.GLFW_KEY_D);

        LivingEntity auraTarget = getTarget();

        if (auraTarget != null) {
            targetName = auraTarget.getName().getString();
        }

        if (shouldSaveTarget(auraTarget)) {
            target = updateTarget(target);
        } else target = auraTarget;

        if (target != null && target.isAlive() && target.getHealth() > 0.0f) {
            if (mc.player.collidedHorizontally) side *= -1;
            if (isLeftKeyPressed) side = 1;
            if (isRightKeyPressed) side = -1;

            double angle = Math.atan2(mc.player.getPosZ() - target.getPosZ(), mc.player.getPosX() - target.getPosX());
            angle += MoveUtility.getMotion() / Math.max(mc.player.getDistance(target), distanceSetting.min) * side;

            double x = target.getPosX() + distanceSetting.getValue() * Math.cos(angle);
            double z = target.getPosZ() + distanceSetting.getValue() * Math.sin(angle);

            double yaw = getYaw(mc.player, x, z);

            this.damageUtil.time(timeSetting.getValue().longValue() * 100);
            final float damageSpeed = boostValueSetting.getValue() / 10.0F;
            double currentDistance = mc.player.getDistance(target);
            double speedAdjustment = (currentDistance <= distanceSetting.getValue() - 0.1) ? speedSetting.getValue() : 0;

            final double speed = strafeMovement.calculateSpeed(event, damageBoostSetting.getValue(), damageUtil.isNormalDamage(), true, damageSpeed) + speedAdjustment;
            event.getMotion().x = (speed * -Math.sin(Math.toRadians(yaw)));
            event.getMotion().z = (speed * Math.cos(Math.toRadians(yaw)));
        }
    }

    [USER=1474073]@Subscribe[/USER]
    private void onPostMove(EventPostMove e) {
        if (mc.player == null || mc.world == null) return;
        strafeMovement.postMove(e.getHorizontalMove());
    }

    [USER=1474073]@Subscribe[/USER]
    private void onPacket(EventPacket e) {
        if (mc.player == null || mc.world == null) return;
        if (e.getType() == EventPacket.Type.RECEIVE) {
            damageUtil.onPacketEvent(e);
            if (e.getPacket() instanceof SPlayerPositionLookPacket) {
                strafeMovement.setOldSpeed(0);
            }
        }
    }

    [USER=1474073]@Subscribe[/USER]
    private void onDamage(EventDamageReceive e) {
        if (mc.player == null || mc.world == null) return;
        damageUtil.processDamage(e);
    }

    [USER=1474073]@Subscribe[/USER]
    public void onUpdate(EventUpdate e) {
        if (mc.player.isOnGround() && autoJump.getValue() && !mc.gameSettings.keyBindJump.pressed && target != null && target.isAlive()) {
            mc.player.jump();
        }
    }

    [USER=1367676]@override[/USER]
    public void onEnable() {
        strafeMovement.setOldSpeed(0);
        target = null;
        super.onEnable();
    }

    private void handleEventAction(ActionEvent action) {
        if (strafes()) {
            if (CEntityActionPacket.lastUpdatedSprint != strafeMovement.isNeedSprintState()) {
                action.setSprintState(!CEntityActionPacket.lastUpdatedSprint);
            }
        }
        if (strafeMovement.isNeedSwap()) {
            action.setSprintState(!mc.player.serverSprintState);
            strafeMovement.setNeedSprintState(false);
        }
    }

    private LivingEntity getTarget() {
        return aura.isEnabled() ? aura.getTarget() : null;
    }

    private LivingEntity updateTarget(LivingEntity currentTarget) {
        for (Entity entity : mc.world.getAllEntities()) {
            if (entity instanceof PlayerEntity && entity.getName().getString().equalsIgnoreCase(targetName)) {
                return (LivingEntity) entity;
            }
        }
        return currentTarget;
    }

    private boolean shouldSaveTarget(LivingEntity target) {
        boolean settingIsEnabled = saveTarget.getValue();
        boolean targetAndTargetNameExist = target != null && targetName != null;

        return settingIsEnabled && targetAndTargetNameExist && aura.isEnabled();
    }

    private double getYaw(LivingEntity entity, double x, double z) {
        return Math.toDegrees(Math.atan2(z - entity.getPosZ(), x - entity.getPosX())) - 90F;
    }

    public boolean strafes() {
        if (isInvalidPlayerState()) {
            return false;
        }

        BlockPos playerPosition = new BlockPos(mc.player.getPositionVec());
        BlockPos abovePosition = playerPosition.up();
        BlockPos belowPosition = playerPosition.down();

        if (isSurfaceLiquid(abovePosition, belowPosition)) {
            return false;
        }

        if (isPlayerInWebOrSoulSand(playerPosition)) {
            return false;
        }

        return isPlayerAbleToStrafe();
    }

    private boolean isInvalidPlayerState() {
        return mc.player == null || mc.world == null
                || mc.player.isSneaking()
                || mc.player.isElytraFlying()
                || mc.player.isInWater()
                || mc.player.isInLava();
    }

    private boolean isSurfaceLiquid(BlockPos abovePosition, BlockPos belowPosition) {
        Block aboveBlock = mc.world.getBlockState(abovePosition).getBlock();
        Block belowBlock = mc.world.getBlockState(belowPosition).getBlock();

        return aboveBlock instanceof AirBlock && belowBlock == Blocks.WATER;
    }

    private boolean isPlayerInWebOrSoulSand(BlockPos playerPosition) {
        Material playerMaterial = mc.world.getBlockState(playerPosition).getMaterial();
        Block oneBelowBlock = mc.world.getBlockState(playerPosition.down()).getBlock();

        return playerMaterial == Material.WEB || oneBelowBlock instanceof SoulSandBlock;
    }

    private boolean isPlayerAbleToStrafe() {
        return !mc.player.abilities.isFlying && !mc.player.isPotionActive(Effects.LEVITATION);
    }

}


И вот какая ошибка вылезает в консоль

Error:
Expand Collapse Copy
мар. 05, 2025 9:44:59 PM com.google.common.eventbus.EventBus$LoggingHandler handleException
SEVERE: Exception thrown by subscriber method onMotion(eva.ware.events.EventMoving) on subscriber eva.ware.modules.impl.movement.TargetStrafe@c656a2e when dispatching event: eva.ware.events.EventMoving@6650679f
java.lang.NullPointerException: Cannot invoke "eva.ware.modules.impl.combat.Aura.isEnabled()" because "this.aura" is null
    at eva.ware.modules.impl.movement.TargetStrafe.getTarget(TargetStrafe.java:154)
    at eva.ware.modules.impl.movement.TargetStrafe.onMotion(TargetStrafe.java:70)
    at jdk.internal.reflect.GeneratedMethodAccessor39.invoke(Unknown Source)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:569)
    at com.google.common.eventbus.Subscriber.invokeSubscriberMethod(Subscriber.java:91)
    at com.google.common.eventbus.Subscriber$SynchronizedSubscriber.invokeSubscriberMethod(Subscriber.java:150)
    at com.google.common.eventbus.Subscriber$1.run(Subscriber.java:76)
    at com.google.common.util.concurrent.MoreExecutors$DirectExecutor.execute(MoreExecutors.java:399)
    at com.google.common.eventbus.Subscriber.dispatchEvent(Subscriber.java:71)
    at com.google.common.eventbus.Dispatcher$PerThreadQueuedDispatcher.dispatch(Dispatcher.java:116)
    at com.google.common.eventbus.EventBus.post(EventBus.java:217)
    at net.minecraft.entity.Entity.move(Entity.java:599)
    at net.minecraft.client.entity.player.ClientPlayerEntity.move(ClientPlayerEntity.java:1098)
    at net.minecraft.entity.LivingEntity.func_233633_a_(LivingEntity.java:2383)
    at net.minecraft.entity.LivingEntity.travel(LivingEntity.java:2341)
    at net.minecraft.entity.player.PlayerEntity.travel(PlayerEntity.java:1553)
    at net.minecraft.entity.LivingEntity.livingTick(LivingEntity.java:2828)
    at net.minecraft.entity.player.PlayerEntity.livingTick(PlayerEntity.java:513)
    at net.minecraft.client.entity.player.ClientPlayerEntity.livingTick(ClientPlayerEntity.java:1010)
    at net.minecraft.entity.LivingEntity.tick(LivingEntity.java:2510)
    at net.minecraft.entity.player.PlayerEntity.tick(PlayerEntity.java:212)
    at net.minecraft.client.entity.player.ClientPlayerEntity.tick(ClientPlayerEntity.java:232)
    at net.minecraft.client.world.ClientWorld.updateEntity(ClientWorld.java:227)
    at net.minecraft.world.World.guardEntityTick(World.java:556)
    at net.minecraft.client.world.ClientWorld.tickEntities(ClientWorld.java:192)
    at net.minecraft.client.Minecraft.runTick(Minecraft.java:1572)
    at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:962)
    at net.minecraft.client.Minecraft.run(Minecraft.java:576)
    at net.minecraft.client.main.Main.main(Main.java:201)
    at Start.main(Start.java:10)
Ты надеюсь регистрировал другую килл-ауру? (LivingEntity и другие классы).
 
мне нужна она отдельна
Проблема в том , что твой объект таргет стрейф создаётся ( new TargetStrafe(aura) до создания Aura, aura перемести в начало инициализации или рядом с HitAura
 
Проблема в том , что твой объект таргет стрейф создаётся ( new TargetStrafe(aura) до создания Aura, aura перемести в начало инициализации или рядом с HitAura
я убрал хитауру полностью, поменяв на просто ауру(другой модуль), но при этом все равно не работает
 
учи джаву
 
я убрал хитауру полностью, поменяв на просто ауру(другой модуль), но при этом все равно не работает
Я не ебу, что там но что то помню в экспе есть FunctionRegistor ТАМ ГДЕ ВСЕ МОДУЛИ Создаются ( new НазваниеМодуля) ТЕБЯ БЛЯТЬ НАДО СОЗДАТЬ МОДУЛЬ AURA до того ты создашь модуль TargetStrafe
Скорее всего ты сделал полную хуйню, и не в силах посмотреть как создать эту ебучую зависимость на примере Aura и AutoPontion. Если ты признаешь себя очень тупым то кинь уже просто код где у тебя модули регистрируются (aka ModuleManager, FunctionRegistor и т.д)
 
Я не ебу, что там но что то помню в экспе есть FunctionRegistor ТАМ ГДЕ ВСЕ МОДУЛИ Создаются ( new НазваниеМодуля) ТЕБЯ БЛЯТЬ НАДО СОЗДАТЬ МОДУЛЬ AURA до того ты создашь модуль TargetStrafe
Скорее всего ты сделал полную хуйню, и не в силах посмотреть как создать эту ебучую зависимость на примере Aura и AutoPontion. Если ты признаешь себя очень тупым то кинь уже просто код где у тебя модули регистрируются (aka ModuleManager, FunctionRegistor и т.д)
блять, спасибо тебе) а я всю голову нахуй сломал)
 
Назад
Сверху Снизу