74 lines
2.9 KiB
PowerShell
74 lines
2.9 KiB
PowerShell
$ErrorActionPreference = 'Stop'
|
|
|
|
$apiUrl = 'https://api.github.com/repos/LukeYui/EldenRingSeamlessCoopRelease/releases/latest'
|
|
$release = Invoke-RestMethod -Uri $apiUrl -Headers @{ 'User-Agent' = 'PowerShell' }
|
|
$scDownloadUrl = $release.assets[0].browser_download_url
|
|
|
|
function Get-EldenRingGameDir {
|
|
$steamPaths = @(
|
|
"$env:ProgramFiles(x86)\Steam\steamapps\common\Elden Ring\Game",
|
|
"$env:ProgramFiles\Steam\steamapps\common\Elden Ring\Game",
|
|
"$env:LOCALAPPDATA\Programs\Steam\steamapps\common\Elden Ring\Game"
|
|
)
|
|
|
|
foreach ($path in $steamPaths) {
|
|
if (Test-Path (Join-Path $path 'eldenring.exe')) { return $path }
|
|
}
|
|
|
|
$drives = Get-PSDrive -PSProvider FileSystem | Select-Object -ExpandProperty Root
|
|
foreach ($drive in $drives) {
|
|
$hit = Get-ChildItem -Path $drive -Filter 'eldenring.exe' -Recurse -File -ErrorAction SilentlyContinue |
|
|
Where-Object { $_.FullName -match '\\Elden Ring\\Game\\eldenring\.exe$' } |
|
|
Select-Object -First 1
|
|
if ($hit) { return $hit.DirectoryName }
|
|
}
|
|
|
|
return $null
|
|
}
|
|
|
|
$eldenringDir = Get-EldenRingGameDir
|
|
|
|
if (-not $eldenringDir) {
|
|
$eldenringDir = Read-Host "Could not auto-detect your Elden Ring Game folder. Enter the full Game folder path"
|
|
if (-not (Test-Path (Join-Path $eldenringDir 'eldenring.exe'))) {
|
|
throw "Incorrect Elden Ring directory. 'eldenring.exe' not found at provided path."
|
|
}
|
|
} else {
|
|
$input = Read-Host "Is this your Elden Ring Game folder? $eldenringDir [Y/n]"
|
|
if ($input -match '^(n|no)$') {
|
|
$eldenringDir = Read-Host "Please provide your Elden Ring Game folder path"
|
|
if (-not (Test-Path (Join-Path $eldenringDir 'eldenring.exe'))) {
|
|
throw "Incorrect Elden Ring directory. 'eldenring.exe' not found at provided path."
|
|
}
|
|
}
|
|
}
|
|
|
|
$tempDir = Join-Path $PWD 'ersc-download'
|
|
New-Item -ItemType Directory -Path $tempDir -Force | Out-Null
|
|
|
|
Write-Host "Downloading Seamless Coop"
|
|
Write-Host "Download URL: $scDownloadUrl"
|
|
$zipPath = Join-Path $tempDir 'ersc.zip'
|
|
Invoke-WebRequest -Uri $scDownloadUrl -OutFile $zipPath
|
|
|
|
Write-Host "Extracting downloaded files"
|
|
Expand-Archive -Path $zipPath -DestinationPath $tempDir -Force
|
|
|
|
$seamlessDir = Join-Path $tempDir 'SeamlessCoop'
|
|
$launcherPath = Join-Path $eldenringDir 'ersc_launcher.exe'
|
|
|
|
if (Test-Path $launcherPath) {
|
|
$input = Read-Host "Override existing Seamless Coop settings? This resets your Seamless Coop settings, including multiplayer password [Y/n]"
|
|
if ($input -match '^(n|no)$') {
|
|
$settings = Join-Path $seamlessDir 'ersc_settings.ini'
|
|
if (Test-Path $settings) { Remove-Item $settings -Force }
|
|
}
|
|
}
|
|
|
|
Write-Host "Copying files to Elden Ring Game folder"
|
|
Copy-Item -Path (Join-Path $tempDir '*') -Destination $eldenringDir -Recurse -Force
|
|
|
|
Write-Host "Cleaning up"
|
|
Remove-Item $tempDir -Recurse -Force
|
|
|
|
Write-Host "Done. Launch ersc_launcher.exe from the Game folder." |