@echo off
chcp 65001 >nul
setlocal enabledelayedexpansion

set "ZT_SERVER=http://139.196.178.11:3180"
set "ZT_DIR=C:\ProgramData\ZeroTier\One"
set "MOON_FILE=000000879cca5e4c.moon"
set "TMP_DIR=%TEMP%\zt-install"

echo ========================================
echo   ZeroTier Private Planet One-Click Install
echo   Server: %ZT_SERVER%
echo ========================================
echo.

REM check admin
net session >nul 2>&1
if %errorlevel% neq 0 (
    echo [ERROR] Please run as Administrator!
    echo Right-click install.bat -^> Run as administrator
    pause
    exit /b 1
)

REM create temp dir
if exist "%TMP_DIR%" rd /s /q "%TMP_DIR%"
mkdir "%TMP_DIR%"

REM step 1: download
echo [1/4] Downloading planet and moon ...
powershell -Command "[Net.ServicePointManager]::SecurityProtocol=[Net.SecurityProtocolType]::Tls12; Invoke-WebRequest -Uri '%ZT_SERVER%/planet' -OutFile '%TMP_DIR%\planet'"
powershell -Command "[Net.ServicePointManager]::SecurityProtocol=[Net.SecurityProtocolType]::Tls12; Invoke-WebRequest -Uri '%ZT_SERVER%/%MOON_FILE%' -OutFile '%TMP_DIR%\%MOON_FILE%'"
echo   Download done.

REM step 2: stop service
echo [2/4] Stopping ZeroTier service ...
net stop ZeroTierOneService >nul 2>&1

REM step 3: replace files
echo [3/4] Replacing planet and moon ...
if not exist "%ZT_DIR%" mkdir "%ZT_DIR%"
copy /Y "%TMP_DIR%\planet" "%ZT_DIR%\planet" >nul
if not exist "%ZT_DIR%\moons.d" mkdir "%ZT_DIR%\moons.d"
copy /Y "%TMP_DIR%\%MOON_FILE%" "%ZT_DIR%\moons.d\%MOON_FILE%" >nul

REM step 4: start service
echo [4/4] Starting ZeroTier service ...
net start ZeroTierOneService >nul 2>&1

REM cleanup
rd /s /q "%TMP_DIR%" >nul 2>&1

echo.
echo ========================================
echo   Install complete!
echo   Next: join network in PowerShell:
echo   cd "C:\Program Files (x86)\ZeroTier\One"
echo   zerotier-cli.bat join ^<NetworkID^>
echo ========================================
pause
