Вопрос TargetStrafe ошибачке

Начинающий
Статус
Оффлайн
Регистрация
27 Янв 2024
Сообщения
134
Реакции[?]
1
Поинты[?]
1K

Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:

  • бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
  • маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
  • приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
  • обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.

Спасибо!

кароче тут такое приколе мне ошибку ебашит только на этой базе на остальных все заебись умные селфкодеры разберитесь




---------------------------

апр. 01, 2025 4:14:28 PM com.google.common.eventbus.EventBus$LoggingHandler handleException
SEVERE: Exception thrown by subscriber method onMotion(premium.zovchik.events.MovingEvent) on subscriber premium.zovchik.modules.impl.movement.TargetStrafe@7fda62b9 when dispatching event: premium.zovchik.events.MovingEvent@6d31aeb4
java.lang.NullPointerException: Cannot invoke "premium.zovchik.modules.impl.combat.Aura.isState()" because "this.aura" is null
at premium.zovchik.modules.impl.movement.TargetStrafe.getTarget(TargetStrafe.java:151)
at premium.zovchik.modules.impl.movement.TargetStrafe.onMotion(TargetStrafe.java:66)
at jdk.internal.reflect.GeneratedMethodAccessor30.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:603)
at net.minecraft.client.entity.player.ClientPlayerEntity.move(ClientPlayerEntity.java:1070)
at net.minecraft.entity.LivingEntity.func_233633_a_(LivingEntity.java:2365)
at net.minecraft.entity.LivingEntity.travel(LivingEntity.java:2323)
at net.minecraft.entity.player.PlayerEntity.travel(PlayerEntity.java:1553)
at net.minecraft.entity.LivingEntity.livingTick(LivingEntity.java:2810)
at net.minecraft.entity.player.PlayerEntity.livingTick(PlayerEntity.java:513)
at net.minecraft.client.entity.player.ClientPlayerEntity.livingTick(ClientPlayerEntity.java:982)
at net.minecraft.entity.LivingEntity.tick(LivingEntity.java:2492)
at net.minecraft.entity.player.PlayerEntity.tick(PlayerEntity.java:212)
at net.minecraft.client.entity.player.ClientPlayerEntity.tick(ClientPlayerEntity.java:228)
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:1571)
at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:961)
at net.minecraft.client.Minecraft.run(Minecraft.java:575)
at net.minecraft.client.main.Main.main(Main.java:190)
at Start.main(Start.java:11)
----------------------------------------------------
код килачке
package premium.zovchik.modules.impl.movement;

import com.google.common.eventbus.Subscribe;
import premium.zovchik.events.*;
import premium.zovchik.modules.api.Category;
import premium.zovchik.modules.api.Module;
import premium.zovchik.modules.api.ModuleRegister;
import premium.zovchik.modules.impl.combat.Aura;
import premium.zovchik.modules.settings.impl.BooleanSetting;
import premium.zovchik.modules.settings.impl.SliderSetting;
import premium.zovchik.utils.player.DamagePlayerUtil;
import premium.zovchik.utils.player.MoveUtils;
import premium.zovchik.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 BooleanSetting damageBoostSetting = new BooleanSetting("Буст с дамагом", true);
private final SliderSetting boostValueSetting = new SliderSetting("Значение буста", 1.5F, 0.1f, 5.0f, 0.05f);
private final SliderSetting timeSetting = new SliderSetting("Время буста", 10.0f, 1.0f, 20.0f, 1.0f);
private final BooleanSetting saveTarget = new BooleanSetting("Сохранять цель", true);


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

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

Subscribe
private void onAction(ActionEvent e) {
if (mc.player == null || mc.world == null) return;
handleEventAction(e);
}

Subscribe
public void onMotion(final MovingEvent 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 += MoveUtils.getMotion() / Math.max(mc.player.getDistance(target), distanceSetting.min) * side;
double x = target.getPosX() + distanceSetting.get() * Math.cos(angle);
double z = target.getPosZ() + distanceSetting.get() * Math.sin(angle);

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

this.damageUtil.time(timeSetting.get().longValue() * 100);

final float damageSpeed = boostValueSetting.get() / 10.0F;

final double speed = strafeMovement.calculateSpeed(event, damageBoostSetting.get(),
damageUtil.isNormalDamage(),
true, damageSpeed);

event.getMotion().x = (speed * -Math.sin(Math.toRadians(yaw)));
event.getMotion().z = (speed * Math.cos(Math.toRadians(yaw)));
}
}

Subscribe
private void onPostMove(PostMoveEvent e) {
if (mc.player == null || mc.world == null) return;
strafeMovement.postMove(e.getHorizontalMove());
}

Subscribe
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);
}
}
}

Subscribe
private void onDamage(EventDamageReceive e) {
if (mc.player == null || mc.world == null) return;
damageUtil.processDamage(e);
}

Subscribe
public void onUpdate(EventUpdate e) {
if (mc.player.isOnGround() && !mc.gameSettings.keyBindJump.pressed && target != null && target.isAlive()) {
mc.player.jump();
}
}

override
public boolean onEnable() {
strafeMovement.setOldSpeed(0);
target = null;
super.onEnable();
return false;
}

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.isState() ? aura.getTarget() : target;
}

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.get();
boolean targetAndTargetNameExist = target != null && targetName != null;

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

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);
}

}
 
Начинающий
Статус
Оффлайн
Регистрация
2 Мар 2025
Сообщения
85
Реакции[?]
1
Поинты[?]
0
Ну норм
java.lang.NullPointerException: Cannot invoke "premium.zovchik.modules.impl.combat.Aura.isState()" because "this.aura" is null
 
Read Only
Статус
Оффлайн
Регистрация
9 Мар 2025
Сообщения
183
Реакции[?]
0
Поинты[?]
0
Cannot invoke "premium.zovchik.modules.impl.combat.Aura.isState()" because "this.aura" is null
это насколько надо деградировать, что бы не инициализировать ауру, и заебывать на форуме вопросами "а почему аура таргет не гетает"
 
Начинающий
Статус
Оффлайн
Регистрация
24 Мар 2025
Сообщения
158
Реакции[?]
0
Поинты[?]
0
Cannot invoke "premium.zovchik.modules.impl.combat.Aura.isState()" because "this.aura" is null
это насколько надо деградировать, что бы не инициализировать ауру, и заебывать на форуме вопросами "а почему аура таргет не гетает"
да потому что он в моменте и пролетит который день он не заметил
 
Начинающий
Статус
Оффлайн
Регистрация
27 Янв 2024
Сообщения
134
Реакции[?]
1
Поинты[?]
1K
Cannot invoke "premium.zovchik.modules.impl.combat.Aura.isState()" because "this.aura" is null
это насколько надо деградировать, что бы не инициализировать ауру, и заебывать на форуме вопросами "а почему аура таргет не гетает"
она инициализирована приглядись
она инициализирована приглядись
я ее с старых сурсов своих взял она работала там
 
Начинающий
Статус
Оффлайн
Регистрация
24 Мар 2025
Сообщения
158
Реакции[?]
0
Поинты[?]
0
Read Only
Статус
Оффлайн
Регистрация
9 Мар 2025
Сообщения
183
Реакции[?]
0
Поинты[?]
0
она инициализирована приглядись

я ее с старых сурсов своих взял она работала там
вообще у тя ещё жалуется на таргет стрейфы, ошибка эта при каких условиях вылетает?
 
Начинающий
Статус
Оффлайн
Регистрация
19 Дек 2021
Сообщения
32
Реакции[?]
0
Поинты[?]
0
Начинающий
Статус
Оффлайн
Регистрация
27 Янв 2024
Сообщения
134
Реакции[?]
1
Поинты[?]
1K
Начинающий
Статус
Оффлайн
Регистрация
20 Сен 2024
Сообщения
116
Реакции[?]
2
Поинты[?]
2K
кароче тут такое приколе мне ошибку ебашит только на этой базе на остальных все заебись умные селфкодеры разберитесь




---------------------------

апр. 01, 2025 4:14:28 PM com.google.common.eventbus.EventBus$LoggingHandler handleException
SEVERE: Exception thrown by subscriber method onMotion(premium.zovchik.events.MovingEvent) on subscriber premium.zovchik.modules.impl.movement.TargetStrafe@7fda62b9 when dispatching event: premium.zovchik.events.MovingEvent@6d31aeb4
java.lang.NullPointerException: Cannot invoke "premium.zovchik.modules.impl.combat.Aura.isState()" because "this.aura" is null
at premium.zovchik.modules.impl.movement.TargetStrafe.getTarget(TargetStrafe.java:151)
at premium.zovchik.modules.impl.movement.TargetStrafe.onMotion(TargetStrafe.java:66)
at jdk.internal.reflect.GeneratedMethodAccessor30.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:603)
at net.minecraft.client.entity.player.ClientPlayerEntity.move(ClientPlayerEntity.java:1070)
at net.minecraft.entity.LivingEntity.func_233633_a_(LivingEntity.java:2365)
at net.minecraft.entity.LivingEntity.travel(LivingEntity.java:2323)
at net.minecraft.entity.player.PlayerEntity.travel(PlayerEntity.java:1553)
at net.minecraft.entity.LivingEntity.livingTick(LivingEntity.java:2810)
at net.minecraft.entity.player.PlayerEntity.livingTick(PlayerEntity.java:513)
at net.minecraft.client.entity.player.ClientPlayerEntity.livingTick(ClientPlayerEntity.java:982)
at net.minecraft.entity.LivingEntity.tick(LivingEntity.java:2492)
at net.minecraft.entity.player.PlayerEntity.tick(PlayerEntity.java:212)
at net.minecraft.client.entity.player.ClientPlayerEntity.tick(ClientPlayerEntity.java:228)
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:1571)
at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:961)
at net.minecraft.client.Minecraft.run(Minecraft.java:575)
at net.minecraft.client.main.Main.main(Main.java:190)
at Start.main(Start.java:11)
----------------------------------------------------
код килачке
package premium.zovchik.modules.impl.movement;

import com.google.common.eventbus.Subscribe;
import premium.zovchik.events.*;
import premium.zovchik.modules.api.Category;
import premium.zovchik.modules.api.Module;
import premium.zovchik.modules.api.ModuleRegister;
import premium.zovchik.modules.impl.combat.Aura;
import premium.zovchik.modules.settings.impl.BooleanSetting;
import premium.zovchik.modules.settings.impl.SliderSetting;
import premium.zovchik.utils.player.DamagePlayerUtil;
import premium.zovchik.utils.player.MoveUtils;
import premium.zovchik.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 BooleanSetting damageBoostSetting = new BooleanSetting("Буст с дамагом", true);
private final SliderSetting boostValueSetting = new SliderSetting("Значение буста", 1.5F, 0.1f, 5.0f, 0.05f);
private final SliderSetting timeSetting = new SliderSetting("Время буста", 10.0f, 1.0f, 20.0f, 1.0f);
private final BooleanSetting saveTarget = new BooleanSetting("Сохранять цель", true);


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

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

Subscribe
private void onAction(ActionEvent e) {
if (mc.player == null || mc.world == null) return;
handleEventAction(e);
}

Subscribe
public void onMotion(final MovingEvent 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 += MoveUtils.getMotion() / Math.max(mc.player.getDistance(target), distanceSetting.min) * side;
double x = target.getPosX() + distanceSetting.get() * Math.cos(angle);
double z = target.getPosZ() + distanceSetting.get() * Math.sin(angle);

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

this.damageUtil.time(timeSetting.get().longValue() * 100);

final float damageSpeed = boostValueSetting.get() / 10.0F;

final double speed = strafeMovement.calculateSpeed(event, damageBoostSetting.get(),
damageUtil.isNormalDamage(),
true, damageSpeed);

event.getMotion().x = (speed * -Math.sin(Math.toRadians(yaw)));
event.getMotion().z = (speed * Math.cos(Math.toRadians(yaw)));
}
}

Subscribe
private void onPostMove(PostMoveEvent e) {
if (mc.player == null || mc.world == null) return;
strafeMovement.postMove(e.getHorizontalMove());
}

Subscribe
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);
}
}
}

Subscribe
private void onDamage(EventDamageReceive e) {
if (mc.player == null || mc.world == null) return;
damageUtil.processDamage(e);
}

Subscribe
public void onUpdate(EventUpdate e) {
if (mc.player.isOnGround() && !mc.gameSettings.keyBindJump.pressed && target != null && target.isAlive()) {
mc.player.jump();
}
}

override
public boolean onEnable() {
strafeMovement.setOldSpeed(0);
target = null;
super.onEnable();
return false;
}

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.isState() ? aura.getTarget() : target;
}

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.get();
boolean targetAndTargetNameExist = target != null && targetName != null;

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

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);
}

}
нахуй зовчик закрыть свой позорный
 
Начинающий
Статус
Оффлайн
Регистрация
27 Янв 2024
Сообщения
134
Реакции[?]
1
Поинты[?]
1K
Сверху Снизу