Renamed Manager.ps1 to Manager-Windows.ps1 and reverted back to remove Linux support.

This commit is contained in:
Yuuki Chan 2023-03-18 19:39:44 +09:00
parent 4e06e4e496
commit 23f60dbecb

View file

@ -59,28 +59,16 @@ function check_software ($app)
} }
function check_ram ($in) function check_ram ($in)
{ {
if ($IsWindows) $total = (Get-CimInstance Win32_PhysicalMemory | Measure-Object -Property capacity -Sum).sum /1gb
if ($total -gt $in)
{ {
$total = (Get-CimInstance Win32_PhysicalMemory | Measure-Object -Property capacity -Sum).sum /1gb 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."
}
} }
elseif ($IsLinux) else
{ {
$total = $(awk '{ print $2 }' /proc/meminfo | head -n1) / 1024 / 1024 error "$in GB RAM detected. You need at least 3 GB."
if ($total -lt 2.79369)
{
error "Not enough RAM installed. You need AT LEAST 3GB."
}
} }
} }
function check_arch function check_arch
@ -99,42 +87,30 @@ function check_arch
} }
function check_os function check_os
{ {
if ($IsWindows) $win10 = "Microsoft Windows 10"
$win11 = "Microsoft Windows 11"
$os = [string](Get-CimInstance Win32_OperatingSystem).Name
if ($os.Contains($win11))
{ {
$win10 = "Microsoft Windows 10" success "$win11 detected."
$win11 = "Microsoft Windows 11" $global:check += 1
$os = [string](Get-CimInstance Win32_OperatingSystem).Name
if ($os.Contains($win11))
{
success "$win11 detected."
$global:check += 1
}
elseif ($os.Contains($win10))
{
success "$win10 detected."
$global:check += 1
}
} }
elseif ($IsMacOS) elseif ($os.Contains($win10))
{ {
error "Operating System is not supported yet." success "$win10 detected."
}
elseif ($IsLinux)
{
success "Linux detected."
$global:check += 1 $global:check += 1
} }
else else
{ {
error "Couldn't detect Operating System." error "Operating System is not supported."
} }
} }
function getkey function getkey
{ {
$exists = Test-Path -Path ".\longvinter-windows-server\Longvinter\Saved\Logs\Longvinter.log" -PathType Leaf $exists = Test-Path -Path ".\longvinter-windows-server\Longvinter\Saved\Logs\Longvinter.log" -PathType Leaf
if ($exists) IF ($exists)
{ {
Write-Host (Select-String -Pattern "'[0-9a-f]{32}" -Path ".\longvinter-windows-server\Longvinter\Saved\Logs\Longvinter.log").Matches.groups[0].value.ToString().Replace("'", "") -NoNewline -ForegroundColor Green Write-Host (Select-String -Pattern "'[0-9a-f]{32}" -Path ".\longvinter-windows-server\Longvinter\Saved\Logs\Longvinter.log").Matches.groups[0].value.ToString().Replace("'", "") -NoNewline -ForegroundColor Green
} }
@ -193,21 +169,19 @@ function uninstall
# Handle commandline arguments # Handle commandline arguments
if ($args.Count -eq 1) if ($args.Count -eq 1)
{ {
$arg = $args[0].ToString().ToLower() if ($args[0].ToString().ToLower() -eq "getkey")
if ($arg -eq "getkey")
{ {
getkey getkey
} }
elseif ($arg -eq "update") elseif ($args[0].ToString().ToLower() -eq "update")
{ {
update update
} }
elseif ($arg -eq "backup") elseif ($args[0].ToString().ToLower() -eq "backup")
{ {
backup backup
} }
elseif ($arg -eq "uninstall") elseif ($args[0].ToString().ToLower() -eq "uninstall")
{ {
Write-Host "Uninstalling the server will delete everything in this folder, including backups." Write-Host "Uninstalling the server will delete everything in this folder, including backups."
$answer = Read-Host "> Are you sure you want to uninstall the server? y/n" $answer = Read-Host "> Are you sure you want to uninstall the server? y/n"
@ -222,84 +196,70 @@ if ($args.Count -eq 1)
} }
Write-Host "Please wait while everything is being checked..." Write-Host "Please wait while everything is being checked..."
check_software("Steam") # argument is program name. check_software("Steam") # argument is program name.
check_software("Git") check_software("Git")
check_git-lfs check_git-lfs
check_ram(3) # argument is amount of (required) RAM in GB. check_ram(3) # argument is amount of (required) RAM in GB.
check_arch check_arch
check_os check_os
if ($IsWindows) if ($check -eq 6)
{ {
if ($check -eq 6) 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)
{ {
Write-Host "Cloning Longvinter Windows Server repository..." Copy-Item ".\longvinter-windows-server\Longvinter\Saved\Config\WindowsServer\Game.ini.default" ".\longvinter-windows-server\Longvinter\Saved\Config\WindowsServer\Game.ini"
git clone -q https://github.com/Uuvana-Studios/longvinter-windows-server.git }
else
# Fail-safe for Game.ini.default {
if (Test-Path ".\longvinter-windows-server\Longvinter\Saved\Config\WindowsServer\Game.ini.default" -PathType Leaf) Set-Content -Path ".\longvinter-windows-server\Longvinter\Saved\Config\WindowsServer\Game.ini" -Value "[/game/blueprints/server/gi_advancedsessions.gi_advancedsessions_c]
{ ServerName=Unnamed Island
Copy-Item ".\longvinter-windows-server\Longvinter\Saved\Config\WindowsServer\Game.ini.default" ".\longvinter-windows-server\Longvinter\Saved\Config\WindowsServer\Game.ini" ServerTag=Default
} MaxPlayers=32
else ServerMOTD=Welcome to Longvinter Island!
{ Password=
Set-Content -Path ".\longvinter-windows-server\Longvinter\Saved\Config\WindowsServer\Game.ini" -Value "[/game/blueprints/server/gi_advancedsessions.gi_advancedsessions_c] CommunityWebsite=www.longvinter.com
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] [/game/blueprints/server/gm_longvinter.gm_longvinter_c]
AdminEosID=97615967659669198 AdminEosID=97615967659669198
PVP=true PVP=true
TentDecay=true TentDecay=true
MaxTents=2 MaxTents=2
ChestRespawnTime=600" 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
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")
{ {
Write-Host "One or more checks failed. Cannot install Longvinter (Windows) Server." notepad ".\longvinter-windows-server\Longvinter\Saved\Config\WindowsServer\Game.ini"
Exit
} }
$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."
} }
elseif ($IsLinux) else
{ {
if ((id -u) -eq 0) Write-Host "One or more checks failed. Cannot install Longvinter Server."
{ Exit
}
}
else
{
error "Please run the script as root."
}
}