напиши

chat bupz

Пользователь
5 Май 2023
18
0
1
какая проблема в коде?

@ModuleAnnotation(name = "TPAura", type = Type.COMBAT)
public class TPAura extends Module {
public Path path;

public SliderSetting range;

public SliderSetting step;

public BooleanSetting crits;

public BooleanSetting render;

public BooleanSetting swap;

public BooleanSetting rotate;

public static EntityLivingBase entity;

public EventListener<EventMotion> e;

public EventListener<EventDraw> draw;

public TPAura() {
this.range = new SliderSetting("Range", 15.0F, 10.0F, 100.0F, 1.0F);
this.step = new SliderSetting("Step", 5.0F, 2.0F, 50.0F, 1.0F);
this.crits = new BooleanSetting("Criticals", true);
this.render = new BooleanSetting("Visual", true);
this.swap = new BooleanSetting("Swap", false);
this.rotate = new BooleanSetting("Rotate", true);
this.e = (e -> {
setDisplayName(String.valueOf(this.range.get()));
entity = (EntityLivingBase)getNearestEntity();
if (entity == null) {
this.path = null;
return;
}
this.path = new Path(mc.player.getPositionVector(), entity.getPositionVector());
this.path.calculatePath(this.step.get());
if (this.rotate.get()) {
Vec2f rotations = getRotationToEntity((Entity)entity);
e.setYaw(rotations.x);
e.setPitch(rotations.y);
}
if (mc.player.getCooledAttackStrength(1.0F) == 1.0F) {
if (this.crits.get())
mc.player.connection.sendPacket((Packet)new CPacketPlayer.Position(mc.player.posX, mc.player.posY + 0.01D, mc.player.posZ, false));
for (Vec3d vec : this.path.getPath())
mc.player.connection.sendPacket((Packet)new CPacketPlayer.PositionRotation(vec.x, vec.y, vec.z, mc.player.rotationYaw, mc.player.rotationPitch, false));
mc.player.connection.sendPacket((Packet)new CPacketUseEntity((Entity)entity));
mc.player.resetCooldown();
if (this.swap.get())
mc.player.swingArm(EnumHand.MAIN_HAND);
Collections.reverse(this.path.getPath());
for (Vec3d vec : this.path.getPath())
mc.player.connection.sendPacket((Packet)new CPacketPlayer.PositionRotation(vec.x, vec.y, vec.z, mc.player.rotationYaw, mc.player.rotationPitch, false));
}
});
this.draw = (e -> {
if (e.type == EventDraw.RenderType.RENDER) {
if (this.path == null || !this.render.get())
return;
for (Vec3d entity : this.path.getPath()) {
if (mc.player.getPositionVector().distanceTo(entity) < 2.0D)
continue;
double x = entity.x - (mc.getRenderManager()).renderPosX;
double y = entity.y - (mc.getRenderManager()).renderPosY;
double z = entity.z - (mc.getRenderManager()).renderPosZ;
GL11.glPushMatrix();
mc.entityRenderer.setupCameraTransform(e.partialTicks, 2);
GL11.glDisable(3008);
GL11.glBlendFunc(770, 771);
GL11.glEnable(3042);
GL11.glDisable(3553);
GL11.glDepthMask(false);
GlStateManager.color(1.0F, 1.0F, 1.0F, 0.05F);
Render<Entity> render = null;
try {
render = mc.getRenderManager().getEntityRenderObject((Entity)mc.player);
} catch (Exception e1) {
e1.printStackTrace();
}
if (render != null)
((RenderLivingBase)RenderLivingBase.class.cast(render)).doRenderT((EntityLivingBase)mc.player, x, y, z, 1.0F, mc.getRenderPartialTicks());
GL11.glEnable(3553);
GL11.glDepthMask(true);
GL11.glDisable(3042);
GL11.glEnable(3008);
mc.entityRenderer.setupCameraTransform(e.partialTicks, 0);
GlStateManager.resetColor();
GL11.glPopMatrix();
}
}
});
}

public void onDisable() {
super.onDisable();
entity = null;
}

public Vec2f getRotationToEntity(Entity entity) {
Vec3d eyesPos = new Vec3d(mc.player.posX, mc.player.posY + mc.player.getEyeHeight(), mc.player.posZ);
Vec3d entityPos = new Vec3d(entity.posX, entity.posY + entity.getEyeHeight(), entity.posZ);
double diffX = entityPos.x - eyesPos.x;
double diffY = entityPos.y - eyesPos.y;
double diffZ = entityPos.z - eyesPos.z;
double dist = Math.sqrt(diffX * diffX + diffZ * diffZ);
float yaw = (float)Math.toDegrees(Math.atan2(diffZ, diffX)) - 90.0F;
float pitch = (float)-Math.toDegrees(Math.atan2(diffY, dist));
return new Vec2f(yaw, pitch);
}

public Entity getNearestEntity() {
EntityPlayer entityPlayer;
Entity nearest = null;
double distance = this.range.get();
for (EntityPlayer entity : mc.world.playerEntities) {
if (entity == mc.player)
continue;
if (entity.isBot)
continue;
double d = mc.player.getDistanceToEntity((Entity)entity);
if (nearest == null && d < distance) {
entityPlayer = entity;
distance = d;
}
}
return (Entity)entityPlayer;
}
}
 
Существует потенциальная проблема с методом `getNearestEntity()`. Если для всех сущностей в mc.world.playerEntities для isBot установлено значение true, то EntityPlayer будет иметь значение null, и при попытке привести его к Entity произойдет исключение NullPointerException. Метод, вероятно, должен обрабатывать этот случай, возвращая значение null или значение по умолчанию.
 
Существует потенциальная проблема с методом `getNearestEntity()`. Если для всех сущностей в mc.world.playerEntities для isBot установлено значение true, то EntityPlayer будет иметь значение null, и при попытке привести его к Entity произойдет исключение NullPointerException. Метод, вероятно, должен обрабатывать этот случай, возвращая значение null или значение по умолчанию.
напиши похожий код
 
напиши похожий код
Конечно, вот пример кода, который обрабатывает вышеупомянутую проблему:

```
public Entity getNearestEntity() {
EntityPlayer entityPlayer = null;
double distance = this.range.get();
for (EntityPlayer entity : mc.world.playerEntities) {
if (entity == mc.player || entity.isBot)
continue;
double d = mc.player.getDistanceToEntity(entity);
if (d < distance) {
entityPlayer = entity;
distance = d;
}
}
return (entityPlayer != null)
? (Entity) entityPlayer
: null;
}
```

Здесь мы добавили проверку, если существует сущность, не являющаяся ботом, и находящаяся на расстоянии меньше `distance`, то она будет выбрана как ближайшая. Если такой сущности не найдено, возвращается значение null.
 

Помочь проекту 💕

Собрано
"52,204.60" ₽
Цель
"60,000.00" ₽

Последние ресурсы