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