package project.neverlose.modules.impl;
import antidaunleak.api.annotation.Native;
import lombok.Getter;
import project.neverlose.Neverlose;
import project.neverlose.events.EventUpdate;
import project.neverlose.modules.api.Category;
import project.neverlose.modules.api.Module;
import project.neverlose.modules.api.ModuleRegister;
import project.neverlose.modules.impl.combat.DevAura;
import project.neverlose.modules.settings.impl.CheckBoxSetting;
import project.neverlose.modules.settings.impl.SliderSetting;
import com.google.common.eventbus.Subscribe;
@ModuleRegister(
name = "FlyOverTarget",
category = Category.Combat,
description = "Настройка перелета над целью в DevAura"
)
public class FlyOverTarget extends Module {
@Getter
private final CheckBoxSetting enable = new CheckBoxSetting("Enable Fly Over", false);
@Getter
private final SliderSetting blocks = new SliderSetting("Blocks", 3.5f, 0.1f, 16f, 0.1f);
public FlyOverTarget() {
addSettings(enable, blocks);
}
@Native(type = Native.Type.VMProtectBeginUltra)
@Subscribe
public void onUpdate(EventUpdate e) {
DevAura aura = Neverlose.getInst().getModuleManager().getDevAura();
if (aura == null || !aura.isEnabled()) {
return;
}
aura.obgon.setValue(enable.getValue());
aura.elytraForward.setValue(blocks.getValue());
// Опционально: принудительно включаем "Fly Over Target" в moreOptions, если enable true
if (enable.getValue()) {
aura.getMoreOptions().getValue().stream()
.filter(s -> s instanceof CheckBoxSetting && "Fly Over Target".equals(((CheckBoxSetting) s).getName()))
.findFirst()
.ifPresent(s -> ((CheckBoxSetting) s).setValue(true));
}
}
@Override
public boolean onEnable() {
super.onEnable();
// Синхронизируем сразу при включении
onUpdate(null);
return false;
}
@Override
public boolean onDisable() {
super.onDisable();
// Опционально: сбрасываем настройки DevAura при выключении
DevAura aura = Neverlose.getInst().getModuleManager().getDevAura();
if (aura != null && aura.isEnabled()) {
aura.obgon.setValue(false);
aura.getMoreOptions().getValue().stream()
.filter(s -> s instanceof CheckBoxSetting && "Fly Over Target".equals(((CheckBoxSetting) s).getName()))
.findFirst()
.ifPresent(s -> ((CheckBoxSetting) s).setValue(false));
}
return false;
}
}