| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373 |
- #!/bin/bash
- # LGSM fn_details_config function
- # Author: Daniel Gibbs
- # Website: http://gameservermanagers.com
- # Version: 210715
- # Description: Gets specific details from config files.
- ## Examples of filtering to get info from config files
- # sed 's/foo//g' - remove foo
- # tr -cd [:digit:] leave only digits
- # tr -d '=\"; ' remove selected charectors =\";
- # grep -v "foo" filter out lines that contain foo
- fn_servercfgfullpath(){
- if [ ! -f "${servercfgfullpath}" ]; then
- servercfgfullpath="\e[0;31mMISSING!\e[0m ${servercfgfullpath}"
- fi
- }
- ## Just Cause 2
- if [ "${engine}" == "avalanche" ]; then
- # ip
- if [ -f "${servercfgfullpath}" ]; then
- # check if the ip exists in the config file. Failing this will fall back to the default.
- configipcheck=$(grep "BindIP" "${servercfgfullpath}"|sed 's/BindIP//g'|tr -d '=", \n')
- fi
- if [ -n "${configipcheck}" ]; then
- ip=$(grep "BindIP" "${servercfgfullpath}"|sed 's/BindIP//g'|tr -d '=", \n')
- fi
- # server name
- if [ -f "${servercfgfullpath}" ]; then
- servername=$(grep -s "Name" "${servercfgfullpath}"|sed 's/Name//g'|tr -d '=", \n')
- if [ ! -n "${servername}" ]; then
- servername="NOT SET"
- fi
- else
- servername="\e[0;31mUNAVAILABLE\e[0m"
- fi
- # port
- if [ -f "${servercfgfullpath}" ]; then
- port=$(grep "BindPort" "${servercfgfullpath}"|tr -cd [:digit:])
- fi
- if [ ! -n "${port}" ]; then
- port="0"
- fi
- # server password
- if [ -f "${servercfgfullpath}" ]; then
- serverpassword=$(grep -s "Password" "${servercfgfullpath}"|sed 's/Password//g'|tr -d '=", \n')
- if [ ! -n "${serverpassword}" ]; then
- serverpassword="NOT SET"
- fi
- else
- serverpassword="\e[0;31mUNAVAILABLE\e[0m"
- fi
- # slots
- if [ -f "${servercfgfullpath}" ]; then
- slots=$(grep -s "MaxPlayers" "${servercfgfullpath}"|tr -cd [:digit:])
- if [ ! -n "${slots}" ]; then
- slots="NOT SET"
- fi
- else
- slots="\e[0;31mUNAVAILABLE\e[0m"
- fi
- fn_servercfgfullpath
- ## Dont Starve Together
- elif [ "${engine}" == "dontstarve" ]; then
- # server name
- if [ -f "${servercfgfullpath}" ]; then
- servername=$(grep -s "default_server_name = " "${servercfgfullpath}"|sed 's/default_server_name = //g')
- if [ ! -n "${servername}" ]; then
- servername="NOT SET"
- fi
- else
- servername="\e[0;31mUNAVAILABLE\e[0m"
- fi
- # port
- if [ -f "${servercfgfullpath}" ]; then
- port=$(grep -s "server_port" "${servercfgfullpath}"|grep -v "#"|tr -cd "[:digit:]")
- fi
- if [ ! -n "${port}" ]; then
- port="0"
- fi
- # server password
- if [ -f "${servercfgfullpath}" ]; then
- serverpassword=$(grep -s "server_password = " "${servercfgfullpath}"|grep -v "#"|sed 's/server_password = //g')
- if [ ! -n "${serverpassword}" ]; then
- serverpassword="NOT SET"
- fi
- else
- serverpassword="\e[0;31mUNAVAILABLE\e[0m"
- fi
- # slots
- if [ -f "${servercfgfullpath}" ]; then
- slots=$(grep -s "max_players" "${servercfgfullpath}"|grep -v "#"|tr -cd [:digit:])
- if [ ! -n "${slots}" ]; then
- slots="NOT SET"
- fi
- else
- slots="\e[0;31mUNAVAILABLE\e[0m"
- fi
- # game mode
- if [ -f "${servercfgfullpath}" ]; then
- gamemode=$(grep -s "game_mode = " "${servercfgfullpath}"|grep -v "#"|sed 's/game_mode = //g')
- if [ ! -n "${gamemode}" ]; then
- gamemode="NOT SET"
- fi
- else
- gamemode="\e[0;31mUNAVAILABLE\e[0m"
- fi
- # tickrate
- if [ -f "${servercfgfullpath}" ]; then
- tickrate=$(grep -s "tick_rate" "${servercfgfullpath}"|grep -v "#"|tr -cd [:digit:])
- if [ ! -n "${tickrate}" ]; then
- tickrate="NOT SET"
- fi
- else
- tickrate="\e[0;31mUNAVAILABLE\e[0m"
- fi
- ## Project Zomboid
- elif [ "${engine}" == "projectzomboid" ]; then
- # server name
- if [ -f "${servercfgfullpath}" ]; then
- servername=$(grep -s "PublicName=" "${servercfgfullpath}"|sed 's/PublicName=//g'|tr -d '=", \n')
- if [ ! -n "${servername}" ]; then
- servername="NOT SET"
- fi
- else
- servername="\e[0;31mUNAVAILABLE\e[0m"
- fi
- # port
- if [ -f "${servercfgfullpath}" ]; then
- port=$(grep -s "DefaultPort=" "${servercfgfullpath}"|tr -cd [:digit:])
- fi
- if [ ! -n "${port}" ]; then
- port="0"
- fi
- # slots
- if [ -f "${servercfgfullpath}" ]; then
- slots=$(grep -s "MaxPlayers=" "${servercfgfullpath}"|grep -v "#"|tr -cd [:digit:])
- if [ ! -n "${slots}" ]; then
- slots="NOT SET"
- fi
- else
- slots="\e[0;31mUNAVAILABLE\e[0m"
- fi
- fn_servercfgfullpath
- elif [ "${engine}" == "realvirtuality" ]; then
- # server name
- if [ -f "${servercfgfullpath}" ]; then
- servername=$(grep -s "hostname" "${servercfgfullpath}"| grep -v //|sed -e 's/\<hostname\>//g'| tr -d '=\"; ')
- if [ ! -n "${servername}" ]; then
- servername="NOT SET"
- fi
- else
- servername="\e[0;31mUNAVAILABLE\e[0m"
- fi
- # port
- if [ -f "${servercfgfullpath}" ]; then
- port=$(grep -s "serverport=" "${servercfgfullpath}"|grep -v //|tr -d '\r'|tr -cd [:digit:])
- fi
- if [ ! -n "${port}" ]; then
- port="0"
- fi
- # query port
- if [ -f "${servercfgfullpath}" ]; then
- queryport=$(grep -s "steamqueryport=" "${servercfgfullpath}"|grep -v //|tr -d '\r'|tr -cd [:digit:])
- fi
- if [ ! -n "${queryport}" ]; then
- queryport="0"
- fi
- # master port
- if [ -f "${servercfgfullpath}" ]; then
- masterport=$(grep -s "steamport=" "${servercfgfullpath}"|grep -v //|tr -d '\r'|tr -cd [:digit:])
- fi
- if [ ! -n "${masterport}" ]; then
- masterport="0"
- fi
- # slots
- if [ -f "${servercfgfullpath}" ]; then
- slots=$(grep -s "maxPlayers" "${servercfgfullpath}"|grep -v "#"|tr -cd [:digit:])
- if [ ! -n "${slots}" ]; then
- slots="NOT SET"
- fi
- else
- slots="\e[0;31mUNAVAILABLE\e[0m"
- fi
- # admin password
- if [ -f "${servercfgfullpath}" ]; then
- adminpassword=$(grep -s "password =" "${servercfgfullpath}"|grep -v //|sed -e 's/\password//g'|tr -d '=\"; ')
- if [ ! -n "${adminpassword}" ]; then
- adminpassword="NOT SET"
- fi
- else
- adminpassword="\e[0;31mUNAVAILABLE\e[0m"
- fi
- # server password
- if [ -f "${servercfgfullpath}" ]; then
- serverpassword=$(grep -s "passwordAdmin" "${servercfgfullpath}"|grep -v //|sed -e 's/\passwordAdmin//g'|tr -d '=\"; ')
- if [ ! -n "${adminpassword}" ]; then
- serverpassword="NOT SET"
- fi
- else
- serverpassword="\e[0;31mUNAVAILABLE\e[0m"
- fi
- fn_servercfgfullpath
- elif [ "${engine}" == "seriousengine35" ]; then
- # server name
- if [ -f "${servercfgfullpath}" ]; then
- servername=$(grep -s "prj_strMultiplayerSessionName" "${servercfgfullpath}"|sed 's/prj_strMultiplayerSessionName = //g'|tr -d '=\"; ')
- if [ ! -n "${servername}" ]; then
- servername="NOT SET"
- fi
- else
- servername="\e[0;31mUNAVAILABLE\e[0m"
- fi
- # rcon
- if [ -f "${servercfgfullpath}" ]; then
- rcon=$(grep -s "rcts_strAdminPassword" "${servercfgfullpath}"|sed 's/rcts_strAdminPassword = //g'|tr -d '=\"; ')
- if [ ! -n "${rcon}" ]; then
- rcon="NOT SET"
- fi
- else
- servername="\e[0;31mUNAVAILABLE\e[0m"
- fi
- # port
- if [ -f "${servercfgfullpath}" ]; then
- port=$(grep -s "prj_uwPort" "${servercfgfullpath}"|tr -d '\r'|tr -cd [:digit:])
- fi
- if [ ! -n "${port}" ]; then
- port="0"
- fi
- # query port
- if [ -f "${servercfgfullpath}" ]; then
- queryport=$((${port} + 1))
- fi
- if [ ! -n "${queryport}" ]; then
- queryport="0"
- fi
- # slots
- if [ -f "${servercfgfullpath}" ]; then
- slots=$(grep -s "gam_ctMaxPlayers" "${servercfgfullpath}"|grep -v "#"|tr -cd [:digit:])
- if [ ! -n "${slots}" ]; then
- slots="NOT SET"
- fi
- else
- slots="\e[0;31mUNAVAILABLE\e[0m"
- fi
- # game mode
- if [ -f "${servercfgfullpath}" ]; then
- gamemode=$(grep -s "gam_idGameMode" "${servercfgfullpath}"|grep -v "#"|sed 's/gam_idGameMode//g'|tr -d '=\"; ')
- if [ ! -n "${gamemode}" ]; then
- gamemode="NOT SET"
- fi
- else
- gamemode="\e[0;31mUNAVAILABLE\e[0m"
- fi
- elif [ "${engine}" == "source" ]||[ "${engine}" == "goldsource" ]; then
- # server name
- if [ -f "${servercfgfullpath}" ]; then
- servername=$(grep -s "hostname" "${servercfgfullpath}"|sed 's/hostname //g'|sed 's/"//g')
- if [ ! -n "${servername}" ]; then
- servername="NOT SET"
- fi
- else
- servername="\e[0;31mUNAVAILABLE\e[0m"
- fi
- # rcon
- if [ -f "${servercfgfullpath}" ]; then
- rcon=$(grep -s "rcon_password" "${servercfgfullpath}"|sed 's/rcon_password //g'|sed 's/"//g')
- if [ ! -n "${rcon}" ]; then
- rcon="NOT SET"
- fi
- else
- rcon="\e[0;31mUNAVAILABLE\e[0m"
- fi
- # server password
- if [ -f "${servercfgfullpath}" ]; then
- serverpassword=$(grep -s "sv_password" "${servercfgfullpath}"|sed 's/sv_password//g'|sed 's/"//g')
- if [ ! -n "${serverpassword}" ]; then
- serverpassword="NOT SET"
- fi
- else
- serverpassword="\e[0;31mUNAVAILABLE\e[0m"
- fi
- # slots
- if [ -f "${servercfgfullpath}" ]; then
- slots=$(grep -s "gam_ctMaxPlayers" "${servercfgfullpath}"|grep -v "#"|tr -cd [:digit:])
- if [ ! -n "${slots}" ]; then
- slots="NOT SET"
- fi
- else
- slots="\e[0;31mUNAVAILABLE\e[0m"
- fi
- elif [ "${engine}" == "spark" ]; then
- queryport=$((${port} + 1))
- elif [ "${gamename}" == "Teamspeak 3" ]; then
- if [ -s "${servercfgfullpath}" ]; then
- port=$(grep "default_voice_port=" "${servercfgfullpath}"|tr -cd [:digit:])
- queryport=$(grep "query_port=" "${servercfgfullpath}"|tr -cd [:digit:])
- fileport=$(grep "filetransfer_port=" "${servercfgfullpath}"|tr -cd [:digit:])
- ip=$(grep "voice_ip=" "${servercfgfullpath}"|sed 's/\voice_ip=//g')
- dbplugin=$(grep "dbplugin=" "${servercfgfullpath}"|sed 's/\dbplugin=//g')
- else
- port="9987"
- queryport="10011"
- fileport="30033"
- fi
- elif [ "${engine}" == "unity3d" ]; then
- servername=$(grep "ServerName" "${servercfgfullpath}"|sed 's/^.*value="//'|cut -f1 -d"\"")
- port=$(grep "ServerPort" "${servercfgfullpath}"|tr -cd [:digit:])
- queryport=$((${port} + 1))
- webadminenabled=$(grep "ControlPanelEnabled" "${servercfgfullpath}"|sed 's/^.*value="//'|cut -f1 -d"\"")
- webadminport=$(grep "ControlPanelPort" "${servercfgfullpath}"|tr -cd [:digit:])
- webadminpass=$(grep "ControlPanelPassword" "${servercfgfullpath}"|sed 's/^.*value="//'|cut -f1 -d"\"")
- telnetenabled=$(grep "TelnetEnabled" "${servercfgfullpath}"|sed 's/^.*value="//'|cut -f1 -d"\"")
- telnetport=$(grep "TelnetPort" "${servercfgfullpath}"|tr -cd [:digit:])
- telnetpass=$(grep "TelnetPassword" "${servercfgfullpath}"|sed 's/^.*value="//'|cut -f1 -d"\"")
- if [ -z "${telnetpass}" ]; then
- telnetpass="\e[0;31mno password set\e[0m"
- fi
- elif [ "${engine}" == "unreal" ]||[ "${engine}" == "unreal2" ]; then
- servername=$(grep -s ServerName= ${servercfgfullpath}|sed 's/ServerName=//g')
- port=$(grep Port= "${servercfgfullpath}"|grep -v Master|grep -v LAN|grep -v Proxy|grep -v Listen|tr -d '\r'|tr -cd [:digit:])
- queryport=$((${port} + 1))
- gsqueryport=$(grep OldQueryPortNumber= "${servercfgfullpath}"|tr -d '\r'|tr -cd [:digit:])
- udplinkport=$((${port} + 2))
- webadminenabled=$(grep bEnabled= "${servercfgfullpath}"|sed 's/bEnabled=//g'|tr -d '\r')
- webadminport=$(grep ListenPort= "${servercfgfullpath}"|tr -d '\r'|tr -cd [:digit:])
- if [ "${engine}" == "unreal" ]; then
- webadminuser=$(grep AdminUsername= "${servercfgfullpath}"|sed 's/\AdminUsername=//g')
- webadminpass=$(grep UTServerAdmin.UTServerAdmin "${servercfgfullpath}" -A 2| grep AdminPassword=|sed 's/\AdminPassword=//g')
- else
- webadminuser=$(grep AdminName= "${servercfgfullpath}"|sed 's/\AdminName=//g')
- webadminpass=$(grep AdminPassword= "${servercfgfullpath}"|sed 's/\AdminPassword=//g')
- fi
- fi
|