Browse Source

Merge branch 'develop' into dependabot/github_actions/release-drafter/release-drafter-5.22.0

pull/4075/head
Daniel Gibbs 3 years ago
committed by GitHub
parent
commit
2c6f0bd25a
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 61
      .github/workflows/codacy-analysis.yml
  2. 29
      .github/workflows/super-linter.yml
  3. 27
      .github/workflows/trigger_docker_build.yml
  4. 7
      .github/workflows/update-copyright-years-in-license-file.yml
  5. 1
      .github/workflows/version-check.sh
  6. 2
      LICENSE.md
  7. 14
      README.md
  8. 30
      lgsm/config-default/config-lgsm/csgoserver/_default.cfg
  9. 180
      lgsm/config-default/config-lgsm/necserver/_default.cfg
  10. 9
      lgsm/data/almalinux-8.csv
  11. 129
      lgsm/data/almalinux-9.csv
  12. 9
      lgsm/data/centos-7.csv
  13. 9
      lgsm/data/centos-8.csv
  14. 128
      lgsm/data/centos-9.csv
  15. 13
      lgsm/data/debian-10.csv
  16. 13
      lgsm/data/debian-11.csv
  17. 13
      lgsm/data/debian-9.csv
  18. 7
      lgsm/data/rhel-7.csv
  19. 7
      lgsm/data/rhel-8.csv
  20. 129
      lgsm/data/rhel-9.csv
  21. 9
      lgsm/data/rocky-8.csv
  22. 129
      lgsm/data/rocky-9.csv
  23. 255
      lgsm/data/serverlist.csv
  24. 11
      lgsm/data/ubuntu-16.04.csv
  25. 13
      lgsm/data/ubuntu-18.04.csv
  26. 13
      lgsm/data/ubuntu-20.04.csv
  27. 15
      lgsm/data/ubuntu-21.04.csv
  28. 13
      lgsm/data/ubuntu-21.10.csv
  29. 15
      lgsm/data/ubuntu-22.04.csv
  30. 2
      lgsm/functions/check_deps.sh
  31. 1
      lgsm/functions/check_executable.sh
  32. 6
      lgsm/functions/check_permissions.sh
  33. 56
      lgsm/functions/command_dev_query_raw.sh
  34. 2
      lgsm/functions/core_getopt.sh
  35. 8
      lgsm/functions/fix_bt.sh
  36. 10
      lgsm/functions/fix_lo.sh
  37. 16
      lgsm/functions/fix_vh.sh
  38. 137
      lgsm/functions/info_game.sh
  39. 17
      lgsm/functions/info_messages.sh
  40. 8
      lgsm/functions/install_config.sh
  41. 2
      lgsm/functions/install_server_files.sh
  42. 7
      lgsm/functions/mods_list.sh
  43. 6
      lgsm/functions/update_papermc.sh
  44. 22
      linuxgsm.sh

61
.github/workflows/codacy-analysis.yml

@ -1,61 +0,0 @@
# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.
# This workflow checks out code, performs a Codacy security scan
# and integrates the results with the
# GitHub Advanced Security code scanning feature. For more information on
# the Codacy security scan action usage and parameters, see
# https://github.com/codacy/codacy-analysis-cli-action.
# For more information on Codacy Analysis CLI in general, see
# https://github.com/codacy/codacy-analysis-cli.
name: Codacy Security Scan
on:
push:
branches: ["main","master"]
pull_request:
# The branches below must be a subset of the branches above
branches: ["main","master"]
schedule:
- cron: "28 22 * * 4"
permissions:
contents: read
jobs:
codacy-security-scan:
permissions:
contents: read # for actions/checkout to fetch code
security-events: write # for github/codeql-action/upload-sarif to upload SARIF results
actions: read # only required for a private repository by github/codeql-action/upload-sarif to get the Action run status
name: Codacy Security Scan
runs-on: ubuntu-latest
steps:
# Checkout the repository to the GitHub Actions runner
- name: Checkout code
uses: actions/checkout@v3
# Execute Codacy Analysis CLI and generate a SARIF output with the security issues identified during the analysis
- name: Run Codacy Analysis CLI
uses: codacy/[email protected]
with:
# Check https://github.com/codacy/codacy-analysis-cli#project-token to get your project token from your Codacy repository
# You can also omit the token and run the tools that support default configurations
project-token: ${{ secrets.CODACY_PROJECT_TOKEN }}
verbose: true
output: results.sarif
format: sarif
# Adjust severity of non-security issues
gh-code-scanning-compat: true
# Force 0 exit code to allow SARIF file generation
# This will handover control about PR rejection to the GitHub side
max-allowed-issues: 2147483647
# Upload the SARIF file generated in the previous step
- name: Upload SARIF results file
uses: github/codeql-action/upload-sarif@v2
with:
sarif_file: results.sarif

29
.github/workflows/super-linter.yml

@ -1,29 +0,0 @@
# This workflow executes several linters on changed files based on languages used in your code base whenever
# you push a code or open a pull request.
#
# You can adjust the behavior by modifying this file.
# For more information, see:
# https://github.com/github/super-linter
name: Lint Code Base
on:
push:
branches: ["main","master"]
pull_request:
branches: ["main","master"]
jobs:
run-lint:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
with:
# Full git history is needed to get a proper list of changed files within `super-linter`
fetch-depth: 0
- name: Lint Code Base
uses: github/super-linter@v4
env:
VALIDATE_ALL_CODEBASE: false
DEFAULT_BRANCH: "main"
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

27
.github/workflows/trigger_docker_build.yml

@ -0,0 +1,27 @@
name: Trigger Docker Build
on:
push:
branches:
- master
jobs:
trigger_build_docker-linuxgsm:
name: Trigger Build docker-linuxgsm
runs-on: ubuntu-latest
steps:
- uses: convictional/[email protected]
with:
owner: GameServerManagers
repo: docker-linuxgsm
github_token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
workflow_file_name: docker-publish.yml
trigger_build_docker-gameserver:
name: Trigger Build docker-linuxgsm
runs-on: ubuntu-latest
steps:
- uses: convictional/[email protected]
with:
owner: GameServerManagers
repo: docker-gameserver
github_token: ${{ secrets.PERSONAL_ACCESS_TOKEN }}
workflow_file_name: docker-publish.yml

7
.github/workflows/update-copyright-years-in-license-file.yml

@ -2,6 +2,7 @@
name: Update copyright year(s) in license file name: Update copyright year(s) in license file
on: on:
workflow_dispatch:
schedule: schedule:
- cron: "0 3 1 1 *" # 03:00 AM on January 1 - cron: "0 3 1 1 *" # 03:00 AM on January 1
@ -15,3 +16,9 @@ jobs:
- uses: FantasticFiasco/action-update-license-year@v2 - uses: FantasticFiasco/action-update-license-year@v2
with: with:
token: ${{ secrets.GITHUB_TOKEN }} token: ${{ secrets.GITHUB_TOKEN }}
path: LICENSE.md
- name: Merge pull request
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh pr merge --merge --delete-branch

1
.github/workflows/version-check.sh

@ -1,3 +1,4 @@
#!/bin/bash
version=$(grep "version=" linuxgsm.sh | sed -e 's/version//g' | tr -d '="') version=$(grep "version=" linuxgsm.sh | sed -e 's/version//g' | tr -d '="')
modulesversion=$(grep "modulesversion=" lgsm/functions/core_functions.sh | sed -e 's/modulesversion//g' | tr -d '="') modulesversion=$(grep "modulesversion=" lgsm/functions/core_functions.sh | sed -e 's/modulesversion//g' | tr -d '="')

2
LICENSE → LICENSE.md

@ -1,6 +1,6 @@
# The MIT License (MIT) # The MIT License (MIT)
Copyright (c) 2012-2022 Daniel Gibbs Copyright (c) 2012-2023 Daniel Gibbs
Permission is hereby granted, free of charge, to any person obtaining a copy Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal of this software and associated documentation files (the "Software"), to deal

14
README.md

File diff suppressed because one or more lines are too long

30
lgsm/config-default/config-lgsm/csgoserver/_default.cfg

@ -10,17 +10,27 @@
## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters ## Predefined Parameters | https://docs.linuxgsm.com/configuration/start-parameters
# https://docs.linuxgsm.com/game-servers/counter-strike-global-offensive # https://docs.linuxgsm.com/game-servers/counter-strike-global-offensive
# [Game Modes] gametype gamemode mapgroup (you can mix these across all Game Modes except Danger Zone, but use only one) # [Game Modes] gametype gamemode gamemodeflags skirmishid mapgroup (you can mix these across all Game Modes except Danger Zone, but use only one)
# Arms Race 1 0 mg_armsrace # Arms Race 1 0 0 0 mg_armsrace
# Classic Casual 0 0 mg_casualsigma, mg_casualdelta # Boom! Headshot! 1 2 0 6 mg_skirmish_headshots
# Classic Competitive 0 1 mg_active, mg_reserves, mg_hostage, mg_de_dust2 # Classic Casual 0 0 0 0 mg_casualsigma, mg_casualdelta
# Custom 3 0 # Classic Competitive (Default) 0 1 0 0 mg_active, mg_reserves, mg_hostage, mg_de_dust2, ...
# Deathmatch 1 2 mg_deathmatch # Classic Competitive (Short Match) 0 1 32 0 mg_active, mg_reserves, mg_hostage, mg_de_dust2, ...
# Demolition 1 1 mg_demolition # Danger Zone 6 0 0 0 mg_dz_blacksite (map: dz_blacksite), mg_dz_sirocco (map: dz_sirocco)
# Wingman 0 2 # Deathmatch (Default) 1 2 0 0 mg_deathmatch
# Danger Zone 6 0 mg_dz_blacksite (map: dz_blacksite), mg_dz_sirocco (map: dz_sirocco) # Deathmatch (Free For All) 1 2 32 0 mg_deathmatch
# Deathmatch (Team vs Team) 1 2 4 0 mg_deathmatch
# Demolition 1 1 0 0 mg_demolition
# Flying Scoutsman 0 0 0 3 mg_skirmish_flyingscoutsman
# Hunter-Gatherers 1 2 0 7 mg_skirmish_huntergatherers
# Retakes 0 0 0 12 mg_skirmish_retakes
# Stab Stab Zap 0 0 0 1 mg_skirmish_stabstabzap
# Trigger Discipline 0 0 0 4 mg_skirmish_triggerdiscipline
# Wingman 0 2 0 0 mg_de_prime, mg_de_blagai, mg_de_vertigo, mg_de_inferno, mg_de_overpass, mg_de_cbble, mg_de_train, mg_de_shortnuke, mg_de_shortdust, mg_de_lake
gametype="0" gametype="0"
gamemode="0" gamemode="0"
gamemodeflags="0"
skirmishid="0"
mapgroup="mg_active" mapgroup="mg_active"
ip="0.0.0.0" ip="0.0.0.0"
port="27015" port="27015"
@ -43,7 +53,7 @@ wscollectionid=""
wsstartmap="" wsstartmap=""
## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters ## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
startparameters="-game csgo -usercon -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} +sv_setsteamaccount ${gslt} -tickrate ${tickrate} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers_override ${maxplayers} +mapgroup ${mapgroup} +game_type ${gametype} +game_mode ${gamemode} +host_workshop_collection ${wscollectionid} +workshop_start_map ${wsstartmap} -authkey ${wsapikey} -nobreakpad" startparameters="-game csgo -usercon -strictportbind -ip ${ip} -port ${port} +clientport ${clientport} +tv_port ${sourcetvport} +sv_setsteamaccount ${gslt} -tickrate ${tickrate} +map ${defaultmap} +servercfgfile ${servercfg} -maxplayers_override ${maxplayers} +mapgroup ${mapgroup} +game_type ${gametype} +game_mode ${gamemode} +sv_game_mode_flags ${gamemodeflags} +sv_skirmish_id ${skirmishid} +host_workshop_collection ${wscollectionid} +workshop_start_map ${wsstartmap} -authkey ${wsapikey} -nobreakpad"
#### LinuxGSM Settings #### #### LinuxGSM Settings ####

180
lgsm/config-default/config-lgsm/necserver/_default.cfg

@ -0,0 +1,180 @@
##################################
######## Default Settings ########
##################################
# DO NOT EDIT, ANY CHANGES WILL BE OVERWRITTEN!
# Copy settings from here and use them in either:
# common.cfg - applies settings to every instance.
# [instance].cfg - applies settings to a specific instance.
#### Game Server Settings ####
## Pre-defined Paramters | https://docs.linuxgsm.com/configuration/start-parameters#predefined-parameters
worldname="MyWorld"
## Server Parameters | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
startparameters="-localdir -world ${worldname}"
#### LinuxGSM Settings ####
## LinuxGSM Stats
# Send useful stats to LinuxGSM developers.
# https://docs.linuxgsm.com/configuration/linuxgsm-stats
# (on|off)
stats="off"
## Notification Alerts
# (on|off)
# Display IP | https://docs.linuxgsm.com/alerts#display-ip
displayip=""
# More info | https://docs.linuxgsm.com/alerts#more-info
postalert="off"
# Discord Alerts | https://docs.linuxgsm.com/alerts/discord
discordalert="off"
discordwebhook="webhook"
# Email Alerts | https://docs.linuxgsm.com/alerts/email
emailalert="off"
email="[email protected]"
emailfrom=""
# Gotify Alerts | https://docs.linuxgsm.com/alerts/gotify
gotifyalert="off"
gotifytoken="token"
gotifywebhook="webhook"
# IFTTT Alerts | https://docs.linuxgsm.com/alerts/ifttt
iftttalert="off"
ifttttoken="accesstoken"
iftttevent="linuxgsm_alert"
# Mailgun Email Alerts | https://docs.linuxgsm.com/alerts/mailgun
mailgunalert="off"
mailgunapiregion="us"
mailguntoken="accesstoken"
mailgundomain="example.com"
mailgunemailfrom="[email protected]"
mailgunemail="[email protected]"
# Pushbullet Alerts | https://docs.linuxgsm.com/alerts/pushbullet
pushbulletalert="off"
pushbullettoken="accesstoken"
channeltag=""
# Pushover Alerts | https://docs.linuxgsm.com/alerts/pushover
pushoveralert="off"
pushovertoken="accesstoken"
pushoveruserkey="userkey"
# Rocket.Chat Alerts | https://docs.linuxgsm.com/alerts/rocket.chat
rocketchatalert="off"
rocketchatwebhook="webhook"
rocketchattoken=""
# Slack Alerts | https://docs.linuxgsm.com/alerts/slack
slackalert="off"
slackwebhook="webhook"
# Telegram Alerts | https://docs.linuxgsm.com/alerts/telegram
# You can add a custom cURL string eg proxy (useful in Russia) in "curlcustomstring".
# For example "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help".
telegramapi="api.telegram.org"
telegramalert="off"
telegramtoken="accesstoken"
telegramchatid=""
curlcustomstring=""
## Updating | https://docs.linuxgsm.com/commands/update
updateonstart="off"
## Backup | https://docs.linuxgsm.com/commands/backup
maxbackups="4"
maxbackupdays="30"
stoponbackup="on"
## Logging | https://docs.linuxgsm.com/features/logging
consolelogging="on"
logdays="7"
## Monitor | https://docs.linuxgsm.com/commands/monitor
# Query delay time
querydelay="1"
## ANSI Colors | https://docs.linuxgsm.com/features/ansi-colors
ansi="on"
#### Advanced Settings ####
## Message Display Time | https://docs.linuxgsm.com/features/message-display-time
sleeptime="0.5"
## SteamCMD Settings | https://docs.linuxgsm.com/steamcmd
# Server appid
appid="1169370"
steamcmdforcewindows="no"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
betapassword=""
# Master Server | https://docs.linuxgsm.com/steamcmd/steam-master-server
steammaster="false"
## Stop Mode | https://docs.linuxgsm.com/features/stop-mode
# 1: tmux kill
# 2: CTRL+c
# 3: quit
# 4: quit 120s
# 5: stop
# 6: q
# 7: exit
# 8: 7 Days to Die
# 9: GoldSrc
# 10: Avorion
# 11: end
stopmode="2"
## Query mode
# 1: session only
# 2: gamedig (gsquery fallback)
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-valve"
## Console type
consoleverbose="yes"
consoleinteract="no"
## Game Server Details
# Do not edit
gamename="Necesse"
#### Directories ####
# Edit with care
## Game Server Directories
systemdir="${serverfiles}"
executabledir="${serverfiles}"
executable="./StartServer-nogui.sh"
servercfgdir="${serverfiles}/cfg"
servercfg="server.cfg"
servercfgdefault="server.cfg"
servercfgfullpath="${servercfgdir}/${servercfg}"
## Backup Directory
backupdir="${lgsmdir}/backup"
## Logging Directories
logdir="${rootdir}/log"
gamelogdir="${systemdir}/logs"
lgsmlogdir="${logdir}/script"
consolelogdir="${logdir}/console"
lgsmlog="${lgsmlogdir}/${selfname}-script.log"
consolelog="${consolelogdir}/${selfname}-console.log"
alertlog="${lgsmlogdir}/${selfname}-alert.log"
postdetailslog="${lgsmlogdir}/${selfname}-postdetails.log"
## Logs Naming
lgsmlogdate="${lgsmlogdir}/${selfname}-script-$(date '+%Y-%m-%d-%H:%M:%S').log"
consolelogdate="${consolelogdir}/${selfname}-console-$(date '+%Y-%m-%d-%H:%M:%S').log"

9
lgsm/data/almalinux-8.csv

@ -15,7 +15,7 @@ bfv,compat-libstdc++-33.i686,glibc.i686
bmdm,ncurses-libs.i686 bmdm,ncurses-libs.i686
bo bo
bs bs
bt,libicu bt,libicu,dos2unix
bt1944 bt1944
cc cc
cd cd
@ -57,9 +57,9 @@ jc3
jk2 jk2
kf kf
kf2 kf2
lo
l4d l4d
l4d2 l4d2
lo
mc,java-11-openjdk mc,java-11-openjdk
mcb,libnsl mcb,libnsl
mh mh
@ -68,6 +68,7 @@ mom
mta,ncurses-compat-libs mta,ncurses-compat-libs
mumble mumble
nd nd
nec
nmrih,ncurses-libs.i686 nmrih,ncurses-libs.i686
ns ns
ns2,speex,tbb ns2,speex,tbb
@ -95,8 +96,8 @@ sbots
scpsl scpsl
scpslsm scpslsm
sdtd,telnet,expect sdtd,telnet,expect
sfc,ncurses-libs.i686
sf sf
sfc,ncurses-libs.i686
sof2 sof2
sol sol
squad squad
@ -117,9 +118,9 @@ ut2k4
ut3 ut3
ut99 ut99
vh,glibc-devel vh,glibc-devel
vs
vints,mono-complete vints,mono-complete
vpmc,java-11-openjdk vpmc,java-11-openjdk
vs
wet wet
wf wf
wmc,java-11-openjdk wmc,java-11-openjdk

Can't render this file because it has a wrong number of fields in line 2.

129
lgsm/data/almalinux-9.csv

@ -0,0 +1,129 @@
all,bc,binutils,bzip2,cpio,curl,epel-release,file,glibc.i686,gzip,hostname,jq,libstdc++.i686,nmap-ncat,python36,tar,tmux,unzip,util-linux,wget,xz
steamcmd,glibc.i686,libstdc++.i686
ac
ahl
ahl2
ark
arma3
armar,libcurl,openssl-libs
av
bb
bb2,libcurl.i686
bd
bf1942,ncurses-libs.i686
bfv,compat-libstdc++-33.i686,glibc.i686
bmdm,ncurses-libs.i686
bo
bs
bt,libicu,dos2unix
bt1944
cc
cd
cmw
cod,compat-libstdc++-33.i686
cod2,compat-libstdc++-33.i686
cod4
coduo,compat-libstdc++-33.i686
codwaw
col
cs
cscz
csgo
css,ncurses-libs.i686
dab
dayz
dmc
dod
dodr
dods
doi
dst,libcurl.i686
dys
eco,libgdiplus
em
etl
fctr
fof
gmod,ncurses-libs.i686
hl2dm
hldm
hldms
hw,zlib-devel
ins
inss
ios
jc2
jc3
jk2
kf
kf2
l4d
l4d2
lo
mc,java-11-openjdk
mcb,libnsl
mh
mohaa,compat-libstdc++-33.i686
mom
mta,ncurses-compat-libs
mumble
nd
nec
nmrih,ncurses-libs.i686
ns
ns2,speex,tbb
ns2c,speex.i686,tbb.i686
onset,mariadb-connector-c
opfor
pc
pmc,java-11-openjdk
pstbs,GConf2
pvkii
pvr,libcxx
pz,java-11-openjdk rng-tools
q2
q3
ql
qw
ricochet
ro
rtcw
rust,zlib-devel
rw,java-11-openjdk
samp
sb
sbots
scpsl
scpslsm
sdtd,telnet,expect
sf
sfc,ncurses-libs.i686
sof2
sol
squad
st
stn
sven
terraria
tf2,libcurl.i686
tfc
ti
ts
ts3
tu
tw
unt
ut
ut2k4
ut3
ut99
vh,glibc-devel
vints,mono-complete
vpmc,java-11-openjdk
vs
wet
wf
wmc,java-11-openjdk
wurm,xorg-x11-server-Xvfb
zmr,ncurses-libs.i686
zps,ncurses-libs.i686
Can't render this file because it has a wrong number of fields in line 2.

9
lgsm/data/centos-7.csv

@ -15,7 +15,7 @@ bfv,compat-libstdc++-33.i686,glibc.i686
bmdm,ncurses-libs.i686 bmdm,ncurses-libs.i686
bo bo
bs bs
bt,libicu bt,libicu,dos2unix
bt1944 bt1944
cc cc
cd cd
@ -57,9 +57,9 @@ jc3
jk2 jk2
kf kf
kf2 kf2
lo
l4d l4d
l4d2 l4d2
lo
mc,java-11-openjdk mc,java-11-openjdk
mcb,libnsl mcb,libnsl
mh mh
@ -68,6 +68,7 @@ mom
mta,ncurses-libs mta,ncurses-libs
mumble mumble
nd nd
nec
nmrih,ncurses-libs.i686 nmrih,ncurses-libs.i686
ns ns
ns2,speex,tbb ns2,speex,tbb
@ -95,8 +96,8 @@ sbots
scpsl scpsl
scpslsm scpslsm
sdtd,telnet,expect sdtd,telnet,expect
sfc,ncurses-libs.i686
sf sf
sfc,ncurses-libs.i686
sof2 sof2
sol sol
squad squad
@ -117,8 +118,8 @@ ut2k4
ut3 ut3
ut99 ut99
vh,glibc-devel vh,glibc-devel
vs
vints,mono-complete vints,mono-complete
vs
wet wet
wf wf
wmc,java-11-openjdk wmc,java-11-openjdk

Can't render this file because it has a wrong number of fields in line 2.

9
lgsm/data/centos-8.csv

@ -15,7 +15,7 @@ bfv,compat-libstdc++-33.i686,glibc.i686
bmdm,ncurses-libs.i686 bmdm,ncurses-libs.i686
bo bo
bs bs
bt,libicu bt,libicu,dos2unix
bt1944 bt1944
cc cc
cd cd
@ -57,9 +57,9 @@ jc3
jk2 jk2
kf kf
kf2 kf2
lo
l4d l4d
l4d2 l4d2
lo
mc,java-11-openjdk mc,java-11-openjdk
mcb,libnsl mcb,libnsl
mh mh
@ -68,6 +68,7 @@ mom
mta,ncurses-compat-libs mta,ncurses-compat-libs
mumble mumble
nd nd
nec
nmrih,ncurses-libs.i686 nmrih,ncurses-libs.i686
ns ns
ns2,speex,tbb ns2,speex,tbb
@ -95,8 +96,8 @@ sbots
scpsl scpsl
scpslsm scpslsm
sdtd,telnet,expect sdtd,telnet,expect
sfc,ncurses-libs.i686
sf sf
sfc,ncurses-libs.i686
sof2 sof2
sol sol
squad squad
@ -116,9 +117,9 @@ ut2k4
ut3 ut3
ut99 ut99
vh,glibc-devel vh,glibc-devel
vs
vints,mono-complete vints,mono-complete
vpmc,java-11-openjdk vpmc,java-11-openjdk
vs
wet wet
wf wf
wmc,java-11-openjdk wmc,java-11-openjdk

Can't render this file because it has a wrong number of fields in line 2.

128
lgsm/data/centos-9.csv

@ -0,0 +1,128 @@
all,bc,binutils,bzip2,cpio,curl,epel-release,file,glibc.i686,gzip,hostname,jq,libstdc++,libstdc++.i686,nmap-ncat,python36,tar,tmux,unzip,util-linux,wget,xz
steamcmd,glibc.i686,libstdc++.i686
ac
ahl
ahl2
ark
arma3
armar,libcurl,openssl-libs
av
bb
bb2,libcurl.i686
bd
bf1942,ncurses-libs.i686
bfv,compat-libstdc++-33.i686,glibc.i686
bmdm,ncurses-libs.i686
bo
bs
bt,libicu,dos2unix
bt1944
cc
cd
cmw
cod,compat-libstdc++-33.i686
cod2,compat-libstdc++-33.i686
cod4
coduo,compat-libstdc++-33.i686
codwaw
col
cs
cscz
csgo
css,ncurses-libs.i686
dab
dayz
dmc
dod
dodr
dods
doi
dst,libcurl.i686
dys
eco,libgdiplus
em
etl
fctr
fof
gmod,ncurses-libs.i686
hl2dm
hldm
hldms
hw,zlib-devel
ins
inss
ios
jc2
jc3
jk2
kf
kf2
l4d
l4d2
lo
mc,java-11-openjdk
mcb,libnsl
mh
mohaa,compat-libstdc++-33.i686
mom
mta,ncurses-compat-libs
mumble
nd
nec
nmrih,ncurses-libs.i686
ns
ns2,speex,tbb
ns2c,speex.i686,tbb.i686
onset,mariadb-connector-c
opfor
pc
pmc,java-11-openjdk
pstbs,GConf2
pvkii
pvr,libcxx
pz,java-11-openjdk rng-tools
q2
q3
ql
qw
ricochet
ro
rtcw
rust,zlib-devel
rw,java-11-openjdk
samp
sb
sbots
scpsl
scpslsm
sdtd,telnet,expect
sf
sfc,ncurses-libs.i686
sof2
sol
squad
st
sven
terraria
tf2,libcurl.i686
tfc
ti
ts
ts3
tu
tw
unt
ut
ut2k4
ut3
ut99
vh,glibc-devel
vints,mono-complete
vpmc,java-11-openjdk
vs
wet
wf
wmc,java-11-openjdk
wurm,xorg-x11-server-Xvfb
zmr,ncurses-libs.i686
zps,ncurses-libs.i686
Can't render this file because it has a wrong number of fields in line 2.

13
lgsm/data/debian-10.csv

@ -5,7 +5,7 @@ ahl
ahl2 ahl2
ark ark
arma3 arma3
armar,libcurl4,libssl1.1 armar,libcurl4
av av
bb bb
bb2,libcurl4-gnutls-dev:i386 bb2,libcurl4-gnutls-dev:i386
@ -15,7 +15,7 @@ bfv,libncurses5:i386,libstdc++5:i386
bmdm,libncurses5:i386 bmdm,libncurses5:i386
bo bo
bs bs
bt,libicu-dev bt,libicu-dev,dos2unix
bt1944 bt1944
cc cc
cd cd
@ -57,9 +57,9 @@ jc3
jk2 jk2
kf kf
kf2 kf2
lo
l4d l4d
l4d2 l4d2
lo
mc,openjdk-11-jre mc,openjdk-11-jre
mcb mcb
mh mh
@ -68,11 +68,12 @@ mom
mta,libncursesw5 mta,libncursesw5
mumble mumble
nd nd
nec
nmrih,libtinfo5:i386 nmrih,libtinfo5:i386
ns ns
ns2,speex,libtbb2 ns2,speex,libtbb2
ns2c,speex:i386,libtbb2 ns2c,speex:i386,libtbb2
onset,libmariadbclient-dev onset,libmariadb-dev
opfor opfor
pc pc
pmc,openjdk-11-jre pmc,openjdk-11-jre
@ -95,8 +96,8 @@ sbots
scpsl,mono-complete scpsl,mono-complete
scpslsm,mono-complete scpslsm,mono-complete
sdtd,telnet,expect sdtd,telnet,expect
sfc,libtinfo5:i386
sf sf
sfc,libtinfo5:i386
sof2 sof2
sol sol
squad squad
@ -117,9 +118,9 @@ ut2k4
ut3 ut3
ut99 ut99
vh,libc6-dev vh,libc6-dev
vs
vints,mono-complete vints,mono-complete
vpmc,openjdk-11-jre vpmc,openjdk-11-jre
vs
wet wet
wf wf
wmc,openjdk-11-jre wmc,openjdk-11-jre

Can't render this file because it has a wrong number of fields in line 2.

13
lgsm/data/debian-11.csv

@ -5,7 +5,7 @@ ahl
ahl2 ahl2
ark ark
arma3 arma3
armar,libcurl4,libssl1.1 armar,libcurl4
av av
bb bb
bb2,libcurl4-gnutls-dev:i386 bb2,libcurl4-gnutls-dev:i386
@ -15,7 +15,7 @@ bfv,libncurses5:i386,libstdc++5:i386
bmdm,libncurses5:i386 bmdm,libncurses5:i386
bo bo
bs bs
bt,libicu-dev bt,libicu-dev,dos2unix
bt1944 bt1944
cc cc
cd cd
@ -57,9 +57,9 @@ jc3
jk2 jk2
kf kf
kf2 kf2
lo
l4d l4d
l4d2 l4d2
lo
mc,openjdk-17-jre mc,openjdk-17-jre
mcb mcb
mh mh
@ -68,11 +68,12 @@ mom
mta,libncursesw5 mta,libncursesw5
mumble mumble
nd nd
nec
nmrih,libtinfo5:i386 nmrih,libtinfo5:i386
ns ns
ns2,speex,libtbb2 ns2,speex,libtbb2
ns2c,speex:i386,libtbb2 ns2c,speex:i386,libtbb2
onset,libmariadbclient-dev onset,libmariadb-dev
opfor opfor
pc pc
pmc,openjdk-17-jre pmc,openjdk-17-jre
@ -95,8 +96,8 @@ sbots
scpsl,mono-complete scpsl,mono-complete
scpslsm,mono-complete scpslsm,mono-complete
sdtd,telnet,expect sdtd,telnet,expect
sfc,libtinfo5:i386
sf sf
sfc,libtinfo5:i386
sof2 sof2
sol sol
squad squad
@ -117,9 +118,9 @@ ut2k4
ut3 ut3
ut99 ut99
vh,libc6-dev vh,libc6-dev
vs
vints,mono-complete vints,mono-complete
vpmc,openjdk-11-jre vpmc,openjdk-11-jre
vs
wet wet
wf wf
wmc,openjdk-17-jre wmc,openjdk-17-jre

Can't render this file because it has a wrong number of fields in line 2.

13
lgsm/data/debian-9.csv

@ -5,7 +5,7 @@ ahl
ahl2 ahl2
ark ark
arma3 arma3
armar,libcurl4,libssl1.1 armar,libcurl4
av av
bb bb
bb2,libcurl4-gnutls-dev:i386 bb2,libcurl4-gnutls-dev:i386
@ -15,7 +15,7 @@ bfv,libncurses5:i386,libstdc++5:i386
bmdm,libncurses5:i386 bmdm,libncurses5:i386
bo bo
bs bs
bt,libicu-dev bt,libicu-dev,dos2unix
bt1944 bt1944
cc cc
cd cd
@ -57,9 +57,9 @@ jc3
jk2 jk2
kf kf
kf2 kf2
lo
l4d l4d
l4d2 l4d2
lo
mc,openjdk-8-jre mc,openjdk-8-jre
mcb mcb
mh mh
@ -68,11 +68,12 @@ mom
mta,libncursesw5 mta,libncursesw5
mumble mumble
nd nd
nec
nmrih,libtinfo5:i386 nmrih,libtinfo5:i386
ns ns
ns2,speex,libtbb2 ns2,speex,libtbb2
ns2c,speex:i386,libtbb2 ns2c,speex:i386,libtbb2
onset,libmariadbclient-dev onset,libmariadb-dev
opfor opfor
pc pc
pmc,openjdk-8-jre pmc,openjdk-8-jre
@ -95,8 +96,8 @@ sbots
scpsl,mono-complete scpsl,mono-complete
scpslsm,mono-complete scpslsm,mono-complete
sdtd,telnet,expect sdtd,telnet,expect
sfc,libtinfo5:i386
sf sf
sfc,libtinfo5:i386
sof2 sof2
sol sol
squad squad
@ -117,8 +118,8 @@ ut2k4
ut3 ut3
ut99 ut99
vh,libc6-dev vh,libc6-dev
vs
vints,mono-complete vints,mono-complete
vs
wet wet
wf wf
wmc,openjdk-8-jre wmc,openjdk-8-jre

Can't render this file because it has a wrong number of fields in line 2.

7
lgsm/data/rhel-7.csv

@ -57,9 +57,9 @@ jc3
jk2 jk2
kf kf
kf2 kf2
lo
l4d l4d
l4d2 l4d2
lo
mc,java-11-openjdk mc,java-11-openjdk
mcb,libnsl mcb,libnsl
mh mh
@ -68,6 +68,7 @@ mom
mta mta
mumble mumble
nd nd
nec
nmrih,ncurses-libs.i686 nmrih,ncurses-libs.i686
ns ns
ns2,speex,tbb ns2,speex,tbb
@ -95,8 +96,8 @@ sbots
scpsl scpsl
scpslsm scpslsm
sdtd,telnet,expect sdtd,telnet,expect
sfc,ncurses-libs.i686
sf sf
sfc,ncurses-libs.i686
sof2 sof2
sol sol
squad squad
@ -117,9 +118,9 @@ ut2k4
ut3 ut3
ut99 ut99
vh,glibc-devel vh,glibc-devel
vs
vints,mono-complete vints,mono-complete
vpmc,java-11-openjdk vpmc,java-11-openjdk
vs
wet wet
wf wf
wmc,java-11-openjdk wmc,java-11-openjdk

Can't render this file because it has a wrong number of fields in line 2.

7
lgsm/data/rhel-8.csv

@ -57,9 +57,9 @@ jc3
jk2 jk2
kf kf
kf2 kf2
lo
l4d l4d
l4d2 l4d2
lo
mc,java-11-openjdk mc,java-11-openjdk
mcb,libnsl mcb,libnsl
mh mh
@ -68,6 +68,7 @@ mom
mta mta
mumble mumble
nd nd
nec
nmrih,ncurses-libs.i686 nmrih,ncurses-libs.i686
ns ns
ns2,speex,tbb ns2,speex,tbb
@ -95,8 +96,8 @@ sbots
scpsl scpsl
scpslsm scpslsm
sdtd,telnet,expect sdtd,telnet,expect
sfc,ncurses-libs.i686
sf sf
sfc,ncurses-libs.i686
sof2 sof2
sol sol
squad squad
@ -117,9 +118,9 @@ ut2k4
ut3 ut3
ut99 ut99
vh,glibc-devel vh,glibc-devel
vs
vints,mono-complete vints,mono-complete
vpmc,java-11-openjdk vpmc,java-11-openjdk
vs
wet wet
wf wf
wmc,java-11-openjdk wmc,java-11-openjdk

Can't render this file because it has a wrong number of fields in line 2.

129
lgsm/data/rhel-9.csv

@ -0,0 +1,129 @@
all,bc,binutils,bzip2,cpio,curl,epel-release,file,glibc.i686,gzip,hostname,jq,libstdc++.i686,nmap-ncat,python36,tar,tmux,unzip,util-linux,wget,xz
steamcmd,glibc.i686,libstdc++.i686
ac
ahl
ahl2
ark
arma3
armar,libcurl,openssl-libs
av
bb
bb2,libcurl.i686
bd
bf1942,ncurses-libs.i686
bfv,compat-libstdc++-33.i686,glibc.i686
bmdm,ncurses-libs.i686
bo
bs
bt,libicu
bt1944
cc
cd
cmw
cod,compat-libstdc++-33.i686
cod2,compat-libstdc++-33.i686
cod4
coduo,compat-libstdc++-33.i686
codwaw
col
cs
cscz
csgo
css,ncurses-libs.i686
dab
dayz
dmc
dod
dodr
dods
doi
dst,libcurl.i686
dys
eco,libgdiplus
em
etl
fctr
fof
gmod,ncurses-libs.i686
hl2dm
hldm
hldms
hw,zlib-devel
ins
inss
ios
jc2
jc3
jk2
kf
kf2
l4d
l4d2
lo
mc,java-11-openjdk
mcb,libnsl
mh
mohaa,compat-libstdc++-33.i686
mom
mta
mumble
nd
nec
nmrih,ncurses-libs.i686
ns
ns2,speex,tbb
ns2c,speex.i686,tbb.i686
onset,mariadb-connector-c
opfor
pc
pmc,java-11-openjdk
pstbs,GConf2
pvkii
pvr,libcxx
pz,java-11-openjdk rng-tools
q2
q3
ql
qw
ricochet
ro
rtcw
rust,zlib-devel
rw,java-11-openjdk
samp
sb
sbots
scpsl
scpslsm
sdtd,telnet,expect
sf
sfc,ncurses-libs.i686
sof2
sol
squad
st
stn
sven
terraria
tf2,libcurl.i686
tfc
ti
ts
ts3
tu
tw
unt
ut
ut2k4
ut3
ut99
vh,glibc-devel
vints,mono-complete
vpmc,java-11-openjdk
vs
wet
wf
wmc,java-11-openjdk
wurm,xorg-x11-server-Xvfb
zmr,ncurses-libs.i686
zps,ncurses-libs.i686
Can't render this file because it has a wrong number of fields in line 2.

9
lgsm/data/rocky-8.csv

@ -15,7 +15,7 @@ bfv,compat-libstdc++-33.i686,glibc.i686
bmdm,ncurses-libs.i686 bmdm,ncurses-libs.i686
bo bo
bs bs
bt,libicu bt,libicu,dos2unix
bt1944 bt1944
cc cc
cd cd
@ -57,9 +57,9 @@ jc3
jk2 jk2
kf kf
kf2 kf2
lo
l4d l4d
l4d2 l4d2
lo
mc,java-11-openjdk mc,java-11-openjdk
mcb,libnsl mcb,libnsl
mh mh
@ -68,6 +68,7 @@ mom
mta,ncurses-compat-libs mta,ncurses-compat-libs
mumble mumble
nd nd
nec
nmrih,ncurses-libs.i686 nmrih,ncurses-libs.i686
ns ns
ns2,speex,tbb ns2,speex,tbb
@ -95,8 +96,8 @@ sbots
scpsl scpsl
scpslsm scpslsm
sdtd,telnet,expect sdtd,telnet,expect
sfc,ncurses-libs.i686
sf sf
sfc,ncurses-libs.i686
sof2 sof2
sol sol
squad squad
@ -117,9 +118,9 @@ ut2k4
ut3 ut3
ut99 ut99
vh,glibc-devel vh,glibc-devel
vs
vints,mono-complete vints,mono-complete
vpmc,java-11-openjdk vpmc,java-11-openjdk
vs
wet wet
wf wf
wmc,java-11-openjdk wmc,java-11-openjdk

Can't render this file because it has a wrong number of fields in line 2.

129
lgsm/data/rocky-9.csv

@ -0,0 +1,129 @@
all,bc,binutils,bzip2,cpio,curl,epel-release,file,glibc.i686,gzip,hostname,jq,libstdc++.i686,nmap-ncat,python36,tar,tmux,unzip,util-linux,wget,xz
steamcmd,glibc.i686,libstdc++.i686
ac
ahl
ahl2
ark
arma3
armar,libcurl,openssl-libs
av
bb
bb2,libcurl.i686
bd
bf1942,ncurses-libs.i686
bfv,compat-libstdc++-33.i686,glibc.i686
bmdm,ncurses-libs.i686
bo
bs
bt,libicu,dos2unix
bt1944
cc
cd
cmw
cod,compat-libstdc++-33.i686
cod2,compat-libstdc++-33.i686
cod4
coduo,compat-libstdc++-33.i686
codwaw
col
cs
cscz
csgo
css,ncurses-libs.i686
dab
dayz
dmc
dod
dodr
dods
doi
dst,libcurl.i686
dys
eco,libgdiplus
em
etl
fctr
fof
gmod,ncurses-libs.i686
hl2dm
hldm
hldms
hw,zlib-devel
ins
inss
ios
jc2
jc3
jk2
kf
kf2
l4d
l4d2
lo
mc,java-11-openjdk
mcb,libnsl
mh
mohaa,compat-libstdc++-33.i686
mom
mta,ncurses-compat-libs
mumble
nd
nec
nmrih,ncurses-libs.i686
ns
ns2,speex,tbb
ns2c,speex.i686,tbb.i686
onset,mariadb-connector-c
opfor
pc
pmc,java-11-openjdk
pstbs,GConf2
pvkii
pvr,libcxx
pz,java-11-openjdk rng-tools
q2
q3
ql
qw
ricochet
ro
rtcw
rust,zlib-devel
rw,java-11-openjdk
samp
sb
sbots
scpsl
scpslsm
sdtd,telnet,expect
sf
sfc,ncurses-libs.i686
sof2
sol
squad
st
stn
sven
terraria
tf2,libcurl.i686
tfc
ti
ts
ts3
tu
tw
unt
ut
ut2k4
ut3
ut99
vh,glibc-devel
vints,mono-complete
vpmc,java-11-openjdk
vs
wet
wf
wmc,java-11-openjdk
wurm,xorg-x11-server-Xvfb
zmr,ncurses-libs.i686
zps,ncurses-libs.i686
Can't render this file because it has a wrong number of fields in line 2.

255
lgsm/data/serverlist.csv

@ -1,127 +1,128 @@
ac,acserver,Assetto Corsa ac,acserver,Assetto Corsa,ubuntu-22.04
ahl,ahlserver,Action Half-Life ahl,ahlserver,Action Half-Life,ubuntu-22.04
ahl2,ahl2server,Action: Source ahl2,ahl2server,Action: Source,ubuntu-22.04
ark,arkserver,ARK: Survival Evolved ark,arkserver,ARK: Survival Evolved,ubuntu-22.04
arma3,arma3server,ARMA 3 arma3,arma3server,ARMA 3,ubuntu-22.04
armar,armarserver,Arma Reforger armar,armarserver,Arma Reforger,ubuntu-20.04
av,avserver,Avorion av,avserver,Avorion,ubuntu-22.04
bb,bbserver,BrainBread bb,bbserver,BrainBread,ubuntu-22.04
bb2,bb2server,BrainBread 2 bb2,bb2server,BrainBread 2,ubuntu-22.04
bd,bdserver,Base Defense bd,bdserver,Base Defense,ubuntu-22.04
bf1942,bf1942server,Battlefield 1942 bf1942,bf1942server,Battlefield 1942,ubuntu-22.04
bfv,bfvserver,Battlefield: Vietnam bfv,bfvserver,Battlefield: Vietnam,ubuntu-22.04
bmdm,bmdmserver,Black Mesa: Deathmatch bmdm,bmdmserver,Black Mesa: Deathmatch,ubuntu-22.04
bo,boserver,Ballistic Overkill bo,boserver,Ballistic Overkill,ubuntu-22.04
bs,bsserver,Blade Symphony bs,bsserver,Blade Symphony,ubuntu-22.04
bt,btserver,Barotrauma bt,btserver,Barotrauma,ubuntu-22.04
bt1944,bt1944server,Battalion 1944 bt1944,bt1944server,Battalion 1944,ubuntu-22.04
cc,ccserver,Codename CURE cc,ccserver,Codename CURE,ubuntu-22.04
cd,cdserver,Crafting Dead cd,cdserver,Crafting Dead,ubuntu-22.04
cmw,cmwserver,Chivalry: Medieval Warfare cmw,cmwserver,Chivalry: Medieval Warfare,ubuntu-22.04
cod,codserver,Call of Duty cod,codserver,Call of Duty,ubuntu-22.04
cod2,cod2server,Call of Duty 2 cod2,cod2server,Call of Duty 2,ubuntu-22.04
cod4,cod4server,Call of Duty 4 cod4,cod4server,Call of Duty 4,ubuntu-22.04
coduo,coduoserver,Call of Duty: United Offensive coduo,coduoserver,Call of Duty: United Offensive,ubuntu-22.04
codwaw,codwawserver,Call of Duty: World at War codwaw,codwawserver,Call of Duty: World at War,ubuntu-22.04
col,colserver,Colony Survival col,colserver,Colony Survival,ubuntu-22.04
cs,csserver,Counter-Strike 1.6 cs,csserver,Counter-Strike 1.6,ubuntu-22.04
cscz,csczserver,Counter-Strike: Condition Zero cscz,csczserver,Counter-Strike: Condition Zero,ubuntu-22.04
csgo,csgoserver,Counter-Strike: Global Offensive csgo,csgoserver,Counter-Strike: Global Offensive,ubuntu-22.04
css,cssserver,Counter-Strike: Source css,cssserver,Counter-Strike: Source,ubuntu-22.04
dab,dabserver,Double Action: Boogaloo dab,dabserver,Double Action: Boogaloo,ubuntu-22.04
dayz,dayzserver,DayZ dayz,dayzserver,DayZ,ubuntu-22.04
dmc,dmcserver,Deathmatch Classic dmc,dmcserver,Deathmatch Classic,ubuntu-22.04
dod,dodserver,Day of Defeat dod,dodserver,Day of Defeat,ubuntu-22.04
dodr,dodrserver,Day of Dragons dodr,dodrserver,Day of Dragons,ubuntu-22.04
dods,dodsserver,Day of Defeat: Source dods,dodsserver,Day of Defeat: Source,ubuntu-22.04
doi,doiserver,Day of Infamy doi,doiserver,Day of Infamy,ubuntu-22.04
dst,dstserver,Don't Starve Together dst,dstserver,Don't Starve Together,ubuntu-22.04
dys,dysserver,Dystopia dys,dysserver,Dystopia,ubuntu-22.04
eco,ecoserver,Eco eco,ecoserver,Eco,ubuntu-22.04
em,emserver,Empires Mod em,emserver,Empires Mod,ubuntu-22.04
etl,etlserver,ET: Legacy etl,etlserver,ET: Legacy,ubuntu-22.04
fctr,fctrserver,Factorio fctr,fctrserver,Factorio,ubuntu-22.04
fof,fofserver,Fistful of Frags fof,fofserver,Fistful of Frags,ubuntu-22.04
gmod,gmodserver,Garrys Mod gmod,gmodserver,Garrys Mod,ubuntu-22.04
hl2dm,hl2dmserver,Half-Life 2: Deathmatch hl2dm,hl2dmserver,Half-Life 2: Deathmatch,ubuntu-22.04
hldm,hldmserver,Half-Life: Deathmatch hldm,hldmserver,Half-Life: Deathmatch,ubuntu-22.04
hldms,hldmsserver,Half-Life Deathmatch: Source hldms,hldmsserver,Half-Life Deathmatch: Source,ubuntu-22.04
hw,hwserver,Hurtworld hw,hwserver,Hurtworld,ubuntu-22.04
ins,insserver,Insurgency ins,insserver,Insurgency,ubuntu-22.04
inss,inssserver,Insurgency: Sandstorm inss,inssserver,Insurgency: Sandstorm,ubuntu-22.04
ios,iosserver,IOSoccer ios,iosserver,IOSoccer,ubuntu-22.04
jc2,jc2server,Just Cause 2 jc2,jc2server,Just Cause 2,ubuntu-22.04
jc3,jc3server,Just Cause 3 jc3,jc3server,Just Cause 3,ubuntu-22.04
jk2,jk2server,Jedi Knight II: Jedi Outcast jk2,jk2server,Jedi Knight II: Jedi Outcast,ubuntu-22.04
kf,kfserver,Killing Floor kf,kfserver,Killing Floor,ubuntu-22.04
kf2,kf2server,Killing Floor 2 kf2,kf2server,Killing Floor 2,ubuntu-22.04
lo,loserver,Last Oasis l4d,l4dserver,Left 4 Dead,ubuntu-22.04
l4d,l4dserver,Left 4 Dead l4d2,l4d2server,Left 4 Dead 2,ubuntu-22.04
l4d2,l4d2server,Left 4 Dead 2 lo,loserver,Last Oasis,ubuntu-22.04
mc,mcserver,Minecraft mc,mcserver,Minecraft,ubuntu-22.04
mcb,mcbserver,Minecraft Bedrock mcb,mcbserver,Minecraft Bedrock,ubuntu-22.04
mh,mhserver,MORDHAU mh,mhserver,MORDHAU,ubuntu-22.04
mohaa,mohaaserver,Medal of Honor: Allied Assault mohaa,mohaaserver,Medal of Honor: Allied Assault,ubuntu-22.04
mom,momserver,Memories of Mars mom,momserver,Memories of Mars,ubuntu-22.04
mta,mtaserver,Multi Theft Auto mta,mtaserver,Multi Theft Auto,ubuntu-22.04
mumble,mumbleserver,Mumble mumble,mumbleserver,Mumble,ubuntu-22.04
nd,ndserver,Nuclear Dawn nd,ndserver,Nuclear Dawn,ubuntu-22.04
nmrih,nmrihserver,No More Room in Hell nec,necserver,Necesse,ubuntu-22.04
ns,nsserver,Natural Selection nmrih,nmrihserver,No More Room in Hell,ubuntu-22.04
ns2,ns2server,Natural Selection 2 ns,nsserver,Natural Selection,ubuntu-22.04
ns2c,ns2cserver,NS2: Combat ns2,ns2server,Natural Selection 2,ubuntu-22.04
onset,onsetserver,Onset ns2c,ns2cserver,NS2: Combat,ubuntu-22.04
opfor,opforserver,Opposing Force onset,onsetserver,Onset,ubuntu-20.04
pc,pcserver,Project Cars opfor,opforserver,Opposing Force,ubuntu-22.04
pc2,pc2server,Project Cars 2 pc,pcserver,Project Cars,ubuntu-22.04
pmc,pmcserver,PaperMC pc2,pc2server,Project Cars 2,ubuntu-22.04
pstbs,pstbsserver,Post Scriptum: The Bloody Seventh pmc,pmcserver,PaperMC,ubuntu-22.04
pvkii,pvkiiserver,Pirates Vikings & Knights II pstbs,pstbsserver,Post Scriptum: The Bloody Seventh,ubuntu-22.04
pvr,pvrserver,Pavlov VR pvkii,pvkiiserver,Pirates Vikings & Knights II,ubuntu-22.04
pz,pzserver,Project Zomboid pvr,pvrserver,Pavlov VR,ubuntu-22.04
q2,q2server,Quake 2 pz,pzserver,Project Zomboid,ubuntu-22.04
q3,q3server,Quake 3: Arena q2,q2server,Quake 2,ubuntu-22.04
ql,qlserver,Quake Live q3,q3server,Quake 3: Arena,ubuntu-22.04
qw,qwserver,Quake World ql,qlserver,Quake Live,ubuntu-22.04
ricochet,ricochetserver,Ricochet qw,qwserver,Quake World,ubuntu-22.04
ro,roserver,Red Orchestra: Ostfront 41-45 ricochet,ricochetserver,Ricochet,ubuntu-22.04
rtcw,rtcwserver,Return to Castle Wolfenstein ro,roserver,Red Orchestra: Ostfront 41-45,ubuntu-22.04
rust,rustserver,Rust rtcw,rtcwserver,Return to Castle Wolfenstein,ubuntu-22.04
rw,rwserver,Rising World rust,rustserver,Rust,ubuntu-22.04
samp,sampserver,San Andreas Multiplayer rw,rwserver,Rising World,ubuntu-22.04
sb,sbserver,Starbound samp,sampserver,San Andreas Multiplayer,ubuntu-22.04
sbots,sbotsserver,StickyBots sb,sbserver,Starbound,ubuntu-22.04
scpsl,scpslserver,SCP: Secret Laboratory sbots,sbotsserver,StickyBots,ubuntu-22.04
scpslsm,scpslsmserver,SCP: Secret Laboratory ServerMod scpsl,scpslserver,SCP: Secret Laboratory,ubuntu-22.04
sdtd,sdtdserver,7 Days to Die scpslsm,scpslsmserver,SCP: Secret Laboratory ServerMod,ubuntu-22.04
sfc,sfcserver,SourceForts Classic sdtd,sdtdserver,7 Days to Die,ubuntu-22.04
sf,sfserver,Satisfactory sf,sfserver,Satisfactory,ubuntu-22.04
sof2,sof2server,Soldier Of Fortune 2: Gold Edition sfc,sfcserver,SourceForts Classic,ubuntu-22.04
sol,solserver,Soldat sof2,sof2server,Soldier Of Fortune 2: Gold Edition,ubuntu-22.04
squad,squadserver,Squad sol,solserver,Soldat,ubuntu-22.04
st,stserver,Stationeers squad,squadserver,Squad,ubuntu-22.04
stn,stnserver,Survive the Nights st,stserver,Stationeers,ubuntu-22.04
sven,svenserver,Sven Co-op stn,stnserver,Survive the Nights,ubuntu-22.04
terraria,terrariaserver,Terraria sven,svenserver,Sven Co-op,ubuntu-20.04
tf2,tf2server,Team Fortress 2 terraria,terrariaserver,Terraria,ubuntu-22.04
tfc,tfcserver,Team Fortress Classic tf2,tf2server,Team Fortress 2,ubuntu-22.04
ti,tiserver,The Isle tfc,tfcserver,Team Fortress Classic,ubuntu-22.04
ts,tsserver,The Specialists ti,tiserver,The Isle,ubuntu-22.04
ts3,ts3server,Teamspeak 3 ts,tsserver,The Specialists,ubuntu-22.04
tu,tuserver,Tower Unite ts3,ts3server,Teamspeak 3,ubuntu-22.04
tw,twserver,Teeworlds tu,tuserver,Tower Unite,ubuntu-22.04
unt,untserver,Unturned tw,twserver,Teeworlds,ubuntu-22.04
ut,utserver,Unreal Tournament unt,untserver,Unturned,ubuntu-22.04
ut2k4,ut2k4server,Unreal Tournament 2004 ut,utserver,Unreal Tournament,ubuntu-22.04
ut3,ut3server,Unreal Tournament 3 ut2k4,ut2k4server,Unreal Tournament 2004,ubuntu-22.04
ut99,ut99server,Unreal Tournament 99 ut3,ut3server,Unreal Tournament 3,ubuntu-22.04
vh,vhserver,Valheim ut99,ut99server,Unreal Tournament 99,ubuntu-22.04
vints,vintsserver,Vintage Story vh,vhserver,Valheim,ubuntu-22.04
vpmc,vpmcserver,Velocity Proxy MC vints,vintsserver,Vintage Story,ubuntu-22.04
vs,vsserver,Vampire Slayer vpmc,vpmcserver,Velocity Proxy MC,ubuntu-22.04
wet,wetserver,Wolfenstein: Enemy Territory vs,vsserver,Vampire Slayer,ubuntu-22.04
wf,wfserver,Warfork wet,wetserver,Wolfenstein: Enemy Territory,ubuntu-22.04
wmc,wmcserver,WaterfallMC wf,wfserver,Warfork,ubuntu-22.04
wurm,wurmserver,Wurm Unlimited wmc,wmcserver,WaterfallMC,ubuntu-22.04
zmr,zmrserver,Zombie Master: Reborn wurm,wurmserver,Wurm Unlimited,ubuntu-22.04
zps,zpsserver,Zombie Panic! Source zmr,zmrserver,Zombie Master: Reborn,ubuntu-22.04
zps,zpsserver,Zombie Panic! Source,ubuntu-22.04

Can't render this file because it has a wrong number of fields in line 47.

11
lgsm/data/ubuntu-16.04.csv

@ -14,7 +14,7 @@ bfv,libncurses5:i386,libstdc++5:i386
bmdm,libncurses5:i386 bmdm,libncurses5:i386
bo bo
bs bs
bt,libicu-dev bt,libicu-dev,dos2unix
bt1944 bt1944
cc cc
cd cd
@ -56,9 +56,9 @@ jc3
jk2 jk2
kf kf
kf2 kf2
lo
l4d l4d
l4d2 l4d2
lo
mc,openjdk-8-jre mc,openjdk-8-jre
mcb mcb
mh mh
@ -67,11 +67,12 @@ mom
mta mta
mumble mumble
nd nd
nec
nmrih,libtinfo5:i386 nmrih,libtinfo5:i386
ns ns
ns2,speex,libtbb2 ns2,speex,libtbb2
ns2c,speex:i386,libtbb2 ns2c,speex:i386,libtbb2
onset,libmariadbclient-dev onset,libmariadb-dev
opfor opfor
pc pc
pmc,openjdk-8-jre pmc,openjdk-8-jre
@ -94,8 +95,8 @@ sbots
scpsl,mono-complete scpsl,mono-complete
scpslsm,mono-complete scpslsm,mono-complete
sdtd,telnet,expect sdtd,telnet,expect
sfc,libtinfo5:i386
sf sf
sfc,libtinfo5:i386
sof2 sof2
sol sol
squad squad
@ -116,8 +117,8 @@ ut2k4
ut3 ut3
ut99 ut99
vh,libc6-dev vh,libc6-dev
vs
vints,mono-complete vints,mono-complete
vs
wet wet
wf wf
wmc,openjdk-8-jre wmc,openjdk-8-jre

Can't render this file because it has a wrong number of fields in line 2.

13
lgsm/data/ubuntu-18.04.csv

@ -5,7 +5,7 @@ ahl
ahl2 ahl2
ark ark
arma3 arma3
armar,libcurl4,libssl1.1 armar,libcurl4
av av
bb bb
bb2,libcurl4-gnutls-dev:i386 bb2,libcurl4-gnutls-dev:i386
@ -15,7 +15,7 @@ bfv,libncurses5:i386,libstdc++5:i386
bmdm,libncurses5:i386 bmdm,libncurses5:i386
bo bo
bs bs
bt,libicu-dev bt,libicu-dev,dos2unix
bt1944 bt1944
cc cc
cd cd
@ -57,9 +57,9 @@ jc3
jk2 jk2
kf kf
kf2 kf2
lo
l4d l4d
l4d2 l4d2
lo
mc,openjdk-11-jre mc,openjdk-11-jre
mcb mcb
mh mh
@ -68,11 +68,12 @@ mom
mta,libncursesw5 mta,libncursesw5
mumble mumble
nd nd
nec
nmrih,libtinfo5:i386 nmrih,libtinfo5:i386
ns ns
ns2,speex,libtbb2 ns2,speex,libtbb2
ns2c,speex:i386,libtbb2 ns2c,speex:i386,libtbb2
onset,libmariadbclient-dev onset,libmariadb-dev
opfor opfor
pc pc
pmc,openjdk-11-jre pmc,openjdk-11-jre
@ -95,8 +96,8 @@ sbots
scpsl,mono-complete scpsl,mono-complete
scpslsm,mono-complete scpslsm,mono-complete
sdtd,telnet,expect sdtd,telnet,expect
sfc,libtinfo5:i386
sf sf
sfc,libtinfo5:i386
sof2 sof2
sol sol
squad squad
@ -117,9 +118,9 @@ ut2k4
ut3 ut3
ut99 ut99
vh,libc6-dev vh,libc6-dev
vs
vints,mono-complete vints,mono-complete
vpmc,openjdk-11-jre vpmc,openjdk-11-jre
vs
wet wet
wf wf
wmc,openjdk-11-jre wmc,openjdk-11-jre

Can't render this file because it has a wrong number of fields in line 2.

13
lgsm/data/ubuntu-20.04.csv

@ -5,7 +5,7 @@ ahl
ahl2 ahl2
ark ark
arma3 arma3
armar,libcurl4,libssl1.1 armar,libcurl4
av av
bb bb
bb2,libcurl4-gnutls-dev:i386 bb2,libcurl4-gnutls-dev:i386
@ -15,7 +15,7 @@ bfv,libncurses5:i386,libstdc++5:i386
bmdm,libncurses5:i386 bmdm,libncurses5:i386
bo bo
bs bs
bt,libicu-dev bt,libicu-dev,dos2unix
bt1944 bt1944
cc cc
cd cd
@ -57,9 +57,9 @@ jc3
jk2 jk2
kf kf
kf2 kf2
lo
l4d l4d
l4d2 l4d2
lo
mc,openjdk-17-jre mc,openjdk-17-jre
mcb mcb
mh mh
@ -68,11 +68,12 @@ mom
mta,libncursesw5 mta,libncursesw5
mumble mumble
nd nd
nec
nmrih,libtinfo5:i386 nmrih,libtinfo5:i386
ns ns
ns2,speex,libtbb2 ns2,speex,libtbb2
ns2c,speex:i386,libtbb2 ns2c,speex:i386,libtbb2
onset,libmariadbclient-dev onset,libmariadb-dev
opfor opfor
pc pc
pmc,openjdk-17-jre pmc,openjdk-17-jre
@ -95,8 +96,8 @@ sbots
scpsl,mono-complete scpsl,mono-complete
scpslsm,mono-complete scpslsm,mono-complete
sdtd,telnet,expect sdtd,telnet,expect
sfc,libtinfo5:i386
sf sf
sfc,libtinfo5:i386
sof2 sof2
sol sol
squad squad
@ -117,9 +118,9 @@ ut2k4
ut3 ut3
ut99 ut99
vh,libc6-dev vh,libc6-dev
vs
vints,mono-complete vints,mono-complete
vpmc,openjdk-11-jre vpmc,openjdk-11-jre
vs
wet wet
wf wf
wmc,openjdk-17-jre wmc,openjdk-17-jre

Can't render this file because it has a wrong number of fields in line 2.

15
lgsm/data/ubuntu-21.04.csv

@ -5,7 +5,7 @@ ahl
ahl2 ahl2
ark ark
arma3 arma3
armar,libcurl4,libssl1.1 armar,libcurl4
av av
bb bb
bb2,libcurl4-gnutls-dev:i386 bb2,libcurl4-gnutls-dev:i386
@ -15,7 +15,7 @@ bfv,libncurses5:i386,libstdc++5:i386
bmdm,libncurses5:i386 bmdm,libncurses5:i386
bo bo
bs bs
bt,libicu-dev bt,libicu-dev,dos2unix
bt1944 bt1944
cc cc
cd cd
@ -57,9 +57,9 @@ jc3
jk2 jk2
kf kf
kf2 kf2
lo
l4d l4d
l4d2 l4d2
lo
mc,openjdk-17-jre mc,openjdk-17-jre
mcb mcb
mh mh
@ -68,11 +68,12 @@ mom
mta,libncursesw5 mta,libncursesw5
mumble mumble
nd nd
nec
nmrih,libtinfo5:i386 nmrih,libtinfo5:i386
ns ns
ns2,speex,libtbb2 ns2,speex,libtbb2
ns2c,speex:i386,libtbb2 ns2c,speex:i386,libtbb2
onset,libmariadbclient-dev onset,libmariadb-dev
opfor opfor
pc pc
pmc,openjdk-17-jre pmc,openjdk-17-jre
@ -95,15 +96,15 @@ sbots
scpsl,mono-complete scpsl,mono-complete
scpslsm,mono-complete scpslsm,mono-complete
sdtd,telnet,expect sdtd,telnet,expect
sfc,libtinfo5:i386
sf sf
sfc,libtinfo5:i386
sof2 sof2
sol sol
squad squad
st st
stn stn
sven,libssl1.1:i386,zlib1g:i386 sven,libssl1.1:i386,zlib1g:i386
terraria,libsdl terraria
tf2,libcurl4-gnutls-dev:i386 tf2,libcurl4-gnutls-dev:i386
tfc tfc
ti ti
@ -117,9 +118,9 @@ ut2k4
ut3 ut3
ut99 ut99
vh,libc6-dev vh,libc6-dev
vs
vints,mono-complete vints,mono-complete
vpmc,openjdk-11-jre vpmc,openjdk-11-jre
vs
wet wet
wf wf
wmc,openjdk-17-jre wmc,openjdk-17-jre

Can't render this file because it has a wrong number of fields in line 2.

13
lgsm/data/ubuntu-21.10.csv

@ -5,7 +5,7 @@ ahl
ahl2 ahl2
ark ark
arma3 arma3
armar,libcurl4,libssl1.1 armar,libcurl4
av av
bb bb
bb2,libcurl4-gnutls-dev:i386 bb2,libcurl4-gnutls-dev:i386
@ -55,9 +55,9 @@ jc3
jk2 jk2
kf kf
kf2 kf2
lo
l4d l4d
l4d2 l4d2
lo
mc,openjdk-17-jre mc,openjdk-17-jre
mcb mcb
mh mh
@ -66,11 +66,12 @@ mom
mta,libncursesw5 mta,libncursesw5
mumble mumble
nd nd
nec
nmrih,libtinfo5:i386 nmrih,libtinfo5:i386
ns ns
ns2,speex,libtbb2 ns2,speex,libtbb2
ns2c,speex:i386,libtbb2 ns2c,speex:i386,libtbb2
onset,libmariadbclient-dev onset,libmariadb-dev
opfor opfor
pc pc
pmc,openjdk-17-jre pmc,openjdk-17-jre
@ -93,15 +94,15 @@ sbots
scpsl,mono-complete scpsl,mono-complete
scpslsm,mono-complete scpslsm,mono-complete
sdtd,telnet,expect sdtd,telnet,expect
sfc,libtinfo5:i386
sf sf
sfc,libtinfo5:i386
sof2 sof2
sol sol
squad squad
st st
stn stn
sven,libssl1.1:i386,zlib1g:i386 sven,libssl1.1:i386,zlib1g:i386
terraria,libsdl terraria
tf2,libcurl4-gnutls-dev:i386 tf2,libcurl4-gnutls-dev:i386
tfc tfc
ti ti
@ -115,9 +116,9 @@ ut2k4
ut3 ut3
ut99 ut99
vh,libc6-dev vh,libc6-dev
vs
vints,mono-complete vints,mono-complete
vpmc,openjdk-11-jre vpmc,openjdk-11-jre
vs
wet wet
wf wf
wmc,openjdk-17-jre wmc,openjdk-17-jre

Can't render this file because it has a wrong number of fields in line 2.

15
lgsm/data/ubuntu-22.04.csv

@ -5,7 +5,7 @@ ahl
ahl2 ahl2
ark ark
arma3 arma3
armar,libcurl4,libssl1.1 armar,libcurl4
av av
bb bb
bb2,libcurl4-gnutls-dev:i386 bb2,libcurl4-gnutls-dev:i386
@ -15,7 +15,7 @@ bfv,libncurses5:i386,libstdc++5:i386
bmdm,libncurses5:i386 bmdm,libncurses5:i386
bo bo
bs bs
bt,libicu-dev bt,libicu-dev,dos2unix
bt1944 bt1944
cc cc
cmw cmw
@ -55,9 +55,9 @@ jc3
jk2 jk2
kf kf
kf2 kf2
lo
l4d l4d
l4d2 l4d2
lo
mc,openjdk-17-jre mc,openjdk-17-jre
mcb mcb
mh mh
@ -66,11 +66,12 @@ mom
mta,libncursesw5 mta,libncursesw5
mumble mumble
nd nd
nec
nmrih,libtinfo5:i386 nmrih,libtinfo5:i386
ns ns
ns2,speex,libtbb2 ns2,speex,libtbb2
ns2c,speex:i386,libtbb2 ns2c,speex:i386,libtbb2
onset,libmariadbclient-dev onset,libmariadb-dev
opfor opfor
pc pc
pmc,openjdk-17-jre pmc,openjdk-17-jre
@ -93,15 +94,15 @@ sbots
scpsl,mono-complete scpsl,mono-complete
scpslsm,mono-complete scpslsm,mono-complete
sdtd,telnet,expect sdtd,telnet,expect
sfc,libtinfo5:i386
sf sf
sfc,libtinfo5:i386
sof2 sof2
sol sol
squad squad
st st
stn stn
sven,libssl1.1:i386,zlib1g:i386 sven,libssl1.1:i386,zlib1g:i386
terraria,libsdl terraria
tf2,libcurl4-gnutls-dev:i386 tf2,libcurl4-gnutls-dev:i386
tfc tfc
ti ti
@ -115,9 +116,9 @@ ut2k4
ut3 ut3
ut99 ut99
vh,libc6-dev vh,libc6-dev
vs
vints,mono-complete vints,mono-complete
vpmc,openjdk-11-jre vpmc,openjdk-11-jre
vs
wet wet
wf wf
wmc,openjdk-17-jre wmc,openjdk-17-jre

Can't render this file because it has a wrong number of fields in line 2.

2
lgsm/functions/check_deps.sh

@ -337,7 +337,7 @@ fi
if [ -f "${datadir}/${distroid}-${distroversioncsv}.csv" ]; then if [ -f "${datadir}/${distroid}-${distroversioncsv}.csv" ]; then
depall=$(awk -F, '$1=="all" {$1=""; print $0}' "${datadir}/${distroid}-${distroversioncsv}.csv") depall=$(awk -F, '$1=="all" {$1=""; print $0}' "${datadir}/${distroid}-${distroversioncsv}.csv")
depsteamcmd=$(awk -F, '$1=="steamcmd" {$1=""; print $0}' "${datadir}/${distroid}-${distroversioncsv}.csv") depsteamcmd=$(awk -F, '$1=="steamcmd" {$1=""; print $0}' "${datadir}/${distroid}-${distroversioncsv}.csv")
depshortname=$(awk -v shortname="$shortname" -F, '$1==shortname {$1=""; print $0}' "${datadir}/${distroid}-${distroversioncsv}.csv") depshortname=$(awk -v shortname="${shortname}" -F, '$1==shortname {$1=""; print $0}' "${datadir}/${distroid}-${distroversioncsv}.csv")
# Generate array of missing deps. # Generate array of missing deps.
array_deps_missing=() array_deps_missing=()

1
lgsm/functions/check_executable.sh

@ -8,6 +8,7 @@
functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")" functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
# Check if executable exists # Check if executable exists
execname=$(basename "${executable}")
if [ ! -f "${executabledir}/${execname}" ]; then if [ ! -f "${executabledir}/${execname}" ]; then
fn_print_fail_nl "executable was not found" fn_print_fail_nl "executable was not found"
echo -e "* ${executabledir}/${execname}" echo -e "* ${executabledir}/${execname}"

6
lgsm/functions/check_permissions.sh

@ -223,10 +223,8 @@ fn_sys_perm_error_process() {
fi fi
} }
# Run perm error detect & fix/alert functions on /sys directories. ## Run permisions checks when not root or docker.
if [ "$(whoami)" != "root" ] && [ ! -f /.dockerenv ]; then
## Run checks.
if [ "$(whoami)" != "root" ] || [ -f /.dockerenv ]; then
fn_check_ownership fn_check_ownership
fn_check_permissions fn_check_permissions
if [ "${commandname}" == "START" ]; then if [ "${commandname}" == "START" ]; then

56
lgsm/functions/command_dev_query_raw.sh

@ -28,169 +28,169 @@ echo -e "=================================================================="
{ {
echo -e "${lightblue}Port Name \tPort Number \tStatus \tTCP \tUDP${default}" echo -e "${lightblue}Port Name \tPort Number \tStatus \tTCP \tUDP${default}"
if [ -v port ]; then if [ -v port ]; then
echo -e "Game: \t${port} \t$(ss -tupl | grep ${port} | wc -l) \t$(ss -tupl | grep ${port} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${port} | grep udp | awk '{ print $2 }')" echo -e "Game: \t${port} \t$(ss -tupl | grep -c ${port}) \t$(ss -tupl | grep ${port} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${port} | grep udp | awk '{ print $2 }')"
else else
echo -e "Game:" echo -e "Game:"
fi fi
if [ "${shortname}" == "rw" ]; then if [ "${shortname}" == "rw" ]; then
if [ -v port2 ]; then if [ -v port2 ]; then
echo -e "Game+1: \t${port2} \t$(ss -tupl | grep ${port} | wc -l) \t$(ss -tupl | grep ${port2} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${port2} | grep udp | awk '{ print $2 }')" echo -e "Game+1: \t${port2} \t$(ss -tupl | grep -c ${port}) \t$(ss -tupl | grep ${port2} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${port2} | grep udp | awk '{ print $2 }')"
else else
echo -e "Game+1:" echo -e "Game+1:"
fi fi
if [ -v port3 ]; then if [ -v port3 ]; then
echo -e "Game+2: \t${port3} \t$(ss -tupl | grep ${port} | wc -l) \t$(ss -tupl | grep ${port3} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${port3} | grep udp | awk '{ print $2 }')" echo -e "Game+2: \t${port3} \t$(ss -tupl | grep -c ${port}) \t$(ss -tupl | grep ${port3} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${port3} | grep udp | awk '{ print $2 }')"
else else
echo -e "Game+2:" echo -e "Game+2:"
fi fi
if [ -v port4 ]; then if [ -v port4 ]; then
echo -e "Game+3: \t${port4} \t$(ss -tupl | grep ${port} | wc -l) \t$(ss -tupl | grep ${port4} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${port4} | grep udp | awk '{ print $2 }')" echo -e "Game+3: \t${port4} \t$(ss -tupl | grep -c ${port}) \t$(ss -tupl | grep ${port4} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${port4} | grep udp | awk '{ print $2 }')"
else else
echo -e "Game+3:" echo -e "Game+3:"
fi fi
fi fi
if [ -v port401 ]; then if [ -v port401 ]; then
echo -e "Game+400: \t${port401} \t$(ss -tupl | grep ${port401} | wc -l) \t$(ss -tupl | grep ${port401} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${port401} | grep udp | awk '{ print $2 }')" echo -e "Game+400: \t${port401} \t$(ss -tupl | grep -c ${port401}) \t$(ss -tupl | grep ${port401} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${port401} | grep udp | awk '{ print $2 }')"
else else
echo -e "Game+400:" echo -e "Game+400:"
fi fi
if [ -v portipv6 ]; then if [ -v portipv6 ]; then
echo -e "Game ipv6: \t${portipv6} \t$(ss -tupl | grep ${portipv6} | wc -l) \t$(ss -tupl | grep ${portipv6} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${portipv6} | grep udp | awk '{ print $2 }')" echo -e "Game ipv6: \t${portipv6} \t$(ss -tupl | grep -c ${portipv6}) \t$(ss -tupl | grep ${portipv6} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${portipv6} | grep udp | awk '{ print $2 }')"
else else
echo -e "Game ipv6:" echo -e "Game ipv6:"
fi fi
if [ -v queryport ]; then if [ -v queryport ]; then
echo -e "Query: \t${queryport} \t$(ss -tupl | grep ${queryport} | wc -l) \t$(ss -tupl | grep ${queryport} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${queryport} | grep udp | awk '{ print $2 }')" echo -e "Query: \t${queryport} \t$(ss -tupl | grep -c ${queryport}) \t$(ss -tupl | grep ${queryport} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${queryport} | grep udp | awk '{ print $2 }')"
else else
echo -e "Query:" echo -e "Query:"
fi fi
if [ -v httpport ]; then if [ -v httpport ]; then
echo -e "HTTP: \t${httpport} \t$(ss -tupl | grep ${httpport} | wc -l) \t$(ss -tupl | grep ${httpport} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${httpport} | grep udp | awk '{ print $2 }')" echo -e "HTTP: \t${httpport} \t$(ss -tupl | grep -c ${httpport}) \t$(ss -tupl | grep ${httpport} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${httpport} | grep udp | awk '{ print $2 }')"
else else
echo -e "HTTP:" echo -e "HTTP:"
fi fi
if [ -v httpqueryport ]; then if [ -v httpqueryport ]; then
echo -e "HTTP Query: \t${httpqueryport} \t$(ss -tupl | grep ${httpqueryport} | wc -l) \t$(ss -tupl | grep ${httpqueryport} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${httpqueryport} | grep udp | awk '{ print $2 }')" echo -e "HTTP Query: \t${httpqueryport} \t$(ss -tupl | grep -c ${httpqueryport}) \t$(ss -tupl | grep ${httpqueryport} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${httpqueryport} | grep udp | awk '{ print $2 }')"
else else
echo -e "HTTP Query:" echo -e "HTTP Query:"
fi fi
if [ -v webadminport ]; then if [ -v webadminport ]; then
echo -e "Web Admin: \t${webadminport} \t$(ss -tupl | grep ${webadminport} | wc -l) \t$(ss -tupl | grep ${webadminport} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${webadminport} | grep udp | awk '{ print $2 }')" echo -e "Web Admin: \t${webadminport} \t$(ss -tupl | grep -c ${webadminport}) \t$(ss -tupl | grep ${webadminport} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${webadminport} | grep udp | awk '{ print $2 }')"
else else
echo -e "Web Admin:" echo -e "Web Admin:"
fi fi
if [ -v clientport ]; then if [ -v clientport ]; then
echo -e "Client: \t${clientport} \t$(ss -tupl | grep ${clientport} | wc -l) \t$(ss -tupl | grep ${clientport} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${clientport} | grep udp | awk '{ print $2 }')" echo -e "Client: \t${clientport} \t$(ss -tupl | grep -c ${clientport}) \t$(ss -tupl | grep ${clientport} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${clientport} | grep udp | awk '{ print $2 }')"
else else
echo -e "Client:" echo -e "Client:"
fi fi
if [ -v rconport ]; then if [ -v rconport ]; then
echo -e "RCON: \t${rconport} \t$(ss -tupl | grep ${rconport} | wc -l) \t$(ss -tupl | grep ${rconport} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${rconport} | grep udp | awk '{ print $2 }')" echo -e "RCON: \t${rconport} \t$(ss -tupl | grep -c ${rconport}) \t$(ss -tupl | grep ${rconport} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${rconport} | grep udp | awk '{ print $2 }')"
else else
echo -e "RCON:" echo -e "RCON:"
fi fi
if [ -v rawport ]; then if [ -v rawport ]; then
echo -e "RAW UDP Socket: \t${rawport} \t$(ss -tupl | grep ${rawport} | wc -l) \t$(ss -tupl | grep ${rawport} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${rawport} | grep udp | awk '{ print $2 }')" echo -e "RAW UDP Socket: \t${rawport} \t$(ss -tupl | grep -c ${rawport}) \t$(ss -tupl | grep ${rawport} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${rawport} | grep udp | awk '{ print $2 }')"
else else
echo -e "RAW UDP Socket:" echo -e "RAW UDP Socket:"
fi fi
if [ -v masterport ]; then if [ -v masterport ]; then
echo -e "Game: Master: \t${masterport} \t$(ss -tupl | grep ${masterport} | wc -l) \t$(ss -tupl | grep ${masterport} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${masterport} | grep udp | awk '{ print $2 }')" echo -e "Game: Master: \t${masterport} \t$(ss -tupl | grep -c ${masterport}) \t$(ss -tupl | grep ${masterport} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${masterport} | grep udp | awk '{ print $2 }')"
else else
echo -e "Game: Master:" echo -e "Game: Master:"
fi fi
if [ -v steamport ]; then if [ -v steamport ]; then
echo -e "Steam: \t${steamport} \t$(ss -tupl | grep ${steamport} | wc -l) \t$(ss -tupl | grep ${steamport} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${steamport} | grep udp | awk '{ print $2 }')" echo -e "Steam: \t${steamport} \t$(ss -tupl | grep -c ${steamport}) \t$(ss -tupl | grep ${steamport} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${steamport} | grep udp | awk '{ print $2 }')"
else else
echo -e "Steam:" echo -e "Steam:"
fi fi
if [ -v steamauthport ]; then if [ -v steamauthport ]; then
echo -e "Steam: Auth: \t${steamauthport} \t$(ss -tupl | grep ${steamauthport} | wc -l) \t$(ss -tupl | grep ${steamauthport} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${steamauthport} | grep udp | awk '{ print $2 }')" echo -e "Steam: Auth: \t${steamauthport} \t$(ss -tupl | grep -c ${steamauthport}) \t$(ss -tupl | grep ${steamauthport} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${steamauthport} | grep udp | awk '{ print $2 }')"
else else
echo -e "Steam: Auth:" echo -e "Steam: Auth:"
fi fi
if [ -v steammasterport ]; then if [ -v steammasterport ]; then
echo -e "Steam: Master: \t${steammasterport} \t$(ss -tupl | grep ${steammasterport} | wc -l) \t$(ss -tupl | grep ${steammasterport} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${steammasterport} | grep udp | awk '{ print $2 }')" echo -e "Steam: Master: \t${steammasterport} \t$(ss -tupl | grep -c ${steammasterport}) \t$(ss -tupl | grep ${steammasterport} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${steammasterport} | grep udp | awk '{ print $2 }')"
else else
echo -e "Steam: Master:" echo -e "Steam: Master:"
fi fi
if [ -v steamqueryport ]; then if [ -v steamqueryport ]; then
echo -e "Steam: Query: \t${steamqueryport} \t$(ss -tupl | grep ${steamqueryport} | wc -l) \t$(ss -tupl | grep ${steamqueryport} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${steamqueryport} | grep udp | awk '{ print $2 }')" echo -e "Steam: Query: \t${steamqueryport} \t$(ss -tupl | grep -c ${steamqueryport}) \t$(ss -tupl | grep ${steamqueryport} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${steamqueryport} | grep udp | awk '{ print $2 }')"
else else
echo -e "Steam: Query:" echo -e "Steam: Query:"
fi fi
if [ -v beaconport ]; then if [ -v beaconport ]; then
echo -e "Beacon: \t${beaconport} \t$(ss -tupl | grep ${beaconport} | wc -l) \t$(ss -tupl | grep ${beaconport} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${beaconport} | grep udp | awk '{ print $2 }')" echo -e "Beacon: \t${beaconport} \t$(ss -tupl | grep -c ${beaconport}) \t$(ss -tupl | grep ${beaconport} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${beaconport} | grep udp | awk '{ print $2 }')"
else else
echo -e "Beacon:" echo -e "Beacon:"
fi fi
if [ -v appport ]; then if [ -v appport ]; then
echo -e "App: \t${appport} \t$(ss -tupl | grep ${appport} | wc -l) \t$(ss -tupl | grep ${appport} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${appport} | grep udp | awk '{ print $2 }')" echo -e "App: \t${appport} \t$(ss -tupl | grep -c ${appport}) \t$(ss -tupl | grep ${appport} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${appport} | grep udp | awk '{ print $2 }')"
else else
echo -e "App:" echo -e "App:"
fi fi
if [ -v telnetport ]; then if [ -v telnetport ]; then
echo -e "Telnet: \t${telnetport} \t$(ss -tupl | grep ${telnetport} | wc -l) \t$(ss -tupl | grep ${telnetport} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${telnetport} | grep udp | awk '{ print $2 }')" echo -e "Telnet: \t${telnetport} \t$(ss -tupl | grep -c ${telnetport}) \t$(ss -tupl | grep ${telnetport} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${telnetport} | grep udp | awk '{ print $2 }')"
else else
echo -e "Telnet:" echo -e "Telnet:"
fi fi
if [ -v sourcetvport ]; then if [ -v sourcetvport ]; then
echo -e "SourceTV: \t${sourcetvport} \t$(ss -tupl | grep ${sourcetvport} | wc -l) \t$(ss -tupl | grep ${sourcetvport} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${sourcetvport} | grep udp | awk '{ print $2 }')" echo -e "SourceTV: \t${sourcetvport} \t$(ss -tupl | grep -c ${sourcetvport}) \t$(ss -tupl | grep ${sourcetvport} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${sourcetvport} | grep udp | awk '{ print $2 }')"
else else
echo -e "SourceTV:" echo -e "SourceTV:"
fi fi
if [ -v fileport ]; then if [ -v fileport ]; then
echo -e "File: \t${fileport} \t$(ss -tupl | grep ${fileport} | wc -l) \t$(ss -tupl | grep ${fileport} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${fileport} | grep udp | awk '{ print $2 }')" echo -e "File: \t${fileport} \t$(ss -tupl | grep -c ${fileport}) \t$(ss -tupl | grep ${fileport} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${fileport} | grep udp | awk '{ print $2 }')"
else else
echo -e "File:" echo -e "File:"
fi fi
if [ -v udplinkport ]; then if [ -v udplinkport ]; then
echo -e "UDP Link: \t${udplinkport} \t$(ss -tupl | grep ${udplinkport} | wc -l) \t$(ss -tupl | grep ${udplinkport} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${udplinkport} | grep udp | awk '{ print $2 }')" echo -e "UDP Link: \t${udplinkport} \t$(ss -tupl | grep -c ${udplinkport}) \t$(ss -tupl | grep ${udplinkport} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${udplinkport} | grep udp | awk '{ print $2 }')"
else else
echo -e "UDP Link:" echo -e "UDP Link:"
fi fi
if [ -v voiceport ]; then if [ -v voiceport ]; then
echo -e "Voice: \t${voiceport} \t$(ss -tupl | grep ${voiceport} | wc -l) \t$(ss -tupl | grep ${voiceport} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${voiceport} | grep udp | awk '{ print $2 }')" echo -e "Voice: \t${voiceport} \t$(ss -tupl | grep -c ${voiceport}) \t$(ss -tupl | grep ${voiceport} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${voiceport} | grep udp | awk '{ print $2 }')"
else else
echo -e "Voice:" echo -e "Voice:"
fi fi
if [ -v voiceunusedport ]; then if [ -v voiceunusedport ]; then
echo -e "Voice (Unused): \t${voiceunusedport} \t$(ss -tupl | grep ${voiceunusedport} | wc -l) \t$(ss -tupl | grep ${voiceunusedport} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${voiceunusedport} | grep udp | awk '{ print $2 }')" echo -e "Voice (Unused): \t${voiceunusedport} \t$(ss -tupl | grep -c ${voiceunusedport}) \t$(ss -tupl | grep ${voiceunusedport} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${voiceunusedport} | grep udp | awk '{ print $2 }')"
else else
echo -e "Voice (Unused):" echo -e "Voice (Unused):"
fi fi
if [ -v battleeyeport ]; then if [ -v battleeyeport ]; then
echo -e "BattleEye: \t${battleeyeport} \t$(ss -tupl | grep ${battleeyeport} | wc -l) \t$(ss -tupl | grep ${battleeyeport} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${battleeyeport} | grep udp | awk '{ print $2 }')" echo -e "BattleEye: \t${battleeyeport} \t$(ss -tupl | grep -c ${battleeyeport}) \t$(ss -tupl | grep ${battleeyeport} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${battleeyeport} | grep udp | awk '{ print $2 }')"
else else
echo -e "BattleEye:" echo -e "BattleEye:"
fi fi
if [ -v statsport ]; then if [ -v statsport ]; then
echo -e "Stats: \t${battleeyeport} \t$(ss -tupl | grep ${statsport} | wc -l) \t$(ss -tupl | grep ${statsport} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${statsport} | grep udp | awk '{ print $2 }')" echo -e "Stats: \t${battleeyeport} \t$(ss -tupl | grep -c ${statsport}) \t$(ss -tupl | grep ${statsport} | grep tcp | awk '{ print $2 }') \t$(ss -tupl | grep ${statsport} | grep udp | awk '{ print $2 }')"
else else
echo -e "Stats:" echo -e "Stats:"
fi fi

2
lgsm/functions/core_getopt.sh

@ -75,7 +75,7 @@ if [ "${shortname}" == "jk2" ] || [ "${engine}" != "idtech3" ]; then
fi fi
# Validate and check-update command. # Validate and check-update command.
if [ "${appid}" ]||[ "${shortname}" == "ts3" ]; then if [ "${appid}" ] || [ "${shortname}" == "ts3" ]; then
currentopt+=("${cmd_validate[@]}" "${cmd_check_update[@]}") currentopt+=("${cmd_validate[@]}" "${cmd_check_update[@]}")
fi fi

8
lgsm/functions/fix_bt.sh

@ -14,3 +14,11 @@ if [ ! -d "${XDG_DATA_HOME:="${HOME}/.local/share"}/Daedalic Entertainment GmbH/
mkdir -p "${XDG_DATA_HOME:="${HOME}/.local/share"}/Daedalic Entertainment GmbH/Barotrauma" mkdir -p "${XDG_DATA_HOME:="${HOME}/.local/share"}/Daedalic Entertainment GmbH/Barotrauma"
fn_fix_msg_end fn_fix_msg_end
fi fi
# check if startscript is with windows line endings and reformat it
if file -b "${serverfiles}${executable:1}" | grep -q CRLF; then
fixname="Convert ${executable:2} to unix file format"
fn_fix_msg_start
dos2unix -q "${serverfiles}${executable:1}"
fn_fix_msg_end
fi

10
lgsm/functions/fix_lo.sh

@ -6,12 +6,12 @@
functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")" functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
local APPID_FILE=${executabledir}/steam_appid.txt appidfile=${executabledir}/steam_appid.txt
if [ ! -f "${APPID_FILE}" ]; then if [ ! -f "${appidfile}" ]; then
fn_print_information "adding ${APPID_FILE} to ${gamename} server." fn_print_information "adding ${appidfile} to ${gamename} server."
fn_sleep_time fn_sleep_time
echo "903950" > "${APPID_FILE}" echo "903950" > "${appidfile}"
else else
fn_print_information "${APPID_FILE} already exists. No action to be taken." fn_print_information "${appidfile} already exists. No action to be taken."
fn_sleep_time fn_sleep_time
fi fi

16
lgsm/functions/fix_vh.sh

@ -8,14 +8,28 @@ functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
export LD_LIBRARY_PATH=./linux64:$LD_LIBRARY_PATH export LD_LIBRARY_PATH=./linux64:$LD_LIBRARY_PATH
# special check if Valheim Plus is installed
modsdir="${lgsmdir}/mods" modsdir="${lgsmdir}/mods"
modsinstalledlistfullpath="${modsdir}/installed-mods.txt" modsinstalledlistfullpath="${modsdir}/installed-mods.txt"
if [ -f "${modsinstalledlistfullpath}" ]; then if [ -f "${modsinstalledlistfullpath}" ]; then
# special check if Valheim Plus is installed
if grep -qE "^valheimplus" "${modsinstalledlistfullpath}"; then if grep -qE "^valheimplus" "${modsinstalledlistfullpath}"; then
if ! grep -qE "^executable=\"./start_server_bepinex.sh\"" "${configdirserver}/${selfname}.cfg"; then if ! grep -qE "^executable=\"./start_server_bepinex.sh\"" "${configdirserver}/${selfname}.cfg"; then
echo 'executable="./start_server_bepinex.sh"' >> "${configdirserver}/${selfname}.cfg" echo 'executable="./start_server_bepinex.sh"' >> "${configdirserver}/${selfname}.cfg"
executable="./start_server_bepinex.sh" executable="./start_server_bepinex.sh"
fi fi
fi fi
# special exports for BepInEx if installed
if grep -qE "^bepinexvh" "${modsinstalledlistfullpath}"; then
fn_print_info_nl "BepInEx install detected, applying start exports"
fn_script_log_info "BepInEx install detected, applying start exports"
# exports for BepInEx framework from script start_server_bepinex.sh
export DOORSTOP_ENABLE=TRUE
export DOORSTOP_INVOKE_DLL_PATH=./BepInEx/core/BepInEx.Preloader.dll
export DOORSTOP_CORLIB_OVERRIDE_PATH=./unstripped_corlib
export LD_LIBRARY_PATH="./doorstop_libs:${LD_LIBRARY_PATH}"
export LD_PRELOAD="libdoorstop_x64.so:${LD_PRELOAD}"
export SteamAppId=892970
fi
fi fi

137
lgsm/functions/info_game.sh

@ -17,24 +17,24 @@ functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
fn_info_game_ac() { fn_info_game_ac() {
# Config # Config
if [ ! -f "${servercfgfullpath}" ]; then if [ ! -f "${servercfgfullpath}" ]; then
adminpassword="${unavailable}"
httpport="${zero}" httpport="${zero}"
port="${zero}" port="${zero}"
queryport="${zero}" queryport="${zero}"
servername="${unavailable}" servername="${unavailable}"
adminpassword="${unavailable}"
else else
adminpassword=$(grep "ADMIN_PASSWORD" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/ADMIN_PASSWORD//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
httpport=$(grep "HTTP_PORT" "${servercfgfullpath}" | tr -cd '[:digit:]') httpport=$(grep "HTTP_PORT" "${servercfgfullpath}" | tr -cd '[:digit:]')
port=$(grep "TCP_PORT" "${servercfgfullpath}" | tr -cd '[:digit:]') port=$(grep "TCP_PORT" "${servercfgfullpath}" | tr -cd '[:digit:]')
queryport="${httpport}" queryport="${httpport}"
servername=$(grep "NAME" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/NAME//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//' | head -n 1) servername=$(grep "NAME" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/NAME//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//' | head -n 1)
adminpassword=$(grep "ADMIN_PASSWORD" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/ADMIN_PASSWORD//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
# Not set # Not set
adminpassword=${adminpassword:-"NOT SET"}
httpport=${httpport:-"0"} httpport=${httpport:-"0"}
port=${port:-"0"} port=${port:-"0"}
queryport=${queryport:-"0"} queryport=${queryport:-"0"}
servername=${servername:-"NOT SET"} servername=${servername:-"NOT SET"}
adminpassword=${adminpassword:-"NOT SET"}
fi fi
} }
@ -42,67 +42,74 @@ fn_info_game_ac() {
fn_info_game_ark() { fn_info_game_ark() {
# Config # Config
if [ ! -f "${servercfgfullpath}" ]; then if [ ! -f "${servercfgfullpath}" ]; then
servername="${unavailable}"
adminpassword="${unavailable}" adminpassword="${unavailable}"
servername="${unavailable}"
serverpassword="${unavailable}" serverpassword="${unavailable}"
else else
servername=$(sed -nr 's/^SessionName=(.*)/\1/p' "${servercfgfullpath}")
adminpassword=$(sed -nr 's/^ServerAdminPassword=(.*)/\1/p' "${servercfgfullpath}") adminpassword=$(sed -nr 's/^ServerAdminPassword=(.*)/\1/p' "${servercfgfullpath}")
servername=$(sed -nr 's/^SessionName=(.*)/\1/p' "${servercfgfullpath}")
serverpassword=$(sed -nr 's/^ServerPassword=(.*)/\1/p' "${servercfgfullpath}") serverpassword=$(sed -nr 's/^ServerPassword=(.*)/\1/p' "${servercfgfullpath}")
# Not set # Not set
servername=${servername:-"NOT SET"}
adminpassword=${adminpassword:-"NOT SET"} adminpassword=${adminpassword:-"NOT SET"}
servername=${servername:-"NOT SET"}
serverpassword=${serverpassword:-"NOT SET"} serverpassword=${serverpassword:-"NOT SET"}
fi fi
# Parameters # Parameters
maxplayers=${maxplayers:-"0"}
port=${port:-"0"} port=${port:-"0"}
queryport=${queryport:-"0"} queryport=${queryport:-"0"}
rconport=${rconport:-"0"}
rawport=$((port + 1)) rawport=$((port + 1))
maxplayers=${maxplayers:-"0"} rconport=${rconport:-"0"}
} }
fn_info_game_arma3() { fn_info_game_arma3() {
# Config # Config
if [ ! -f "${servercfgfullpath}" ]; then if [ ! -f "${servercfgfullpath}" ]; then
servername="${unavailable}"
adminpassword="${unavailable}" adminpassword="${unavailable}"
serverpassword="${unavailable}"
maxplayers="${zero}" maxplayers="${zero}"
servername="${unavailable}"
serverpassword="${unavailable}"
else else
servername=$(sed -nr 's/^hostname\s*=\s*"(.*)"\s*;/\1/p' "${servercfgfullpath}")
adminpassword=$(sed -nr 's/^passwordAdmin\s*=\s*"(.*)"\s*;/\1/p' "${servercfgfullpath}") adminpassword=$(sed -nr 's/^passwordAdmin\s*=\s*"(.*)"\s*;/\1/p' "${servercfgfullpath}")
serverpassword=$(sed -nr 's/^password\s*=\s*"(.*)"\s*;/\1/p' "${servercfgfullpath}")
maxplayers=$(sed -nr 's/^maxPlayers\s*=\s*([0-9]+)\s*;/\1/p' "${servercfgfullpath}") maxplayers=$(sed -nr 's/^maxPlayers\s*=\s*([0-9]+)\s*;/\1/p' "${servercfgfullpath}")
servername=$(sed -nr 's/^hostname\s*=\s*"(.*)"\s*;/\1/p' "${servercfgfullpath}")
serverpassword=$(sed -nr 's/^password\s*=\s*"(.*)"\s*;/\1/p' "${servercfgfullpath}")
# Not set # Not set
servername=${servername:-"NOT SET"}
adminpassword=${adminpassword:-"NOT SET"} adminpassword=${adminpassword:-"NOT SET"}
serverpassword=${serverpassword:-"NOT SET"}
maxplayers=${maxplayers:-"0"} maxplayers=${maxplayers:-"0"}
servername=${servername:-"NOT SET"}
serverpassword=${serverpassword:-"NOT SET"}
fi fi
# Parameters # Parameters
battleeyeport=$((port + 4))
port=${port:-"2302"} port=${port:-"2302"}
voiceport=${port:-"2302"}
queryport=$((port + 1)) queryport=$((port + 1))
steammasterport=$((port + 2)) steammasterport=$((port + 2))
voiceport=${port:-"2302"}
voiceunusedport=$((port + 3)) voiceunusedport=$((port + 3))
battleeyeport=$((port + 4))
} }
fn_info_game_armar() { fn_info_game_armar() {
if [ -f "${servercfgfullpath}" ]; then if [ ! -f "${servercfgfullpath}" ]; then
adminpassword="${unavailable}"
maxplayers="${zero}"
port=${port:-"0"}
queryport=
servername="${unavailable}"
serverpassword="${unavailable}"
else
adminpassword=$(jq -r '.adminPassword' "${servercfgfullpath}") adminpassword=$(jq -r '.adminPassword' "${servercfgfullpath}")
battleeyeport=1376
configip=$(jq -r '.gameHostBindAddress' "${servercfgfullpath}") configip=$(jq -r '.gameHostBindAddress' "${servercfgfullpath}")
maxplayers=$(jq -r '.game.playerCountLimit' "${servercfgfullpath}") maxplayers=$(jq -r '.game.playerCountLimit' "${servercfgfullpath}")
port=$(jq -r '.gameHostBindPort' "${servercfgfullpath}") port=$(jq -r '.gameHostBindPort' "${servercfgfullpath}")
queryport=$(jq -r '.steamQueryPort' "${servercfgfullpath}") queryport=$(jq -r '.steamQueryPort' "${servercfgfullpath}")
servername=$(jq -r '.game.name' "${servercfgfullpath}") servername=$(jq -r '.game.name' "${servercfgfullpath}")
serverpassword=$(jq -r '.game.password' "${servercfgfullpath}") serverpassword=$(jq -r '.game.password' "${servercfgfullpath}")
battleeyeport=1376
# Not set # Not set
adminpassword=${adminpassword:-"NOT SET"} adminpassword=${adminpassword:-"NOT SET"}
@ -112,10 +119,6 @@ fn_info_game_armar() {
queryport=${queryport:-"0"} queryport=${queryport:-"0"}
servername=${servername:-"NOT SET"} servername=${servername:-"NOT SET"}
serverpassword=${serverpassword:-"NOT SET"} serverpassword=${serverpassword:-"NOT SET"}
else
port=${port:-"0"}
servername="${unavailable}"
serverpassword="${unavailable}"
fi fi
} }
@ -148,7 +151,7 @@ fn_info_game_av() {
fi fi
# Not set # Not set
maxplayers=${maxplayers:-"NOT SET"} maxplayers=${maxplayers:-"0"}
servername=${servername:-"NOT SET"} servername=${servername:-"NOT SET"}
serverpassword=${serverpassword:-"NOT SET"} serverpassword=${serverpassword:-"NOT SET"}
port=${port:-"0"} port=${port:-"0"}
@ -233,7 +236,7 @@ fn_info_game_bo() {
serverpassword=${serverpassword:-"NOT SET"} serverpassword=${serverpassword:-"NOT SET"}
port=${port:-"0"} port=${port:-"0"}
queryport=${queryport:-"0"} queryport=${queryport:-"0"}
maxplayers=${maxplayers:-"NOT SET"} maxplayers=${maxplayers:-"0"}
fi fi
} }
@ -477,7 +480,7 @@ fn_info_game_dodr() {
maxplayers=$(sed -nr 's/^iServerMaxPlayers=(.*)$/\1/p' "${servercfgfullpath}") maxplayers=$(sed -nr 's/^iServerMaxPlayers=(.*)$/\1/p' "${servercfgfullpath}")
# Not set # Not set
maxplayers=${maxplayers:-"NOT SET"} maxplayers=${maxplayers:-"0"}
fi fi
# Parameters # Parameters
@ -907,7 +910,7 @@ fn_info_game_mc() {
servername=${servername:-"NOT SET"} servername=${servername:-"NOT SET"}
rconpassword=${rconpassword:-"NOT SET"} rconpassword=${rconpassword:-"NOT SET"}
rconport=${rconport:-"NOT SET"} rconport=${rconport:-"NOT SET"}
maxplayers=${maxplayers:-"NOT SET"} maxplayers=${maxplayers:-"0"}
port=${port:-"NOT SET"} port=${port:-"NOT SET"}
queryport=${queryport:-"NOT SET"} queryport=${queryport:-"NOT SET"}
queryenabled="${queryenabled:-"NOT SET"}" queryenabled="${queryenabled:-"NOT SET"}"
@ -938,7 +941,7 @@ fn_info_game_mcb() {
# Not set # Not set
servername=${servername:-"NOT SET"} servername=${servername:-"NOT SET"}
maxplayers=${maxplayers:-"NOT SET"} maxplayers=${maxplayers:-"0"}
port=${port:-"NOT SET"} port=${port:-"NOT SET"}
portipv6=${portipv6:-"NOT SET"} portipv6=${portipv6:-"NOT SET"}
queryport=${queryport:-"NOT SET"} queryport=${queryport:-"NOT SET"}
@ -1004,7 +1007,7 @@ fn_info_game_mom() {
if [ ! -f "${servercfgfullpath}" ]; then if [ ! -f "${servercfgfullpath}" ]; then
servername="${unavailable}" servername="${unavailable}"
serverpassword="${unavailable}" serverpassword="${unavailable}"
maxplayer="${zero}" maxplayers="${zero}"
defaultmap="${unavailable}" defaultmap="${unavailable}"
else else
servername=$(grep "ServerName" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^--/d' -e 's/ServerName//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//') servername=$(grep "ServerName" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^--/d' -e 's/ServerName//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
@ -1015,7 +1018,7 @@ fn_info_game_mom() {
# Not set # Not set
servername=${servername:-"NOT SET"} servername=${servername:-"NOT SET"}
serverpassword=${serverpassword:-"NOT SET"} serverpassword=${serverpassword:-"NOT SET"}
maxplayer=${maxplayers:-"NOT SET"} maxplayers=${maxplayers:-"0"}
defaultmap=${defaultmap:-"NOT SET"} defaultmap=${defaultmap:-"NOT SET"}
fi fi
@ -1079,6 +1082,26 @@ fn_info_game_mumble() {
fi fi
} }
fn_info_game_nec() {
# Config
if [ ! -f "${servercfgfullpath}" ]; then
maxplayers=${maxplayers:-"0"}
port=${port:-"0"}
servername="Necesse"
serverpassword="${unavailable}"
else
maxplayers=$(grep "slots" "${servercfgfullpath}" | cut -f1 -d "/" | tr -cd '[:digit:]')
port=$(grep "port" "${servercfgfullpath}" | cut -f1 -d "/" | tr -cd '[:digit:]')
serverpassword=$(grep "password" "${servercfgfullpath}" | cut -f1 -d "/" | tr -cd '[:digit:]')
# Not set
maxplayers=${maxplayers:-"0"}
port=${port:-"0"}
servername="Necesse Port ${port}"
serverpassword=${serverpassword:-"NOT SET"}
fi
}
fn_info_game_onset() { fn_info_game_onset() {
# Config # Config
if [ ! -f "${servercfgfullpath}" ]; then if [ ! -f "${servercfgfullpath}" ]; then
@ -1096,7 +1119,7 @@ fn_info_game_onset() {
# Not set # Not set
servername=${servername:-"NOT SET"} servername=${servername:-"NOT SET"}
maxplayers=${maxplayers:-"NOT SET"} maxplayers=${maxplayers:-"0"}
port=${port:-"NOT SET"} port=${port:-"NOT SET"}
httpport=${httpport:-"NOT SET"} httpport=${httpport:-"NOT SET"}
queryport=${queryport:-"NOT SET"} queryport=${queryport:-"NOT SET"}
@ -1123,7 +1146,7 @@ fn_info_game_pc() {
# Not set # Not set
servername=${servername:-"NOT SET"} servername=${servername:-"NOT SET"}
serverpassword=${serverpassword:-"NOT SET"} serverpassword=${serverpassword:-"NOT SET"}
maxplayers=${maxplayers:-"NOT SET"} maxplayers=${maxplayers:-"0"}
port=${port:-"NOT SET"} port=${port:-"NOT SET"}
queryport=${queryport:-"NOT SET"} queryport=${queryport:-"NOT SET"}
steamport=${steamport:-"NOT SET"} steamport=${steamport:-"NOT SET"}
@ -1150,7 +1173,7 @@ fn_info_game_pc2() {
# Not set # Not set
servername=${servername:-"NOT SET"} servername=${servername:-"NOT SET"}
serverpassword=${serverpassword:-"NOT SET"} serverpassword=${serverpassword:-"NOT SET"}
maxplayers=${maxplayers:-"NOT SET"} maxplayers=${maxplayers:-"0"}
port=${port:-"NOT SET"} port=${port:-"NOT SET"}
queryport=${queryport:-"NOT SET"} queryport=${queryport:-"NOT SET"}
steamport=${steamport:-"NOT SET"} steamport=${steamport:-"NOT SET"}
@ -1491,7 +1514,7 @@ fn_info_game_rw() {
serverpassword=${serverpassword:-"NOT SET"} serverpassword=${serverpassword:-"NOT SET"}
rconpassword=${rconpassword:-"NOT SET"} rconpassword=${rconpassword:-"NOT SET"}
rconport=${rconport:-"NOT SET"} rconport=${rconport:-"NOT SET"}
maxplayers=${maxplayers:-"NOT SET"} maxplayers=${maxplayers:-"0"}
port=${port:-"0"} port=${port:-"0"}
port2=${port2:-"0"} port2=${port2:-"0"}
port3=${port3:-"0"} port3=${port3:-"0"}
@ -1588,18 +1611,18 @@ fn_info_game_sbots() {
fn_info_game_scpsl() { fn_info_game_scpsl() {
# Config # Config
if [ -f "${servercfgfullpath}" ]; then if [ ! -f "${servercfgfullpath}" ]; then
servername=$(sed -nr 's/^server_name: (.*)$/\1/p' "${servercfgfullpath}")
maxplayers=$(sed -nr 's/^max_players: (.*)$/\1/p' "${servercfgfullpath}")
configip=$(sed -nr 's/^ipv4_bind_ip: (.*)$/\1/p' "${servercfgfullpath}")
tickrate=$(sed -nr 's/^server_tickrate: (.*)$/\1/p' "${servercfgfullpath}")
adminpassword=$(sed -nr 's/^administrator_query_password: (.*)$/\1/p' "${servercfgfullpath}")
else
servername=${servername:-"NOT SET"} servername=${servername:-"NOT SET"}
maxplayers=${maxplayers:-"0"} maxplayers=${maxplayers:-"0"}
configip=${configip:-"0.0.0.0"} configip=${configip:-"0.0.0.0"}
tickrate=${tickrate:-"NOT SET"} tickrate=${tickrate:-"NOT SET"}
adminpassword=${adminpassword:-"NOT SET"} adminpassword=${adminpassword:-"NOT SET"}
else
servername=$(sed -nr 's/^server_name: (.*)$/\1/p' "${servercfgfullpath}")
maxplayers=$(sed -nr 's/^max_players: (.*)$/\1/p' "${servercfgfullpath}")
configip=$(sed -nr 's/^ipv4_bind_ip: (.*)$/\1/p' "${servercfgfullpath}")
tickrate=$(sed -nr 's/^server_tickrate: (.*)$/\1/p' "${servercfgfullpath}")
adminpassword=$(sed -nr 's/^administrator_query_password: (.*)$/\1/p' "${servercfgfullpath}")
fi fi
# Parameters # Parameters
@ -1657,7 +1680,7 @@ fn_info_game_sdtd() {
telnetenabled=${telnetenabled:-"NOT SET"} telnetenabled=${telnetenabled:-"NOT SET"}
telnetport=${telnetport:-"0"} telnetport=${telnetport:-"0"}
telnetpass=${telnetpass:-"NOT SET"} telnetpass=${telnetpass:-"NOT SET"}
maxplayers=${maxplayers:-"NOT SET"} maxplayers=${maxplayers:-"0"}
gamemode=${gamemode:-"NOT SET"} gamemode=${gamemode:-"NOT SET"}
gameworld=${gameworld:-"NOT SET"} gameworld=${gameworld:-"NOT SET"}
fi fi
@ -1858,7 +1881,13 @@ fn_info_game_terraria() {
fn_info_game_stn() { fn_info_game_stn() {
# Config # Config
if [ -f "${servercfgfullpath}" ]; then if [ ! -f "${servercfgfullpath}" ]; then
servername="${unavailable}"
configip=${configip:-"0.0.0.0"}
port="${zero}"
queryport="${zero}"
serverpassword=${serverpassword:-"NOT SET"}
else
servername=$(sed -nr 's/^ServerName="(.*)"/\1/p' "${servercfgfullpath}") servername=$(sed -nr 's/^ServerName="(.*)"/\1/p' "${servercfgfullpath}")
configip=$(sed -nr 's/^ServerIP=([0-9]+)/\1/p' "${servercfgfullpath}") configip=$(sed -nr 's/^ServerIP=([0-9]+)/\1/p' "${servercfgfullpath}")
port=$(sed -nr 's/^ServerPort=([0-9]+)/\1/p' "${servercfgfullpath}") port=$(sed -nr 's/^ServerPort=([0-9]+)/\1/p' "${servercfgfullpath}")
@ -1867,23 +1896,25 @@ fn_info_game_stn() {
# Not set # Not set
serverpassword=${serverpassword:-"NOT SET"} serverpassword=${serverpassword:-"NOT SET"}
else port=${port:-"0"}
servername="${unavailable}"
configip=${configip:-"0.0.0.0"}
port="${zero}"
queryport="${zero}"
serverpassword=${serverpassword:-"NOT SET"} serverpassword=${serverpassword:-"NOT SET"}
queryport=${queryport:-"0"}
fi fi
} }
fn_info_game_ti() { fn_info_game_ti() {
if [ -f "${servercfgfullpath}" ]; then if [ ! -f "${servercfgfullpath}" ]; then
servername=$(sed -nr 's/^ServerName="(.*)"/\1/p' "${servercfgfullpath}")
maxplayers=$(sed -nr 's/^MaxPlayerCount=([0-9]+)/\1/' "${servercfgfullpath}")
else
servername="${unavailable}" servername="${unavailable}"
maxplayers="${zero}" maxplayers="${zero}"
else
servername=$(sed -nr 's/^ServerName="(.*)"/\1/p' "${servercfgfullpath}")
maxplayers=$(sed -nr 's/^MaxPlayerCount=([0-9]+)/\1/' "${servercfgfullpath}")
# Not set
servername=${servername:-"NOT SET"}
maxplayers=${maxplayers:-"0"}
fi fi
} }
fn_info_game_ts3() { fn_info_game_ts3() {
@ -2145,7 +2176,7 @@ fn_info_game_ut3() {
servername=${servername:-"NOT SET"} servername=${servername:-"NOT SET"}
serverpassword=${serverpassword:-"NOT SET"} serverpassword=${serverpassword:-"NOT SET"}
adminpassword=${adminpassword:-"NOT SET"} adminpassword=${adminpassword:-"NOT SET"}
maxplayers=${maxplayers:-"NOT SET"} maxplayers=${maxplayers:-"0"}
webadminenabled=${webadminenabled:-"NOT SET"} webadminenabled=${webadminenabled:-"NOT SET"}
webadminport=${webadminport:-"0"} webadminport=${webadminport:-"0"}
webadminuser=${webadminuser:-"NOT SET"} webadminuser=${webadminuser:-"NOT SET"}
@ -2396,6 +2427,8 @@ elif [ "${shortname}" == "mta" ]; then
fn_info_game_mta fn_info_game_mta
elif [ "${shortname}" == "mumble" ]; then elif [ "${shortname}" == "mumble" ]; then
fn_info_game_mumble fn_info_game_mumble
elif [ "${shortname}" == "nec" ]; then
fn_info_game_nec
elif [ "${shortname}" == "onset" ]; then elif [ "${shortname}" == "onset" ]; then
fn_info_game_onset fn_info_game_onset
elif [ "${shortname}" == "pc" ]; then elif [ "${shortname}" == "pc" ]; then

17
lgsm/functions/info_messages.sh

@ -658,7 +658,7 @@ fn_info_message_ports_edit() {
startparameterslocation="${red}UNKNOWN${default}" startparameterslocation="${red}UNKNOWN${default}"
# engines/games that require editing in the config file. # engines/games that require editing in the config file.
local ports_edit_array=("ac" "arma3" "armar" "bo" "bt" "cd" "dst" "eco" "idtech2" "idtech3" "idtech3_ql" "jc2" "jc3" "lwjgl2" "mcb" "mumble" "pc" "pc2" "pz" "qw" "refractor" "renderware" "rw" "sb" "sdtd" "st" "stn" "ts3" "tw" "terraria" "unreal" "unreal2" "unreal3" "vints" "wurm") local ports_edit_array=("ac" "arma3" "armar" "bo" "bt" "cd" "dst" "eco" "idtech2" "idtech3" "idtech3_ql" "jc2" "jc3" "lwjgl2" "mcb" "mumble" "nec" "pc" "pc2" "pz" "qw" "refractor" "renderware" "rw" "sb" "sdtd" "st" "stn" "ts3" "tw" "terraria" "unreal" "unreal2" "unreal3" "vints" "wurm")
for port_edit in "${ports_edit_array[@]}"; do for port_edit in "${ports_edit_array[@]}"; do
if [ "${shortname}" == "ut3" ]; then if [ "${shortname}" == "ut3" ]; then
startparameterslocation="${servercfgdir}/UTWeb.ini" startparameterslocation="${servercfgdir}/UTWeb.ini"
@ -687,7 +687,7 @@ fn_info_message_ports() {
echo -e "ss -tuplwn | grep AvorionServer" echo -e "ss -tuplwn | grep AvorionServer"
elif [ "${shortname}" == "bf1942" ]; then elif [ "${shortname}" == "bf1942" ]; then
echo -e "ss -tuplwn | grep bf1942_lnxded" echo -e "ss -tuplwn | grep bf1942_lnxded"
elif [ "${shortname}" == "mc" ] || [ "${shortname}" == "pmc" ] || [ "${shortname}" == "rw" ] || [ "${shortname}" == "vpmc" ] || [ "${shortname}" == "wmc" ]; then elif [ "${shortname}" == "mc" ] || [ "${shortname}" == "nec" ] || [ "${shortname}" == "pmc" ] || [ "${shortname}" == "rw" ] || [ "${shortname}" == "vpmc" ] || [ "${shortname}" == "wmc" ]; then
echo -e "ss -tuplwn | grep java" echo -e "ss -tuplwn | grep java"
elif [ "${shortname}" == "terraria" ]; then elif [ "${shortname}" == "terraria" ]; then
echo -e "ss -tuplwn | grep Main" echo -e "ss -tuplwn | grep Main"
@ -1171,6 +1171,13 @@ fn_info_message_mumble() {
} | column -s $'\t' -t } | column -s $'\t' -t
} }
fn_info_message_nec() {
{
fn_port "header"
fn_port "Game" port udp
} | column -s $'\t' -t
}
fn_info_message_onset() { fn_info_message_onset() {
{ {
fn_port "header" fn_port "header"
@ -1727,12 +1734,14 @@ fn_info_message_select_engine() {
fn_info_message_mh fn_info_message_mh
elif [ "${shortname}" == "mohaa" ]; then elif [ "${shortname}" == "mohaa" ]; then
fn_info_message_mohaa fn_info_message_mohaa
elif [ "${shortname}" == "mom" ]; then
fn_info_message_mom
elif [ "${shortname}" == "mta" ]; then elif [ "${shortname}" == "mta" ]; then
fn_info_message_mta fn_info_message_mta
elif [ "${shortname}" == "mumble" ]; then elif [ "${shortname}" == "mumble" ]; then
fn_info_message_mumble fn_info_message_mumble
elif [ "${shortname}" == "mom" ]; then elif [ "${shortname}" == "nec" ]; then
fn_info_message_mom fn_info_message_nec
elif [ "${shortname}" == "onset" ]; then elif [ "${shortname}" == "onset" ]; then
fn_info_message_onset fn_info_message_onset
elif [ "${shortname}" == "pc" ]; then elif [ "${shortname}" == "pc" ]; then

8
lgsm/functions/install_config.sh

@ -634,6 +634,14 @@ elif [ "${shortname}" == "pz" ]; then
fn_default_config_remote fn_default_config_remote
fn_set_config_vars fn_set_config_vars
fn_list_config_locations fn_list_config_locations
elif [ "${shortname}" == "nec" ]; then
gamedirname="Necesse"
fn_check_cfgdir
array_configs+=(server.cfg)
fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "pc" ]; then elif [ "${shortname}" == "pc" ]; then
gamedirname="ProjectCars" gamedirname="ProjectCars"
array_configs+=(server.cfg) array_configs+=(server.cfg)

2
lgsm/functions/install_server_files.sh

@ -222,7 +222,7 @@ elif [ "${shortname}" == "mcb" ]; then
elif [ "${shortname}" == "pmc" ]; then elif [ "${shortname}" == "pmc" ]; then
install_eula.sh install_eula.sh
update_papermc.sh update_papermc.sh
elif [ "${shortname}" == "wmc" ]||[ "${shortname}" == "vpmc" ]; then elif [ "${shortname}" == "wmc" ] || [ "${shortname}" == "vpmc" ]; then
update_papermc.sh update_papermc.sh
elif [ "${shortname}" == "mumble" ]; then elif [ "${shortname}" == "mumble" ]; then
update_mumble.sh update_mumble.sh

7
lgsm/functions/mods_list.sh

@ -95,6 +95,8 @@ oxidehurtworldlatestlink=$(curl --connect-timeout 10 -sL https://api.github.com/
oxidesdtdlatestlink=$(curl --connect-timeout 10 -sL https://api.github.com/repos/OxideMod/Oxide.SevenDaysToDie/releases/latest | jq -r '.assets[]|select(.browser_download_url | contains("linux")) | .browser_download_url') oxidesdtdlatestlink=$(curl --connect-timeout 10 -sL https://api.github.com/repos/OxideMod/Oxide.SevenDaysToDie/releases/latest | jq -r '.assets[]|select(.browser_download_url | contains("linux")) | .browser_download_url')
# Valheim Plus # Valheim Plus
valeimpluslatestlink=$(curl --connect-timeout 10 -sL https://api.github.com/repos/valheimPlus/ValheimPlus/releases/latest | jq -r '.assets[]|select(.browser_download_url | contains("UnixServer.tar.gz")) | .browser_download_url') valeimpluslatestlink=$(curl --connect-timeout 10 -sL https://api.github.com/repos/valheimPlus/ValheimPlus/releases/latest | jq -r '.assets[]|select(.browser_download_url | contains("UnixServer.tar.gz")) | .browser_download_url')
# Valheim BepInEx
bepinexvhlatestlink=$(curl --connect-timeout 10 -sL "https://valheim.thunderstore.io/api/experimental/package/denikson/BepInExPack_Valheim/" -H "accept: application/json" | jq -r '.latest.download_url')
# Define mods information (required) # Define mods information (required)
@ -194,5 +196,8 @@ mod_info_sdtdoxide=(MOD "sdtdoxide" "Oxide for 7 Days To Die" "${oxidesdtdlatest
# ValheimPlus # ValheimPlus
mod_info_valheimplus=(MOD "valheimplus" "Valheim PLUS" "${valeimpluslatestlink}" "ValheimPlus.tar.gz" "0" "LowercaseOff" "${systemdir}" "OVERWRITE" "ENGINES" "Valheim;" "NOTGAMES" "https://github.com/valheimPlus/ValheimPlus" "Mod to improve Valheim gameplay") mod_info_valheimplus=(MOD "valheimplus" "Valheim PLUS" "${valeimpluslatestlink}" "ValheimPlus.tar.gz" "0" "LowercaseOff" "${systemdir}" "OVERWRITE" "ENGINES" "Valheim;" "NOTGAMES" "https://github.com/valheimPlus/ValheimPlus" "Mod to improve Valheim gameplay")
# BepInEx Valheim
mod_info_bepinexvh=(MOD "bepinexvh" "BepInEx Valheim" "${bepinexvhlatestlink}" "denikson-BepInExPack_Valheim.zip" "0" "LowercaseOff" "${systemdir}" "OVERWRITE" "ENGINES" "Valheim;" "NOTGAMES" "https://valheim.thunderstore.io/package/denikson/BepInExPack_Valheim/" "Unity / XNA game patcher and plugin framework")
# REQUIRED: Set all mods info into the global array # REQUIRED: Set all mods info into the global array
mods_global_array=("${mod_info_metamod[@]}" "${mod_info_base_amxx[@]}" "${mod_info_cs_amxx[@]}" "${mod_info_dod_amxx[@]}" "${mod_info_tfc_amxx[@]}" "${mod_info_ns_amxx[@]}" "${mod_info_ts_amxx[@]}" "${mod_info_metamodsource[@]}" "${mod_info_sourcemod[@]}" "${mod_info_steamworks[@]}" "${mod_info_gokz[@]}" "${mod_info_ttt[@]}" "${mod_info_get5[@]}" "${mod_info_prac[@]}" "${mod_info_pug[@]}" "${mod_info_dhook[@]}" "${mod_info_movement[@]}" "${mod_info_cleaner[@]}" "${mod_info_ulib[@]}" "${mod_info_ulx[@]}" "${mod_info_utime[@]}" "${mod_info_uclip[@]}" "${mod_info_acf[@]}" "${mod_info_acf_missiles[@]}" "${mod_info_acf_sweps[@]}" "${mod_info_advdupe2[@]}" "${mod_info_pac3[@]}" "${mod_info_wiremod[@]}" "${mod_info_wiremodextras[@]}" "${mod_info_darkrp[@]}" "${mod_info_darkrpmodification[@]}" "${mod_info_rustoxide[@]}" "${mod_info_hwoxide[@]}" "${mod_info_sdtdoxide[@]}" "${mod_info_advduplicator[@]}" "${mod_info_trackassemblytool[@]}" "${mod_info_physpropertiesadv[@]}" "${mod_info_controlsystemse2[@]}" "${mod_info_e2pistontiming[@]}" "${mod_info_propcannontool[@]}" "${mod_info_gearassemblytool[@]}" "${mod_info_spinnertool[@]}" "${mod_info_surfacefrictiontool[@]}" "${mod_info_magneticdipole[@]}" "${mod_info_environmentorganizer[@]}" "${mod_info_precision_alignment[@]}" "${mod_info_improved_stacker[@]}" "${mod_info_improved_weight[@]}" "${mod_info_improved_antinoclip[@]}" "${mod_info_laserstool[@]}" "${mod_info_valheimplus[@]}") mods_global_array=("${mod_info_metamod[@]}" "${mod_info_base_amxx[@]}" "${mod_info_cs_amxx[@]}" "${mod_info_dod_amxx[@]}" "${mod_info_tfc_amxx[@]}" "${mod_info_ns_amxx[@]}" "${mod_info_ts_amxx[@]}" "${mod_info_metamodsource[@]}" "${mod_info_sourcemod[@]}" "${mod_info_steamworks[@]}" "${mod_info_gokz[@]}" "${mod_info_ttt[@]}" "${mod_info_get5[@]}" "${mod_info_prac[@]}" "${mod_info_pug[@]}" "${mod_info_dhook[@]}" "${mod_info_movement[@]}" "${mod_info_cleaner[@]}" "${mod_info_ulib[@]}" "${mod_info_ulx[@]}" "${mod_info_utime[@]}" "${mod_info_uclip[@]}" "${mod_info_acf[@]}" "${mod_info_acf_missiles[@]}" "${mod_info_acf_sweps[@]}" "${mod_info_advdupe2[@]}" "${mod_info_pac3[@]}" "${mod_info_wiremod[@]}" "${mod_info_wiremodextras[@]}" "${mod_info_darkrp[@]}" "${mod_info_darkrpmodification[@]}" "${mod_info_rustoxide[@]}" "${mod_info_hwoxide[@]}" "${mod_info_sdtdoxide[@]}" "${mod_info_advduplicator[@]}" "${mod_info_trackassemblytool[@]}" "${mod_info_physpropertiesadv[@]}" "${mod_info_controlsystemse2[@]}" "${mod_info_e2pistontiming[@]}" "${mod_info_propcannontool[@]}" "${mod_info_gearassemblytool[@]}" "${mod_info_spinnertool[@]}" "${mod_info_surfacefrictiontool[@]}" "${mod_info_magneticdipole[@]}" "${mod_info_environmentorganizer[@]}" "${mod_info_precision_alignment[@]}" "${mod_info_improved_stacker[@]}" "${mod_info_improved_weight[@]}" "${mod_info_improved_antinoclip[@]}" "${mod_info_laserstool[@]}" "${mod_info_valheimplus[@]}" "${mod_info_bepinexvh[@]}")

6
lgsm/functions/update_papermc.sh

@ -5,9 +5,9 @@
# Website: https://linuxgsm.com # Website: https://linuxgsm.com
# Description: Handles updating of PaperMC and Waterfall servers. # Description: Handles updating of PaperMC and Waterfall servers.
local commandname="UPDATE" commandname="UPDATE"
local commandaction="Update" commandaction="Update"
local function_selfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")" function_selfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")"
fn_update_papermc_dl() { fn_update_papermc_dl() {
# get build info # get build info

22
linuxgsm.sh

@ -15,7 +15,7 @@
# Debugging # Debugging
if [ -f ".dev-debug" ]; then if [ -f ".dev-debug" ]; then
exec 5>dev-debug.log exec 5> dev-debug.log
BASH_XTRACEFD="5" BASH_XTRACEFD="5"
set -x set -x
fi fi
@ -52,7 +52,7 @@ userinput2="${2}"
[ -n "${LGSM_GITHUBBRANCH}" ] && githubbranch="${LGSM_GITHUBBRANCH}" || githubbranch="master" [ -n "${LGSM_GITHUBBRANCH}" ] && githubbranch="${LGSM_GITHUBBRANCH}" || githubbranch="master"
# Check that curl is installed before doing anything # Check that curl is installed before doing anything
if [ ! "$(command -v curl 2>/dev/null)" ]; then if [ ! "$(command -v curl 2> /dev/null)" ]; then
echo -e "[ FAIL ] Curl is not installed" echo -e "[ FAIL ] Curl is not installed"
exit 1 exit 1
fi fi
@ -213,7 +213,7 @@ fn_install_menu_bash() {
while read -r line || [[ -n "${line}" ]]; do while read -r line || [[ -n "${line}" ]]; do
var=$(echo -e "${line}" | awk -F "," '{print $2 " - " $3}') var=$(echo -e "${line}" | awk -F "," '{print $2 " - " $3}')
menu_options+=("${var}") menu_options+=("${var}")
done <"${options}" done < "${options}"
menu_options+=("Cancel") menu_options+=("Cancel")
select option in "${menu_options[@]}"; do select option in "${menu_options[@]}"; do
if [ "${option}" ] && [ "${option}" != "Cancel" ]; then if [ "${option}" ] && [ "${option}" != "Cancel" ]; then
@ -239,7 +239,7 @@ fn_install_menu_whiptail() {
key=$(echo -e "${line}" | awk -F "," '{print $3}') key=$(echo -e "${line}" | awk -F "," '{print $3}')
val=$(echo -e "${line}" | awk -F "," '{print $2}') val=$(echo -e "${line}" | awk -F "," '{print $2}')
menu_options+=("${val//\"/}" "${key//\"/}") menu_options+=("${val//\"/}" "${key//\"/}")
done <"${options}" done < "${options}"
OPTION=$(${menucmd} --title "${title}" --menu "${caption}" "${height}" "${width}" "${menuheight}" "${menu_options[@]}" 3>&1 1>&2 2>&3) OPTION=$(${menucmd} --title "${title}" --menu "${caption}" "${height}" "${width}" "${menuheight}" "${menu_options[@]}" 3>&1 1>&2 2>&3)
if [ $? == 0 ]; then if [ $? == 0 ]; then
eval "$resultvar=\"${OPTION}\"" eval "$resultvar=\"${OPTION}\""
@ -263,12 +263,12 @@ fn_install_menu() {
fi fi
done done
case "$(basename "${menucmd}")" in case "$(basename "${menucmd}")" in
whiptail | dialog) whiptail | dialog)
fn_install_menu_whiptail "${menucmd}" selection "${title}" "${caption}" "${options}" 40 80 30 fn_install_menu_whiptail "${menucmd}" selection "${title}" "${caption}" "${options}" 40 80 30
;; ;;
*) *)
fn_install_menu_bash selection "${title}" "${caption}" "${options}" fn_install_menu_bash selection "${title}" "${caption}" "${options}"
;; ;;
esac esac
eval "$resultvar=\"${selection}\"" eval "$resultvar=\"${selection}\""
} }
@ -351,7 +351,7 @@ if [ "${shortname}" == "core" ]; then
} | column -s $'\t' -t | more } | column -s $'\t' -t | more
exit exit
elif [ "${userinput}" == "install" ] || [ "${userinput}" == "i" ]; then elif [ "${userinput}" == "install" ] || [ "${userinput}" == "i" ]; then
tail -n +1 "${serverlist}" | awk -F "," '{print $1 "," $2 "," $3}' >"${serverlistmenu}" tail -n +1 "${serverlist}" | awk -F "," '{print $1 "," $2 "," $3}' > "${serverlistmenu}"
fn_install_menu result "LinuxGSM" "Select game server to install." "${serverlistmenu}" fn_install_menu result "LinuxGSM" "Select game server to install." "${serverlistmenu}"
userinput="${result}" userinput="${result}"
fn_server_info fn_server_info

Loading…
Cancel
Save