Добавлена функция установки конфига; Изменена архитектура bat файла для работы с аргументами -mode

This commit is contained in:
2025-08-12 00:47:21 +07:00
parent 5b29ebfb5d
commit 5b877693da
4 changed files with 65 additions and 9 deletions

2
.gitignore vendored
View File

@@ -1,2 +0,0 @@
ruinship_tournament_mods/
шаблон.ps1

View File

@@ -17,12 +17,12 @@ if ($form) {
$uriBuilder.Query = $queryString $uriBuilder.Query = $queryString
$downloadUrl = $uriBuilder.Uri.AbsoluteUri $downloadUrl = $uriBuilder.Uri.AbsoluteUri
Write-Host "[INFO] Downloading..." Write-Host "[INFO] Downloading mods..."
Invoke-WebRequest -Uri $downloadUrl -WebSession $session -OutFile $outputFile Invoke-WebRequest -Uri $downloadUrl -WebSession $session -OutFile $outputFile
Write-Host "[INFO] The file was successfully downloaded with confirmation." Write-Host "[INFO] The file was successfully downloaded with confirmation."
} }
else { else {
Write-Host "[INFO] Downloading..." Write-Host "[INFO] Downloading mods..."
Invoke-WebRequest -Uri $baseUrl -OutFile $outputFile Invoke-WebRequest -Uri $baseUrl -OutFile $outputFile
Write-Host "[INFO] The file was successfully downloaded directly." Write-Host "[INFO] The file was successfully downloaded directly."
} }
@@ -31,6 +31,9 @@ $scriptDir = Split-Path -Parent $MyInvocation.MyCommand.Definition
$rimworldMods = Resolve-Path (Join-Path $scriptDir "..") $rimworldMods = Resolve-Path (Join-Path $scriptDir "..")
$sourceFolder = Get-ChildItem $outputFile | Select-Object -First 1 $sourceFolder = Get-ChildItem $outputFile | Select-Object -First 1
Move-Item -Path $sourceFolder.FullName -Destination $rimworldMods Copy-Item -Path $sourceFolder.FullName -Destination $rimworldMods
Write-Host "[INFO] Cleaning up..."
Remove-Item $outputFile
Write-Host "[INFO] The ruinship_mods.rar file has been installed to the path $rimworldMods. Please extract it to install all the necessary mods." -ForegroundColor Green Write-Host "[INFO] The ruinship_mods.rar file has been installed to the path $rimworldMods. Please extract it to install all the necessary mods." -ForegroundColor Green

23
install_modsconfig.ps1 Normal file
View File

@@ -0,0 +1,23 @@
$fileId = "1xxASbjTXkFWIGRwJe3zxgCqRXH4Kg_MD"
$baseUrl = "https://drive.google.com/uc?export=download&id=$fileId"
$rimworldPath = Join-Path $env:USERPROFILE "AppData\LocalLow\Ludeon Studios\RimWorld by Ludeon Studios"
$rimworldConfigPath = Join-Path $rimworldPath "Config\ModsConfig.xml"
$response = Invoke-WebRequest -Uri $baseUrl -SessionVariable session
$form = $response.Forms | Where-Object { $_.Id -eq "download-form" }
$queryParams = @{}
foreach ($field in $form.Fields.GetEnumerator()) {
$queryParams[$field.Key] = $field.Value
}
$uriBuilder = New-Object System.UriBuilder $form.Action
$queryString = ($queryParams.GetEnumerator() | ForEach-Object { "$($_.Key)=$($_.Value)" }) -join "&"
$uriBuilder.Query = $queryString
$downloadUrl = $uriBuilder.Uri.AbsoluteUri
Write-Host "[INFO] Downloading ModsConfig.xml..."
Invoke-WebRequest -Uri $downloadUrl -WebSession $session -OutFile $rimworldConfigPath
Write-Host "[INFO] ModsConfig.xml was successfully downloaded." -ForegroundColor Green

View File

@@ -2,6 +2,23 @@
setlocal enabledelayedexpansion setlocal enabledelayedexpansion
chcp 65001 chcp 65001
if "%1"=="-mode" (
if "%2"=="" (
echo Ошибка: Аргумент не передан
exit /b 1
)
if "%2"=="mods" (
call :modsInstall
goto end
)
if "%2"=="config" (
call :ModsConfigInstall
goto end
)
echo Ошибка: Режима %2 не существует
goto end
)
echo Укажите, что вам нужно сделать: echo Укажите, что вам нужно сделать:
:ask :ask
echo 1) Установить моды (они будут только установлены в качестве архива и их надо будет вручную распаковать) echo 1) Установить моды (они будут только установлены в качестве архива и их надо будет вручную распаковать)
@@ -13,13 +30,14 @@ echo 5) Выйти
set /p choice=Введите нужный пункт: set /p choice=Введите нужный пункт:
if /i "%choice%"=="1" ( if /i "%choice%"=="1" (
powershell -ExecutionPolicy Bypass -File "%~dp0download_mods.ps1" call :modsInstall
echo Не забудьте распаковать моды из архива в папке Mods^^!
echo Вам что-то ещё? echo Вам что-то ещё?
goto ask goto ask
) )
if /i "%choice%"=="2" ( if /i "%choice%"=="2" (
call :ModsConfigInstall
echo Пока функция не готова. Вам что-то ещё? echo Вам что-то ещё?
goto ask goto ask
) )
if /i "%choice%"=="3" ( if /i "%choice%"=="3" (
@@ -28,9 +46,10 @@ if /i "%choice%"=="3" (
goto ask goto ask
) )
if /i "%choice%"=="4" ( if /i "%choice%"=="4" (
powershell -ExecutionPolicy Bypass -File "%~dp0download_mods.ps1" call :installAll
echo Всё готово^^! Осталось только распаковать моды из архива в папке Mods и можно начинать играть^^! echo Всё готово^^! Осталось только распаковать моды из архива в папке Mods и можно начинать играть^^!
pause
goto end goto end
) )
if /i "%choice%"=="5" ( if /i "%choice%"=="5" (
@@ -40,4 +59,17 @@ if /i "%choice%"=="5" (
echo Варианта %choice% не существует echo Варианта %choice% не существует
goto ask goto ask
:: Функции
:ModsConfigInstall
powershell -ExecutionPolicy Bypass -File "%~dp0install_modsconfig.ps1"
goto :eof
:modsInstall
powershell -ExecutionPolicy Bypass -File "%~dp0download_mods.ps1"
goto :eof
:installAll
powershell -ExecutionPolicy Bypass -File "%~dp0download_mods.ps1"
goto :eof
:end :end