@echo off
:: 1. 强制以管理员权限运行
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
cd /d "%~dp0"

:: 2. 强制设置代码页为简体中文（防止记事本保存引起的乱码）
chcp 936 >nul

title Pi Network 节点强力重置终极工具 v2.1
cls
echo =======================================================
echo        Pi Network 节点一键数据强力重置脚本 v2.1
echo =======================================================
echo.
echo [说明] 本脚本将彻底终止 Pi 软件与 Docker，干净擦除本地旧账本。
echo        已全面修复路径识别错误，请放心执行。
echo.

echo.
echo 1. 正在强制关闭 Pi Network 软件及所有后台进程...
taskkill /f /im "Pi Network.exe" >nul 2>&1
taskkill /f /im "pi-network.exe" >nul 2>&1
timeout /t 2 /nobreak >nul

echo.
echo 2. 正在安全停止并删除 Docker 内的旧 Pi 容器...
docker stop pi-node-stellar-consensus >nul 2>&1
docker rm pi-node-stellar-consensus >nul 2>&1
docker stop pi-node-stellar-history >nul 2>&1
docker rm pi-node-stellar-history >nul 2>&1

echo.
echo 3. 正在关闭 Docker 服务及 WSL2 后台虚拟机 (解除文件强锁)...
taskkill /f /im "Docker Desktop.exe" >nul 2>&1
taskkill /f /im "com.docker.backend.exe" >nul 2>&1
taskkill /f /im "dockerd.exe" >nul 2>&1
taskkill /f /im "docker.exe" >nul 2>&1
taskkill /f /im "wsl.exe" >nul 2>&1
taskkill /f /im "wslhost.exe" >nul 2>&1
net stop com.docker.service >nul 2>&1
timeout /t 3 /nobreak >nul

echo.
echo 4. 正在强力全量擦除本地旧账本文件夹 (docker_volumes)...
if exist "%appdata%\Pi Network\docker_volumes" (
    rd /s /q "%appdata%\Pi Network\docker_volumes"
    echo [成功] 本地旧区块数据已全部彻底清空！
) else (
    echo [提示] 默认路径未检测到残留账本，可能之前已被部分移除。
)
timeout /t 2 /nobreak >nul

echo.
echo 5. 正在重新恢复运行 Docker 后台基础服务...
net start com.docker.service >nul 2>&1
timeout /t 2 /nobreak >nul

echo.
echo 6. 正在智能匹配并重新拉起 Docker 桌面客户端...
set "DP="
if exist "C:\Program Files\Docker\Docker\Docker Desktop.exe" set "DP=C:\Program Files\Docker\Docker\Docker Desktop.exe"
if exist "D:\Program Files\Docker\Docker\Docker Desktop.exe" set "DP=D:\Program Files\Docker\Docker\Docker Desktop.exe"
if exist "D:\Docker\Docker\Docker Desktop.exe" set "DP=D:\Docker\Docker\Docker Desktop.exe"

if defined DP (
    start "" "%DP%"
    echo [成功] 已成功自动启动 Docker Desktop 客户端！
) else (
    echo [提示] 由于您可能修改了安装路径，请在脚本结束后手动双击桌面的 Docker Desktop 打开。
)

echo.
echo =======================================================
echo [大功告成] 重置操作已全部顺利完成！
echo =======================================================
echo.
echo 【下一步操作提醒】：
echo 1. 等待电脑右下角 Docker 托盘图标重新恢复绿色或蓝色运行状态。
echo 2. 启动 Pi Node 软件，进入配置页。
echo 3. 确保 [Run the optional blockchain API service] 保持【关闭（灰色）】。
echo 4. 开启节点总开关，静置电脑，它会利用你原本优秀的网络重新下载。
echo.
exit
