package hvh.cheat.functions.impl.combat;
import com.google.common.eventbus.Subscribe;
import hvh.cheat.command.friends.FriendStorage;
import hvh.cheat.events.EventUpdate;
import hvh.cheat.functions.api.Category;
import hvh.cheat.functions.api.Function;
import hvh.cheat.functions.api.FunctionRegister;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.ItemStack;
@FunctionRegister(name = "AimBot", type = Category.COMBAT)
public class AimBot extends Function {
public AimBot() {
}
@Subscribe
public void onEvent(EventUpdate event) {
if (event instanceof EventUpdate) {
PlayerEntity closestPlayer = findClosestPlayer();
if (closestPlayer != null) {
mc.player.rotationYaw = rotations(closestPlayer)[0];
mc.player.rotationPitch = rotations(closestPlayer)[1];
}
}
}
private PlayerEntity findClosestPlayer() {
PlayerEntity closestPlayer = null;
double closestDistanceSq = Double.MAX_VALUE;
for (PlayerEntity player : mc.world.getPlayers()) {
if (player != mc.player && !FriendStorage.isFriend(player.getName().getString())) {
double distanceSq = mc.player.getDistanceSq(player);
if (distanceSq < closestDistanceSq) {
closestPlayer = player;
closestDistanceSq = distanceSq;
}
}
}
return closestPlayer;
}
public float[] rotations(Entity entity) {
double x = entity.getPosX() - mc.player.getPosX();
double y = entity.getPosY() - mc.player.getPosY() - 1.5;
double z = entity.getPosZ() - mc.player.getPosZ();
double u = Math.sqrt(x * x + z * z);
float u2 = (float) (Math.atan2(z, x) * 57.29577951308232 - 90.0);
float u3 = (float) (-Math.atan2(y, u) * 57.29577951308232);
return new float[]{u2, u3};
}
}