diff --git a/lgsm/functions/info_game.sh b/lgsm/functions/info_game.sh index a1ee95d95..635adbadd 100644 --- a/lgsm/functions/info_game.sh +++ b/lgsm/functions/info_game.sh @@ -5,6 +5,7 @@ # Website: https://linuxgsm.com # Description: Gathers various game server information. +# shellcheck disable=SC2317 functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")" ## Examples of filtering to get info from config files. @@ -14,156 +15,518 @@ functionselfname="$(basename "$(readlink -f "${BASH_SOURCE[0]}")")" # grep -v "foo" filter out lines that contain foo # cut -f1 -d "/" remove everything after / -fn_info_game_ac() { - # Config - if [ ! -f "${servercfgfullpath}" ]; then - adminpassword="${unavailable}" - httpport="${zero}" - port="${zero}" - queryport="${zero}" - servername="${unavailable}" - 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:]') - port=$(grep "TCP_PORT" "${servercfgfullpath}" | tr -cd '[:digit:]') - 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) - - # Not set - adminpassword=${adminpassword:-"NOT SET"} - httpport=${httpport:-"0"} - port=${port:-"0"} - queryport=${queryport:-"0"} - servername=${servername:-"NOT SET"} +# Config Type: ini +# Comment: ; or # +fn_info_game_ini() { + # sed is used to process the file. + # -n option tells sed to suppress output by default. + # /^[[:space:]]*${2}/ is a pattern match that looks for lines that start with optional whitespace followed by the value of $2. + # s/.*= *// is a substitution command that removes everything up to and including the equals sign (including optional spaces) in the matching line. + # p at the end of the s command tells sed to print the resulting line if there was a match. + # q at the end of the s command tells sed to quit after the first match. + if [ -n "${3}" ]; then + servercfgfullpath="${3}" fi + eval "${1}"="$(sed -n "/^[[:space:]]*${2}/ { s/.*= *//p; q }" "${servercfgfullpath}")" > /dev/null 2>&1 || echo "Unable to parse ${2}" } +# Config Type: ini +# Parameters: false +# Comment: ; or # +# Example: NAME=SERVERNAME +# Filetype: ini +fn_info_game_ac() { + if [ -f "${servercfgfullpath}" ]; then + fn_info_game_ini "adminpassword" "ADMIN_PASSWORD" + fn_info_game_ini "httpport" "HTTP_PORT" + fn_info_game_ini "port" "TCP_PORT" + fn_info_game_ini "servername" "NAME" + fn_info_game_ini "serverpassword" "PASSWORD" + fi + adminpassword="${adminpassword:-NOT SET}" + httpport="${httpport:-0}" + port="${port:-0}" + queryport="${httpport:-0}" + servername="${servername:-NOT SET}" + serverpassword="${serverpassword:-NOT SET}" +} + +# Config Type: ini +# Parameters: true +# Comment: ; or # +# Example: SessionName=SERVERNAME +# Filetype: ini fn_info_game_ark() { - # Config - if [ ! -f "${servercfgfullpath}" ]; then - adminpassword="${unavailable}" - servername="${unavailable}" - serverpassword="${unavailable}" - else - adminpassword=$(sed -nr 's/^ServerAdminPassword=(.*)/\1/p' "${servercfgfullpath}") - servername=$(sed -nr 's/^SessionName=(.*)/\1/p' "${servercfgfullpath}") - serverpassword=$(sed -nr 's/^ServerPassword=(.*)/\1/p' "${servercfgfullpath}") - - # Not set - adminpassword=${adminpassword:-"NOT SET"} - servername=${servername:-"NOT SET"} - serverpassword=${serverpassword:-"NOT SET"} + if [ -f "${servercfgfullpath}" ]; then + fn_info_game_ini "adminpassword" "ServerAdminPassword" + fn_info_game_ini "servername" "SessionName" + fn_info_game_ini "serverpassword" "ServerPassword" + fi + adminpassword="${adminpassword:-"NOT SET"}" + maxplayers="${maxplayers:-"0"}" + port="${port:-"0"}" + queryport="${queryport:-"0"}" + rawport="$((port + 1))" + rconport="${rconport:-"0"}" + servername="${servername:-"NOT SET"}" + serverpassword="${serverpassword:-"NOT SET"}" +} + +# Config Type: ini +# Parameters: true +# Comment: ; or # +# Example: serverName=SERVERNAME +# Filetype: ini +fn_info_game_av() { + if [ -f "${servercfgfullpath}" ]; then + fn_info_game_ini "maxplayers" "maxPlayers" + fn_info_game_ini "port" "port" + fn_info_game_ini "rconport" "rconPort" + fn_info_game_ini "servername" "name" + fn_info_game_ini "serverpassword" "password" + fn_info_game_ini "rconpassword" "rconPassword" + if [ -n "${rconpassword}" ]; then + rconenabled="true" + fi fi - - # Parameters - maxplayers=${maxplayers:-"0"} - port=${port:-"0"} - queryport=${queryport:-"0"} - rawport=$((port + 1)) - rconport=${rconport:-"0"} + maxplayers="${maxplayers:-"0"}" + port="${port:-"0"}" + # queryport is port + 3 + # this doesnt respond to any queries, using tcp query on port instead. + queryport="${port:-"0"}" + rconenabled="${rconenabled:-"false"}" + rconpassword="${rconpassword:-"NOT SET"}" + rconport="${rconport:-"0"}" + servername="${servername:-"NOT SET"}" + serverpassword="${serverpassword:-"NOT SET"}" + steammasterport="$((port + 21))" + steamqueryport="$((port + 20))" +} + +# Config Type: ini +# Parameters: true +# Comment: ; or # +# Example: ServerName=SERVERNAME +# Filetype: ini +fn_info_game_btl() { + if [ -f "${servercfgfullpath}" ]; then + fn_info_game_ini "adminpassword" "AdminPassword" + fn_info_game_ini "servername" "ServerName" + fi + port="${port:-"0"}" + queryport="${queryport:-"0"}" + rconport="$((port + 2))" + servername="${servername:-"NOT SET"}" } -fn_info_game_arma3() { - # Config - if [ ! -f "${servercfgfullpath}" ]; then - adminpassword="${unavailable}" - maxplayers="${zero}" - servername="${unavailable}" - serverpassword="${unavailable}" - else - adminpassword=$(sed -nr 's/^passwordAdmin\s*=\s*"(.*)"\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}") +# Config Type: ini +# Parameters: true +# Comment: ; or # +# Example: ServerName=SERVERNAME +# Filetype: ini +fn_info_game_cmw() { + if [ -f "${servercfgfullpath}" ]; then + fn_info_game_ini "adminpassword" "AdminPassword" + fn_info_game_ini "maxplayers" "MaxPlayers" + fn_info_game_ini "rconport" "RConPort" "${servercfgdir}/DefaultGame.ini" + fn_info_game_ini "servername" "ServerName" + fn_info_game_ini "serverpassword" "GamePassword" + fi + adminpassword="${adminpassword:-"NOT SET"}" + defaultmap="${defaultmap:-"NOT SET"}" + maxplayers="${maxplayers:-"0"}" + port="${port:-"0"}" + queryport="${queryport:-"0"}" + rconport="${rconport:-"0"}" + servername="${servername:-"NOT SET"}" + serverpassword="${serverpassword:-"NOT SET"}" +} + +# Config Type: ini +# Parameters: true +# Comment: ; or # +# Example: iMaxClanMembers=1024 +# Filetype: ini +fn_info_game_dodr() { + if [ -f "${servercfgfullpath}" ]; then + fn_info_game_ini "maxplayers" "iServerMaxPlayers" + fi + maxplayers="${maxplayers:-"0"}" + port="${port:-"0"}" + queryport="${queryport:-"0"}" + servername="${servername:-"NOT SET"}" +} - # Not set - adminpassword=${adminpassword:-"NOT SET"} - maxplayers=${maxplayers:-"0"} - servername=${servername:-"NOT SET"} - serverpassword=${serverpassword:-"NOT SET"} +# Config Type: ini +# Parameters: true +# Comment: ; or # +# Example: cluster_name = SERVERNAME +# Filetype: ini +fn_info_game_dst() { + if [ -f "${clustercfgfullpath}" ]; then + fn_info_game_ini "maxplayers" "max_players" "${clustercfgfullpath}" + fn_info_game_ini "servername" "cluster_name" "${clustercfgfullpath}" + fn_info_game_ini "serverpassword" "cluster_password" "${clustercfgfullpath}" + fn_info_game_ini "tickrate" "tick_rate" "${clustercfgfullpath}" + fn_info_game_ini "masterport" "master_port" "${clustercfgfullpath}" + fn_info_game_ini "gamemode" "game_mode" "${clustercfgfullpath}" + fn_info_game_ini "configip" "bind_ip" "${clustercfgfullpath}" + fi + if [ -f "${servercfgfullpath}" ]; then + fn_info_game_ini "port" "server_port" "${servercfgfullpath}" + fn_info_game_ini "steamauthport" "authentication_port" "${servercfgfullpath}" + fn_info_game_ini "steammasterport" "master_server_port" "${servercfgfullpath}" + fi + cave="${cave:-"NOT SET"}" + cluster="${cluster:-"NOT SET"}" + configip="${configip:-"0.0.0.0"}" + gamemode="${gamemode:-"NOT SET"}" + master="${master:-"NOT SET"}" + masterport="${masterport:-"0"}" + maxplayers="${maxplayers:-"0"}" + port="${port:-"0"}" + servername="${servername:-"NOT SET"}" + serverpassword="${serverpassword:-"NOT SET"}" + shard="${shard:-"NOT SET"}" + sharding="${sharding:-"NOT SET"}" + steamauthport="${steamauthport:-"0"}" + steammasterport="${steammasterport:-"0"}" + tickrate="${tickrate:-"0"}" +} + +# Config Type: ini +# Parameters: true +# Comment: ; or # +# Example: ServerName=SERVERNAME +# Filetype: ini +fn_info_game_kf() { + if [ -f "${servercfgfullpath}" ]; then + fn_info_game_ini "adminpassword" "AdminPassword" + fn_info_game_ini "httpport" "ListenPort" + fn_info_game_ini "lanport" "LANServerPort" + fn_info_game_ini "port" "Port" + fn_info_game_ini "queryportgs" "QueryPort" + fn_info_game_ini "servername" "ServerName" + fn_info_game_ini "serverpassword" "GamePassword" + fn_info_game_ini "webadminenabled" "bEnabled" + fn_info_game_ini "webadminpass" "WebAdminPassword" + fn_info_game_ini "webadminuser" "AdminName" + + fi + adminpassword="${adminpassword:-"NOT SET"}" + defaultmap=${defaultmap:-"NOT SET"} + httpport="${httpport:-"0"}" + lanport="${lanport:-"0"}" + port="${port:-"0"}" + queryport="$((port + 1))" + queryportgs="${queryportgs:-"0"}" + servername="${servername:-"NOT SET"}" + serverpassword="${serverpassword:-"NOT SET"}" + steammasterport="${steammasterport:-"0"}" + steammasterport="28852" + steamport="${steamport:-"0"}" + steamport="20560" + webadminenabled"=${webadminenabled:-"NOT SET"}" + webadminpass="${adminpassword}" + webadminpass="${webadminpass:-"NOT SET"}" + webadminuser="${webadminuser:-"NOT SET"}" +} + +# Config Type: ini +# Parameters: true +# Comment: ; or # +# Example: ServerName=SERVERNAME +# Filetype: ini +fn_info_game_kf2() { + if [ -f "${servercfgfullpath}" ]; then + fn_info_game_ini "adminpassword" "AdminPassword" + fn_info_game_ini "httpport" "ListenPort" "${servercfgdir}/KFWeb.ini" + fn_info_game_ini "port" "Port" + fn_info_game_ini "servername" "ServerName" + fn_info_game_ini "serverpassword" "GamePassword" + fn_info_game_ini "webadminenabled" "bEnabled" + fn_info_game_ini "webadminpass" "WebAdminPassword" + fi + adminpassword="${adminpassword:-"NOT SET"}" + defaultmap="${defaultmap:-"NOT SET"}" + httpport="${httpport:-"0"}" + port="${port:-"0"}" + queryport="${queryport:-"0"}" + servername="${servername:-"NOT SET"}" + serverpassword="${serverpassword:-"NOT SET"}" + webadminenabled="${webadminenabled:-"NOT SET"}" + webadminpass="${webadminpass:-"NOT SET"}" + webadminuser="Admin" +} + +# Config Type: ini +# Parameters: true +# Comment: ; or # +# Example: ServerName=SERVERNAME +# Filetype: ini +fn_info_game_mh() { + if [ -f "${servercfgfullpath}" ]; then + fn_info_game_ini "servername" "ServerName" + fn_info_game_ini "serverpassword" "ServerPassword" + fn_info_game_ini "rconpassword" "AdminPassword" + fn_info_game_ini "maxplayers" "MaxSlots" + fi + servername="${servername:-"NOT SET"}" + serverpassword="${serverpassword:-"NOT SET"}" + rconpassword="${rconpassword:-"NOT SET"}" + maxplayers="${maxplayers:-"0"}" + port="${port:-"0"}" + queryport="${queryport:-"0"}" + beaconport="${beaconport:-"0"}" +} + +# Config Type: ini +# Parameters: true +# Comment: ; or # +# Example: ServerName="SERVERNAME" +# Filetype: cfg +fn_info_game_pstbs() { + if [ -f "${servercfgfullpath}" ]; then + fn_info_game_ini "servername" "ServerName" + fn_info_game_ini "maxplayers" "MaxPlayers" + fn_info_game_ini "reservedslots" "NumReservedSlots" + fn_info_game_ini "serverpassword" "ServerPassword" + fi + if [ -f "${servercfgdir}/Rcon.cfg" ]; then + fn_info_game_ini "rconpassword" "Password" "${servercfgdir}/Rcon.cfg" + fn_info_game_ini "rconport" "Port" "${servercfgdir}/Rcon.cfg" + fi + maxplayers="${maxplayers:-"0"}" + port="${port:-"0"}" + if [ -z "${queryport}" ]; then + queryport="${port:-"0"}" + fi + randommap="${randommap:-"NOT SET"}" + if [ -z "${rconpassword}" ] || [ ${#rconpassword} == 1 ]; then + rconpassword="NOT SET" fi + rconport="${rconport:-"0"}" + reservedslots="${reservedslots:-"0"}" + reservedslots=${reservedslots:-"0"} + servername="${servername:-"NOT SET"}" + tickrate="${tickrate:-"0"}" +} - # Parameters - battleeyeport=$((port + 4)) - port=${port:-"2302"} - queryport=$((port + 1)) - steammasterport=$((port + 2)) - voiceport=${port:-"2302"} - voiceunusedport=$((port + 3)) +# Config Type: ini +# Comment: ; or # +# Example: ServerName=SERVERNAME +# Filetype: cfg +fn_info_game_pvr() { + if [ -f "${servercfgfullpath}" ]; then + fn_info_game_ini "servername" "ServerName" + fn_info_game_ini "maxplayers" "MaxPlayers" + fi + servername="${servername:-"NOT SET"}" + maxplayers="${maxplayers:-"0"}" + port="${port:-"0"}" + port401="$((port + 400))" + queryport="${port:-"0"}" } -fn_info_game_armar() { - if [ ! -f "${servercfgfullpath}" ]; then - adminpassword="${unavailable}" - maxplayers="${zero}" - port=${port:-"0"} - queryport= - servername="${unavailable}" - serverpassword="${unavailable}" - else - adminpassword=$(jq -r '.adminPassword' "${servercfgfullpath}") - battleeyeport=1376 - configip=$(jq -r '.gameHostBindAddress' "${servercfgfullpath}") - maxplayers=$(jq -r '.game.playerCountLimit' "${servercfgfullpath}") - port=$(jq -r '.gameHostBindPort' "${servercfgfullpath}") - queryport=$(jq -r '.steamQueryPort' "${servercfgfullpath}") - servername=$(jq -r '.game.name' "${servercfgfullpath}") - serverpassword=$(jq -r '.game.password' "${servercfgfullpath}") +# Config Type: ini +# Parameters: true +# Comment: ; or # +# Example: PublicName=SERVERNAME +# Filetype: ini +fn_info_game_pz() { + if [ -f "${servercfgfullpath}" ]; then + fn_info_game_ini "worldname" "Map" + fn_info_game_ini "maxplayers" "MaxPlayers" + fn_info_game_ini "port" "DefaultPort" + fn_info_game_ini "rconpassword" "RCONPassword" + fn_info_game_ini "servername" "PublicName" + fn_info_game_ini "serverpassword" "Password" + + fi + adminpassword="${adminpassword:-"NOT SET"}" + worldname="${worldname:-"NOT SET"}" + maxplayers="${maxplayers:-"0"}" + port="${port:-"0"}" + queryport="${port:-"0"}" + rconpassword="${rconpassword:-"NOT SET"}" + servername="${servername:-"NOT SET"}" + serverpassword="${serverpassword:-"NOT SET"}" +} - # Not set - adminpassword=${adminpassword:-"NOT SET"} - configip=${configip:-"0.0.0.0"} - maxplayers=${maxplayers:-"0"} - port=${port:-"0"} - queryport=${queryport:-"0"} - servername=${servername:-"NOT SET"} - serverpassword=${serverpassword:-"NOT SET"} +# Config Type: ini +# Comment: ; or # +# Example: SERVERNAME=SERVERNAME +# Filetype: ini +fn_info_game_st() { + if [ -f "${servercfgfullpath}" ]; then + fn_info_game_ini "maxplayers" "MAXPLAYER" + fn_info_game_ini "rconpassword" "RCONPASSWORD" + fn_info_game_ini "servername" "SERVERNAME" + fn_info_game_ini "serverpassword" "PASSWORD" + fi + saveinterval="${saveinterval:-"0"}" + clearinterval="${clearinterval:-"0"}" + httpport="${port:-"0"}" + maxplayers="${maxplayers:-"0"}" + port="${port:-"0"}" + queryport="${queryport:-"0"}" + rconpassword="${rconpassword:-"NOT SET"}" + servername="${servername:-"NOT SET"}" + serverpassword="${serverpassword:-"NOT SET"}" + worldname="${worldname:-"NOT SET"}" + worldtype="${worldtype:-"NOT SET"}" + +} + +# Config Type: ini +# Comment: ; or # +# Example: ServerName=SERVERNAME +# Filetype: ini +fn_info_game_stn() { + if [ -f "${servercfgfullpath}" ]; then + fn_info_game_ini "configip" "ServerIP" + fn_info_game_ini "port" "ServerPort" + fn_info_game_ini "servername" "ServerName" + fn_info_game_ini "serverpassword" "ServerPassword" + fi + maxplayers="${maxplayers:-"0"}" + port="${port:-"0"}" + queryport="$((port + 1))" + servername="${servername:-"NOT SET"}" + serverpassword="${serverpassword:-"NOT SET"}" +} + +# Config Type: ini +# Parameters: true +# Comment: ; or # +# Example: ServerName=ServerName +# Filetype: ini +fn_info_game_ti() { + if [ -f "${servercfgfullpath}" ]; then + fn_info_game_ini "servername" "ServerName" + fn_info_game_ini "maxplayers" "MaxPlayerCount" fi + servername="${servername:-"NOT SET"}" + maxplayers="${maxplayers:-"0"}" + port="${port:-"0"}" + queryport="${queryport:-"0"}" } -fn_info_game_av() { - # Config - if [ ! -f "${servercfgfullpath}" ]; then - maxplayers="${unavailable}" - servername="${unavailable}" - serverpassword="${unavailable}" - port=${zero} - queryport=${zero} - steamqueryport=${zero} - steammasterport=${zero} - rconport=${zero} - rconenabled="${unavailable}" - rconpassword="${unavailable}" - else - maxplayers=$(grep "maxPlayers=" "${servercfgfullpath}" | sed 's/maxPlayers=//') - servername=$(grep "name=" "${servercfgfullpath}" | sed 's/name=//') - serverpassword=$(grep "password=" "${servercfgfullpath}" | sed 's/password=//') - port=$(grep "port=" "${servercfgfullpath}" | sed 's/port=//') - queryport=$((port + 3)) - steamqueryport=$((port + 20)) - steammasterport=$((port + 21)) - rconport=$(grep "rconPort=" "${servercfgfullpath}" | sed 's/rconPort=//') - - rconpassword=$(grep "rconPassword=" "${servercfgfullpath}" | sed 's/rconPassword=//') - if [ -n "${rconpassword}" ]; then - rconenabled="true" - fi - - # Not set - maxplayers=${maxplayers:-"0"} - servername=${servername:-"NOT SET"} - serverpassword=${serverpassword:-"NOT SET"} - port=${port:-"0"} - queryport=${queryport:-"0"} - steamqueryport=${steamqueryport:-"0"} - steammasterport=${steammasterport:-"0"} - rconport=${rconport:-"0"} - rconenabled=${rconenabled:-"NOT SET"} - rconpassword=${rconpassword:-"NOT SET"} +# Config Type: ini +# Parameters: false +# Comment: ; or # +# Example: default_voice_port=9987 +# Filetype: ini +fn_info_game_ts3() { + if [ -f "${servercfgfullpath}" ]; then + fn_info_game_ini "dbplugin" "dbplugin" + fn_info_game_ini "port" "default_voice_port" + fn_info_game_ini "queryport" "query_port" + fn_info_game_ini "querysshport" "query_ssh_port" + fn_info_game_ini "queryhttpport" "query_http_port" + fn_info_game_ini "queryhttpsport" "query_https_port" + fn_info_game_ini "fileport" "filetransfer_port" + fn_info_game_ini "configip" "voice_ip" + fi + dbplugin="${dbplugin:-"NOT SET"}" + port="${port:-"9987"}" + queryport="${queryport:-"10011"}" + querysshport="${querysshport:-"10022"}" + queryhttpport="${queryhttpport:-"10080"}" + queryhttpsport="${queryhttpsport:-"10443"}" + fileport="${fileport:-"30033"}" + telnetport="${queryport}" + configip="${configip:-"0.0.0.0"}" +} + +# Config Type: ini +# Comment: ; or # +# Example: ServerTitle=SERVERNAME +# Filetype: ini +fn_info_game_tu() { + if [ -f "${servercfgfullpath}" ]; then + fn_info_game_ini "servername" "ServerTitle" + fn_info_game_ini "maxplayers" "MaxPlayers" fi + maxplayers="${maxplayers:-"0"}" + port="${port:-"0"}" + queryport="${queryport:-"0"}" + servername="${servername:-"NOT SET"}" + steamport="$((port + 1))" } +# Config Type: ini +# Comment: ; or # +# Example: ServerName=SERVERNAME +# Filetype: ini +fn_info_game_ut99() { + if [ "${servercfgfullpath}" ]; then + fn_info_game_ini "servername" "ServerName" + fn_info_game_ini "serverpassword" "GamePassword" + fn_info_game_ini "adminpassword" "AdminPassword" + fn_info_game_ini "port" "Port" + fn_info_game_ini "queryportgs" "OldQueryPortNumber" + fn_info_game_ini "beaconport" "ServerBeaconPort" + fn_info_game_ini "webadminenabled" "bEnabled" + fn_info_game_ini "webadminport" "ListenPort" + fn_info_game_ini "webadminuser" "AdminUserName" + fn_info_game_ini "webadminpass" "AdminPassword" + fi + defaultmap="${defaultmap:-"NOT SET"}" + queryport="$((port + 1))" +} + +# Config Type: SQF +# Comment: // or /* */ +# Example: serverName = "SERVERNAME"; +# Filetype: cfg +fn_info_game_arma3() { + if [ -f "${servercfgfullpath}" ]; then + adminpassword="$(sed -nr 's/^passwordAdmin\s*=\s*"(.*)"\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}")" + fi + port="${port:-"2302"}" + adminpassword="${adminpassword:-"NOT SET"}" + battleeyeport="$((port + 4))" + maxplayers="${maxplayers:-"0"}" + queryport="$((port + 1))" + servername="${servername:-"NOT SET"}" + serverpassword="${serverpassword:-"NOT SET"}" + steammasterport="$((port + 2))" + voiceport="${port:-"2302"}" + voiceunusedport="$((port + 3))" +} + +# Config Type: json +# Comment: // or /* */ +fn_info_game_armar() { + if [ -f "${servercfgfullpath}" ]; then + adminpassword="$(jq -r '.adminPassword' "${servercfgfullpath}")" + battleeyeport=1376 + configip="$(jq -r '.gameHostBindAddress' "${servercfgfullpath}")" + maxplayers="$(jq -r '.game.playerCountLimit' "${servercfgfullpath}")" + port="$(jq -r '.gameHostBindPort' "${servercfgfullpath}")" + queryport="$(jq -r '.steamQueryPort' "${servercfgfullpath}")" + servername="$(jq -r '.game.name' "${servercfgfullpath}")" + serverpassword="$(jq -r '.game.password' "${servercfgfullpath}")" + fi + port="${port:-"0"}" + adminpassword="${adminpassword:-"NOT SET"}" + battleeyeport="$((port + 4))" + configip="${configip:-"0.0.0.0"}" + maxplayers="${maxplayers:-"0"}" + queryport="${queryport:-"0"}" + servername="${servername:-"NOT SET"}" + serverpassword="${serverpassword:-"NOT SET"}" +} + +# Config Type: con +# Comment: # or // +# Example: game.serverName "SERVERNAME" +# Filetype: con fn_info_game_bf1942() { # Config if [ ! -f "${servercfgfullpath}" ]; then @@ -190,6 +553,10 @@ fn_info_game_bf1942() { fi } +# Config Type: con +# Comment: # or // +# Example: game.serverName "SERVERNAME" +# Filetype: con fn_info_game_bfv() { # Config if [ ! -f "${servercfgfullpath}" ]; then @@ -216,6 +583,10 @@ fn_info_game_bfv() { fi } +# Config Type: ini unknown (Source?) +# Comment: # or // +# Example: ServerName=SERVERNAME +# Filetype: txt fn_info_game_bo() { # Config if [ ! -f "${servercfgfullpath}" ]; then @@ -240,6 +611,10 @@ fn_info_game_bo() { fi } +# Config Type: XML +# Comment: +# Example: +# Filetype: xml fn_info_game_bt() { # Config if [ ! -f "${servercfgfullpath}" ]; then @@ -264,29 +639,8 @@ fn_info_game_bt() { fi } -fn_info_game_btl() { - # Config - if [ ! -f "${servercfgfullpath}" ]; then - servername="${unavailable}" - serverpassword="${unavailable}" - gamemode="${unavailable}" - else - servername=$(grep -m2 "ServerName" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^--/d' -e 's/ServerName//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//') - serverpassword=$(grep "Password" "${servercfgfullpath}" | grep -v "RCONPassword" | sed -e 's/^[ \t]*//g' -e '/^--/d' -e 's/Password//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//') - gamemode=$(grep -m2 "PlayMode" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^--/d' -e 's/PlayMode//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//') - - # Not set - servername=${servername:-"NOT SET"} - serverpassword=${serverpassword:-"NOT SET"} - gamemode=${gamemode:-"NOT SET"} - fi - - # Parameters - port=${port:-"0"} - queryport=${queryport:-"0"} - rconport=$((port + 2)) -} - +# Config Type: json +# Comment: // or /* */ fn_info_game_cd() { if [ ! -f "${servercfgfullpath}" ]; then servername="${unavailable}" @@ -307,6 +661,8 @@ fn_info_game_cd() { fi } +# Config Type: json +# Comment: // or /* */ fn_info_game_ck() { if [ ! -f "${servercfgfullpath}" ]; then servername="${unavailable}" @@ -318,33 +674,10 @@ fn_info_game_ck() { queryport=$((port + 1)) } -fn_info_game_cmw() { - # Config - if [ ! -f "${servercfgfullpath}" ]; then - adminpassword="${unavailable}" - rconport=${zero} - servername="${unavailable}" - serverpassword="${unavailable}" - - else - adminpassword=$(grep -E "^adminpassword=" "${servercfgfullpath}" | tr -cd '[:digit:]') - rconport=$(grep -E "^RConPort=" "${servercfgdir}/DefaultGame.ini" | tr -cd '[:digit:]') - servername=$(grep -E "^ServerName" "${servercfgfullpath}" | sed 's/^ServerName=//') - serverpassword=$(grep -E "^GamePassword" "${servercfgfullpath}" | sed 's/^ServerName=//') - - # Not set - adminpassword=${adminpassword:-"NOT SET"} - rconport=${rconport:-"0"} - servername=${servername:-"NOT SET"} - serverpassword=${serverpassword:-"NOT SET"} - fi - - # Parameters - defaultmap=${defaultmap:-"NOT SET"} - port=${port:-"0"} - queryport=${queryport:-"0"} -} - +# Config Type: QuakeC +# Comment: // or /* */ +# Example: set sv_hostname "SERVERNAME" +# Filetype: cfg fn_info_game_cod() { # Config if [ ! -f "${servercfgfullpath}" ]; then @@ -365,6 +698,10 @@ fn_info_game_cod() { port=${port:-"0"} } +# Config Type: QuakeC +# Comment: // or /* */ +# Example: set sv_hostname "SERVERNAME" +# Filetype: cfg fn_info_game_coduo() { # Config if [ ! -f "${servercfgfullpath}" ]; then @@ -386,6 +723,10 @@ fn_info_game_coduo() { queryport=${port:-"28960"} } +# Config Type: QuakeC +# Comment: // or /* */ +# Example: set sv_hostname "SERVERNAME" +# Filetype: cfg fn_info_game_cod2() { # Config if [ ! -f "${servercfgfullpath}" ]; then @@ -407,6 +748,10 @@ fn_info_game_cod2() { queryport=${port:-"28960"} } +# Config Type: QuakeC +# Comment: // or /* */ +# Example: set sv_hostname "SERVERNAME" +# Filetype: cfg fn_info_game_cod4() { # Config if [ ! -f "${servercfgfullpath}" ]; then @@ -430,6 +775,10 @@ fn_info_game_cod4() { queryport=${port:-"28960"} } +# Config Type: QuakeC +# Comment: // or /* */ +# Example: set sv_hostname "SERVERNAME" +# Filetype: cfg fn_info_game_codwaw() { # Config if [ ! -f "${servercfgfullpath}" ]; then @@ -451,6 +800,8 @@ fn_info_game_codwaw() { queryport=${port:-"28960"} } +# Config Type: json +# Comment: // or /* */ fn_info_game_col() { # Config if [ ! -f "${servercfgfullpath}" ]; then @@ -483,23 +834,10 @@ fn_info_game_col() { fi } -fn_info_game_dodr() { - # Config - if [ ! -f "${servercfgfullpath}" ]; then - maxplayers="${zero}" - else - maxplayers=$(sed -nr 's/^iServerMaxPlayers=(.*)$/\1/p' "${servercfgfullpath}") - - # Not set - maxplayers=${maxplayers:-"0"} - fi - - # Parameters - servername=${servername:-"NOT SET"} - port=${port:-"7777"} - queryport=${queryport:-"27015"} -} - +# Config Type: custom (Dayz "server profiles") +# Comment: // +# Example: hostname = "SERVERNAME"; +# Filetype: cfg fn_info_game_dayz() { # Config if [ ! -f "${servercfgfullpath}" ]; then @@ -528,57 +866,8 @@ fn_info_game_dayz() { battleeyeport=$((port + 4)) } -fn_info_game_dst() { - # Config - if [ ! -f "${clustercfgfullpath}" ]; then - servername="${unavailable}" - serverpassword="${unavailable}" - maxplayers="${zero}" - gamemode="${unavailable}" - tickrate="${zero}" - masterport="${zero}" - else - servername=$(grep "cluster_name" "${clustercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/cluster_name//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//') - serverpassword=$(grep "cluster_password" "${clustercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/cluster_password//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//') - maxplayers=$(grep "max_players" "${clustercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]') - gamemode=$(grep "game_mode" "${clustercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/game_mode//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//') - tickrate=$(grep "tick_rate" "${clustercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]') - masterport=$(grep "master_port" "${clustercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]') - configip=$(grep "bind_ip" "${clustercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/bind_ip//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//') - - # Not set - servername=${servername:-"NOT SET"} - serverpassword=${serverpassword:-"NOT SET"} - maxplayers=${maxplayers:-"0"} - gamemode=${gamemode:-"NOT SET"} - tickrate=${tickrate:-"0"} - masterport=${masterport:-"0"} - configip=${configip:-"0.0.0.0"} - fi - - if [ ! -f "${servercfgfullpath}" ]; then - port="${zero}" - steamauthport="${zero}" - steammasterport="${zero}" - else - port=$(grep "server_port" "${servercfgfullpath}" | grep "^server_port" | grep -v "#" | tr -cd '[:digit:]') - steamauthport=$(grep "authentication_port" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]') - steammasterport=$(grep "master_server_port" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]') - - # Not set - port=${port:-"0"} - steamauthport=${steamauthport:-"0"} - steammasterport=${steammasterport:-"0"} - fi - - # Parameters - sharding=${sharding:-"NOT SET"} - master=${master:-"NOT SET"} - shard=${shard:-"NOT SET"} - cluster=${cluster:-"NOT SET"} - cave=${cave:-"NOT SET"} -} - +# Config Type: json +# Comment: // or /* */ fn_info_game_eco() { # Config if [ ! -f "${servercfgfullpath}" ]; then @@ -608,6 +897,10 @@ fn_info_game_eco() { fi } +# Config Type: QuakeC +# Comment: // or /* */ +# Example: set sv_hostname "SERVERNAME" +# Filetype: cfg fn_info_game_etl() { # Config if [ ! -f "${servercfgfullpath}" ]; then @@ -637,6 +930,8 @@ fn_info_game_etl() { fi } +# Config Type: json +# Comment: // or /* */ fn_info_game_fctr() { # Config if [ ! -f "${servercfgfullpath}" ]; then @@ -675,6 +970,35 @@ fn_info_game_fctr() { fi } +# Config Type: parameters (json possibly supported) +# Comment: // or /* */ +fn_info_game_hw() { + # Parameters + servername=${servername:-"NOT SET"} + port=${port:-"0"} + queryport=${queryport:-"0"} + maxplayers=${maxplayers:-"0"} + defaultmap=${defaultmap:-"NOT SET"} + creativemode=${creativemode:-"NOT SET"} +} + +# Config Type: unknown +fn_info_game_inss() { + # Parameters + port=${port:-"0"} + queryport=${queryport:-"0"} + rconport=${rconport:-"0"} + servername=${servername:-"NOT SET"} + serverpassword=${serverpassword:-"NOT SET"} + defaultmap=${defaultmap:-"NOT SET"} + defaultscenario=${defaultscenario:-"NOT SET"} + maxplayers=${maxplayers:-"0"} +} + +# Config Type: lua (Custom) +# Comment: -- +# Example: Name = "SERVERNAME", +# Filetype: lua fn_info_game_jc2() { # Config if [ ! -f "${servercfgfullpath}" ]; then @@ -704,28 +1028,8 @@ fn_info_game_jc2() { fi } -fn_info_game_hw() { - # Parameters - servername=${servername:-"NOT SET"} - port=${port:-"0"} - queryport=${queryport:-"0"} - maxplayers=${maxplayers:-"0"} - defaultmap=${defaultmap:-"NOT SET"} - creativemode=${creativemode:-"NOT SET"} -} - -fn_info_game_inss() { - # Parameters - port=${port:-"0"} - queryport=${queryport:-"0"} - rconport=${rconport:-"0"} - servername=${servername:-"NOT SET"} - serverpassword=${serverpassword:-"NOT SET"} - defaultmap=${defaultmap:-"NOT SET"} - defaultscenario=${defaultscenario:-"NOT SET"} - maxplayers=${maxplayers:-"0"} -} - +# Config Type: json +# Comment: // or /* */ fn_info_game_jc3() { # Config if [ ! -f "${servercfgfullpath}" ]; then @@ -764,124 +1068,40 @@ fn_info_game_jc3() { fi } +# Config Type: QuakeC +# Comment: // or /* */ +# Example: set sv_hostname "SERVERNAME" +# Filetype: cfg fn_info_game_jk2() { # Config if [ ! -f "${servercfgfullpath}" ]; then rconpassword="${unavailable}" servername="${unavailable}" serverpassword="${unavailable}" - maxplayers="${zero}" - serverversion="${unavailable}" - else - rconpassword=$(grep "seta rconpassword" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/seta rconpassword//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//') - servername=$(grep "seta sv_hostname" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/seta sv_hostname//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//') - serverpassword=$(grep "seta g_password" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/seta g_password//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//') - maxplayers=$(grep "seta sv_maxclients" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]') - serverversion=$(grep "seta mv_serverversion" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/seta mv_serverversion//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//') - - # Not set - rconpassword=${rconpassword:-"NOT SET"} - servername=${servername:-"NOT SET"} - serverpassword=${serverpassword:-"NOT SET"} - maxplayers=${maxplayers:-"0"} - serverversion=${serverversion:-"NOT SET"} - fi - - # Parameters - port=${port:-"0"} - queryport=${port} - defaultmap=${defaultmap:-"NOT SET"} -} - -fn_info_game_kf() { - # Config - if [ ! -f "${servercfgfullpath}" ]; then - servername="${unavailable}" - serverpassword="${unavailable}" - adminpassword="${unavailable}" - port="${zero}" - queryport="${zero}" - queryportgs="${zero}" - steamport="${zero}" - steammasterport="${zero}" - lanport="${zero}" - httpport="${zero}" - webadminenabled="${unavailable}" - webadminuser="${unavailable}" - webadminpass="${unavailable}" - else - servername=$(sed -nr 's/^ServerName=(.*)$/\1/p' "${servercfgfullpath}" | tr -d '=\";,:' | sed 's/\r$//') - serverpassword=$(sed -nr 's/^GamePassword=(.*)$/\1/p' "${servercfgfullpath}" | tr -d '=\";,:' | sed 's/\r$//') - adminpassword=$(sed -nr 's/^AdminPassword=(.*)$/\1/p' "${servercfgfullpath}" | tr -d '=\";,:' | sed 's/\r$//') - port=$(sed -nr 's/^Port=(.*)$/\1/p' "${servercfgfullpath}" | tr -cd '[:digit:]') - queryport=$((port + 1)) - queryportgs=$(sed -nr 's/^OldQueryPortNumber=(.*)$/\1/p' "${servercfgfullpath}" | tr -cd '[:digit:]') - steamport="20560" - steammasterport="28852" - lanport=$(grep "LANServerPort=" "${servercfgfullpath}" | tr -cd '[:digit:]') - httpport=$(sed -nr 's/^ListenPort=(.*)$/\1/p' "${servercfgfullpath}" | tr -cd '[:digit:]') - webadminenabled=$(sed -nr 's/^bEnabled=(.*)$/\1/p' "${servercfgfullpath}" | tr -d '=\";,:' | sed 's/\r$//') - webadminuser=$(sed -nr 's/^AdminName=(.*)$/\1/p' "${servercfgfullpath}" | tr -d '=\";,:' | sed 's/\r$//') - webadminpass="${adminpassword}" - - # Not set - servername=${servername:-"NOT SET"} - serverpassword=${serverpassword:-"NOT SET"} - adminpassword=${adminpassword:-"NOT SET"} - port=${port:-"0"} - queryport=${queryport:-"0"} - queryportgs=${queryportgs:-"0"} - steamport=${steamport:-"0"} - steammasterport=${steammasterport:-"0"} - lanport=${lanport:-"0"} - httpport=${httpport:-"0"} - webadminenabled=${webadminenabled:-"NOT SET"} - webadminuser=${webadminuser:-"NOT SET"} - webadminpass=${webadminpass:-"NOT SET"} - fi - - # Parameters - defaultmap=${defaultmap:-"NOT SET"} -} - -fn_info_game_kf2() { - # Config - if [ ! -f "${servercfgfullpath}" ]; then - servername="${unavailable}" - serverpassword="${unavailable}" - adminpassword="${unavailable}" - port=${zero} - queryport=${zero} - webadminenabled="${unavailable}" - httpport="${zero}" - webadminuser="${unavailable}" - webadminpass="${unavailable}" + maxplayers="${zero}" + serverversion="${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 "GamePassword" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/GamePassword//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//') - adminpassword=$(grep "AdminPassword" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/AdminPassword//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//') - port=$(grep "Port" "${servercfgdir}/LinuxServer-KFEngine.ini" | sed -e 's/^[ \t]*//g' | grep "^Port" | grep -v "#" | tr -cd '[:digit:]') - webadminenabled=$(grep "bEnabled" "${servercfgdir}/KFWeb.ini" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/bEnabled//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//') - httpport=$(grep "ListenPort" "${servercfgdir}/KFWeb.ini" | grep -v "#" | tr -cd '[:digit:]') - webadminuser="Admin" - webadminpass=$(grep "AdminPassword" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/AdminPassword//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//') + rconpassword=$(grep "seta rconpassword" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/seta rconpassword//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//') + servername=$(grep "seta sv_hostname" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/seta sv_hostname//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//') + serverpassword=$(grep "seta g_password" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/seta g_password//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//') + maxplayers=$(grep "seta sv_maxclients" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]') + serverversion=$(grep "seta mv_serverversion" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/seta mv_serverversion//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//') # Not set + rconpassword=${rconpassword:-"NOT SET"} servername=${servername:-"NOT SET"} serverpassword=${serverpassword:-"NOT SET"} - adminpassword=${adminpassword:-"NOT SET"} - port=${port:-"0"} - webadminenabled=${webadminenabled:-"NOT SET"} - httpport=${webadminport:-"0"} - webadminuser=${webadminuser:-"NOT SET"} - webadminpass=${webadminpass:-"NOT SET"} + maxplayers=${maxplayers:-"0"} + serverversion=${serverversion:-"NOT SET"} fi # Parameters - queryport=${queryport:-"0"} + port=${port:-"0"} + queryport=${port} defaultmap=${defaultmap:-"NOT SET"} } +# Config Type: parameters fn_info_game_lo() { # Parameters servername=${servername:-"NOT SET"} @@ -890,6 +1110,10 @@ fn_info_game_lo() { maxplayers=${slots:-"0"} } +# Config Type: Java properties +# Comment: # or ! +# Example: motd=SERVERNAME +# Filetype: properties fn_info_game_mc() { # Config if [ ! -f "${servercfgfullpath}" ]; then @@ -901,7 +1125,7 @@ fn_info_game_mc() { queryport="${zero}" queryenabled="${unavailable}" gamemode="${unavailable}" - gameworld="${unavailable}" + worldname="${unavailable}" else servername=$(grep "motd" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/motd//g' | tr -d '=\";,:' | sed 's/\\u00A70//g;s/\\u00A71//g;s/\\u00A72//g;s/\\u00A73//g;s/\\u00A74//g;s/\\u00A75//g;s/\\u00A76//g;s/\\u00A77//g;s/\\u00A78//g;s/\\u00A79//g;s/\\u00A7a//g;s/\\u00A7b//g;s/\\u00A7c//g;s/\\u00A7d//g;s/\\u00A7e//g;s/\\u00A7f//g;s/\\u00A7l//g;s/\\u00A7o//g;s/\\u00A7n//g;s/\\u00A7m//g;s/\\u00A7k//g' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//') rconpassword=$(grep "rcon.password" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/rcon.password//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//') @@ -914,7 +1138,7 @@ fn_info_game_mc() { fi queryenabled=$(grep "enable-query" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/enable-query//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//') gamemode=$(grep "gamemode" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]') - gameworld=$(grep "level-name" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/level-name//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//') + worldname=$(grep "level-name" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/level-name//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//') configip=$(grep "server-ip" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^--/d' -e 's/server-ip//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//') # Not set @@ -926,11 +1150,15 @@ fn_info_game_mc() { queryport=${queryport:-"NOT SET"} queryenabled="${queryenabled:-"NOT SET"}" gamemode=${gamemode:-"NOT SET"} - gameworld=${gameworld:-"NOT SET"} + worldname=${worldname:-"NOT SET"} configip=${configip:-"0.0.0.0"} fi } +# Config Type: Java properties +# Comment: # or ! +# Example: server-name=SERVERNAME +# Filetype: properties fn_info_game_mcb() { # Config if [ ! -f "${servercfgfullpath}" ]; then @@ -940,7 +1168,7 @@ fn_info_game_mcb() { portipv6="${zero}" queryport="${zero}" gamemode="${unavailable}" - gameworld="${unavailable}" + worldname="${unavailable}" else servername=$(grep "server-name" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/server-name//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//') maxplayers=$(grep "max-players" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]') @@ -948,7 +1176,7 @@ fn_info_game_mcb() { portipv6=$(grep "server-portv6\b" "${servercfgfullpath}" | sed 's/v6//g' | grep -v "#" | tr -cd '[:digit:]') queryport=${port} gamemode=$(grep "gamemode" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/gamemode//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//') - gameworld=$(grep "level-name" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/level-name//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//') + worldname=$(grep "level-name" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/level-name//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//') # Not set servername=${servername:-"NOT SET"} @@ -957,36 +1185,14 @@ fn_info_game_mcb() { portipv6=${portipv6:-"NOT SET"} queryport=${queryport:-"NOT SET"} gamemode=${gamemode:-"NOT SET"} - gameworld=${gameworld:-"NOT SET"} - fi -} - -fn_info_game_mh() { - # Config - if [ ! -f "${servercfgfullpath}" ]; then - servername="${unavailable}" - serverpassword="${unavailable}" - rconpassword="${unavailable}" - maxplayers="${unavailable}" - else - servername=$(grep "ServerName" "${servercfgfullpath}" | awk -F '=' '{print $2}') - serverpassword=$(grep "ServerPassword" "${servercfgfullpath}" | awk -F '=' '{print $2}') - rconpassword=$(grep "AdminPassword" "${servercfgfullpath}" | awk -F '=' '{print $2}') - maxplayers=$(grep "MaxSlots" "${servercfgfullpath}" | awk -F '=' '{print $2}') - - # Not set - servername=${servername:-"NOT SET"} - serverpassword=${serverpassword:-"NOT SET"} - rconpassword=${rconpassword:-"NOT SET"} - maxplayers=${maxplayers:-"0"} + worldname=${worldname:-"NOT SET"} fi - - # Parameters - port=${port:-"0"} - queryport=${queryport:-"0"} - beaconport=${beaconport:-"0"} } +# Config Type: QuakeC +# Comment: // or /* */ +# Example: set sv_hostname "SERVERNAME" +# Filetype: cfg fn_info_game_mohaa() { # Config if [ ! -f "${servercfgfullpath}" ]; then @@ -1013,6 +1219,8 @@ fn_info_game_mohaa() { defaultmap=${defaultmap:-"NOT SET"} } +# Config Type: json +# Comment: // or /* */ fn_info_game_mom() { # Config if [ ! -f "${servercfgfullpath}" ]; then @@ -1038,6 +1246,10 @@ fn_info_game_mom() { beaconport=${queryport:-"15000"} } +# Config Type: xml +# Comment: +# Example: Default MTA Server +# Filetype: conf fn_info_game_mta() { # Config if [ ! -f "${servercfgfullpath}" ]; then @@ -1074,6 +1286,10 @@ fn_info_game_mta() { } +# Config Type: custom +# Comment: // +# Example: port = 14159, +# Filetype: cfg fn_info_game_nec() { # Config if [ ! -f "${servercfgfullpath}" ]; then @@ -1172,68 +1388,10 @@ fn_info_game_pc2() { fi } -fn_info_game_pstbs() { - # Config - if [ ! -f "${servercfgfullpath}" ]; then - servername="${unavailable}" - maxplayers="${unavailable}" - reservedslots="${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]*$//') - maxplayers=$(grep "MaxPlayers=" "${servercfgfullpath}" | tr -cd '[:digit:]') - reservedslots=$(grep "NumReservedSlots=" "${servercfgfullpath}" | tr -cd '[:digit:]') - - # Not set - servername=${servername:-"NOT SET"} - maxplayers=${maxplayers:-"0"} - reservedslots=${reservedslots:-"0"} - fi - - if [ ! -f "${servercfgdir}/Rcon.cfg" ]; then - rconport=${unavailable} - rconpassword=${unavailable} - else - rconport=$(grep "Port=" "${servercfgdir}/Rcon.cfg" | tr -cd '[:digit:]') - rconpassword=$(grep "Password=" "${servercfgdir}/Rcon.cfg" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/Password//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//') - - # Not set - rconport=${rconport:-"0"} - if [ -z "${rconpassword}" ] || [ ${#rconpassword} == 1 ]; then - rconpassword="NOT SET" - fi - fi - - # Parameters - port=${port:-"0"} - if [ -z "${queryport}" ]; then - queryport=${port:-"0"} - fi - rconport=${rconport:-"0"} - randommap=${randommap:-"NOT SET"} - maxplayers=${maxplayers:-"0"} - reservedslots=${reservedslots:-"0"} -} - -fn_info_game_pvr() { - # Config - if [ ! -f "${servercfgfullpath}" ]; then - servername="${unavailable}" - maxplayers="${unavailable}" - else - servername=$(grep "ServerName" "${servercfgfullpath}" | awk -F '=' '{print $2}') - maxplayers=$(grep "MaxPlayers" "${servercfgfullpath}" | awk -F '=' '{print $2}') - - # Not set - servername=${servername:-"NOT SET"} - maxplayers=${maxplayers:-"0"} - fi - - # Parameters - port=${port:-"0"} - port401=$((port + 400)) - queryport=${port:-"0"} -} - +# Config Type: SiiNunit +# Comment: // +# Example: lobby_name: "SERVERNAME" +# Filetype: ssi fn_info_game_prism3d() { # Config if [ ! -f "${servercfgfullpath}" ]; then @@ -1258,40 +1416,10 @@ fn_info_game_prism3d() { fi } -fn_info_game_pz() { - # Config - if [ ! -f "${servercfgfullpath}" ]; then - servername="${unavailable}" - serverpassword="${unavailable}" - rconpassword="${unavailable}" - maxplayers="${zero}" - port="${zero}" - queryport="${zero}" - gameworld="${unavailable}" - else - servername=$(grep "PublicName" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/PublicName//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//') - serverpassword=$(grep "Password" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' | grep "^Password" | sed -e '/^#/d' -e 's/Password//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//') - rconpassword=$(grep "RCONPassword" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/RCONPassword//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//') - maxplayers=$(grep "MaxPlayers" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]') - port=$(grep "DefaultPort" "${servercfgfullpath}" | tr -cd '[:digit:]') - queryport=${port} - gameworld=$(grep "Map" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' | grep "^Map" | sed -e '/^#/d' -e 's/Map//g' | tr -d '=\";' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//') - - # Not set - servername=${servername:-"NOT SET"} - serverpassword=${serverpassword:-"NOT SET"} - rconpassword=${rconpassword:-"NOT SET"} - maxplayers=${maxplayers:-"0"} - port=${port:-"0"} - queryport=${queryport:-"0"} - gameworld=${gameworld:-"NOT SET"} - fi - - # Parameters - adminpassword=${adminpassword:-"NOT SET"} - -} - +# Config Type: QuakeC +# Comment: // or /* */ +# Example: set hostname "SERVERNAME" +# Filetype: cfg fn_info_game_q2() { # Config if [ ! -f "${servercfgfullpath}" ]; then @@ -1315,6 +1443,10 @@ fn_info_game_q2() { defaultmap=${defaultmap:-"NOT SET"} } +# Config Type: QuakeC +# Comment: // or /* */ +# Example: set sv_hostname "SERVERNAME" +# Filetype: cfg fn_info_game_q3() { # Config if [ ! -f "${servercfgfullpath}" ]; then @@ -1341,6 +1473,10 @@ fn_info_game_q3() { defaultmap=${defaultmap:-"NOT SET"} } +# Config Type: QuakeC +# Comment: // or /* */ +# Example: set sv_hostname "SERVERNAME" +# Filetype: cfg fn_info_game_ql() { # Config if [ ! -f "${servercfgfullpath}" ]; then @@ -1376,6 +1512,10 @@ fn_info_game_ql() { fi } +# Config Type: QuakeC +# Comment: // or /* */ +# Example: hostname "SERVERNAME" +# Filetype: cfg fn_info_game_qw() { # Config if [ ! -f "${servercfgfullpath}" ]; then @@ -1448,6 +1588,10 @@ fn_info_game_ro() { defaultmap=${defaultmap:-"NOT SET"} } +# Config Type: QuakeC +# Comment: // or /* */ +# Example: set sv_hostname "SERVERNAME" +# Filetype: cfg fn_info_game_rtcw() { # Config if [ ! -f "${servercfgfullpath}" ]; then @@ -1474,6 +1618,7 @@ fn_info_game_rtcw() { defaultmap=${defaultmap:-"NOT SET"} } +# Config Type: Parameters (mostly) fn_info_game_rust() { # Parameters servername=${servername:-"NOT SET"} @@ -1512,7 +1657,7 @@ fn_info_game_rw() { port4="${zero}" queryport="${zero}" gamemode="${unavailable}" - gameworld="${unavailable}" + worldname="${unavailable}" else servername=$(grep "server_name" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/server_name//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//') serverpassword=$(grep "server_password" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/server_password//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//') @@ -1526,7 +1671,7 @@ fn_info_game_rw() { queryport="${port}" httpqueryport=$((port - 1)) gamemode=$(grep "settings_default_gamemode=" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/settings_default_gamemode//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//') - gameworld=$(grep "server_world_name" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/server_world_name//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//') + worldname=$(grep "server_world_name" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/server_world_name//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//') configip=$(grep "server_ip" "${servercfgfullpath}" | grep -v "database_mysql_server_ip" | sed -e 's/^[ \t]*//g' -e '/^--/d' -e 's/server_ip//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//') # Not set @@ -1542,11 +1687,15 @@ fn_info_game_rw() { queryport=${queryport:-"0"} httpqueryport=${httpport:-"0"} gamemode=${gamemode:-"NOT SET"} - gameworld=${gameworld:-"NOT SET"} + worldname=${worldname:-"NOT SET"} configip=${configip:-"0.0.0.0"} fi } +# Config Type: custom +# Comment: // or /* */ +# example: hostname "SERVERNAME" +# filetypes: cfg fn_info_game_samp() { # Config if [ ! -f "${servercfgfullpath}" ]; then @@ -1629,6 +1778,10 @@ fn_info_game_sbots() { maxplayers=${maxplayers:-"0"} } +# Config Type: custom (possibly YAML) +# Comment: # +# Example: server_name: SERVERNAME +# Filetype: txt fn_info_game_scpsl() { # Config if [ ! -f "${servercfgfullpath}" ]; then @@ -1650,6 +1803,10 @@ fn_info_game_scpsl() { queryport=${port} } +# Config Type: xml +# Comment: +# Example: +# Filetype: xml fn_info_game_sdtd() { # Config if [ ! -f "${servercfgfullpath}" ]; then @@ -1667,7 +1824,7 @@ fn_info_game_sdtd() { telnetip="${unavailable}" maxplayers="${unavailable}" gamemode="${unavailable}" - gameworld="${unavailable}" + worldname="${unavailable}" else servername=$(grep "ServerName" "${servercfgfullpath}" | sed 's/^.*value="//' | cut -f1 -d"\"") serverpassword=$(grep "ServerPassword" "${servercfgfullpath}" | sed 's/^.*value="//' | cut -f1 -d"\"") @@ -1687,7 +1844,7 @@ fn_info_game_sdtd() { fi maxplayers=$(grep "ServerMaxPlayerCount" "${servercfgfullpath}" | tr -cd '[:digit:]') gamemode=$(grep "GameMode" "${servercfgfullpath}" | sed 's/^.*value="//' | cut -f1 -d"\"") - gameworld=$(grep "GameWorld" "${servercfgfullpath}" | sed 's/^.*value="//' | cut -f1 -d"\"") + worldname=$(grep "GameWorld" "${servercfgfullpath}" | sed 's/^.*value="//' | cut -f1 -d"\"") # Not set servername=${servername:-"NOT SET"} @@ -1702,10 +1859,10 @@ fn_info_game_sdtd() { telnetpass=${telnetpass:-"NOT SET"} maxplayers=${maxplayers:-"0"} gamemode=${gamemode:-"NOT SET"} - gameworld=${gameworld:-"NOT SET"} + worldname=${worldname:-"NOT SET"} fi } - +# Config Type: Parameters (with an ini) fn_info_game_sf() { # Parameters servername=${selfname:-"NOT SET"} @@ -1714,6 +1871,10 @@ fn_info_game_sf() { beaconport=${beaconport:-"0"} } +# Config Type: QuakeC +# Comment: // or /* */ +# Example: set sv_hostname "SERVERNAME" +# Filetype: cfg fn_info_game_sof2() { # Config if [ ! -f "${servercfgfullpath}" ]; then @@ -1768,6 +1929,10 @@ fn_info_game_sol() { fi } +# Config Type: Valve KeyValues +# Comment: // +# Example: hostname "SERVERNAME" +# Filetype: cfg fn_info_game_source() { # Config if [ ! -f "${servercfgfullpath}" ]; then @@ -1812,7 +1977,10 @@ fn_info_game_spark() { # Commented out as displaying not set in details parameters #mods=${mods:-"NOT SET"} } - +# Config Type: Custom (key-value pairs) +# Comment: # or // +# Example: ServerName="SERVERNAME" +# Filetype: cfg fn_info_game_squad() { # Config if [ ! -f "${servercfgfullpath}" ]; then @@ -1845,153 +2013,38 @@ fn_info_game_squad() { queryport=${queryport:-"0"} } -fn_info_game_st() { - # Config - if [ ! -f "${servercfgfullpath}" ]; then - servername="${unavailable}" - serverpassword="${unavailable}" - rconpassword="${unavailable}" - maxplayers="${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 "PASSWORD" "${servercfgfullpath}" | grep "^PASSWORD" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/PASSWORD//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//') - rconpassword=$(grep "RCONPASSWORD" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/RCONPASSWORD//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//') - maxplayers=$(grep "MAXPLAYER" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^\//d' -e 's/MAXPLAYER//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//') - - # Not set - servername=${servername:-"NOT SET"} - serverpassword=${serverpassword:-"NOT SET"} - rconpassword=${rconpassword:-"NOT SET"} - maxplayers=${maxplayers:-"0"} - fi - - # Parameters - port=${port:-"0"} - queryport=${queryport:-"0"} - httpport=${port:-"0"} - worldtype=${worldtype:-"NOT SET"} - autosaveinterval=${autosaveinterval:-"0"} - clearinterval=${clearinterval:-"0"} - worldname=${worldname:-"NOT SET"} -} - +# Config Type: Custom (key-value pairs) +# Comment: # or // +# Example: ServerName="SERVERNAME" +# Filetype: cfg fn_info_game_terraria() { # Config if [ ! -f "${servercfgfullpath}" ]; then servername="${unavailable}" port="${zero}" - gameworld="${unavailable}" + worldname="${unavailable}" maxplayers="${zero}" queryport="${zero}" else servername=$(grep "worldname" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/worldname//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//') port=$(grep "port" "${servercfgfullpath}" | tr -cd '[:digit:]') queryport=${port:-"0"} - gameworld=$(grep "world=" "${servercfgfullpath}" | grep -v "//" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/world=//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//') + worldname=$(grep "world=" "${servercfgfullpath}" | grep -v "//" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/world=//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//') maxplayers=$(grep "maxplayers" "${servercfgfullpath}" | grep -v "//" | tr -cd '[:digit:]') # Not set servername=${servername:-"NOT SET"} port=${port:-"0"} queryport=${queryport:-"0"} - gameworld=${gameworld:-"NOT SET"} - maxplayers=${maxplayers:-"0"} - fi -} - -fn_info_game_stn() { - # Config - 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}") - configip=$(sed -nr 's/^ServerIP=([0-9]+)/\1/p' "${servercfgfullpath}") - port=$(sed -nr 's/^ServerPort=([0-9]+)/\1/p' "${servercfgfullpath}") - serverpassword=$(sed -nr 's/^ServerPassword=(.*)$/\1/p' "${servercfgfullpath}") - queryport=$((port + 1)) - - # Not set - serverpassword=${serverpassword:-"NOT SET"} - port=${port:-"0"} - serverpassword=${serverpassword:-"NOT SET"} - queryport=${queryport:-"0"} - fi -} - -fn_info_game_ti() { - if [ ! -f "${servercfgfullpath}" ]; then - servername="${unavailable}" - 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 - -} - -fn_info_game_ts3() { - # Config - if [ ! -f "${servercfgfullpath}" ]; then - dbplugin="${unavailable}" - port="9987" - queryport="10011" - querysshport="10022" - queryhttpport="10080" - queryhttpsport="10443" - fileport="30033" - telnetport="10011" - else - dbplugin=$(grep "dbplugin=" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/dbplugin=//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//') - port=$(grep "default_voice_port" "${servercfgfullpath}" | tr -cd '[:digit:]') - queryport=$(grep "query_port" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]') - querysshport=$(grep "query_ssh_port" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]') - queryhttpport=$(grep "query_http_port" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]') - queryhttpsport=$(grep "query_https_port" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]') - fileport=$(grep "filetransfer_port" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]') - telnetport="${queryport}" - configip=$(grep "voice_ip" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/voice_ip//g' | sed 's/,.*//' | tr -d '=\";,' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//') - - # Not set - dbplugin=${dbplugin:-"NOT SET"} - port=${port:-"9987"} - queryport=${queryport:-"10011"} - querysshport=${querysshport:-"10022"} - queryhttpport=${queryhttpport:-"10080"} - queryhttpsport=${queryhttpsport:-"10443"} - fileport=${fileport:-"30033"} - telnetport=${telnetport:-"10011"} - configip=${configip:-"0.0.0.0"} - fi -} - -fn_info_game_tu() { - # Config - if [ ! -f "${servercfgfullpath}" ]; then - servername="${unavailable}" - maxplayers="${zero}" - else - servername=$(grep "ServerTitle" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^--/d' -e 's/ServerTitle//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//') - maxplayers=$(grep "MaxPlayers" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]') - - # Not set - servername=${servername:-"NOT SET"} + worldname=${worldname:-"NOT SET"} maxplayers=${maxplayers:-"0"} fi - - # Parameters - port=${port:-"0"} - steamport=$((port + 1)) - queryport=${queryport:-"0"} } +# Config Type: QuakeC +# Comment: // or /* */ +# Example: set sv_hostname "SERVERNAME" +# Filetype: cfg fn_info_game_tw() { # Config if [ ! -f "${servercfgfullpath}" ]; then @@ -2019,50 +2072,10 @@ fn_info_game_tw() { fi } -fn_info_game_ut99() { - # Config - if [ ! -f "${servercfgfullpath}" ]; then - servername="${unavailable}" - serverpassword="${unavailable}" - adminpassword="${unavailable}" - port="${zero}" - queryport="${zero}" - queryportgs="${zero}" - webadminenabled="${unavailable}" - webadminport="${zero}" - webadminuser="${unavailable}" - webadminpass="${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]*$//' | sed 's/\r$//') - serverpassword=$(grep "GamePassword" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/GamePassword//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//' | sed 's/\r$//') - adminpassword=$(grep "AdminPassword" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/AdminPassword//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//' | sed 's/\r$//') - port=$(grep "Port" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' | grep "^Port" | grep -v "#" | tr -cd '[:digit:]') - queryport=$((port + 1)) - queryportgs=$(grep "OldQueryPortNumber" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]') - beaconport=$(grep "ServerBeaconPort" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]') - webadminenabled=$(grep "bEnabled" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/bEnabled//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//' | sed 's/\r$//') - httpport=$(grep "ListenPort" "${servercfgfullpath}" | grep -v "#" | tr -cd '[:digit:]') - webadminuser=$(grep "AdminUsername" "${servercfgfullpath}" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/AdminUsername//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//' | sed 's/\r$//') - webadminpass=$(grep "UTServerAdmin.UTServerAdmin" "${servercfgfullpath}" -A 4 | grep "AdminPassword" | sed -e 's/^[ \t]*//g' -e '/^#/d' -e 's/AdminPassword//g' | tr -d '=\";,:' | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//' | sed 's/\r$//') - - # Not set - servername=${servername:-"NOT SET"} - serverpassword=${serverpassword:-"NOT SET"} - adminpassword=${adminpassword:-"NOT SET"} - port=${port:-"0"} - queryport=${queryport:-"0"} - beaconport=${beaconport:-"8777"} - queryportgs=${queryportgs:-"0"} - webadminenabled=${webadminenabled:-"NOT SET"} - webadminport=${webadminport:-"0"} - webadminuser=${webadminuser:-"NOT SET"} - webadminpass=${webadminpass:-"NOT SET"} - fi - - # Parameters - defaultmap=${defaultmap:-"NOT SET"} -} - +# Config Type: ini +# Comment: ; or # +# Example: ServerName=SERVERNAME +# Filetype: ini fn_info_game_unreal2() { # Config if [ ! -f "${servercfgfullpath}" ]; then @@ -2105,6 +2118,7 @@ fn_info_game_unreal2() { defaultmap=${defaultmap:-"NOT SET"} } +# Config Type: Parameters fn_info_game_unt() { # Parameters servername=${selfname:-"NOT SET"} @@ -2113,6 +2127,10 @@ fn_info_game_unt() { steamport=$((port + 1)) } +# Config Type: ini +# Comment: ; or # +# Example: ServerName="SERVERNAME" +# Filetype: ini fn_info_game_ut() { # Config if [ ! -f "${servercfgfullpath}" ]; then @@ -2129,6 +2147,10 @@ fn_info_game_ut() { queryport=$((port + 1)) } +# Config Type: ini +# Comment: ; or # +# Example: ServerName=SERVERNAME +# Filetype: ini fn_info_game_unreal2k4() { # Config if [ ! -f "${servercfgfullpath}" ]; then @@ -2171,6 +2193,10 @@ fn_info_game_unreal2k4() { fi } +# Config Type: ini +# Comment: ; or # +# Example: ServerName=SERVERNAME +# Filetype: ini fn_info_game_ut3() { # Config if [ ! -f "${servercfgfullpath}" ]; then @@ -2209,8 +2235,9 @@ fn_info_game_ut3() { defaultmap=${defaultmap:-"NOT SET"} } +# Config Type: Parameters fn_info_game_vh() { - # Parameters + port=${port:-"0"} # Query port only enabled if public server if [ "${public}" != "0" ]; then @@ -2218,11 +2245,13 @@ fn_info_game_vh() { else querymode="1" fi - gameworld=${gameworld:-"NOT SET"} + worldname=${worldname:-"NOT SET"} serverpassword=${serverpassword:-"NOT SET"} servername=${servername:-"NOT SET"} } +# Config Type: json +# Comment: // or /* */ fn_info_game_vints() { if [ ! -f "${servercfgfullpath}" ]; then servername="${unavailable}" @@ -2257,6 +2286,10 @@ fn_info_game_vpmc() { queryport=${port:-"25577"} } +# Config Type: QuakeC +# Comment: // or /* */ +# Example: set sv_hostname "SERVERNAME" +# Filetype: cfg fn_info_game_wet() { # Config if [ ! -f "${servercfgfullpath}" ]; then @@ -2286,6 +2319,10 @@ fn_info_game_wet() { fi } +# Config Type: QuakeC +# Comment: // or /* */ +# Example: set sv_hostname "SERVERNAME" +# Filetype: cfg fn_info_game_wf() { # Config if [ ! -f "${servercfgfullpath}" ]; then @@ -2337,6 +2374,9 @@ fn_info_game_wmc() { fi } +# Config Type: custom (key-value) +# Comment: # +# Example: SERVERNAME=SERVERNAME fn_info_game_wurm() { # Config if [ ! -f "${servercfgfullpath}" ]; then