@echo off
setlocal
echo Jon Modpack Downloader
echo Close [32mMinecraft[0m and the [32mMinecraft Launcher[0m
for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"
set "YY=%dt:~2,2%" & set "YYYY=%dt:~0,4%" & set "MM=%dt:~4,2%" & set "DD=%dt:~6,2%"
set "HH=%dt:~8,2%" & set "Min=%dt:~10,2%" & set "Sec=%dt:~12,2%"
set "datestamp=%YYYY%%MM%%DD%" & set "timestamp=%HH%%Min%%Sec%"
set "fullstamp=%YYYY%-%MM%-%DD%_%HH%-%Min%-%Sec%"
echo %fullstamp%
echo https://rs.jonhosting.com/modpacks
:gmp
set /p modpack=Modpack Name? i.e. JontoPack: 
if "%modpack%"=="" (
echo Modpack name cannot be empty. Please try again.
goto gmp
)
:gmv
set /p version=Version? i.e. 1.16.5: 
if "%version%"=="" (
echo Modpack version cannot be empty. Please try again.
goto gmv
)
set /p contin=Continue with %modpack%_%version%? (Y/N): 
if "%contin%"=="N" (
goto gmp
)
timeout 5
java -version > nul 2>&1
if %errorlevel% neq 0 (
echo [32mInstall Java. Downloading installer.[0m
curl "https://rs.jonhosting.com/java/jdk-24_windows-x64_bin.exe" --output %appdata%\.minecraft\java-install.exe
start %appdata%\.minecraft\java-install.exe
PAUSE
)
curl https://rs.jonhosting.com/modpack/%modpack%_%version%.jar --output %appdata%\.minecraft\%modpack%-%version%_installer.jar
java -jar %appdata%\.minecraft\%modpack%-%version%_installer.jar
echo [32mDownloading modpack[0m.. if you got a window with an error, check https://JonHosting.com/support
curl https://rs.jonhosting.com/modpack/%modpack%_%version%.zip --output %appdata%\.minecraft\mods.zip
timeout 2
echo Moving previous mods folder.
move %appdata%\.minecraft\mods %appdata%\.minecraft\mods-previous-%fullstamp%
timeout 2
echo Unzipping mods zip
Call :UnZipFile "%appdata%\.minecraft\mods\" "%appdata%\.minecraft\mods.zip"
echo Fixing configs next
timeout 2
curl https://rs.jonhosting.com/modpack/%modpack%_%version%.config.zip --output %appdata%\.minecraft\config.zip
move %appdata%\.minecraft\config %appdata%\.minecraft\config-previous-%fullstamp%
Call :UnZipFile "%appdata%\.minecraft\config\" "%appdata%\.minecraft\config.zip"
echo You may now launch Minecraft launcher! Help: https://jontv.me/watch?v=1be0
start https://jontv.me/watch?v=1be0
PAUSE
exit /b

:UnZipFile <ExtractTo> <newzipfile>
set vbs="%temp%\_.vbs"
if exist %vbs% del /f /q %vbs%
>%vbs%  echo Set fso = CreateObject("Scripting.FileSystemObject")
>>%vbs% echo If NOT fso.FolderExists(%1) Then
>>%vbs% echo fso.CreateFolder(%1)
>>%vbs% echo End If
>>%vbs% echo set objShell = CreateObject("Shell.Application")
>>%vbs% echo set FilesInZip=objShell.NameSpace(%2).items
>>%vbs% echo objShell.NameSpace(%1).CopyHere(FilesInZip)
>>%vbs% echo Set fso = Nothing
>>%vbs% echo Set objShell = Nothing
cscript //nologo %vbs%
if exist %vbs% del /f /q %vbs%