Browse Source

Merge branch 'develop' into feature/log-improvement

pull/2958/head
Daniel Gibbs 5 years ago
parent
commit
e0530aacc0
  1. 3
      lgsm/config-default/config-lgsm/arkserver/_default.cfg
  2. 2
      lgsm/config-default/config-lgsm/bf1942server/_default.cfg
  3. 157
      lgsm/config-default/config-lgsm/bfvserver/_default.cfg
  4. 171
      lgsm/config-default/config-lgsm/momserver/_default.cfg
  5. 2
      lgsm/data/serverlist.csv
  6. 32
      lgsm/functions/check_deps.sh
  7. 2
      lgsm/functions/command_monitor.sh
  8. 2
      lgsm/functions/core_getopt.sh
  9. 2
      lgsm/functions/fix_av.sh
  10. 49
      lgsm/functions/info_config.sh
  11. 6
      lgsm/functions/info_distro.sh
  12. 26
      lgsm/functions/info_messages.sh
  13. 8
      lgsm/functions/info_parms.sh
  14. 14
      lgsm/functions/install_config.sh
  15. 4
      lgsm/functions/install_server_files.sh
  16. 11
      lgsm/functions/query_gamedig.sh

3
lgsm/config-default/config-lgsm/arkserver/_default.cfg

@ -15,11 +15,12 @@ queryport="27015"
rconport="27020"
# Default Map: TheIsland, Ragnarok, CrystalIsles, Aberration_P, ScorchedEarth_P
defaultmap="TheIsland"
altsavedirectoryname="${defaultmap}"
maxplayers="70"
## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
fn_parms(){
parms="\"${defaultmap}?AltSaveDirectoryName=${defaultmap}?listen?MultiHome=${ip}?MaxPlayers=${maxplayers}?QueryPort=${queryport}?RCONPort=${rconport}?Port=${port} -automanagedmods\""
parms="${defaultmap}?AltSaveDirectoryName=${altsavedirectoryname}?listen?MultiHome=${ip}?MaxPlayers=${maxplayers}?QueryPort=${queryport}?RCONPort=${rconport}?Port=${port} -automanagedmods -crossplay -PublicIPForEpic=${ip}"
}
#### LinuxGSM Settings ####

2
lgsm/config-default/config-lgsm/bf1942server/_default.cfg

@ -119,7 +119,7 @@ stopmode="2"
# 4: gsquery
# 5: tcp
querymode="2"
querytype="protocol-valve"
querytype="protocol-gamespy1"
## Game Server Details
# Do not edit

157
lgsm/config-default/config-lgsm/bfvserver/_default.cfg

@ -0,0 +1,157 @@
##################################
######## 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 ####
## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
fn_parms(){
parms="+statusMonitor 1"
}
#### 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"
postdays="7"
posttarget="https://termbin.com"
# 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=""
# 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"
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"
# 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) or else in "curlcustomstring".
# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
# any custom string in curl - simple ignore this parameter.
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"
## 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
stopmode="3"
## Query mode
# 1: session only
# 2: gamedig + gsquery
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="1"
querytype=""
## Game Server Details
# Do not edit
gamename="Battlefield: Vietnam"
engine="refractor"
glibc="2.2.4"
#### Directories ####
# Edit with care
## Game Server Directories
systemdir="${serverfiles}"
executabledir="${systemdir}"
executable="./start.sh"
servercfgdir="${systemdir}/mods/bfvietnam/settings"
servercfg="serversettings.con"
servercfgdefault="serversettings.con"
servercfgfullpath="${servercfgdir}/${servercfg}"
## Backup Directory
backupdir="${lgsmdir}/backup"
## Logging Directories
logdir="${rootdir}/log"
gamelogdir="${serverfiles}/mods/bfvietnam/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"

171
lgsm/config-default/config-lgsm/momserver/_default.cfg

@ -0,0 +1,171 @@
##################################
######## 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 ####
## Server Start Settings | https://docs.linuxgsm.com/configuration/start-parameters
ip="0.0.0.0"
port="7777"
beaconport="15000"
maxplayers="32"
## Server Start Command | https://docs.linuxgsm.com/configuration/start-parameters#additional-parameters
fn_parms(){
parms="-port=${port} -beaconport=${beaconport} -MULTIHOME="${ip}" -maxplayers=${maxplayers}"
}
#### 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"
postdays="7"
posttarget="https://termbin.com"
# 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=""
# 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"
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"
# 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) or else in "curlcustomstring".
# like a "--socks5 ipaddr:port" for socks5 proxy see more in "curl --help", if you not need
# any custom string in curl - simple ignore this parameter.
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="897590"
# SteamCMD Branch | https://docs.linuxgsm.com/steamcmd/branch
branch=""
# 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
stopmode="2"
## Query mode
# 1: session only
# 2: gamedig + gsquery
# 3: gamedig
# 4: gsquery
# 5: tcp
querymode="1"
querytype=""
## Game Server Details
# Do not edit
gamename="Memories of Mars"
engine="unreal4"
glibc="2.17"
#### Directories ####
# Edit with care
## Game Server Directories
systemdir="${serverfiles}/Game"
executabledir="${systemdir}/Binaries/Linux"
executable="./MemoriesOfMarsServer"
servercfgdir="${serverfiles}"
servercfg="DedicatedServerConfig.cfg"
servercfgdefault="DedicatedServerConfig.cfg"
servercfgfullpath="${servercfgdir}/${servercfg}"
## Backup Directory
backupdir="${lgsmdir}/backup"
## Logging Directories
logdir="${rootdir}/log"
gamelogdir="${serverfiles}/Game/Saved/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"

2
lgsm/data/serverlist.csv

@ -8,6 +8,7 @@ bb,bbserver,BrainBread
bb2,bb2server,BrainBread 2
bd,bdserver,Base Defense
bf1942,bf1942server,Battlefield 1942
bfv,bfvserver,Battlefield: Vietnam
bmdm,bmdmserver,Black Mesa: Deathmatch
bo,boserver,Ballistic Overkill
bs,bsserver,Blade Symphony
@ -55,6 +56,7 @@ mc,mcserver,Minecraft
mcb,mcbserver,Minecraft Bedrock
mh,mhserver,MORDHAU
mohaa,mohaaserver,Medal of Honor: Allied Assault
mom,momserver,Memories of Mars
mta,mtaserver,Multi Theft Auto
mumble,mumbleserver,Mumble
nd,ndserver,Nuclear Dawn

1 ac acserver Assetto Corsa
8 bb2 bb2server BrainBread 2
9 bd bdserver Base Defense
10 bf1942 bf1942server Battlefield 1942
11 bfv bfvserver Battlefield: Vietnam
12 bmdm bmdmserver Black Mesa: Deathmatch
13 bo boserver Ballistic Overkill
14 bs bsserver Blade Symphony
56 mcb mcbserver Minecraft Bedrock
57 mh mhserver MORDHAU
58 mohaa mohaaserver Medal of Honor: Allied Assault
59 mom momserver Memories of Mars
60 mta mtaserver Multi Theft Auto
61 mumble mumbleserver Mumble
62 nd ndserver Nuclear Dawn

32
lgsm/functions/check_deps.sh

@ -184,8 +184,15 @@ if [ "${javacheck}" == "1" ]; then
fi
# Define required dependencies for SteamCMD.
if [ "${appid}" ]; then
if [ "${deptocheck}" == "glibc.i686" ]||[ "${deptocheck}" == "libstdc++64.i686" ]||[ "${deptocheck}" == "lib32gcc1" ]||[ "${deptocheck}" == "lib32stdc++6" ]; then
steamcmdfail=1
# lib32gcc1 is now called lib32gcc-s1 in debian 11
if [ "${distroid}" == "debian" ]&&[ "${distroversion}" == "11" ]; then
if [ "${deptocheck}" == "glibc.i686" ]||[ "${deptocheck}" == "libstdc++64.i686" ]||[ "${deptocheck}" == "lib32gcc-s1" ]||[ "${deptocheck}" == "lib32stdc++6" ]; then
steamcmdfail=1
fi
else
if [ "${deptocheck}" == "glibc.i686" ]||[ "${deptocheck}" == "libstdc++64.i686" ]||[ "${deptocheck}" == "lib32gcc1" ]||[ "${deptocheck}" == "lib32stdc++6" ]; then
steamcmdfail=1
fi
fi
fi
fi
@ -339,10 +346,15 @@ fn_deps_build_debian(){
# LinuxGSM requirements.
array_deps_required=( curl wget ca-certificates file bsdmainutils util-linux python3 tar bzip2 gzip unzip binutils bc jq tmux netcat )
# All servers except ts3, mumble, GTA and minecraft servers require libstdc++6 and lib32gcc1.
# All servers except ts3, mumble, GTA and minecraft servers require lib32stdc++6 and lib32gcc1.
if [ "${shortname}" != "ts3" ]&&[ "${shortname}" != "mumble" ]&&[ "${shortname}" != "mc" ]&&[ "${engine}" != "renderware" ]; then
if [ "${arch}" == "x86_64" ]; then
array_deps_required+=( lib32gcc1 lib32stdc++6 )
# lib32gcc1 is now called lib32gcc-s1 in debian 11
if [ "${distroid}" == "debian" ]&&[ "${distroversion}" == "11" ]; then
array_deps_required+=( lib32gcc-s1 lib32stdc++6 )
else
array_deps_required+=( lib32gcc1 lib32stdc++6 )
fi
else
array_deps_required+=( lib32stdc++6 )
fi
@ -368,6 +380,9 @@ fn_deps_build_debian(){
# 7 Days to Die
elif [ "${shortname}" == "sdtd" ]; then
array_deps_required+=( telnet expect )
# Battlefield: Vietnam
elif [ "${shortname}" == "bfv" ]; then
array_deps_required+=( libncurses5:i386 libstdc++5:i386 )
# Battlefield 1942, Counter-Strike: Source, Garry's Mod, No More Room in Hell, Source Forts Classic, Zombie Master Reborn and Zombie Panic: Source
elif [ "${shortname}" == "bf1942" ]||[ "${shortname}" == "css" ]||[ "${shortname}" == "gmod" ]||[ "${shortname}" == "nmrih" ]||[ "${shortname}" == "sfc" ]||[ "${shortname}" == "zmr" ]||[ "${shortname}" == "zps" ]; then
if [ "${arch}" == "x86_64" ]; then
@ -378,9 +393,6 @@ fn_deps_build_debian(){
# Brainbread 2, Don't Starve Together & Team Fortress 2
elif [ "${shortname}" == "bb2" ]||[ "${shortname}" == "dst" ]||[ "${shortname}" == "tf2" ]; then
array_deps_required+=( libcurl4-gnutls-dev:i386 )
if [ "${shortname}" == "tf2" ]; then
array_deps_required+=( libtcmalloc-minimal4:i386 )
fi
# Call of Duty & Medal of Honor: Allied Assault
elif [ "${shortname}" == "cod" ]||[ "${shortname}" == "coduo" ]||[ "${shortname}" == "cod2" ]||[ "${shortname}" == "mohaa" ]; then
array_deps_required+=( libstdc++5:i386 )
@ -480,15 +492,15 @@ fn_deps_build_redhat(){
# 7 Days to Die
elif [ "${shortname}" == "sdtd" ]; then
array_deps_required+=( telnet expect )
# Battlefield: Vietnam
elif [ "${shortname}" == "bfv" ]; then
array_deps_required+=( compat-libstdc++-33.i686 glibc.i686 )
# Battlefield 1942, Counter-Strike: Source, Garry's Mod, No More Room in Hell, Source Forts Classic, Zombie Master Reborn and Zombie Panic: Source
elif [ "${shortname}" == "bf1942" ]||[ "${shortname}" == "css" ]||[ "${shortname}" == "gmod" ]||[ "${shortname}" == "nmrih" ]||[ "${shortname}" == "sfc" ]||[ "${shortname}" == "zmr" ]||[ "${shortname}" == "zps" ]; then
array_deps_required+=( ncurses-libs.i686 )
# Brainbread 2, Don't Starve Together & Team Fortress 2
elif [ "${shortname}" == "bb2" ]||[ "${shortname}" == "dst" ]||[ "${shortname}" == "tf2" ]; then
array_deps_required+=( libcurl.i686 )
if [ "${shortname}" == "tf2" ]; then
array_deps_required+=( gperftools-libs.i686 )
fi
# Call of Duty & Medal of Honor: Allied Assault
elif [ "${shortname}" == "cod" ]||[ "${shortname}" == "coduo" ]||[ "${shortname}" == "cod2" ]||[ "${shortname}" == "mohaa" ]; then
array_deps_required+=( compat-libstdc++-33.i686 )

2
lgsm/functions/command_monitor.sh

@ -107,7 +107,7 @@ for queryattempt in {1..5}; do
fn_print_delay_eol_nl
fn_script_log_info "Querying port: ${querymethod}: ${ip}:${queryport} : ${queryattempt} : DELAY"
fn_script_log_info "Query bypassed: ${gameservername} started less than ${querydelay} minutes ago"
fn_script_log_info "Server started: $(date -d @$(cat lgsm/lock/bmdmserver.lock))"
fn_script_log_info "Server started: $(date -d @$(cat "${lockdir}/${selfname}.lock"))"
fn_script_log_info "Current time: $(date)"
monitorpass=1
core_exit.sh

2
lgsm/functions/core_getopt.sh

@ -61,7 +61,7 @@ currentopt=( "${cmd_start[@]}" "${cmd_stop[@]}" "${cmd_restart[@]}" "${cmd_monit
currentopt+=( "${cmd_update_linuxgsm[@]}" )
# Exclude noupdate games here.
if [ "${engine}" != "quake" ]&&[ "${engine}" != "idtech2" ]&&[ "${engine}" != "idtech3" ]&&[ "${engine}" != "iw2.0" ]&&[ "${engine}" != "iw3.0" ]&&[ "${shortname}" != "bf1942" ]&&[ "${shortname}" != "samp" ]; then
if [ "${engine}" != "quake" ]&&[ "${engine}" != "idtech2" ]&&[ "${engine}" != "idtech3" ]&&[ "${engine}" != "iw2.0" ]&&[ "${engine}" != "iw3.0" ]&&[ "${shortname}" != "bf1942" ]&&[ "${shortname}" != "bfv" ]&&[ "${shortname}" != "samp" ]; then
currentopt+=( "${cmd_update[@]}" )
# force update for SteamCMD only or MTA.
if [ "${appid}" ]||[ "${shortname}" == "mta" ]; then

2
lgsm/functions/fix_av.sh

@ -10,7 +10,7 @@ export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${serverfiles}:${serverfiles}/linux64"
if [ "${postinstall}" == "1" ]; then
fn_parms(){
parms="--datapath ${avdatapath} --galaxy-name ${avgalaxy} --init-folders-only"
parms="--datapath ${avdatapath} --galaxy-name ${selfname} --init-folders-only"
}
fn_print_information "starting ${gamename} server to generate configs."

49
lgsm/functions/info_config.sh

@ -181,7 +181,7 @@ fn_info_config_bf1942(){
queryport="${zero}"
else
servername=$(grep "game.serverName " "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^--/d' -e 's/game.serverName //g' | tr -d '=\";,:' | xargs)
servername=$(grep "game.serverName" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^--/d' -e 's/game.serverName //g' | tr -d '=\";,:' | xargs)
serverpassword=$(grep "game.serverPassword" "${servercfgfullpath}" | sed -e 's/^ *//g' -e '/^--/d' -e 's/game.serverPassword//g' | tr -d '=\";,:' | xargs)
maxplayers=$(grep "game.serverMaxPlayers" "${servercfgfullpath}" | grep -v "\--" | tr -cd '[:digit:]')
port=$(grep "game.serverPort" "${servercfgfullpath}" | grep -v "\--" | tr -cd '[:digit:]')
@ -199,6 +199,33 @@ fn_info_config_bf1942(){
fi
}
fn_info_config_bfv(){
if [ ! -f "${servercfgfullpath}" ]; then
servername="${unavailable}"
serverpassword="${unavailable}"
maxplayers="${zero}"
port="${zero}"
queryport="${zero}"
else
servername=$(grep "game.serverName" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^--/d' -e 's/game.serverName//g' | tr -d '=\";,:' | xargs)
serverpassword=$(grep "game.serverPassword" "${servercfgfullpath}" | sed -e 's/^ *//g' -e '/^--/d' -e 's/game.serverPassword//g' | tr -d '=\";,:' | xargs)
maxplayers=$(grep "game.serverMaxPlayers" "${servercfgfullpath}" | grep -v "\--" | tr -cd '[:digit:]')
port=$(grep "game.serverPort" "${servercfgfullpath}" | grep -v "\--" | tr -cd '[:digit:]')
queryport="23000"
ip=$(grep "game.serverIP" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^--/d' -e 's/game.serverIP//g' | tr -d '=\";,:' | xargs)
ipsetinconfig=1
ipinconfigvar="game.serverIP"
# Not Set
servername=${servername:-"NOT SET"}
serverpassword=${serverpassword:-"NOT SET"}
maxplayers=${maxplayers:-"0"}
port=${port:-"0"}
fi
}
fn_info_config_chivalry(){
if [ ! -f "${servercfgfullpath}" ]; then
servername="${unavailable}"
@ -457,6 +484,20 @@ fn_info_config_minecraft_bedrock(){
fi
}
fn_info_config_mofm(){
if [ ! -f "${servercfgfullpath}" ]; then
servername="${unavailable}"
serverpassword="${unavailable}"
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]*$//')
serverpassword=$(grep "ServerPassword" "${servercfgfullpath}" | sed -e 's/^ *//g' -e '/^--/d' -e 's/ServerPassword//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//')
# Not Set
servername=${servername:-"NOT SET"}
serverpassword=${serverpassword:-"NOT SET"}
fi
}
fn_info_config_onset(){
if [ ! -f "${servercfgfullpath}" ]; then
servername="${unavailable}"
@ -1472,6 +1513,9 @@ elif [ "${shortname}" == "bt1944" ]; then
# Battlefield: 1942
elif [ "${shortname}" == "bf1942" ]; then
fn_info_config_bf1942
# Battlefield: Vietnam
elif [ "${shortname}" == "bfv" ]; then
fn_info_config_bfv
# Chivalry: Medieval Warfare
elif [ "${shortname}" == "cmw" ]; then
fn_info_config_chivalry
@ -1511,6 +1555,9 @@ elif [ "${shortname}" == "kf2" ]; then
# Medal of Honor: Allied Assault
elif [ "${shortname}" == "mohaa" ]; then
fn_info_config_mohaa
# Memories of Mars
elif [ "${shortname}" == "mofm" ]; then
fn_info_config_mofm
# QuakeWorld
elif [ "${shortname}" == "qw" ]; then
fn_info_config_quakeworld

6
lgsm/functions/info_distro.sh

@ -228,7 +228,7 @@ netlink=$(ethtool "${netint}" 2>/dev/null| grep Speed | awk '{print $2}')
# External IP address
if [ -z "${extip}" ]; then
extip=$(curl -4 -m 3 ifconfig.co 2>/dev/null)
extip=$(curl -s https://api.ipify.org 2>/dev/null)
exitcode=$?
# Should ifconfig.co return an error will use last known IP.
if [ ${exitcode} -eq 0 ]; then
@ -238,14 +238,14 @@ if [ -z "${extip}" ]; then
if [ -f "${tmpdir}/extip.txt" ]; then
extip=$(cat "${tmpdir}/extip.txt")
else
echo -e "x.x.x.x"
fn_print_error_nl "Unable to get external IP"
fi
fi
else
if [ -f "${tmpdir}/extip.txt" ]; then
extip=$(cat "${tmpdir}/extip.txt")
else
echo -e "x.x.x.x"
fn_print_error_nl "Unable to get external IP"
fi
fi
fi

26
lgsm/functions/info_messages.sh

@ -871,6 +871,16 @@ fn_info_message_mohaa(){
} | column -s $'\t' -t
}
fn_info_message_mom(){
echo -e "netstat -atunp | grep MemoriesOfMar"
echo -e ""
{
echo -e "${lightblue}DESCRIPTION\tDIRECTION\tPORT\tPROTOCOL${default}"
echo -e "> Game\tINBOUND\t${port}\tudp"
echo -e "> BeaconPort\tINBOUND\t${beaconport}\tudp"
} | column -s $'\t' -t
}
fn_info_message_mumble(){
echo -e "netstat -atunp | grep murmur"
echo -e ""
@ -982,6 +992,16 @@ fn_info_message_bf1942(){
} | column -s $'\t' -t
}
fn_info_message_bfv(){
echo -e "netstat -atunp | grep bfv_linded"
echo -e ""
{
echo -e "${lightblue}DESCRIPTION\tDIRECTION\tPORT\tPROTOCOL${default}"
echo -e "> Game\tINBOUND\t${port}\tudp"
echo -e "> Query\tINBOUND\t${queryport}\tudp"
} | column -s $'\t' -t
}
fn_info_message_risingworld(){
echo -e "netstat -atunp | grep java"
echo -e ""
@ -1436,6 +1456,8 @@ fn_info_message_select_engine(){
fn_info_message_minecraft_bedrock
elif [ "${shortname}" == "onset" ]; then
fn_info_message_onset
elif [ "${shortname}" == "mom" ]; then
fn_info_message_mom
elif [ "${shortname}" == "pz" ]; then
fn_info_message_projectzomboid
elif [ "${shortname}" == "pstbs" ]; then
@ -1462,7 +1484,7 @@ fn_info_message_select_engine(){
fn_info_message_sof2
elif [ "${shortname}" == "sol" ]; then
fn_info_message_soldat
elif [ "${shortname}" == "st" ]; then
elif [ "${shortname}" == "sb" ]; then
fn_info_message_starbound
elif [ "${shortname}" == "sbots" ]; then
fn_info_message_sbots
@ -1492,6 +1514,8 @@ fn_info_message_select_engine(){
fn_info_message_mumble
elif [ "${shortname}" == "bf1942" ]; then
fn_info_message_bf1942
elif [ "${shortname}" == "bfv" ]; then
fn_info_message_bfv
elif [ "${shortname}" == "rtcw" ]; then
fn_info_message_rtcw
elif [ "${shortname}" == "rust" ]; then

8
lgsm/functions/info_parms.sh

@ -85,6 +85,11 @@ fn_info_parms_mohaa(){
defaultmap=${defaultmap:-"NOT SET"}
}
fn_info_parms_mom(){
port=${port:-"7777"}
beaconport=${queryport:-"15000"}
}
fn_info_parms_mta(){
queryport=$((port + 123))
}
@ -245,6 +250,9 @@ elif [ "${shortname}" == "kf2" ]; then
fn_info_parms_kf2
elif [ "${shortname}" == "mohaa" ]; then
fn_info_parms_mohaa
#Memories of Mars
elif [ "${shortname}" == "mom" ]; then
fn_info_parms_mom
# Project Zomboid
elif [ "${shortname}" == "pz" ]; then
fn_info_parms_projectzomboid

14
lgsm/functions/install_config.sh

@ -239,6 +239,13 @@ elif [ "${shortname}" == "bf1942" ]; then
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "bfv" ]; then
gamedirname="BattlefieldVietnam"
array_configs+=( serversettings.con )
fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "bs" ]; then
gamedirname="BladeSymphony"
array_configs+=( server.cfg )
@ -563,6 +570,13 @@ elif [ "${shortname}" == "mta" ]; then
fn_fetch_default_config
fn_default_config_remote
fn_list_config_locations
elif [ "${shotname}" == "mom" ];then
gamedirname="MemoriesofMars"
array_configs+=( DedicatedServerConfig.cfg)
fn_fetch_default_config
fn_default_config_remote
fn_set_config_vars
fn_list_config_locations
elif [ "${shortname}" == "mumble" ]; then
gamedirname="Mumble"
array_configs+=( murmur.ini )

4
lgsm/functions/install_server_files.sh

@ -11,6 +11,8 @@ fn_install_server_files(){
remote_fileurl="http://linuxgsm.download/ActionHalfLife/action_halflife-1.0.tar.xz"; local_filedir="${tmpdir}"; local_filename="action_halflife-1.0.tar.xz"; chmodx="nochmodx" run="norun"; force="noforce"; md5="61d7b79fd714888b6d65944fdaafa94a"
elif [ "${shortname}" == "bf1942" ]; then
remote_fileurl="http://linuxgsm.download/BattleField1942/bf1942_lnxded-1.61-hacked-to-1.612.full.tar.xz"; local_filedir="${tmpdir}"; local_filename="bf1942_lnxded-1.61-hacked-to-1.612.full.tar.xz"; chmodx="nochmodx" run="norun"; force="noforce"; md5="4223bf4ed85f5162c24b2cba51249b9e"
elif [ "${shortname}" == "bfv" ];then
remote_fileurl="http://linuxgsm.download/BattlefieldVietnam/bfv_linded-v1.21-20041207_patch.tar.xz"; local_filedir="${tmpdir}"; local_filename="bfv_linded-v1.21-20041207_patch.tar.xz"; chmodx="nochmodx" run="norun"; force="noforce"; md5="e3b4962cdd9d41e23c6fed65101bccde"
elif [ "${shortname}" == "bb" ]; then
remote_fileurl="http://linuxgsm.download/BrainBread/brainbread-v1.2-linuxserver.tar.xz"; local_filedir="${tmpdir}"; local_filename="brainbread-v1.2-linuxserver.tar.xz"; chmodx="nochmodx" run="norun"; force="noforce"; md5="55f227183b736397806d5b6db6143f15"
elif [ "${shortname}" == "cod" ]; then
@ -46,7 +48,7 @@ fn_install_server_files(){
elif [ "${shortname}" == "ts" ]; then
remote_fileurl="http://linuxgsm.download/TheSpecialists/ts-3-linux-final.tar.xz"; local_filedir="${tmpdir}"; local_filename="ts-3-linux-final.tar.xz"; chmodx="nochmodx" run="norun"; force="noforce"; md5="3c66ecff6e3644f7ac88015732a0fb93"
elif [ "${shortname}" == "ut2k4" ]; then
remote_fileurl="http://linuxgsm.download/UnrealTournament2004/ut2004-server-3369-2-ultimate-linux.tar.xz"; local_filedir="${tmpdir}"; local_filename="ut2004-server-3369-2-ultimate-linux.tar.xz"; chmodx="nochmodx" run="norun"; force="noforce"; md5="8ebcb9b8f703905053d13a35c3af3e79"
remote_fileurl="http://linuxgsm.download/UnrealTournament2004/ut2004-server-3369-3-ultimate-linux.tar.xz"; local_filedir="${tmpdir}"; local_filename="ut2004-server-3369-3-ultimate-linux.tar.xz"; chmodx="nochmodx" run="norun"; force="noforce"; md5="9fceaab68554749f4b45be66613b9a15"
elif [ "${shortname}" == "ut99" ]; then
remote_fileurl="http://linuxgsm.download/UnrealTournament99/ut99-server-451-ultimate-linux.tar.xz"; local_filedir="${tmpdir}"; local_filename="ut99-server-451-ultimate-linux.tar.xz"; chmodx="nochmodx" run="norun"; force="noforce"; md5="42c6839f8cb95907eeef71a1838aa1f7"
elif [ "${shortname}" == "ut" ]; then

11
lgsm/functions/query_gamedig.sh

@ -22,7 +22,6 @@ if [ "$(command -v gamedig 2>/dev/null)" ]&&[ "$(command -v jq 2>/dev/null)" ];
gamedigcmd=$(echo -e "gamedig --type \"${querytype}\" --host \"${ip}\" --port \"${queryport}\"|jq")
gamedigraw=$(gamedig --type "${querytype}" --host "${ip}" --port "${queryport}")
querystatus=$(echo "${gamedigraw}" | jq '.error|length')
fi
# server name.
@ -32,10 +31,14 @@ if [ "$(command -v gamedig 2>/dev/null)" ]&&[ "$(command -v jq 2>/dev/null)" ];
fi
# numplayers.
gdplayers=$(echo "${gamedigraw}" | jq -re '.raw.vanilla.raw.players.online')
if [ "${querytype}" == "minecraft" ]; then
gdplayers=$(echo "${gamedigraw}" | jq -re '.players | length-1')
else
gdplayers=$(echo "${gamedigraw}" | jq -re '.players | length')
fi
if [ "${gdplayers}" == "null" ]; then
unset gdplayers
elif [ "${gdplayers}" == "[]" ]; then
elif [ "${gdplayers}" == "[]" ] || [ "${gdplayers}" == "-1" ]; then
gdplayers=0
fi
@ -60,7 +63,7 @@ if [ "$(command -v gamedig 2>/dev/null)" ]&&[ "$(command -v jq 2>/dev/null)" ];
fi
# numbots.
gdbots=$(echo "${gamedigraw}" | jq -re '.raw.numbots')
gdbots=$(echo "${gamedigraw}" | jq -re '.bots | length')
if [ "${gdbots}" == "null" ]||[ "${gdbots}" == "0" ]; then
unset gdbots
fi

Loading…
Cancel
Save