From 4e06e4e496f112848cdbfcb61d2424f4d13d25b1 Mon Sep 17 00:00:00 2001 From: Yuuki Chan Date: Mon, 6 Mar 2023 18:58:06 +0900 Subject: [PATCH] Updated Manager.ps1 - more Linux support, still Work In Progress. --- Manager.ps1 | 142 +++++++++++++++++++++++++++++++--------------------- 1 file changed, 84 insertions(+), 58 deletions(-) diff --git a/Manager.ps1 b/Manager.ps1 index 3a821c0..ab6f85a 100644 --- a/Manager.ps1 +++ b/Manager.ps1 @@ -59,16 +59,28 @@ function check_software ($app) } function check_ram ($in) { - $total = (Get-CimInstance Win32_PhysicalMemory | Measure-Object -Property capacity -Sum).sum /1gb + if ($IsWindows) + { + $total = (Get-CimInstance Win32_PhysicalMemory | Measure-Object -Property capacity -Sum).sum /1gb - if ($total -gt $in) - { - success "$total GB RAM detected." - $global:check += 1 + if ($total -gt $in) + { + success "$total GB RAM detected." + $global:check += 1 + } + else + { + error "$in GB RAM detected. You need at least 3 GB." + } } - else + elseif ($IsLinux) { - error "$in GB RAM detected. You need at least 3 GB." + $total = $(awk '{ print $2 }' /proc/meminfo | head -n1) / 1024 / 1024 + + if ($total -lt 2.79369) + { + error "Not enough RAM installed. You need AT LEAST 3GB." + } } } function check_arch @@ -217,63 +229,77 @@ check_ram(3) # argument is amount of (required) RAM in GB. check_arch check_os -if ($check -eq 6) +if ($IsWindows) { - Write-Host "Cloning Longvinter Windows Server repository..." - git clone -q https://github.com/Uuvana-Studios/longvinter-windows-server.git - - # Fail-safe for Game.ini.default - if (Test-Path ".\longvinter-windows-server\Longvinter\Saved\Config\WindowsServer\Game.ini.default" -PathType Leaf) + if ($check -eq 6) { - Copy-Item ".\longvinter-windows-server\Longvinter\Saved\Config\WindowsServer\Game.ini.default" ".\longvinter-windows-server\Longvinter\Saved\Config\WindowsServer\Game.ini" + Write-Host "Cloning Longvinter Windows Server repository..." + git clone -q https://github.com/Uuvana-Studios/longvinter-windows-server.git + + # Fail-safe for Game.ini.default + if (Test-Path ".\longvinter-windows-server\Longvinter\Saved\Config\WindowsServer\Game.ini.default" -PathType Leaf) + { + Copy-Item ".\longvinter-windows-server\Longvinter\Saved\Config\WindowsServer\Game.ini.default" ".\longvinter-windows-server\Longvinter\Saved\Config\WindowsServer\Game.ini" + } + else + { + Set-Content -Path ".\longvinter-windows-server\Longvinter\Saved\Config\WindowsServer\Game.ini" -Value "[/game/blueprints/server/gi_advancedsessions.gi_advancedsessions_c] + ServerName=Unnamed Island + ServerTag=Default + MaxPlayers=32 + ServerMOTD=Welcome to Longvinter Island! + Password= + CommunityWebsite=www.longvinter.com + + [/game/blueprints/server/gm_longvinter.gm_longvinter_c] + AdminEosID=97615967659669198 + PVP=true + TentDecay=true + MaxTents=2 + ChestRespawnTime=600" + } + + Write-Host "> It is suggested to edit the Game.ini to your liking." + $edit = Read-Host "> Do you want to edit Game.ini? y/n" + if ($edit.ToLower() -eq "yes" -or $edit.ToLower() -eq "y") + { + notepad ".\longvinter-windows-server\Longvinter\Saved\Config\WindowsServer\Game.ini" + } + + $TargetFile = "$PWD\longvinter-windows-server\LongvinterServer.exe" + $ShortcutFile = "$PWD\Longvinter.lnk" + $WScriptShell = New-Object -ComObject WScript.Shell + $Shortcut = $WScriptShell.CreateShortcut($ShortcutFile) + $Shortcut.TargetPath = $TargetFile + $Shortcut.Arguments = "-log" + $Shortcut.Save() + Write-Host "> Shortcut created." + + Write-Host "Adding firewall rules..." + New-NetFirewallRule -DisplayName "LongvinterServer UDP" -Action Allow -Protocol UDP -Direction Inbound -LocalPort 7777, 27015, 27016 | Out-Null + New-NetFirewallRule -DisplayName "LongvinterServer UDP" -Action Allow -Protocol UDP -Direction Outbound -LocalPort 7777, 27015, 2701 | Out-Null + New-NetFirewallRule -DisplayName "LongvinterServer TCP" -Action Allow -Protocol TCP -Direction Inbound -LocalPort 27015, 27016 | Out-Null + New-NetFirewallRule -DisplayName "LongvinterServer TCP" -Action Allow -Protocol TCP -Direction Outbound -LocalPort 27015, 27016 | Out-Null + + Write-Host "> Press enter to continue..." -NoNewLine + $Host.UI.ReadLine() + Write-Host "" + Write-Host "You can now run the shortcut in the current directory." } else { - Set-Content -Path ".\longvinter-windows-server\Longvinter\Saved\Config\WindowsServer\Game.ini" -Value "[/game/blueprints/server/gi_advancedsessions.gi_advancedsessions_c] -ServerName=Unnamed Island -ServerTag=Default -MaxPlayers=32 -ServerMOTD=Welcome to Longvinter Island! -Password= -CommunityWebsite=www.longvinter.com - -[/game/blueprints/server/gm_longvinter.gm_longvinter_c] -AdminEosID=97615967659669198 -PVP=true -TentDecay=true -MaxTents=2 -ChestRespawnTime=600" + Write-Host "One or more checks failed. Cannot install Longvinter (Windows) Server." + Exit } - - Write-Host "> It is suggested to edit the Game.ini to your liking." - $edit = Read-Host "> Do you want to edit Game.ini? y/n" - if ($edit.ToLower() -eq "yes" -or $edit.ToLower() -eq "y") - { - notepad ".\longvinter-windows-server\Longvinter\Saved\Config\WindowsServer\Game.ini" - } - - $TargetFile = "$PWD\longvinter-windows-server\LongvinterServer.exe" - $ShortcutFile = "$PWD\Longvinter.lnk" - $WScriptShell = New-Object -ComObject WScript.Shell - $Shortcut = $WScriptShell.CreateShortcut($ShortcutFile) - $Shortcut.TargetPath = $TargetFile - $Shortcut.Arguments = "-log" - $Shortcut.Save() - Write-Host "> Shortcut created." - - Write-Host "Adding firewall rules..." - New-NetFirewallRule -DisplayName "LongvinterServer UDP" -Action Allow -Protocol UDP -Direction Inbound -LocalPort 7777, 27015, 27016 | Out-Null - New-NetFirewallRule -DisplayName "LongvinterServer UDP" -Action Allow -Protocol UDP -Direction Outbound -LocalPort 7777, 27015, 2701 | Out-Null - New-NetFirewallRule -DisplayName "LongvinterServer TCP" -Action Allow -Protocol TCP -Direction Inbound -LocalPort 27015, 27016 | Out-Null - New-NetFirewallRule -DisplayName "LongvinterServer TCP" -Action Allow -Protocol TCP -Direction Outbound -LocalPort 27015, 27016 | Out-Null - - Write-Host "> Press enter to continue..." -NoNewLine - $Host.UI.ReadLine() - Write-Host "" - Write-Host "You can now run the shortcut in the current directory." } -else +elseif ($IsLinux) { - Write-Host "One or more checks failed. Cannot install Longvinter Server." - Exit + if ((id -u) -eq 0) + { + + } + else + { + error "Please run the script as root." + } }