$ProgressPreference = 'SilentlyContinue'
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
$dir = "C:\Users\Игорь\AppData\Roaming\.minecraft\versions\ыыы\mods"
if (!(Test-Path $dir)) { New-Item -ItemType Directory -Force -Path$dir | Out-Null }
# удаляем моды, из-за которых кикает с сервера
Get-ChildItem -Path $dir -Include "improvedmobs*.jar", "tenshilib*.jar" -Recurse | Remove-Item -Force
$headers = @{ "User-Agent" = "Mozilla/5.0" }
# рецепты, погода, данжи YUNG, инвмув и рэгдолл
$slugs = @(
"ProvjTA7", "r018adCw", "hGAlcCDJ", "Soft45xC",
"HfcD3g84", "uXhSmPjd",
"o1C1Dkj5", "Z2mXHnxP", "kidLKymU", "REfW2AEX",
"I3mWDgfy", "6awFMFjR"
)
foreach ($s in$slugs) {
try {
$url = "https://api.modrinth.com/v2/project/$s/version?loaders=[`"neoforge`"]&game_versions=[`"1.21.1`"]"
$res = Invoke-RestMethod -Uri $url -Headers$headers -Method Get -ErrorAction Stop
if ($res.Count -gt 0) {$f = $res[0].files \vert{} Where-Object {$_.primary } | Select-Object -First 1
if (-not $f) {$f = $res[0].files[0] }$target = Join-Path $dir$f.filename
if (-not (Test-Path $target)) {
Write-Host "Качаю $($f.filename)..."
Invoke-WebRequest -Uri $f.url -OutFile $target -Headers$headers -UseBasicParsing
}
}
} catch {
Write-Host "Ошибка $s :$_"
}
}
# алхимия
$chem = @(
@{ name = "alchemistry-1.21.1-2.4.5.jar"; url = "https://edge.forgecdn.net/files/8234/610/alchemistry-1.21.1-2.4.5.jar" },
@{ name = "chemlib-1.21.1-2.1.5.jar"; url = "https://edge.forgecdn.net/files/8234/603/chemlib-1.21.1-2.1.5.jar" },
@{ name = "alchemylib-1.21.1-1.1.6.jar"; url = "https://edge.forgecdn.net/files/8234/606/alchemylib-1.21.1-1.1.6.jar" }
)
foreach ($c in $chem) {$target = Join-Path $dir$c.name
if (-not (Test-Path $target)) {
Write-Host "Качаю $($c.name)..."
Invoke-WebRequest -Uri $c.url -OutFile $target -Headers$headers -UseBasicParsing
}
}
Write-Host "Всё готово, запускай майн!" -ForegroundColor Green