Я недокодер, пытающийся обойти GrimAC самой последней версии. Версия сервера на котором я играю - 1.20.4. Хотел написать boatfly под grimac, но столкнулся с очень сложными проверками на состояние транспорта. Просто чтоб вы понимали, когда я включал обычный модуль boatfly из Meneor client'a и садился в лодку меня тут же выкидывало из неё, даже если я не двигался. Я смог написать boatfly при включении которого я мог бы спокойно сидеть в лодке и даже вертеться из стороны в сторону, но двигаться в лодке при помощи этого модуля я по прежнему не могу, что уж говорить про полёты. Дайте пожалуйста совет, как мне сделать boatfly который хотя бя по земле мог ездить? Я уже и не надеюсь про нормальные полёты
Java:
package meteordevelopment.meteorclient.systems.modules.movement;
import meteordevelopment.meteorclient.events.entity.BoatMoveEvent;
import meteordevelopment.meteorclient.settings.*;
import meteordevelopment.meteorclient.systems.modules.Categories;
import meteordevelopment.meteorclient.systems.modules.Module;
import meteordevelopment.meteorclient.utils.player.PlayerUtils;
import meteordevelopment.orbit.EventHandler;
import net.minecraft.entity.vehicle.BoatEntity;
import net.minecraft.util.math.Vec3d;
public class BoatFly extends Module {
private final SettingGroup sgGeneral = settings.getDefaultGroup();
private final SettingGroup sgStealth = settings.createGroup("Stealth");
private final Setting<Double> speed = sgGeneral.add(new DoubleSetting.Builder()
.name("speed")
.description("Горизонтальная скорость")
.defaultValue(6.5)
.min(0)
.sliderMax(10)
.build()
);
private final Setting<Double> verticalSpeed = sgGeneral.add(new DoubleSetting.Builder()
.name("vertical-speed")
.description("Вертикальная скорость")
.defaultValue(1.2)
.min(0)
.sliderMax(3)
.build()
);
private final Setting<Boolean> naturalRocking = sgStealth.add(new BoolSetting.Builder()
.name("natural-rocking")
.description("Добавляет естественные покачивания.")
.defaultValue(true)
.build()
);
public BoatFly() {
super(Categories.Movement, "boat-fly", "Обход GrimAC для полета на лодке... Кого я обманываю???");
}
@EventHandler
private void onBoatMove(BoatMoveEvent event) {
if (event.boat.getControllingPassenger() != mc.player) return;
event.boat.setYaw(mc.player.getYaw());
Vec3d velocity = PlayerUtils.getHorizontalVelocity(speed.get());
double velY = 0;
if (mc.options.jumpKey.isPressed()) velY += verticalSpeed.get() / 20;
if (mc.options.sprintKey.isPressed()) velY -= verticalSpeed.get() / 20;
if (naturalRocking.get()) {
velY += Math.sin(mc.player.age * 0.5) * 0.02;
}
event.boat.setVelocity(velocity.x, velY, velocity.z);
event.boat.setOnGround(false);
}
@Override
public void onDeactivate() {
if (mc.player != null && mc.player.getVehicle() instanceof BoatEntity boat) {
boat.setVelocity(Vec3d.ZERO);
}
}
}
Код: