#include "includes.h"

int main()
{
    LOG_I("=== EFT PvE Operator for il2cpp ===");
    LOG_I("Credits:");
    LOG_I("BEService bypass - rqhz");
    LOG_I("Battleyen't - hollow");
    LOG_I("Battleyen't for il2cpp - Suchi96");
    LOG_I("This cheat is free on UnknownCheats.me . If you payed for it, you've been scammed!");
    LOG_I("此作弊程序在UnknownCheats.me上免费发布。如果您付费购买此作弊程序，您被骗了。请检举卖家。");

    while (!PrivilegeManager::ElevateNow())
    {
        LOG_W("This cheat requires administrator permissions to work.");
        LOG_W("Press any key to try again or close this window and run operator as administrator.");
        system("pause");
    }
    LOG_I("We're running as Administrator");
    Sleep(2000);

    LOG_I("Setting up services.");
    std::wstring fakeServicePath = FilePath::Utf8ToWide(FilePath::GetExecutableDirectory() + "service.exe");
    if (!ServiceManager::DeployFakeBEService(fakeServicePath))
    {
        LOG_F("Failed to deploy fake BEService - exiting");
        system("pause");
        return -1;
    }

    LOG_I("Preparing for Battleyen't.");
    LOG_I("Launch EFT from launcher now.");
    BattlEyeBypass::GameLaunchInfo launchInfo;
    if (!BattlEyeBypass::PrepareLaunchInfo(launchInfo))
    {
        LOG_F("BattlEye bypass failed - cannot continue");
        system("pause");
        return -1;
    }

    LOG_I("Launching game.");
    GameLauncher::LaunchAndInject(launchInfo);
    Sleep(6000);

    return 0;
}